Настройка GridWay для регистрации узлов кластера.
Для регистрации информации о состояния узлов в файл $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/hierarchy.xml необходимо добавить строку:
<upstream>https://member-host:8443/wsrf/services/DefaultIndexService</upstream>
где member-host – имя хоста на котором осуществляется регистрация состояния. Соответственно на этом узле должен быть запущены сервис GridFTP и контейнер GRID служб:
globus:/usr/local/globus-4.2.1/etc/globus_wsrf_mds_index$ netstat -na | grep LIST tcp 0 0 0.0.0.0:2811 0.0.0.0:* LISTEN tcp 0 0 :::8443 :::* LISTEN
GridWay для получения информации о состоянии кластера использует драйвер в котором реализовано 4 режима работы:
- Static Discovery and Monitoring (SS mode);
- Static Discovery and Dynamic Monitoring (SD mode);
- Dynamic Discovery and Monitoring (DD mode);
- Separate Storage and Computing Element (Mixed mode).
В своих настойках мы использовали режим динамического мониторинга, используя MDS4, и статического описания параметров кластера:
IM_MAD = mds4:gw_im_mad_mds4_thr:-l etc/gridway/host.list:gridftp:ws
Файл host.list, расположенный в $GLOBUS_LOCATION/etc/gridway содержит имена хостов и указания на файлы, описывающие параметры этих хостов, например:
nnn1.pnpi.nw.ru etc/host.nnn1.pnpi.nw.ru nnn2.pnpi.nw.ru etc/host.nnn2.pnpi.nw.ru nnn4.pnpi.nw.ru etc/host.nnn4.pnpi.nw.ru
Файл $GLOBUS_LOCATION/etc/host.nnn1.pnpi.nw.ru может быть как пустым, так и содержать ряд параметров, например:
[globus@nnn1 gridway]$ more ../host.nnn2.pnpi.nw.ru HOSTNAME="nnn2.pnpi.nw.ru" ARCH="i686" OS_NAME="Linux" OS_VERSION="2.6.4" CPU_MODEL="Intel(R) Pentium(R) 4 CPU 2" CPU_MHZ=2539 CPU_FREE=098 CPU_SMP=1 NODECOUNT=4 SIZE_MEM_MB=503 FREE_MEM_MB=188 SIZE_DISK_MB=55570 FREE_DISK_MB=39193 QUEUE_FREENODECOUNT[0]=4 QUEUE_MAXTIME[0]=0 QUEUE_MAXCPUTIME[0]=20 QUEUE_MAXCOUNT[0]=4 QUEUE_MAXRUNNINGJOBS[0]=0 QUEUE_MAXJOBSINQUEUE[0]=1 QUEUE_STATUS[0]="enabled" QUEUE_DISPATCHTYPE[0]="batch"
Описание параметров хостов представлено в документации по GridWay
Необходимо также модифицировать файл /etc/sudoers, добавив в него следующие строки:
# GridWay entries Runas_Alias GW_USERS = ALL, !root globus ALL=(GW_USERS) NOPASSWD: /usr/local/globus-4.2.1/bin/gw_em_mad_ws * globus ALL=(GW_USERS) NOPASSWD: /usr/local/globus-4.2.1/bin/gw_tm_mad_ftp * globus ALL=(GW_USERS) NOPASSWD: /usr/local/globus-4.2.1/bin/gw_im_mad_mds4_thr * Defaults>GW_USERS env_keep="GW_LOCATION GLOBUS_LOCATION"
После внесения указанных изменений перезапускаем метапланировщик GridWay.
Настройка Ganglia
Для правильного отображения состояния узлов кластера необходимо установить пакет Ganglia:
yum install ganglia yum install ganglia-gmond
Далее редактируем файл конфигурации /etc/gmond.conf:
udp_send_channel {
mcast_join = 212.193.96.53
port = 8649
ttl = 1
}
udp_recv_channel {
port = 8649
}
В параметре mcast_join указываем IP машины на которой запускается gmond.
На каждой машине запускается демон gmond, который собирает системную информацию (скорость процессора, использование памяти и т.д.) и посылает ее на определенную машину. Машина, получающая информацию, может отображать ее, а также передавать некоторую обобщенную форму данных вверх по иерархии.
Запускаем сервис Запускаем сервис gmond:
service gmond start
Запустив telnet localhost 8649 наблюдаем результаты работы:
<GANGLIA_XML VERSION="3.0.7" SOURCE="gmond"> <CLUSTER NAME="unspecified" LOCALTIME="1247643365" OWNER="unspecified" LATLONG="unspecified" URL="unspecified"> <HOST NAME="nnn2.pnpi.nw.ru" IP="212.193.96.53" REPORTED="1247643358" TN="7" TMAX="20" DMAX="0" LOCATION="unspecified" GMOND_STARTED="1247426283"> <METRIC NAME="disk_total" VAL="236.860" TYPE="double" UNITS="GB" TN="745" TMAX="1200" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="cpu_speed" VAL="2500" TYPE="uint32" UNITS="MHz" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="part_max_used" VAL="25.6" TYPE="float" UNITS="%" TN="21" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="swap_total" VAL="5406712" TYPE="uint32" UNITS="KB" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="os_name" VAL="Linux" TYPE="string" UNITS="" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="cpu_user" VAL="0.1" TYPE="float" UNITS="%" TN="50" TMAX="90" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="cpu_system" VAL="0.0" TYPE="float" UNITS="%" TN="50" TMAX="90" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="cpu_aidle" VAL="100.0" TYPE="float" UNITS="%" TN="50" TMAX="3800" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="load_five" VAL="0.00" TYPE="float" UNITS=" " TN="20" TMAX="325" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="proc_run" VAL="0" TYPE="uint32" UNITS=" " TN="821" TMAX="950" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="mem_free" VAL="14278764" TYPE="uint32" UNITS="KB" TN="1" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="mem_buffers" VAL="199116" TYPE="uint32" UNITS="KB" TN="1" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="swap_free" VAL="5406712" TYPE="uint32" UNITS="KB" TN="1" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="bytes_in" VAL="1652.88" TYPE="float" UNITS="bytes/sec" TN="1" TMAX="300" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="pkts_out" VAL="17.17" TYPE="float" UNITS="packets/sec" TN="1" TMAX="300" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="cpu_num" VAL="8" TYPE="uint16" UNITS="CPUs" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="disk_free" VAL="221.268" TYPE="double" UNITS="GB" TN="21" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="mem_total" VAL="15469680" TYPE="uint32" UNITS="KB" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="cpu_wio" VAL="0.0" TYPE="float" UNITS="%" TN="50" TMAX="90" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="boottime" VAL="1247426234" TYPE="uint32" UNITS="s" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="machine_type" VAL="x86" TYPE="string" UNITS="" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="os_release" VAL="2.6.18-128.1.10.el5xen" TYPE="string" UNITS="" TN="745" TMAX="1200" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="cpu_nice" VAL="0.0" TYPE="float" UNITS="%" TN="50" TMAX="90" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="cpu_idle" VAL="99.9" TYPE="float" UNITS="%" TN="50" TMAX="90" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="load_one" VAL="0.00" TYPE="float" UNITS=" " TN="20" TMAX="70" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="load_fifteen" VAL="0.00" TYPE="float" UNITS=" " TN="20" TMAX="950" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="proc_total" VAL="274" TYPE="uint32" UNITS=" " TN="821" TMAX="950" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="mem_shared" VAL="0" TYPE="uint32" UNITS="KB" TN="1" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="mem_cached" VAL="564820" TYPE="uint32" UNITS="KB" TN="1" TMAX="180" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="gexec" VAL="OFF" TYPE="string" UNITS="" TN="144" TMAX="300" DMAX="0" SLOPE="zero" SOURCE="gmond"/> <METRIC NAME="bytes_out" VAL="1382.90" TYPE="float" UNITS="bytes/sec" TN="1" TMAX="300" DMAX="0" SLOPE="both" SOURCE="gmond"/> <METRIC NAME="pkts_in" VAL="18.80" TYPE="float" UNITS="packets/sec" TN="1" TMAX="300" DMAX="0" SLOPE="both" SOURCE="gmond"/> </HOST> </CLUSTER> </GANGLIA_XML>
Для отображения результатов работы gmond в gridway необходимо выполнить:
mds-gluerp-configure none ganglia $GLOBUS_LOCATION/etc/globus_wsrf_mds_index/ganglia-config.xml mds-gluerp-configure fork ganglia $GLOBUS_LOCATION/etc/globus_wsrf_gram_Fork/gluerp-config.xml mds-gluerp-configure pbs ganglia $GLOBUS_LOCATION/etc/gram-service-PBS/gluerp-config.xml
