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=1:1
#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

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

1 Response

  1. 2022년 6월 21일

    2lawfully

페이스북/트위트/구글 계정으로 댓글 가능합니다.