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

54
EGEE-II INFSO-RI- 031688 Enabling Grids for E-sciencE www.eu-egee.org Система управления данными в gLite Олешко С.Б. Петербургский институт ядерной физики г.Гатчина

description

Система управления данными в gLite. Олешко С.Б. Петербургский институт ядерной физики г.Гатчина. Сервисы gLite. Access. Available gLite Implementation. CLI. API. Information & Monitoring Services. Security Services. Authorization. Application - PowerPoint PPT Presentation

Transcript of Система управления данными в gLite

Page 1: Система управления данными в  gLite

EGEE-II INFSO-RI-031688

Enabling Grids for E-sciencE

www.eu-egee.org

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

Олешко С.Б.Петербургский институт ядерной физикиг.Гатчина

Page 2: Система управления данными в  gLite

2

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Сервисы gLite

API

Access

Workload Mgmt Services

ComputingElement

WorkloadManagement

MetadataCatalog

Data Management

StorageElement

DataMovement

File & ReplicaCatalog

Authorization

Security Services

Authentication

Information &Monitoring

Information & Monitoring Services

Application

Monitoring

Connectivity

Accounting

Auditing

JobProvenance

PackageManager

CLI AvailablegLite

Implementation

ServiceDiscovery

Page 3: Система управления данными в  gLite

3

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

• Задачи Системы Управления Данными (DMS)

• Storage Element (SE) и SRM

• File Catalogs и DM tools

• Перемещение данных (File Transfer Service)

• gLite I/O API

• JDL атрибуты для работы с данными

Page 4: Система управления данными в  gLite

4

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Свойства и требования• Гетерогенность

– Данные хранятся на различных устройствах (диски, ленты), использующих различные методы доступа

• Распределенность– Данные хранятся на различных сайтах,

где отсутствует общая разделяемая файловая система

– Данные могут перемещаться между различными сайтами

• Различные административные домены– Данные хранятся там, куда обычный

доступ вам запрещен

– Необходим общий интерфейс к устройствам

Storage Resource Manager (SRM)

– Необходим способ определения местоположения файлов

File and Replica Catalogs

– Необходима управляемая, надежная передача файлов

File transfer and placement services

– Необходима общая модель безопасности

Реализация контроля доступа (ACL), основанного на применении Grid DNs

Page 5: Система управления данными в  gLite

5

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Введение

• Предпосылки:– пользователи и программы являются источником и

потребителем данных– основным экземпляром данных принят файл (мы работаем с

файлами, а не с объектами или реляционными таблицами данные = файлы

• Файлы: – в основном записываются один раз, читаются многократно– размещены на Элементах Хранения - Storage Elements (SEs)– могут существовать несколько реплик одного файла на различных

сайтах– доступны для пользователей Грид “отовсюду”– местоположение м.б. определено WMS (data requirements в JDL)

• Также…– WMS может пересылать небольшой объём данных с заданием или

от выполненного задания: Input and Output Sandbox – файлы могут копироваться с локальной файловой системы (WNs,

UIs) в Грид (SEs), и наоборот

Page 6: Система управления данными в  gLite

6

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Сервисы DMS

• Storage Element – общий интерфейс к ресурсам памяти

– Storage Resource Manager Castor, dCache, DPM, …– Native Access protocols rfio, dcap– Transfer protocols gsiftp

• I/O Servers – обеспечивает POSIX I/O для пользователя gLite-I/O• Catalogs – определение местоположения файлов

– File Catalog– Replica Catalog LCG File Catalog (LFC) – File Authorization Service– Metadata Catalog AMGA Metadata Catalog

• File Transfer – управляемая надёжная передача файлов

– Data Scheduler (в разработке)– File Transfer Service gLite FTS

(обеспечивает физическую передачу)

– File Placement Service gLite FPS (взаимодействие FTS и каталогов

способом транзакций)

Page 7: Система управления данными в  gLite

7

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

• Задачи Системы Управления Данными (DMS)

• Storage Element (SE) и SRM

• File Catalogs и DM tools

• Перемещение данных (File Transfer Service)

• gLite I/O API

• JDL атрибуты для работы с данными

Page 8: Система управления данными в  gLite

8

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Требования к gLite SE

• Storage Element - это сервис, который позволяет пользователю или приложению сохранять данные для будущего использование

• Управление локальными ресурсами памяти (диски) и интерфейс к Mass Storage Systems (ленты), таким как – HPSS, CASTOR, DiskeXtender (UNITREE), …

• Способность управлять различными системами хранения данных единым способом и прозрачно для пользователя (обеспечивается через SRM интерфейс)

• Поддержка основных протоколов передачи данных– GridFTP обязательно– Другие по возможности (https, ftp, etc…)

• Поддержка “привычного” протокола доступа для ввода/вывода удалённых файлов– POSIX (like) I/O client library for direct access of data (GFAL)

Page 9: Система управления данными в  gLite

9

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Пример из жизни

Она запускает задачу, которой нужны:•данные реконструкции физического события•данные симуляции•некоторые файлы с данными анализа

Результаты также должны быть где-то сохранены

В CERNна dCache

В Fermilab на дисковом массиве

В Nikhefна classic SE

Page 10: Система управления данными в  gLite

10

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Пример из жизни

dCacheСобственная система, свой протокол и параметры

CastorНет связи сdCache или classic SE

gLite DPMСистема, независимая ни от dCache ни от Castor

Как пользователь,

вы должны знать все эти

системы!!!SR

M

Я общаюсь с ними от вашего имениЯ буду выделять место для ваших файловИ я буду использовать протоколы передачи данных, чтобы пересылать ваши файлы туда

Page 11: Система управления данными в  gLite

11

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Storage Resource Management

• Данные хранятся на disk pool servers или Mass Storage Systems

• Управление этими ресурсами должно обеспечивать:

– Прозрачный доступ к файлам (migration to/from disk pool)

– Выделение места для файлов (Space reservation)

– Получение информации о статусе файлов (File status notification)

– Управление временем жизни файлов (Life time management)

• SRM (Storage Resource Manager) сервис реализует все эти требования:

– SRM это Грид сервис, который реализует взаимодействие с локальными ресурсами хранения данных и обеспечивает Грид-интерфейс для внешнего мира

– SRM – это протокол управления ресурсами хранения данных, а не протокол доступа к файлам или протокол передачи файлов.

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

• В gLite взаимодействие с SRM обычно скрыто за сервисами более высокого уровня (DM tools и APIs)

Page 12: Система управления данными в  gLite

12

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Поддерживаемые протоколы

Протоколы доступа к файлам в gLite SE 3.0:

Протокол Тип GSI Описание

GSIFTP(GridFTP) Передача файлов Да Аналог FTP

gsidcap (GSI dCache

Access Protocol)

Ввод/вывод Да Удалённый доступ

insecure RFIO (Remote

File Input/Output Protocol)

Ввод/вывод Нет Удалённый доступ

secured RFIO (gsirfio) Ввод/вывод Да Удалённый доступ

* Протокол file сейчас используется только для доступа к файлам на локальном компьютере (т.е. на UI или WN), но не к файлам на Грид SE

** GridFTP сейчас является обязательным для каждого из типов SE, поддерживаемых в gLite и основным для передачи файлов в Грид.

Page 13: Система управления данными в  gLite

13

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Типы SE в gLite (I)

• Classic SE:–GridFTP сервер–Insecure RFIO daemon (rfiod) – ограниченный доступ для LAN–Только одно дисковое устройство или дисковый массив–Нет возможности управлять квотами (только partitioning)–Не поддерживает SRM интерфейс

• Mass Storage Systems–Комплексная иерархическая система хранения: front-end диски и back-end ленты–GridFTP для front-end (file transfere)–File access: insecure RFIO (CASTOR), gsidcap для dCache (front-end disk pool)–Поддерживает SRM интерфейс (пока только для Castor)

Page 14: Система управления данными в  gLite

14

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Типы SE в gLite (II)

• Disk pool managers (dCache and gLite DPM)–Обеспечивает централизованное управление распределёнными серверами хранения данных–Физические диски и массивы объединены в общую (виртуальную) иерархическую файловую систему с единой точкой входа в SE–Диски могут быть динамически добавлены в пул–GridFTP сервер–Secure remote access protocols (gsidcap for dCache, gsirfio for DPM)–SRM интерфейс

Page 15: Система управления данными в  gLite

15

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

gLite Storage Element

Page 16: Система управления данными в  gLite

16

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

• Задачи Системы Управления Данными (DMS)

• Storage Element (SE) и SRM

• File Catalogs и DM tools

• Перемещение данных (File Transfer Service)

• gLite I/O API

• JDL атрибуты для работы с данными

Page 17: Система управления данными в  gLite

17

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

File and Replica Catalog

Именование файлов

• Symbolic Link в пространстве логических имён (logical filename space)• Logical File Name (LFN) [lfn:<anything_you_want>]

– Имя, созданное пользователем для того чтобы ссылаться на некоторый элемент данных, напр. “lfn:cms/20030203/run2/track1”

• Globally Unique Identifier (GUID) [guid:<40_bytes_unique_string>]– Внутренний (машинный) идентификатор элемента данных, напр.

“guid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6”

• Site URL (SURL) [<sfn | srm>://<SE_hostname>/<some_string>]

(or Physical File Name (PFN) or Site FN) – Физическое местоположение реплики элемента данных в системе хранения данных,

напр. “srm://pcrd24.cern.ch/flatfiles/cms/output10_1” (SRM) “sfn://lxshare0209.cern.ch/data/alice/ntuples.dat” (Classic SE)

• Transport URL (TURL) [<protocol>://<some_string>]– Временный указатель на реплику + протокол доступа: распознаётся SE, напр.

“rfio://lxshare0209.cern.ch//data/alice/ntuples.dat”

Symbolic Link 1

Symbolic Link n

GUID

Physical File SURL n

Physical File SURL 1

.

. ..

TURL 1

TURL n

.

.LFN

SRM

Page 18: Система управления данными в  gLite

18

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Взаимодействие с SRM

Клиент SRM

Ресурс5

1

2

1. Клиент запрашивает SRM файл с указанным SURL (Site URL)2. SRM запрашивает ресурс, где находится файл3. Ресурс сообщает о доступности файла и его расположении4. SRM возвращает TURL (Transfer URL), т.е. место, откуда может быть получен файл5. Клиент взаимодействует с ресурсом, используя протокол, определённый в

TURL

3

4

Page 19: Система управления данными в  gLite

19

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Каталоги (File and Replica Catalog)

• Главная цель - определить, где размещены файлы в Grid• File and Replica Catalog - это сервис, который реализует это и

поддерживает соответствие между LFNs, GUIDs и SURLs.• В gLite поддерживаются 2 типа каталогов:

– Replica Location Server (RLS) - старый Local Replica Catalog (LRC) Replica Metadata Catalog (RMC)

– LCG File Catalog (LFC) – по умолчанию

• Тип используемого пользователем каталога определяется переменной окружения LCG_CATALOG_TYPE: edg для RLS, lfc для LFC

• Оба каталога между собой несовместимы!!! Однако есть средства миграции из RLS в LFC

• Файл данных только тогда может считаться Грид-файлом, когда он физически присутствует на каком-либо SE и зарегистрирован в каталоге

Page 20: Система управления данными в  gLite

20

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Свойства LFC

• Поддержка курсоров для больших запросов

• Таймауты и повтор запросов от пользователя

• Транзакции с использованием API

• Иерархическое пространство имён

• Единый каталог, где LFN – основной ключ

• Интегрированная GSI авторизация и аутентификация

• Поддержка ACL• Интеграция с VOMS• Поддержка системных

метаданных (размер файла, дата создания,…) + поле для пользовательских метаданных

• База данных: Oracle или MySQL

gLite

UI

File Catalog

SE

SE

SE

Page 21: Система управления данными в  gLite

21

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Взаимосвязи в LFC

GUID

Xxxxxx-xxxx-xxx-xxx-

System Metadata

“size” => 10234“cksum_type” => “MD5”“cksum” => “yy-yy-yy”

Symlink

/grid/dteam/mydir/mylink

Replica

srm://host.example.com/foo/barhost.example.com

Replica

srm://host.example.com/foo/barhost.example.com

Replica

srm://host.example.com/foo/barhost.example.com

Replica

srm://host.example.com/foo/barhost.example.com

Symlink

/grid/dteam/mydir/mylink

Symlink

/grid/dteam/mydir/mylink

LFN

/grid/dteam/dir1/dir2/file1.root

User metadata

User defined string

Page 22: Система управления данными в  gLite

22

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Структура LFC

• Все члены данной ВО имеют права чтения/записи в соответствующую директорию

• Если соответствующей директории нет, то это означает, что данный LFC сервер не поддерживает эту ВО

• Команды работы с LFC похожи на соответствующие команды в UNIX (с префиксом lfc-)

• Переменная окружения $LFC_HOST должна содержать имя LFC сервера

Defined by the userLFC Namespace

LFC имеет иерархическую структуру

/grid/<VO_name>/ <you create it>

Page 23: Система управления данными в  gLite

23

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Команды LFC

lfc-chmod Изменить права доступа к файлу/директории LFC

lfc-chown Изменить владельца и группу для файла/директории LFC

lfc-delcomment Удалить комментарии, связанные с файлом/директорией

lfc-getacl Показать ACL для файла/директории

lfc-ln Создать символическую ссылку на файл/директорию

lfc-ls Вывести список файлов в директории

lfc-mkdir Создать директорию

lfc-rename Переименовать файл/директорию

lfc-rm Удалить файл/директорию

lfc-setacl Установить/изменить ACL для файла/директории

lfc-setcomment Добавить/заменить комментарий

Page 24: Система управления данными в  gLite

24

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Средства работы с данными

• LCG Data Management tools (обычно называемые lcg-utils) позволяют копировать файлы между UI, CE, WN и SE, регистрировать в File Catalogs и реплицировать данные между SEs.

• Поскольку lcg-utils используют ИС, то должна быть правильно установлена переменная окружения LCG_GFAL_INFOSYS, которая указывает на BDII сервер

• Почти все команды требуют обязательного параметра (если не установлена переменная LCG_GFAL_VO)

--vo <vo_name>

Page 25: Система управления данными в  gLite

25

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

lcg-utils

lcg-cp Копировать файл из Грид на локальный компьютер (UI)

lcg-cr Копировать файл на SE и зарегистрировать его в каталоге

lcg-del Удалить один файл (или реплику, или все реплики)

lcg-rep Репликация между SE и регистрация реплики

lcg-gt Получить TURL для данных SURL и протокола передачи

lcg-sd Установить статус “Done” для данного SURL в SRM запросе

File Catalog Interaction

lcg-aa Добавить синоним в LFC для данного GUID

lcg-ra Удалить синоним в LFC для данного GUID

lcg-rf Зарегистрировать в LFC файл, размещённый на SE

lcg-uf Удалить регистрацию в LFC файла, размещённого на SE

lcg-la Список всех синонимов для данного SURL, GUID или LFN

lcg-lg Получить GUID для данного LFN или SURL

lcg-lr Список всех реплик для данного GUID, SURL или LFN

Replica Management

Page 26: Система управления данными в  gLite

26

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

• Задачи Системы Управления Данными (DMS)

• Storage Element (SE) и SRM

• File Catalogs и DM tools

• Перемещение данных (File Transfer Service)

• gLite I/O API

• JDL атрибуты для работы с данными

Page 27: Система управления данными в  gLite

27

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Базовые понятия FTS

• Задание (Job) – состоит из множества файлов, которые должны быть переданы от источника к получателю (могут иметь дополнительные параметры для GridFTP) + информация о user proxy

• Файл (File) – ссылка на пару физических имён источник/получатель в формате SURL или GridFTP (для globus-url-copy)

• Статус файла (File State)– состояние процесса передачи отдельного файла

• Статус задания (Job State) – общее состояние процесса передачи, как функция всех статусов файлов, составляющих задание

• Канал (Channel) – однонаправленное соединение между двумя сайтами для передачи файлов. Различают 2 типа каналов:– production (dedicated network pipe) – обычно между Tier-0, Tier-1 и

основными Tier-2 центрами– nonproduction (open network) – не обеспечивают production QoS

Page 28: Система управления данными в  gLite

28

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Job states

•Submitted – задание послано FTS, но ему ещё не назначен канал•Pending – канал назначен и файлы задания ожидают передачи•Active – идёт передача некоторых файлов задания•Canceling – задание назначено на аварийное завершение•Done – все файлы задания переданы успешно•Failed – передача некоторых файлов задания завершилась неудачно•Canceled – задание снято•Hold – требуется вмешательство, т.к. состояние некоторых файлов не может быть разрешено автоматически (напр.: много повторов передачи)

Page 29: Система управления данными в  gLite

29

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Основы GridFTP

• Протокол доступа и передачи данных для безопасного и эффективного перемещения данных

• Стандартизован Global Grid Forum• Расширяет стандартный FTP протокол

– поддержка Grid Security Infrastructure (GSI) на базе технологии “шифрования открытым ключом” или Kerberos

- управление передачей данных для внешних программ (third-party control of data transfer)

- параллельная передача данных- чередование передачи данных (striped data transfer) - частичная передача данных (partial file transfer)- автоматическое согласование размера буфера/окна TCP- поддержка надёжной и возобновляемой (reliable and restartable)

передачи данных- встроенные средства для мониторинга выполнения процесса

передачи

Page 30: Система управления данными в  gLite

30

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

GridFTP - реализация

• GridFTP – это основа большинства систем передачи файлов• Функция повторения операции ограничена

– Повтор только в случае проблем с сетью; нет возможности восстановления передачи в случае отказа сервера GridFTP

• GridFTP управляет одновременно только одной передачей– Нет возможности оптимизации групповой передачи– Нет возможности диспетчеризации параллельных передач

• Необходима служба верхнего над GridFTP уровня, которая обеспечит надёжную диспетчеризируемую передачу файлов– FTS/FPS– Globus RFT (layer on top of single gridftp server)– Condor Stork

Page 31: Система управления данными в  gLite

31

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Передача данных (непосредственный контроль)

• Хотя транспортный протокол может быть надёжным, информация о статусе находится у клиента – это неудобно и ненадёжно (уязвимо)

• Клиент может знать только состояние отдельного задания, не имея представления об общем состоянии передачи данных между SEs.– SE может переполниться запросами на репликацию

– Может быть несколько репликаций одних и тех же данных одновременно

– Отдельный сайт очень слабо может управлять балансом (оптимизацией) сетевых ресурсов

Client

Source Storage Element

Destination Storage Element

Control Channels

Data Flow Channel

Page 32: Система управления данными в  gLite

32

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Передача данных (сервис передачи)

• Использование сервиса для передачи данных

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

– сервис контролирует состояние передачи

– клиент периодически возобновляет соединение, получает информацию о статусе или отменяет задание

– сервис имеет информацию об общей картине, а не только об отдельном задании

балансировка загрузки диспетчеризация заданий

Transfer

Service

Source Storage Element

Destination Storage Element

Control

Data Flow

Client

•Submit new request•Monitor progress•Cancel request

SOAP via https

Page 33: Система управления данными в  gLite

33

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Архитектура gLite FTS/FPS

• File Transfer/Placement Service (FTS,FPS)– База данных заданий на передачу файлов

(Job DB)– Предоставляет Transfer Web Service

интерфейс для клиента (submit, cancel, status)– Имеет Web Interface– Mодифицирует Catalog если необходимо

• Transfer Agent– Основные действия

Получает задания из Transfer Job Database Управляет передачей через множество каналов Moниторирует статус и модифицирует Transfer

Job Database

• Transfer Service (glite-url-copy)– Фактически выполняет передачу: SRM – SRM,

gsiftp – SRM, gsiftp – gsiftp – Moниторирование

Job DB

FTS/FPSWebService

Transfer Agent

Actions

Channel Channelglite-url-copy

glite-url-copy

glite-url-copy

glite-url-copy

glite-url-copy

glite-url-copy

Web Monitor

Page 34: Система управления данными в  gLite

34

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Передача данных в gLite FTS (итоги)

• Передача файлов асинхронная• Понятие канала, как однонаправленного соединения между

сайтами• Задание может включать передачу нескольких файлов, но все

они должны использовать один и тот же канал• Пользователь может запрашивать состояние задания через

JobID• За передачу физических файлов отвечает FTS,

регистрацией/поиском в каталогах занимается FPS (File Placement Service)

• ВО, использующие канал для передачи файлов, могут вводить свои собственные правила для диспетчеризации заданий (напр. задания профессора более приоритетные, чем задания студента)

Page 35: Система управления данными в  gLite

35

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Команды gLite FTS

Для пользователя• glite-transfer-submit - Запуск нового задания на передачу данных.

Возвращается JobID.• glite-transfer-cancel - Аварийно завершить задание• glite-transfer-list - Получить список всех заданий с указанным

статусом• glite-transfer-status - Получить статус данного заданияДля администратора• glite-transfer-channel-add - Создать новый канал передачи• glite-transfer-channel-drop - Удалить канал передачи• glite-transfer-channel-list - Получить список всех доступных

каналов• glite-transfer-channel-set - Изменить параметры канала• glite-transfer-channel-signal - Изменить статус задания(всех

заданий для данного канала). Используется для разрешения ситуации со статусом “Hold”

Page 36: Система управления данными в  gLite

36

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

• Задачи Системы Управления Данными (DMS)

• Storage Element (SE) и SRM

• File Catalogs и DM tools

• Перемещение данных (File Transfer Service)

• gLite I/O API

• JDL атрибуты для работы с данными

Page 37: Система управления данными в  gLite

37

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Свойства GFAL API

• GFAL (Grid File Access Library) – это API, имеющий POSIX интерфейс для операций с файлами, расположенными на SE

• Позволяет удалённую работу с файлами (особенно полезно, если нужен доступ к части очень большого файла)

• Библиотеки на C и могут быть включены в программы на C/C++

• Есть Java API • SE должен поддерживать протокол secure rfio (поэтому для

classic SEs использовать нельзя)• Скрывает взаимодействие с SRM для пользователя

Page 38: Система управления данными в  gLite

38

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Data Management API

Page 39: Система управления данными в  gLite

39

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

GFAL: переменные окружения

• Для некоторых функций GFAL необходимо взаимодействие с каталогом, а он ВО-зависим, поэтому должны быть установлены следующие переменные окружения:– LCG_GFAL_VO– LCG_GFAL_INFOSYS– LCG_CATALOG_TYPE– LFC_HOST

• Кроме того:– LCG_RFIO_TYPE– LD_LIBRARY_PATH

Page 40: Система управления данными в  gLite

40

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

GFAL: доступные API

• C API– Файл заголовков gfal_api.h.– Вызов функции – добавление префикса gfal_ к POSIX имени

функции (open(), read()…), например gfal_open, gfal_read,...– Список аргументов и возвращаемые значения – идентичны

POSIX.– Переменная errno устанавливается в соответствии с Posix

Error Codes в случае ошибки.

• Java API (C API Wrapper)– Поддерживает три основных Java Objects, которые должны

быть импортированы в Java-программу. GFalFile : обработка и чтение/запись в файлы GFalDirectory : обработка и управление директориями

(создание, удаление, список) GFalUtilities : управление файлами (переименование, удаление,

свойства)

Page 41: Система управления данными в  gLite

41

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

GFAL: функции I/O API (1)

int gfal_access (const char *path, int amode);

int gfal_chmod (const char *path, mode_t mode);

int gfal_close (int fd);

int gfal_creat (const char *filename, mode_t mode);

off_t gfal_lseek (int fd, off_t offset, int whence);

int gfal_open (const char * filename, int flags, mode_t mode);

ssize_t gfal_read (int fd, void *buf, size_t size);

int gfal_rename (const char *old_name, const char *new_name);

ssize_t gfal_setfilchg (int, const void *, size_t);

int gfal_stat (const char *filename, struct stat *statbuf);

int gfal_unlink (const char *filename);

ssize_t gfal_write (int fd, const void *buf, size_t size);

Page 42: Система управления данными в  gLite

42

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

GFAL: функции I/O API (2)

int gfal_closedir (DIR *dirp);

int gfal_mkdir (const char *dirname, mode_t mode);

DIR *gfal_opendir (const char *dirname);

struct dirent *gfal_readdir (DIR *dirp);

int gfal_rmdir (const char *dirname);

Page 43: Система управления данными в  gLite

43

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Пример выполнения gfal_open

Page 44: Система управления данными в  gLite

44

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Ссылки

• Examples in gLite3 User Guide (Appendix F)– https://edms.cern.ch/file/722398//gLite-3-UserGuide.pdf

• GFAL C API Description:– http://grid-deployment.web.cern.ch

/grid-deployment/documentation/LFC_DPM/gfal/html/

• GFAL JAVA API– https://grid.ct.infn.it/twiki/bin/view/GILDA/APIGFAL

• GFAL Java API code and libraries:– https://grid.ct.infn.it/twiki/pub/GILDA/APIGFAL/GFAL_Java_API.zip

• On-line JavaDoc of Java API:– https://grid.ct.infn.it/twiki/GFAL/

• GFAL Excercises (C/Java):– https://grid.ct.infn.it/twiki/bin/view/GILDA/UsingGFAL

Page 45: Система управления данными в  gLite

45

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

• Задачи Системы Управления Данными (DMS)

• Storage Element (SE) и SRM

• File Catalogs и DM tools

• Перемещение данных (File Transfer Service)

• gLite I/O API

• JDL атрибуты для работы с данными

Page 46: Система управления данными в  gLite

46

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

Sandboxes

•InputSandbox – файл (список файлов) на локальном диске UI, которые будут переданы через узел WMS на WN при запуске задания. Все имена файлов должны быть различны (даже если они в разных директориях).

•OutputSandbox – файл (список файлов), которые в результате выполнения задания создаются на узле WMS и могут быть переданы на UI при помощи команды glite-job-output (edg-job-get-output).

Эти файлы не могут быть на SE, т.е. нельзя использовать LFN(Logical File Name). Существует ограничение на размеры файлов для Sandboxes, т.е. файлы должны быть небольшого размера

(ориентировочно < 100Mb).

Page 47: Система управления данными в  gLite

47

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

InputData(deprecated)

• InputData – строка (список строк), представляющие в одном из допустимых форматов (LFN, GUID, ..) имена входных файлов. Они используются WMS только для получения PFN (Physical File Name), по которым затем WMS на этапе matchmaking сможет определить CE, имеющий максимальное количество физических файлов (реплик) на ближайшем SE (CloseSE). В зависимости от префикса имени файла будет выбираться тип каталога для определения PFN (RLS, StorageIndex, DLI). По умолчанию для lfn: и guid: используется RLS.

• StorageIndex – URL сервиса gLite Storage Index. Если указан, то для определения PFN файлов с lfn: и guid будет использоваться этот каталог.

• DataCatalog - URL сервиса LCG Data Location Interface. Если указан, то для определения PFN файлов с lfn: и guid будет использоваться этот каталог.

Page 48: Система управления данными в  gLite

48

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

InputData (пример)

InputData = {

"lfn:/mydata/file1",

"lfn:/mydata/file2",

"guid:135b7b23-4a6a-11d7-87e7-9d101f8c8b70"

};

// Do not need to specify this attribute if you want to use the VO

// default StorageIndex catalog

StorageIndex =

"http://lxb1434.cern.ch:8080/EGEE/glite-data-/FiremanCatalog";

Page 49: Система управления данными в  gLite

49

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

DataRequirements

DataRequirements - более гибкая форма задания атрибутов для требований на входные файлы. Состоит из групп, в каждой из которых могут быть указаны 3 атрибута:

• InputData - строка (список строк), представляющие в одном из допустимых форматов (LFN, GUID, ..) имена входных файлов.

• DataCatalogType – тип каталога, который будет использоваться для данной группы

RLS - LCG Replica Location Service SI – gLite Storage Index DLI - LCG Data Location Interface

• DataCatalog - URL сервиса каталога (может определятся, если он отличается от каталога по умолчанию для ВО)

Page 50: Система управления данными в  gLite

50

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

DataRequirements (пример)

DataRequirements = { [ DataCatalogType = "DLI"; DataCatalog = "https://cms.org:8877/dli"; InputData = {"lfn:/my/test.data1", "guid:44rr44rr77hh77kkaa3”}; ], [ DataCatalogType = "SI"; DataCatalog = "https://glite.org:9443/StorageIndex"; InputData = {"lfn:/eo/test.file", "guid:ddffrg5451"}; ],

[ DataCatalogType = "RLS"; DataCatalog = "https://eu-datagrid.org/RLS"; InputData = {"lfn:/atlas/test.file", "guid:ggrgrg5656"}; ],

[ DataCatalogType = "RLS"; InputData = {"lfn:/myvo/test.file","guid:adbdefgilm1234"}; ], .... };

Page 51: Система управления данными в  gLite

51

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

DataAccessProtocol

Если определён атрибут InputData либо DataRequirements, то должен быть указан атрибут DataAccessProtocol, который определяет список имён протоколов, которые приложение может использовать для доступа к файлам.

DataAccessProtocol = {

“file”,

“gridftp”

};

Page 52: Система управления данными в  gLite

52

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

OutputSE

• OutputSE – представляет URL того SE, где пользователь хочет сохранять выходные файлы. Используется RB для определения CE, “ближайшего”(close) к данному SE.

Следует использовать осторожно, т.к. разные брокеры по-разному интерпретируют присутствие этого атрибута. Например LCG RB аварийно завершает задачу, если нет CE, определённого, как “ближайший” для OutputSE.

Page 53: Система управления данными в  gLite

53

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

OutputData

• Пока не реализовано в gLite 3.0• Позволяет пользователю автоматически пересылать на SE и

регистрировать в каталоге выходные файлы задания.• Для каждого файла могут быть определены 3 атрибута:

• OutputFile (обязательный) – имя выходного файла• StorageElement (необязательный) – SE, где должен быть сохранён

файл• LogicalFileName (необязательный) – LFN, под который должен быть

зарегестрирован файл в каталоге

Page 54: Система управления данными в  gLite

54

Enabling Grids for E-sciencE

EGEE-II INFSO-RI-031688

OutputData (пример)

OutputData = {

[

OutputFile = "dataset_1.out ";

LogicalFileName = "lfn:/test/result1";

],

[

OutputFile = "dataset_2.out ";

StorageElement = "se001.cnaf.infn.it";

],

]

OutputFile = "cms/dataset_3.out";

StorageElement = "se012.to.infn.it";

LogicalFileName = "lfn:/cms/outfile1";

],

[

OutputFile = "dataset_4.out ";

]

};