dCache — xранилище, где живёт ХИГГС

в 9:33, , рубрики: big data, java, LHC, nfsv4, Облачные вычисления, метки: , , ,

В последнее время было большое количество постов о ЦЕРНе и Большом Адронном Kоллайдере (БАК или LHC). Но не многие знают, что БАК производит ~20 ПБ данных в год. Порядка 50% всех данных хранится в dCache.

dCache является распределённой системой хранения данных, способной работать на обычном железе, с возможностью расширения посредсвом добавления новых узлов. Всё, что нужно для работы на узле, — это JVM (так как всё написано на джаве) и файловая система, где, собственно, и хранятся данные. Типичные инсталляции используют Linux(RHEL/SL/CentOS 6) или Solaris с XFS или ZFS, соответсвенно. В связи с натурой эксперементальных данных dCache не предусматривает изменение хранимых файлов.

dCache разрабатывается с 2000 года и с 2002 года используеться в более чем 80 научных центрах мира, включая Россию. Самые маленькие системы состоят из одного узла в несколько ТБ, самые большие состоят из ~500 узлов с суммарным дисковым пространством в 22 ПБ.

image

dCache поддерживает разные протоколы доступа к данным. Наряду с широкораспространенными стандартными протоколами WebDAV, FTP, NFSv4.1/pNFS используются а также грид протоклы SRM и GRIDFTP.

Самое простое применение dCache — это расспределённый WebDAV сервер. На его основе можно создать свой собственный Cloud Storage, тем более, что уже существует достаточное количество клиентов, использующих HTTP и WebDAV.

Мы расмотрим более банальное применение — распределенное NFSv4.1 хранилище.

Для хранения метадданных dCache использует postgresql.
Итак, приступим:

# yum install postgresql-server
# yum install java-1.7.0-openjdk
# yum install http://www.dcache.org/downloads/1.9/repo/2.6/dcache-2.6.10-1.noarch.rpm
# /etc/init.d/postgresql initdb

В /var/lib/pgsql/data/postgresql.conf включаем TCP:
listen_addresses = 'localhost'

В /var/lib/pgsql/data/pg_hba.conf добавляем

host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
# /etc/init.d/postgresql restart
# su postgres -c "createuser -D -R -S chimera"
# su  postgres -c "createdb -O chimera chimera"
# su  postgres -c "createlang plpgsql chimera"

Все конфигурационные файлы находятся в /etc/dcache директории. Нас интересует только один из них: /etc/dcache/layout/single.conf, где находится описание сервисов, которые должны быть запущены на данном узле.

Говорим dCache, что должно работать в /etc/dcache/layouts/single.conf:

[dCacheDomain]
[dCacheDomain/admin]
[dCacheDomain/broadcast]
[dCacheDomain/poolmanager]
[dCacheDomain/loginbroker]
[dCacheDomain/pnfsmanager]
[dCacheDomain/cleaner]
[dCacheDomain/httpd]
[dCacheDomain/topo]
[dCacheDomain/nfsv41]

Данная кофигурация создаёт dCacheDomain ( каждый домайн — одна JVM, один процесс) с соответствующими сервисами.

И конфигурируем дата сервер на том же узле:
# dcache pool create /srv/dcache pool1 pool1Domain

Данная команда добавит в конфигурационный файл pool1Domain с сервисом типа дата сервер с именем pool1:

[pool1Domain]
[pool1Domain/pool]
name=pool1
path=/srv/dcache
waitForFiles=${path}/data

Создаём директорию:
# chimera-cli mkdir /data<br>
# chimera-cli chmod /data 777

И экспортируем в /etc/exports:
/data *(rw)

Запускаем dCache:
# dcache start
Лог файлы находятся в /var/log/dcache.

Так как dCache является распределённым храннилищем, нам нужен NFS клиент, который поддерживает pNFS (parallel NFS). Это RHEL/CentOS 6 или любой другой современный линукс дистрибутив:

# mount -overs=4.1 <server>:/data /data

Чтобы добавить новый узел и, тем самым, расширить хранилище, достаточно на другом хосте поставить пакеты openjdk и dcache, создать
/etc/dcache/layouts/single.conf с одной строкой:
dcache.broker.host=и создать дата сервер:
# dcache pool create /srv/dcache pool2 pool2Domain

Важно помнить, что имена домайнов и дата серверов должны быть уникальные.

To steal and contribute code

Код dCache-а находится на гитхабе и, в зависимости от компонента, распостраняется под лицензией AGPL, LGPL и BSD.

Ресурсы:

www.dcache.org
https://github.com/dCache/dcache

Буду рад, если вас интересуют долее сложные конфигурации.

Автор: tmk826

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js