GPFS 구축 방법
GPFS V2.2 구성에는 클러스터 타입에 따라 다음 네 가지가 있다.
– pssp
– hacmp
– rpd (RSCT Peer Domain)
– lc (Loose Cluster)
이 중 pssp와 hacmp는 각각 PSSP, HACMP 환경에서 선택의 여지가 없는 GPFS 구성 타입이다. 반면 rpd 와 lc 는 PSSP와 HACMP가 아닌 환경에서 선택할 수 있는 타입이다. rpd는 AIX only 이지만 lc 타입은 AIX 와 Linux 를 함께 구성할 수 있다. GPFS 개발팀도 향후 GPFS 버전은 lc 타입으로 통일될 것이며 또한 lc 타입만을 지원할 것이라고 말하고 있다. 지원되는 디스크 구성환경도 lc 타입이 rpd 타입보다 다양하고 제약점이 덜하다. 예로 lc 타입의 경우에는 모든 노드가 GPFS 디스크에 Direct Attached 될 필요가 없고 필요한 경우 NSD(Network Shared Disk) 서버노드를 통해 접근할 수가 있게 된다. 따라서 본 구성 예제는 가장 대표적이라 할 수 있는 lc 타입의 GPFS 클러스터를 구성하고 파일시스템을 만드는 것을 보여준다.
GPFS 클러스터 노드의 시간동기화가 절대적으로 요구된다.
/tmp/mmfs : 문제진단 데이타가 수집되는 디렉토리로 200 MB 이상이어야 한다.
다음 명령어 순으로 GPFS 구성이 이루어진다. 매뉴얼을 통한 숙지가 필요하다.
– preprpnode
– mkrpdomain
– startrpdomain
– mmcrcluster
– mmconfig
– mmstartup
– mmcrnsd
– mmcrfs
– mount
GPFS man 페이지
GPFS 클러스터 타입에 따라 다음 세 종류의 man 페이지가 설치된다. 파일셋은 mmfs.gpfsdocs 이다.
– sp /usr/lpp/mmfs/gpfsdocs/man/pssp/
– rpd and hacmp /usr/lpp/mmfs/gpfsdocs/man/aix/
– lc /usr/lpp/mmfs/gpfsdocs/man/lc/
/etc/hosts 파일
# 클라이언트 네트워크는 en0를 사용
10.10.10.1 node1
10.10.10.2 node2
10.10.10.3 node3
# GPFS 네트워크는 en1을 사용 : IPAT(IP Address Takeover) 불가능, Alias 주소 불가능
10.10.20.1 gpfs1
10.10.20.2 gpfs2
10.10.20.3 gpfs3
/etc/netsvc.conf 파일
hosts=local,bind
모든 노드에서 사용자 root의 /.profile 파일에 필요 환경변수를 세트한다.
# .profile for root
export PS1=`hostname -s`’:$PWD# ‘
export PATH=$PATH:/opt/csm/bin:/opt/csm/lib:/usr/sbin/rsct/bin:/opt/csm/csmbin:/usr/lpp/mmfs/bin:/opt/freeware/bin:/usr/local/bin:.
export MANPATH=$MANPATH:/opt/freeware/man:/usr/share/man:/usr/lpp/mmfs/gpfsdocs/man/lc:/opt/csm/man:/usr/local/man
export DSH_REMOTE_CMD=/usr/bin/rsh
export DSHPATH=$PATH
export WCOLL=/gpfs_nodes # nodes file to be used by dsh
export ENV=$HOME/.kshrc
export ESCDELAY=3500
export EDITOR=/usr/bin/vi
export CT_MANAGEMENT_SCOPE=2
export NMONAIX=5.2
export NMON=cmdant.
#export LIBPATH=$LIBPATH:/opt/freeware/lib
#export LANG=en_US
#export LC_MESSAGES=en_US
#export AIXTHREAD_COND_DEBUG=OFF
#export AIXTHREAD_MUTEX_DEBUG=OFF
#export AIXTHREAD_RWLOCK_DEBUG=OFF
#export AIXTHREAD_SCOPE=S
#export AIXTHREAD_MNRATIO=
#export MALLOCMULTIHEAP=1
#export SPINLOOPTIME=500
#java -Xms512M -Xmx512M
#export JAVA_HOME=/usr/java131
#export CATALINA_HOME=/usr/local/tomcat
#export TOMCAT_HOME=/usr/local/tomcat
#export CC=cc
모든 노드에서 사용자 root의 /.kshrc 파일
# .kshrc for root
set -o vi
/gpfs_nodes 파일
node1
node2
node3
/work/gpfs/gpfs.allnodes 파일 – GPFS 클러스터 노드 정의 파일, mmcrcluster 에서 사용됨
gpfs1:manager
gpfs2:manager
gpfs3:manager
/work/gpfs/rpd.allnodes 파일 – Quorum 노드 지정, SRC, RSCT 설치에 이용할 수 있음
gpfs1
gpfs2
gpfs3
/work/gpfs/gpfs_disks 파일 – NSD 생성을 위한 Disk descriptor 파일
hdisk2:gpfs1:gpfs2:dataAndMetadata:-1:fs1nsd1
hdisk3:gpfs2:gpfs3:dataAndMetadata:-1:fs1nsd2
hdisk4:gpfs3:gpfs1:dataAndMetadata:-1:fs1nsd3
사용자 root 의 /.rhosts 파일 – 클라이언트 네트워크는 en0 를 사용하고 GPFS 는 en1을 사용
node1
node2
node3
gpfs1
gpfs2
gpfs3
모든 노드에서 필수 소프트웨어의 확인
– AIX 5L V5.2 with the latest level of service available
# WCOLL=/work/gpfs/gpfs.allnodes dsh “oslevel”
– RSCT Version 2.3.3.1, or later
# WCOLL=/work/gpfs/gpfs.allnodes dsh “lslpp -l | grep rsct”
GPFS 패키지 파일셋
# lslpp -L | grep mmfs
mmfs.base.cmds 3.6.0.2 C F GPFS File Manager Commands
mmfs.base.rte 3.6.0.2 C F GPFS File Manager
mmfs.gpfs.rte 2.2.0.1 C F GPFS File Manager
mmfs.gpfsdocs.data 3.6.0.2 C F GPFS Server Manpages
mmfs.msg.en_US
성능관련 Parameters
TCP/IP 성능관련 아래 내용을 /etc/rc.net 에 넣고 사용합니다.
/usr/sbin/no -o rfc1323=0
/usr/sbin/no -o sb_max=1048576
/usr/sbin/no -o tcp_sendspace=65536
/usr/sbin/no -o tcp_recvspace=65536
/usr/sbin/no -o udp_sendspace=65536
/usr/sbin/no -o udp_recvspace=327680
/usr/sbin/no -o ipqmaxlen=512
Disk I/O
To view max_coalesce
# lsattr -E -l hdiskX -a max_coalesce
GPFS Cache (pagepool) 크기
The maximum GPFS pagepool size is 2 GB for GPFS 2.2, and 512 MB for older versions.
Also, you can only configure the pagepool to use up to one half the physical memory in the machine.
To change the pagepool to 512 MB:
# mmchconfig pagepool=512M
GPFS I/O 대역폭 조정하기
The maxMBpS option determines the maximum amount of I/O in Mb that can be submitted by GPFS per second.
If the default value is not adjusted accordingly it will affect GPFS performance.
Setting this number too high can have an adverse effect on performance of the system since
overrunning the capabilities of the I/O bus or network adapter tends to drastically degrade throughput.
This number is normally set after empirical study to determine your nodes I/O bandwidth limits.
The default value is 150 MB/s. To change maxMBpS to 300 MB/s:
# mmchconfig maxMBpS=300
1. Distributed command execution 환경을 준비한다.
Install the csm.dsh package (comes with CSM).
– http://www.aixservice.co.kr/zerobbs/view.php?id=general&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=369
2. 각 노드에 대해 RMC security 를 준비한다.
node1:/# dsh “preprpnode -TV gpfs1 gpfs2 gpfs3”
List the RSA keys used for authenticating nodes in the peer domain: Check the ctcas keys from the trusted host list file
node1:/# ctsthl -l
3. RSCT Peer Domain 을 만들고 활성화 시킨다.
node1:/# mkrpdomain -TV gpfs_dom gpfs1
node1:/# startrpdomain -TV gpfs_dom
node1:/# lsrpdomain
node1:/# addrpnode -c -TV gpfs2 gpfs3
node1:/# startrpnode -TV gpfs2 gpfs3
Alternately, you can create the RPD and add all the nodes to it in the same step:
node1:/# mkrpdomain -c -TV gpfs_dom gpfs1 gpfs2 gpfs3
node1:/# startrpdomain -TV gpfs_dom
4. RPD 구성을 확인한다.
List the peer domain
node1:/# lsrpdomain
List the nodes in the current active peer domain
node1:/# lsrpnode
List the network interfaces in the RPD
node1:/# export CT_MANAGEMENT_SCOPE=2; /usr/sbin/rsct/bin/lsrsrc IBM.NetworkInterface
Listing the topology and group services from SRC
node1:/# lssrc -a |grep rsct
node1:/# lssrc -ls cthats
node1:/# lssrc -ls cthags
5. Working with Communication Groups
List the RSCT Communication Groups (CGs)
node1:/# lscomg
List the adapter membership (which communication interface belongs to which CG)
node1:/# lscomg -i CG1
node1:/# lscomg -i CG2
(참고만 하시고 실행하지 마시오) Change the sensitivity parameters for one of the communication groups CG1
node1:/# chcomg -s 8 -p 1 -t 1 -m “-l 5” CG1
node1:/# lscomg
node1:/# lssrc -ls cthats
6. GPFS 설치 및 구성 (AIX 플랫폼)
RPD가 on line 인지, GPFS 통신 인터페이스가 가용한지 확인한다.
node1:/# lsrpdomain
node1:/# lsrpnode
node1:/# lsrsrc -t IBM.NetworkInterface
GPFS 클러스터를 정의한다.
node1:/# mmcrcluster -t lc -n /work/gpfs/gpfs.allnodes -p gpfs1 -s gpfs2 -r /usr/bin/rsh -R /usr/bin/rcp
node1:/# mmlscluster
GPFS nodeset 를 만든다. (클러스터내의 모든 노드를 포함하는 default nodeset)
node1:/# mmconfig -a -A -M 4000 -p 512M
node1:/# mmlscluster
클러스터 nodeset 구성을 확인한다.
node1:/# mmlsconfig
GPFS(mmfs) 데몬을 클러스터 모든 노드에서 시작하고 확인한다.
node1:/# mmstartup -a
node1:/# dsh lssrc -a | grep mmfs
mmcrnsd 명령어로 NSD를 생성한다.
node1:/# mmcrnsd -F /work/gpfs/gpfs_disks
node1:/# cat /work/gpfs/gpfs_disks
NSD allocation map을 살펴본다.
node1:/# mmlsnsd
미리 정의한 NSD에 파일시스템 /fs1 을 생성한다.
node1:/# mmcrfs /fs1 /dev/fs1 -F /work/gpfs/gpfs_disks -A yes -B 256k -n 16 -m 1 -M 2 -r 1 -R 2
생성된 파일시스템을 확인한다.
node1:/# mmlsfs fs1
Nodeset의 모든 노드에서 마운트하고 확인한다.
node1:/# dsh mount /fs1
node1:/# dsh mount | grep mmfs
3 Responses
2lawfully
… [Trackback]
[…] Read More on that Topic: nblog.syszone.co.kr/archives/3201 […]
… [Trackback]
[…] Info on that Topic: nblog.syszone.co.kr/archives/3201 […]