Condorを使ってみた(2)
前回からかなり時間があいているので、リンクを貼っておこう。。ww
(Condorを使ってみた(1): http://d.hatena.ne.jp/aaabbb_200904/20100322/1269272521 )
ちなみに、同時実行ジョブ数の変更方法を調べるのに半年かかってしまったことによる。 orz
同時実行ジョブ数の変更
Condorを使用する際には、ジョブの同時実行数はそのノードに存在するCPUの数となるため、sleepや、ネットワーク待ちを含むようなジョブがあると、CPU使用率が落ちてしまうという動作になる。
この動作を回避するには、condorの設定ファイルの
/var/lib/condor/condor_config.local で、NUM_CPUSの設定を行えばよい。
NUM_CPUS=10 (10は任意の数値)
再起動を行った後、condor_statusの出力が、次のように10個のスロットを含んでいれば正しく設定されている。
slot10@fedora-virt LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:47 slot1@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:21:01 slot2@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:36 slot3@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.060 36 0+00:25:06 slot4@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:49 slot5@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:50 slot6@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:51 slot7@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:52 slot8@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:45 slot9@fedora-virt8 LINUX X86_64 Unclaimed Idle 0.000 36 1+00:25:46
共有ファイルシステムの使用
前回はバッチノードでジョブ実行を行う際、condorの機能を使ってファイルを転送する設定について書いたが、共有ファイルシステムを使った設定も試してみた。
※ バイナリファイルとしては/bin/sleep を用いたため、実際には共有ファイルシステムの設定は行っていない。。 orz
通常は、submitされたノード以外のノードでジョブを実行する場合には、ジョブファイルに次を記述する必要がある。
should_transfer_files = YES when_to_transfer_output = ON_EXIT
この場合、ジョブのバイナリファイルはcondorの機能でバッチノードに転送される。共有ファイルシステムがある場合は転送を行う必要が無いため、この指定は行わず、代わりに次の指定を行う。
Requirements = TARGET.FileSystemDomain == "jp.example.org" && TARGET.UidDomain == "jp.example.org"
FileSystemDomain, UidDomainはそれぞれ同じ共有ファイルシステムをマウントしていることと、同じ/etc/passwdを持っているという項目を表しているらしい。必ず両方を指定しないと、上手くジョブが実行されないので注意。(1. FileSystemDomainが無いと行き先が無いため、ジョブがIdle状態から変化しない 2. UidDomainがないと、ジョブがnobody権限で実行されるため、ジョブの実行が失敗した。。w )
各ノードのcondorが同じファイルシステム、ユーザー情報を持つことを明示するためには、 /var/lib/condor/condor_config.local に、次を指定する必要がある。(ちなみにどのパラメータを設定するかを確認するには、/etc/condor/condor_config を確認するのが早そうだ。。)
FILESYSTEM_DOMAIN = jp.example.org UID_DOMAIN = jp.example.org
参考までに、マネージャーノード、バッチノードの/var/lib/condor/condor_config.local を添付しておく。
(マネージャーノード: fedora-virt7.jp.example.org) CONDOR_DEVELOPERS = NONE CONDOR_HOST = $(FULL_HOSTNAME) COLLECTOR_NAME = my_collector START = TRUE SUSPEND = FALSE PREEMPT = FALSE KILL = FALSE DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD, STARTD NEGOTIATOR_INTERVAL = 20 TRUST_UID_DOMAIN = TRUE ALLOW_WRITE = * ALLOW_READ = * FILESYSTEM_DOMAIN = jp.example.org UID_DOMAIN = jp.example.org NUM_CPUS=10
(バッチノード: fedora-virt8.jp.example.org) CONDOR_DEVELOPERS = NONE #CONDOR_HOST = $(FULL_HOSTNAME) CONDOR_HOST = fedora-virt7.jp.example.org #COLLECTOR_NAME = Personal Condor START = TRUE SUSPEND = FALSE PREEMPT = FALSE KILL = FALSE #DAEMON_LIST = COLLECTOR, MASTER, NEGOTIATOR, SCHEDD, STARTD DAEMON_LIST = MASTER, SCHEDD, STARTD NEGOTIATOR_INTERVAL = 20 TRUST_UID_DOMAIN = TRUE ALLOW_WRITE = * ALLOW_READ = * FILESYSTEM_DOMAIN = jp.example.org UID_DOMAIN = jp.example.org NUM_CPUS=10
LPIC304取得記
先日LPIC304を取得したので、役に立ったリンクなどを貼ってみる。(例によって 2010/10/3 現在で303/304の問題集が存在しないため。)
内容について、あまり詳しくは書けないのだが、結構細かくコマンドや設定ファイルから聞かれるので、試験範囲のソフトウェアについては、一度は構築しておいた方がよさそう。xm,virsh,keepalived.conf,cibadmin,haproxy.conf,drbd.confあたりは必須。
特にXen, KVMで半分程度を占めるので、xm, virshコマンドについては細かく覚えていった方が良さそうだ。。(残念ながらvirt-manager等のGUIは出題されなかった。筆者はほとんどこれで管理しているのだが。。orz )
試験対策としては大体次のマニュアルぐらいの内容を試していると楽と思われる。
xm: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Virtualization/chap-Virtualization-The_xm_command_quick_reference.html
virsh: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Virtualization/chap-Virtualization-Managing_guests_with_virsh.html
他のクラスタ関連の設定については各ミドルウェアについて一度ぐらいは構築しておいた方がよさそう。手前味噌だが、こちらのリンク集はそれなりに役に立ちそうだ。orz ( http://d.hatena.ne.jp/aaabbb_200904/20091214/1260800366 )
仮想化とクラスタということで範囲が膨大であり、その割に問題数が60問程度と試験としては微妙な印象だが、どれも役に立つ技術ではあるので、Linuxの構築・運用に関わる方は挑戦してみてはいかがだろうか。。