>   >  痴山紘史の日本CG見聞録:第15回:クラウド環境構築[社内レンダーファームのクラウド化]
第15回:クラウド環境構築[社内レンダーファームのクラウド化]

第15回:クラウド環境構築[社内レンダーファームのクラウド化]

CCBを使用した環境構築

続いて、HTCondorの設定をします。設定のキモは以下の通りです

・全てのサーバでPRIVATE_NETWORK_NAMEの設定をする
・計算サーバとサブミットマシンでFILESYSTEM_DOMAIN、UID_DOMAINの設定をする
・計算サーバとサブミットマシンでUSE_SHARED_PORTの設定をする
・計算サーバ側でCCB_ADDRESSの設定をする
・CONDOR_HOSTは192.168.0.36を指定する(きちんと名前解決できるのならホスト名でもいい)

第9回:HTCondorで処理を行うでやったように、ジョブをどの環境で実行するかの指定は、sdfファイルのrequirementsに条件を記述することで実現できます。今回は各計算ノードごとにストレージが異なるため、それで区別できるようにFILESYSTEM_DOMAIN、UID_DOMAINを設定し、レンダーファーム上の計算サーバはfarm.example.netという名前で管理します。同様に、作業環境用のマシンはintra.example.netという名前にします。

これで、レンダーファーム上の計算サーバでジョブを実行したい場合はsdfに

requirements = TARGET.FileSystemDomain == "farm.example.net" && TARGET.UidDomain == "farm.example.net"

と記述すればよくなります。

また、サブミットマシンとは異なるUID_DOMAINの計算機にジョブを投げた場合、標準では計算サーバでnobodyアカウントとしてジョブが実行されるため、アクセス権に注意する必要があります。また、当然ですがファイルを格納するストレージも別なので、サブミットマシンにあるディレクトリやファイルが計算サーバにあるとは限りません。運用の際はこの点にも注意する必要があります。


・セントラルマネージャの設定

以上を踏まえて設定を行なっていきます。まずはセントラルマネージャからです。

[chiyama@htcondor ~]$ cat /etc/condor/condor_config
######################################################################
##
##  condor_config
##
##  This is the global configuration file for condor. This is where

(中略)

##  Install the minicondor package to run HTCondor on a single node

ALLOW_READ = *
ALLOW_WRITE = *
ALLOW_NEGOTIATOR = *
ALLOW_NEGOTIATOR_SCHEDD = *

ALLOW_ADMINISTRATOR = $(IP_ADDRESS)

WANT_VACANT = FALSE
WANT_SUSPEND = TRUE

CONDOR_HOST = 192.168.0.36
BIND_ALL_INTERFACES = True

PRIVATE_NETWORK_NAME = intra.example.net

DAEMON_LIST = MASTER, NEGOTIATOR, COLLECTOR

COLLECTOR_MAX_FILE_DESCRIPTORS = 20000
[chiyama@htcondor ~]$

作業環境用のネットワークはintra.example.netという名前にしておきます。また、セントラルマネージャしか動かさないのでMASTER、NEGOTIATOR、COLLECTORの3つだけを動かします。


・計算サーバでの設定

続いて計算サーバです。

[chiyama@worker01 ~]$ cat /etc/condor/condor_config
######################################################################
##
##  condor_config
##
##  This is the global configuration file for condor. This is where

(中略)

##  Install the minicondor package to run HTCondor on a single node

CONDOR_HOST=192.168.0.36

FILESYSTEM_DOMAIN = farm.example.net
UID_DOMAIN = farm.example.net

CONDOR_ADMIN =
SMTP_SERVER =
ALLOW_READ = *
ALLOW_WRITE = *
ALLOW_NEGOTIATOR = *
ALLOW_ADMINISTRATOR = $(IP_ADDRESS)
use POLICY : ALWAYS_RUN_JOBS
WANT_VACATE = FALSE
WANT_SUSPEND = TRUE

PRIVATE_NETWORK_NAME = farm.example.net

DAEMON_LIST = MASTER, STARTD
CCB_ADDRESS = $(COLLECTOR_HOST)

UPDATE_COLLECTOR_WITH_TCP = TRUE
ALLOW_DAEMON = *

[chiyama@worker01 ~]$

ルータをまたいで、192.168.0.36のセントラルマネージャに接続するようにしています。計算サーバはセントラルマネージャやサブミットマシンとは別のネットワークにあるので、FILESYSTEM_DOMAIN、UID_DOMAIN、PRIVATE_NETWORK_NAMEは、全てfarm.example.netとします。また、CCB_ADDRESSの設定も行ない、CCB経由でサブミットマシンと通信するようにします。


・サブミットマシンでの設定

最後にサブミットマシンです。

[chiyama@docker ~]$ cat /etc/condor/condor_config
######################################################################
##
##  condor_config
##
##  This is the global configuration file for condor. This is where

(中略)

##  Install the minicondor package to run HTCondor on a single node
CONDOR_HOST = 192.168.0.36
COLLECTOR_HOST = $(CONDOR_HOST)

FILESYSTEM_DOMAIN = intra.example.net
UID_DOMAIN = intra.example.net

CONDOR_ADMIN =
SMTP_SERVER =
ALLOW_READ = *
ALLOW_WRITE = *
ALLOW_ADMINISTRATOR = $(IP_ADDRESS)
use POLICY : ALWAYS_RUN_JOBS
WANT_VACATE = FALSE
WANT_SUSPEND = TRUE

PRIVATE_NETWORK_NAME = intra.example.net

DAEMON_LIST = MASTER, SCHEDD
SCHEDD_MAX_FILE_DESCRIPTORS = 20000

[chiyama@docker ~]$

サブミットマシンはセントラルマネージャと同じネットワークにあるので、FILESYSTEM_DOMAIN、UID_DOMAIN、PRIVATE_NETWORK_NAMEは、全てintra.example.netとします。また、CCBは必要ないので設定しません。

以上で HTCondorの設定ができました。

次ページ:
ジョブの投入

その他の連載