[Cloud] 05. HTCondor 클러스터 구축 (CentOS 7 기준)
카테고리: CLOUD
태그: Cloud
01. HTCondor 구축
■ 노드 구성
■ Master 노드 설치 및 설정
# 1) HTCondor 설치 및 방하벽 오픈
$ yum -y install epel-release ; \
yum -y install condor; \
firewall-cmd --zone=public --permanent --add-port=9000-9999/tcp ; \
firewall-cmd --zone=public --permanent --add-port=9000-9999/udp ; \
firewall-cmd --zone=public --permanent --list-ports ; \
firewall-cmd --reload
# 2) condor_config.local 파일 생성
$ vi /etc/condor/config.d/condor_config.local
# HTCondor Master 노드의 FQDN을 설정
UID_DOMAIN = master.cloud.org
# 쓰기가 가능한 머신들을 리스트함, HTCondor 클러스터 내의 모든 머신들을 쓰기가 가능하도록 설정
ALLOW_WRITE = *.cloud.org
# HTCondor의 condor_collector가 동작하고 있는 머신을 지정
CONDOR_HOST = master.cloud.org
# 입력 포트 중 가장 높은/낮은 포트 번호를 지정 - 포트 범위를 지정
IN_HIGHPORT = 9999
IN_LOWPORT = 9000
# 네트워크 인터페이스 지정
NETWORK_INTERFACE = ens32
# HTCondor의 데몬들을 나열함
# MASTER : condor_master 데몬을 의미, HTCondor의 전체적으로 모니터링 한다.
# SCHEDD : condor_schedd 데몬을 의미, HTCondor 클러스터에 제출된 작업의 스케줄링을 담당한다.
# COLLECTOR : condor_collector 데몬을 의미, HTCondor 클러스터내의 머신들에 대한 정보를 수집하는 역할을 한다.
# NEGOTIATOR : condor_negotiator 데몬을 의미, HTCondor에 제출된 작업과 이 작업을 수행할 수 있는 머신 간의 매칭을 해주는 역할을 한다.
DAEMON_LIST = MASTER, SCHEDD, COLLECTOR, NEGOTIATOR
# 3) 서비스 재실행
$ systemctl start condor
$ systemctl status condor
● condor.service - Condor Distributed High-Throughput-Computing
Loaded: loaded (/usr/lib/systemd/system/condor.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2023-12-12 16:33:09 KST; 11s ago
Process: 1708 ExecStop=/usr/sbin/condor_off -master (code=exited, status=0/SUCCESS)
Main PID: 1710 (condor_master)
CGroup: /system.slice/condor.service
├─1710 /usr/sbin/condor_master -f
├─1718 condor_procd -A /var/run/condor/procd_pipe -L /var/log/condor/ProcLog -R 1000000 -S 60 -C ...
├─1719 condor_collector -f
├─1720 condor_schedd -f
└─1721 condor_negotiator -f
■ Worker 노드 설치 및 설정
# 1) HTCondor 설치 및 방화벽 설정
$ yum -y install epel-release ; \
yum -y install condor ; \
firewall-cmd --zone=public --permanent --add-port=9000-9999/tcp ; \
firewall-cmd --zone=public --permanent --add-port=9000-9999/udp ; \
firewall-cmd --zone=public --permanent --list-ports ; \
firewall-cmd --reload
# 2) condor_config.local 파일 생성 및 서비스 재실행
$ vi /etc/condor/config.d/condor_config.local
UID_DOMAIN = slave1.cloud.org # slave2.cloud.org 서버에서는 "slave2.cloud.org로 변경
ALLOW_WRITE = *.cloud.org
CONDOR_HOST = master.cloud.org
IN_HIGHPORT = 9999
IN_LOWPORT = 9000
NETWORK_INTERFACE = ens32
# STARTD : condor_startd 데몬을 의미, HTCondor 클러스터에 제출된 작업을 실행하는 역할을 한다.
DAEMON_LIST = MASTER, STARTD
$ systemctl start condor
$ systemctl status condor
● condor.service - Condor Distributed High-Throughput-Computing
Loaded: loaded (/usr/lib/systemd/system/condor.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2023-12-12 16:33:48 KST; 1min 57s ago
Main PID: 1678 (condor_master)
CGroup: /system.slice/condor.service
├─1678 /usr/sbin/condor_master -f
├─1686 condor_procd -A /var/run/condor/procd_pipe -L /var/log/condor/ProcLog -R 1000000 -S 60 -C ...
└─1687 condor_startd -f
■ Master 노드 - 클러스터 구성 확인
# condor_status - 클러스터 구성 확인 명령 (slave 서버에서도 사용 가능)
# 워코 노드 "slave1", "slave2" 는 코어가 1개인 가상머신이기 때문에 HTCondor 클러스터는 총 2개의 슬롯(Slot)을 가진 클러스터가 된다.
[root@master ~]# condor_status
Name OpSys Arch State Activity LoadAv Mem ActvtyTime
slave1.cloud.org LINUX X86_64 Unclaimed Idle 0.020 1819 0+00:00:04
slave2.cloud.org LINUX X86_64 Unclaimed Idle 0.000 1819 0+00:00:04
Machines Owner Claimed Unclaimed Matched Preempting
X86_64/LINUX 2 0 0 2 0 0
Total 2 0 0 2 0 0
[root@slave1 ~]# condor_status
Name OpSys Arch State Activity LoadAv Mem ActvtyTime
slave1.cloud.org LINUX X86_64 Unclaimed Idle 0.020 1819 0+00:00:04
slave2.cloud.org LINUX X86_64 Unclaimed Idle 0.000 1819 0+00:00:04
Machines Owner Claimed Unclaimed Matched Preempting
X86_64/LINUX 2 0 0 2 0 0
Total 2 0 0 2 0 0
댓글 남기기