dCache
ЦИВК ЛИТ ОИЯИ

О ЦИВК

О работе на ресурсах ЦИВК ЛИТ ОИЯИ:

Регистрация

Правила работы

Базовое программное обеспечение ЦИВК

Работа с файловой системой AFS ( ps )

Перечень и краткое описание основных команд

Некоторые средства разработки

Руководство пользователя dCache

 
Работа с файловой системой dCache в ОИЯИ
Содержание
Что такое dCache?
Почему надо работать с dCache?
Первоисточники по dCache
Особенности dCache в ОИЯИ
Установка клиента dCache
Работа с локальным пространством
Доступ к файлу в локальном пространстве
Доступ файлу из пространства LCG
API в LCG
Экзотические способы
Ответы на наиболее частые вопросы
Дополнение к руководству от 11 ноября 2013г.
Что такое dCache??
dCache это файловая система, ориентированная на хранение больших объёмов экспериментальной информации. Это значит, что помещать в dCache надо результаты экспериментов и моделирования, но никак не программы или презентации, для которых предназначена AFS.
Для доступа к файлам используется собственный протокол dCache DCAP или любой протокол доступа к файлам системы GRID.
Почему надо работать с dCache?
Система используется в ОИЯИ и на большинстве других TIER 2. dCache предоставляет доступ к файлам, в том числе средствами GRID, которые логически упорядочены в одно дерево, но физически находятся на разных дисках. Многие коллаборации LHC рассматривают dCache как основное хранилище данных.
В ЛИТ ОИЯИ к dCache подключено в данный момент 30 Тб дисков и будет ещё больше.
Первоисточники по dCache
Домашняя страница проекта:
http://www.dcache.org
там статья на 4 страницах "Что такое dCache": http://www.dcache.org/manuals/dcache-whitepaper-light.pdf
или энциклопедическая работа на 40 листах по использованию dCache http://www.dcache.org/manuals/Book/

Есть толковый, но несколько избыточный документ, рождённый в ЦЕРНе для администраторов dCache
http://wiki.gsi.de/pub/Gridadmin/ToDo2005Apr21080327/dCache4SiteAdmins.pdf

dCache используется во многих организациях, каждая имеет свою инструкцию, например:
http://www-cdf.fnal.gov/upgrades/computing/dh/cdf5981/CdfIntroDCacheUseAtCdf/node1.html
или
http://storage.esc.rl.ac.uk/documentation/html/D-Cache-Howto/ch11.html

Особенности dCache в ОИЯИ
Файлы хранятся на серверах так же как в NFS и AFS. Файловое пространство разделяется на локальное, доступное в директории /pnfs/jinr.ru/user/?, и пространство LCG, доступное в /pnfs/jinr.ru/data/<виртуальная организация>.

Локальное пространство доступно для пользователей, зарегистрированных на ферме ЛИТ с любого linux компьютера, подключённого к сети ОИЯИ. На компьютере должен быть установлен NFS клиент (ставится по умолчанию при установке Linux), клиент dCache и смонтирована директория /pnfs/jinr.ru. На ферме это уже сделано. Пространство LCG доступно для пользователей, имеющих GRID сертификат (зарегистрированных в одной из виртуальных организаций LCG) из любой точки земного шара, где на компьютере установлено соответствующее МО LCG.

Установка клиента dCache
Надо скачать rpm клиента, например с http://www.dcache.org/downloads/IAgree.shtml
и установить его
rpm -i dcache-client-1.6.6-5.i386.rpm

настроек не требуется. Создать директорию

mkdir -p /pnfs/jinr.ru

Смонтировать директорию на своём локальном компьютере

mount -o intr,rw,noac,hard lxfs07.jinr.ru:/pnfs /pnfs/jinr.ru
Работа с локальным пространством
Файлы доступны в директории /pnfs/jinr.ru аналогично тому, как доступны home директории в /afs/jinr.ru

/pnfs/jinr.ru/user/<первая буква>/<имя пользователя>

Файловая система pnfs отделяет работу с информацией о файле от работы с собственно файлом. В отличие от NFS и AFS, которые для пользователя прозрачны, для доступа к информации файла его, в общем случае, надо переписать в локальную директорию.

Из стандартного набора linux могут быть использованы следующие команды:
ls, pwd, find, rm and rmdir, cd, mkdir, ln (только hard links), chown, chmod.

Из стандартного набора linux не могут быть использованы:
cp, mv, cat, more, less, grep, head, tail, wc, od, file.

Использование mc происходит с оглядкой на вышеприведённые списки.

Доступ к файлу в локальном пространстве
Для доступа к информации файла его надо переписать из системы dCache в свою локальную директорию:

а) команда dccp, (далее именуется доступ по dcap) если PNFS смонтирована для копирования туда, в примере файл переписывается из локальной директории в директорию dCache

	
	dccp $HOME/nobel_price_result.row /pnfs/jinr.ru/user/i/i_am

 и обратно

        dccp /pnfs/jinr.ru/user/i/iam/two_weeks_of_simulation.001 ~/to_cern.001

б) если PNFS не смонтирована, файл адресуется в стиле URL (далее будем называет это url-dcap), настоятельно рекомендуется метод с монтированием, изложенных в п. а)

dccp dcap://lxfs07.jinr.ru:22125/pnfs/jinr.ru/data/cms/file \  ~/destinationfile
Доступ файлу из пространства LCG
Предполагается, что на компьютере установлено МО GRID, пользователь зарегистрирован в VO и имеет действительный сертификат.

Для доступа можно использовать gsi-ftp (Globus). Копируем из локальной директории в директорию dCache:

globus-url-copy file:/tmp/test gsiftp://lxfs07.jinr.ru:2811/pnfs/jinr.ru/data/dteam/testfile2

Копируем из директории dCache в локальную:

srmcp srm://lxfs07.jinr.ru:8443/pnfs/jinr.ru/dteam/testfile2 file:////tmp/backtest
API в LCG
Можно написать программу, используя библиотеку libcap, которая предоставляет API POSIX формат. Как утверждают создатели dCache ( http://www.dcache.org/manuals/libdcap.shtml), "The libdcap library provides a POSIX like open, create, read, write and lseek functions to the dCache storage."
Экзотические способы
Пример работы в системе ROOT приведён в http://www.uscms.org/SoftwareComputing/UserComputing/dCache/dCache.html
Ответы на наиболее частые вопросы
1. Какие квоты? Квот нет, но это не повод закачивать файлы бездумно. Кроме того, в следующих версиях обещают квоты по виртуальным организациям.

2. Когда делается backup? Васkup не делается никогда.

3. А что, если закачать фильм? Мало не покажется.

4. Как одновременно работать и с GRID, и с локальным пространством? Или там или здесь - одновременно просто неудобно.

5. Хочется прочитать файл, а потом записать его новую версию. Не выйдет. Файл сначала надо прочитать, потом стереть и только потом записать новую версию под старым именем. Поэтому лучше сразу изменить имя, добавив номер версии.

6. Можно ли обрабатывать файлы не переписывая их в локальную директорию? Можно. Если в dccp вместо имени файла указать "-" (минус), то это будет трактоваться как входной или выходной поток. Тогда можно использовать стандартный для linux приём конвеерной обработки.

Дополнение к руководству от 11 ноября 2013г.
Пользователям фермы ЛИТ, а также тем, кто работает на персональных компьютерах и зарегистрирован на ферме ЛИТ, но нуждается в объёмах памяти, превышающих возможности HDD персональных компьютеров, может быть выделена память в общем пуле ЛИТ. Пул находится под управлением системы dCache ( http://www.dcache.org ). Состояние системы dCache можно посмотреть на http://lxse-ns01.jinr.ru:2288/. Большие объёмы дискового пространства (более 1 ТБ) для пользователя в пуле выделяется по распоряжению директора ЛИТ.

Прежде чем обращаться с просьбой о выделении места, пользователь должен убедиться в том, что другими способами получить такой объём затруднительно. В качестве пояснения приведём следующий пример. Дисковый накопитель на 2 ТВ стоит от 4 до 9 тыс. рублей и может быть подключён к любому персональному компьютеру под любой операционной системой. Возможно, такое решение будет более эффективным, чем описанный ниже способ.

Протокол dCap.

DCap является собственным протоколом системы dCache. Протокол реализован в виде библиотек и клиента, которые должны быть установлены на компьютере. Загрузить соответствующую вашей системе файлы rpm можно по адресу: http://www.dcache.org/downloads/dcap/

dCap обеспечивает выполнение функций POSIX: open, create, read, write и seek для файлов, которые хранятся в системе dCache. Более подробное описание библиотеки содержится в http://www-dcache.desy.de/manuals/libdcap.html

Для доступа через протокол dCap необходимо обратиться к "двери" - серверу, который обслуживает запросы. Есть три класса дверей для доступа через протокол dCap. Они различаются по способу аутентификации. Дверь "чистого протокола" называется DCap-lxse-dc01 и работает без проверок прав доступа. В связи с этим, через эту дверь можно выполнять только операции чтения файлов или содержимого директорий, когда они открыты для чтения для всех. Для обращения к этой двери надо указывать имя сервера и порт lxse-dc01.jinr.ru:22125.

Для операций, предусматривающих изменения файлов, используется дверь с аутентификацией через протокол kerberos5, она называется DCap-Kerberos-lxse-dc01. Для обращения к ней надо указывать имя сервера и порт lxse-dc01.jinr.ru:22126. Работающие в окружении грид могут воспользоваться дверью с аутентификацией по стандарту X509. Для этого нужно иметь сертификат, выданный одной из виртуальных организаций NONE, FUSE, BIOMED, BES, DTEAM. Эта дверь называется DCap-gsi-lxse-dc01 и располагается на сервере lxse-dc01.jinr.ru:22128.

Для того, чтобы обратиться к dCap необходимо указать сервер, порт, файл в области pnfs - виртуального пространства системы dcache. URL - указание на протокол dCap выглядит следующим образом:
dcap://<serverHost>:<port>//pnfs/jinr.ru/data/user/<первая буква имени>/<имя пользователя>

Команды, которые можно выполнять через протокол dCap: ls, mkdir, rmdir, chown, chmod, unlink. Перед выполнением команд, которые взаимодействуют с сервером dCap на чтение (lxse-dc01:22125) должна быть загружена библиотека libpdcap. Для этого, перед собственно операцией с файлом/директорией, нужно указать загрузку библиотеки:
LD_PRELOAD=libpdcap.so ls -l dcap:// lxse-dc01.jinr.ru:22125//pnfs/jinr.ru/...

Внимание! Не указывайте эту библиотеку через операции export/setenv оболочки окружения (shell), это приведет к разгрузке библиотеки и подмене обращений к стандартным функциям системы, что может привести к трудно диагностируемым ошибкам программ и утилит системы. Если используются команды, связанные с изменением файлов или директорий, то дополнительно должны быть определены библиотека, обеспечивающая авторизацию и обмен с дверью dcache по протоколу kerberos5.
export DCACHE_IO_TUNNEL=libgssTunnel.so

Пример команды создания директории:
export DCACHE_IO_TUNNEL=libgssTunnel.so
LD_PRELOAD=libpdcap.so \
mkdir dcap://lxse-dc01.jinr.ru:22126//pnfs/jinr.ru/data/user/t/trofimov/x1dir

Пример команды удаления файла:
LD_PRELOAD=libpdcap.so \
unlink dcap://lxse-dc01.jinr.ru:22126//pnfs/jinr.ru/data/user/t/trofimov/t2

Замечание: команда "rm" не работает, так как библиотека libpdcap эмулирует не все функции. Вместо команды "rm" используйте команду "unlink".

Точно таким же образом можно перенаправить ввод вывод своей программы на dcache:
export DCACHE_IO_TUNNEL=libgssTunnel.so
LD_PRELOAD=libpdcap.so <program> <params...>
указав в программе открытие файлов с URL dcap через параметры программы или через переменные окружения, как это часто делается для программ на fortran'е.

Для чтения и записи файлов в скпиртах или интерактивно обычно используется команда dccp. Пример записи файла из локальной директории в память dCache:
export DCACHE_IO_TUNNEL=libgssTunnel.so
LD_PRELOAD=libpdcap.so \
dccp -d 7 p1010101.jpg dcap://lxse-dc01.jinr.ru:22126//pnfs/jinr.ru/data/user/t/trofimov/x2.jpg

Пример чтения файла из памяти dCache в локальную директорию:
LD_PRELOAD=libpdcap.so \
dccp dcap://lxse-dc01.jinr.ru:22126//pnfs/jinr.ru/data/user/t/trofimov/x2.jpg infile

Руководство по работе с файловой системой dCache в ОИЯИ подготовлено В.В. Трофимовым
Остались вопросы?
Возникли проблемы?
Оставьте запрос в HELPDESK

 
Service dCache