Инструкция по настройке локального WS-MDS
29/04/2010 version 1.3
1.1. Общие требования
Организация и сайт с указанием предоставляемых сервисов должны быть зарегистрирован в СРРГС (https://gocdb.jinr.ru). Статические данные о сайте, публикуемые локальным MDS в ЦИС должны совпадать с регистрационными данными.
Сервер с локальным MDS должен иметь сертификат ГридННС, как его получить см. здесь: http://ca.nanogrid.ru
1.2. Требования к системе
Предполагается, что
- GT 4.2.1 установлен в конфигурации по умолчанию и принадлежит
непривилегированному пользователю globus;
- каталог установки контейнера определен в переменной окружения $GLOBUS_LOCATION;
- установлен интерпретатор perl версия 5.8.8 (/usr/bin/perl);
- опционально: установлена утилита xmlstarlet (http://xmlstar.sourceforge.net/), которая, в частности, позволяет проверить валидность xml-документа. Утилиту можно установить из EPEL-репозитория:
$ yum install xmlstarlet
2. Настройка регистрации в ЦИС
2.1. Для регистрации сайта в ЦИС на сервере с первичным WS-MDS сайта (Site MDS) в файл
$GLOBUS_LOCATION/etc/globus_wsrf_mds_index/hierarchy.xml
нужно добавить строку
<upstream>https://gr4.phys.spbu.ru:8443/wsrf/services/DefaultIndexService</upstream>
если на сайте есть вторичные WS-MDS, то их регистрацию необходимо производить через первичный, для этого строчка в их файлах hierarchy.xml должна выглядеть следующим образом:
<upstream>https://site-mds:8443/wsrf/services/DefaultIndexService</upstream>
2.2. Для отображения узлов и сервисов в контейнере по именам, а не по IP, в файл
$GLOBUS_LOCATION/etc/globus_wsrf_core/server-config.wsdd
добавляем в секцию <globalConfiguration> строки
<parameter name="logicalHost" value="your.host.name"/>
<parameter name="publishHostName" value="true"/>
При этом строка с 'logicalHost' является не обязательной, но может потребоваться в отдельных конкретных случаях.
Внесенные изменения вступят в силу после перезагрузки java-контейнера. После чего, через некоторое время, обновленную информацию можно будет наблюдать через WebMDS.
3. Настройка регистрационной информации о сайте, кластере и сервисе GrifFTP
3.1. Забрать из SVN компонента infosys infosys/lis:
svn co https://svn.ngrid.ru/infosys/trunk/lis/ infosys
README /site-info cat-site-info.sh site-info-example-gt3.xml site-info-example-with-comment.xml /gridftp-check gridftp-check-example.cfg gridftp-check-example.xml gridftp-check.pl jndi-config-example.xml /example jndi-config-example.xml system-registration-example.xml /scripts globus-servicegroup-add globus-start mds-servicegroup-add /schema/ glueschema13R2-7.xsd
3.2. Создать каталог $GLOBUS_LOCATION/etc/nng-site
В нем создать файл site-info.xml из образца site-info/site-info-example.xml,
внести необходимую информацию о своем сайте.
Пример этого файла с комментариями ко всем полям тут SiteInfoWithComments.
3.2.1. После создания своего site-info.xml желательно проверить валидность полученного документа, например, так:
$ xmlstarlet val --err -s http://ngrid.ru/glueschema/V13/R1/glueschema13R2-7.xsd site-info.xml
*/Обратите внимание, что многие составных элементы определены в схеме с моделью <sequence>, что требует заданной упорядоченности элементов.
Валидация по схеме дает проверку на отсутствие формальных ошибок, за правильность предоставляемых данных (содержательной информации) отвечает администратор сайта.
3.3. Перенести исполняемые скрипты (для чтения статической инфо из файла и опроса gridftp-сервера.
$ cp lis/site-info/cat-site-info.sh $GLOBUS_LOCATION/libexec/aggrexec/ $ cp lis/gridftp-check/gridftp-check.pl $GLOBUS_LOCATION/libexec/aggrexec/ $ cp lis/gridftp-check/gridftp-check-example.cfg $GLOBUS_LOCATION/etc/nng-site/gridftp-check.cfg
Отредактировать gridftp-check.cfg под свой сайт. Параметр gridFTPnamespace менять НЕЛЬЗЯ, он задает пространство имен, общее для нашего грида.
3.4 Определить алиасы скриптов в файле $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/jndi-config.xml:
<resource name="configuration"
type="org.globus.mds.aggregator.impl.AggregatorConfiguration">
<resourceParams>
....
<parameter>
<name>executableMappings</name>
<value>gridftp-info=gridftp-check.pl,site-info=cat-site-info.sh</value>
</parameter>
</resourceParams>
</resource>
В параметре "aggregatorSources" должен быть указан тип org.globus.mds.aggregator.impl.ExecutionAggregatorSource?; он включается при инсталляции по умолчанию, однако, не помешает убедиться в его присутствии. (пример: /example/jndi-config-example.xml)
3.5. Создать конфигурационный файл агрегатора.
$ cp lis/example/system-registration-example.xml \ $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/default_providers/system-registration.xml
Изменить на свои адреса хостов и полный путь к файлу с site-info.xml:
<defaultServiceGroupEPR>
<wsa:Address>https://gt3.phys.spbu.ru:8443/wsrf/services/DefaultIndexService</wsa:Address>
</defaultServiceGroupEPR>
....
<RegistrantEPR>
<wsa:Address>file:///usr/local/globus-4.2.1.1/etc/nng-site/site-info.xml</wsa:Address>
</RegistrantEPR>
....
<RegistrantEPR
....
<wsa:Address>gsiftp://gt3.phys.spbu.ru:2811</wsa:Address>
</RegistrantEPR>
Здесь defaultServiceGroupEPR - адрес локального MDS, в которой регистрируется агрегатор.
*) Для одного регистранта параметры RefreshIntervalSecs? и PollIntervalMillis? должны
определять один и тот же временной интервал. На время отладки можно оба
поставить небольшими, потом для site-info имеет смысл увеличить.
4. Если на сайте работает Ganglia, то публикацию от нее нужно отключить.
Достаточно в файле $GLOBUS_LOCATION/etc/globus_wsrf_gram_PBS/gluerp-config.xml
(и у некоторых еще
$GLOBUS_LOCATION/etc/globus_wsrf_gram_Fork/gluerp-config.xml)
закомментировать блок соответствующего resourcePropertyElementProducers:
<!--
<ns1:resourcePropertyElementProducers xsi:type="ns1:resourcePropertyElementProducerConfig">
<ns1:className xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">
org.globus.mds.usefulrp.glue.GangliaElementProducer </ns1:className>
<ns1:arguments xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">
gt3.phys.spbu.ru </ns1:arguments>
<ns1:arguments xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">
8649 </ns1:arguments>
<ns1:transformClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">
org.globus.mds.usefulrp.rpprovider.transforms.GLUEComputeElementTransform </ns1:transformClass>
<ns1:period xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:int">
120 </ns1:period>
</ns1:resourcePropertyElementProducers>
-->
5. Перестартовать globus-контейнер.
6. Запуск агрегатора
6.1. Заменить утилитой scripts/mds-servicegroup-add оригинальную $GLOBUS_LOCATION/bin/mds-servicegroup-add.
(В нашей версии добавлена функция сохранения PID в файл $GLOBUS_LOCATION/var/servicegroup.pid, что требуется для работы стартового скрипта.)
6.2. Установить стартовые скрипты.
В каталоге scripts находится два стартовых скрипта, которые можно запускать от рута (выполняют команды с su - globus):
globus-servicegroup-add (для агрегатора инфо о SITE и GrifFTP)
globus-start (используется для Globus-контейнера, делает su - вызов оригинальной globus-ws-java-container )
Их следует cкопировать в /etc/init.d и сделать соответствующие ссылки из /etc/rc3.d
*) В скриптах globus-start и globus-servicegroup-add нужно установить свои значения
параметров $GLOBUS_USER и $GLOBUS_LOCATION !!!
6.3. Стартовать агрегатор
[globus@gt3]$ /etc/init.d/globus-servicegroup-add start
Лог этого процесса будет направлен в $GLOBUS_LOCATION/var/servicegroup.log.
Перезапуск контейнера не требуется, эти процессы работают независимо.
7. Через несколько минут убедиться, что информация опубликовалась. В WebMDS должны появиться ресурсы SITE и gridftp для вашего сайта.
7.1. В случае, если что-то не так, можно посмотреть из командной строки, например так, в своем локальном MDS:
$ wsrf-query -s https://your-mds-host:8443/wsrf/services/DefaultIndexService \ "//*/ngftp:Service[ngftp:Type='gridftp']" wsrf-query -s https://your-mds-host:8443/wsrf/services/DefaultIndexService \ "//*[local-name()='Site']"
в ЦИС:
$ wsrf-query -s https://gr4.phys.spbu.ru:8443/wsrf/services/DefaultIndexService \ "//*/ngftp:Service[@ngftp:UniqueID='your_gridftp_uniqueID']" $ wsrf-query -s https://gr4.phys.spbu.ru:8443/wsrf/services/DefaultIndexService \ "//*/ng:Site[@ng:UniqueID='your_site_uniqueID']"
[]
