Главная / Обучение / Практикум / Основы системы управления данными в gLite

Основы системы управления данными в gLite

Цель этого практикума - введение в систему управления данными в gLite.

Для этого используются два набора команд

Команды lcg- также реализуют взаимодействие между SE's и сервером каталогов.

Практикум по работе с File Transfer Service (FTS) находится здесь

Переменные окружения

Некоторые переменные окружения должны быть установлены до начала работы для того чтобы быть уверенным, что используется правильный сервис каталогов. Как правило, значения по умолчанию для этих переменных установлены правильно, но это должно быть проконтролировано. Переменные, для которых должно быть проверено, какие именно значения для них установлены - это следующие:

  $ echo $LCG_GFAL_INFOSYS; echo $LCG_CATALOG_TYPE; echo $LFC_HOST
  grid004.ct.infn.it:2170
  lfc
  lfc-gilda.ct.infn.it
  

Эти значения устанавливаются, если вы работаете в GILDA. Если же вы работаете в другой среде или хотите использовать другие сервисы, уточните у системного администратора, какие значения должны иметь эти переменные окружения. Для того чтобы изменить значения по умолчанию, используйте команды:

  $ export LCG_GFAL_INFOSYS=grid004.ct.infn.it:2170
  $ export LCG_CATALOG_TYPE=lfc
  $ export LFC_HOST=lfc-gilda.ct.infn.it
  

Теперь вы готовы начать работу.

Команды LFC и LCG

Получение списка файлов и директорий

Для каждой поддерживаемой Виртуальной Организации (ВО) существует своя отдельная "головная директория", как поддиректория для /grid директории. Так, вы можете видеть все файлы, которые храняться для ВО GILDA. Прежде всего проверьте, что у вас уже создан VOMS proxy и затем наберите команду

  $ lfc-ls -l /grid/gilda
  

Вы увидите список содержимого директории /grid/gilda.

Вместо того, чтобы каждый раз набирать полный путь для каждого файла и директории, которые мы будем использовать, можно определить HOME директорию, для которой вы можете использовать уже относительные пути к файлам/директориям. Сделайте это сейчас, установив переменную окружения LFC_HOME следующим образом:

  $ export LFC_HOME=/grid/gilda/tutorial
  

Создание директории

Прежде чем создавать и копировать свои собственные файлы, создайте свою персональную директорию для их сохранения:

  $ lfc-mkdir $USER
  

Для того чтобы проверить, что директория создалась, введите команду

  $ lfc-ls -l
  

И вы увидите вашу созданную директорию (плюс директории, созданные другими участниками практикума).

Сохранение файла на SE

Следующий шаг - сохранение файла в директории, которую вы только что создали. Для начала создайте локально простой текстовый файл.

  $ echo "Put something here" > text_file.txt
  

Команда, использующаяся для копирования файла - lcg-cr(LCG copy and register). Введите следующую команду для того чтобы скопировать этот файл на SE aliserv6.ct.infn.it: (используйте команду lcg-infosites, чтобы определить, какие SE доступны).

  $ lcg-cr --vo gilda file://$PWD/text_file.txt -l lfn:$USER/text_file.txt -d aliserv6.ct.infn.it 
  

Вывод команды будет выглядеть примерно так:

  $ lcg-cr --vo gilda file://$PWD/text_file.txt -l lfn:$USER/text_file.txt -d aliserv6.ct.infn.it 
  guid:c8da3f42-9a84-47de-9f32-f10ef93c8daa
  

Конечно, guid, который вы увидите, будет совсем другой, потому что это уникальный идентификатор, который имеет каждый файл (за исключением случаев репликации файла, как мы увидим в дальнейшем). Проверьте, что файл появился, используя команду просмотра содержимого директории.

Прежде, чем продолжить, стоит подчеркнуть разницу между командой, используемой для сохранения файла и созданием директории в предыдущем примере. Созданная директория - это только виртуальная директория и она существует только внутри каталога для логических имён файлов (lfn). С другой стороны файл физически существует на SE, но имеет дополнительное виртуальное имя файла в каталоге. Именно с этим связано то, что команды, которые работают только с пространством логических имён файлов как правило начинаются с префикса "lfc", в то время как команды, непосредственно работающие с файлами, начинаются с "lcg".

Получение SURL файла

Для некоторых случаев, например при использовании FTS, полезно знать SURL файла (их может быть несколько, если файл имеет несколько реплик ещё где-то). Соответствующая команда для этого lcg-lr (list-replicas) [lfn | guid].

  $ lcg-lr --vo gilda lfn:$USER/text_file.txt
  srm://aliserv6.ct.infn.it/dpm/ct.infn.it/home/gilda/generated/2006-07-19/filef42b726f-d9dc-45f4-b3b5-f4d55a6d9c44
  

Репликация файла между SE

gLite поддерживает репликацию. Файл может сохранён на нескольких SE и затем выполняемая задача может получить доступ к ближайшему SE, где есть реплика файла, обеспечивая таким образом самое быстрое время доступа к файлу. Это также помогает защититься от сбоев или проблем с доступом к конкретному SE. Для того чтобы получить список доступных SE, обратитесь к практикуму по утилите lcg-infosites, который можно найти здесь. Мы будем реплицировать только что созданный файл на SE egee016.cnaf.infn следующей командой:

  $ lcg-rep --vo gilda -d egee016.cnaf.infn.it lfn:$USER/text_file.txt
  

В случае успешного завершения эта команда не выводит ничего, но вы можете прверить, что реплика действительно создалась, просмотрев список всех реплик данного файла, используя команду получения списка реплик

  $ lcg-lr --vo gilda lfn:$USER/text_file.txt
  

Вы должны получить список из двух реплик, примерно следующего вида:

  $ lcg-lr --vo gilda lfn:$USER/text_file.txt 
  srm://aliserv6.ct.infn.it/dpm/ct.infn.it/home/gilda/generated/2006-07-19/filef42b726f-d9dc-45f4-b3b5-f4d55a6d9c44
  srm://egee016.cnaf.infn.it/dpm/cnaf.infn.it/home/gilda/generated/2006-07-21/file94b9ea79-37cf-49b7-9d16-b82a564fb16f
  

Отметим, что пути к месту сохранения файлов различны. Это демонстрирует, как использование "lfn" позволяет избежать необходимости разбираться с особенностями локальной файловой системы, где хранятся реплики файла.

Создание символической ссылки

Как пример некоторых других доступных возможностей, создадим второй lfn для файла, который вы сохранили. Это очень напоминает процесс создания символической ссылки в UNIX. Второй lfn создаётся командой:

  $ lfc-ln -s $USER/text_file.txt $USER/text_file_symlink.txt
  

Заметим, что при создании ссылки используется путь к исходному файлу, чтобы избежать проблем, когда относительная ссылка используется из неправильной директории. Если вы сейчас посмотрите на содержимое директории, то вы должны увидеть оба имени, но символическая ссылка имеет размер 0, а также показан файл, на который делалась ссылка.

  $ lfc-ls -l  $USER
  -rw-rw-r--   1 554      102              19 Jul 19 15:36 text_file.txt
  lrwxrwxrwx  1 554      102                0 Jul 19 15:37 text_file_symlink.txt -> /grid/gilda/tutorial/catania41/text_file.txt
  

Передача файла с SE на UI

Уже имея файл, переданный на SE, следующий шаг - показать как получить файл обратно. Чтобы получить файл, уже переданный на SE, и имеющий новый lfn, используйте команду:

  $ lcg-cp --vo gilda lfn:$USER/text_file.txt file://$PWD/text_file_copy.txt
  

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

  $ cat text_file_copy.txt
  Put something here
  $
  

Удаление

Вы можете удалить файл с SE командой lcg-del

  $ lcg-del -a  --vo gilda lfn:/grid/gilda/tutorial/$USER/text_file.txt
  

Эта команда также удаляет и запись о файле из Каталога Файлов

  $ lfc-ls $USER
  $
  

Завершая процесс удаления, полностью удалим рабочую директорию из каталога.

  $ lfc-rm -r /grid/gilda/tutorial/$USER
  $ lfc-ls /grid/gilda/tutorial/ | grep $USER
  


egee@pnpi.nw.ru

©2004-2010 ПИЯФ РАН им. Б.П.Константинова

СтатистикаСтатистика сайта