기술부 1차 세미나 - GFS * Clunix 클루닉스 2006년 기술부/부장 서진우 Copyright © by Clunix. Inc All rights reserved.
GFS,GNBD,CLVMD를 이용한 GFS 환경 구축 GFS,GNBD,DRBD를 이용한 고 가용성 환경 구축 목차 GFS란.. GFS설치 환경 준비 GNBD를 이용한 GFS 환경 구축 GFS,GNBD,CLVMD를 이용한 GFS 환경 구축 GFS,GNBD,DRBD를 이용한 고 가용성 환경 구축 GFS를 마치며.. 시스템 엔지니어링 분야의 시작과 끝이 있다면 그것은 운영체제 관련 분야입니다. 운영체제의 설치 자체 기술은 엔지니어 분야의 시작 시 다루는 기술이지만 실제 운영체제의 설치 의미는 설치 자체에 있기 보다는 운영체제를 설치 하는 시스템의 서비스 성격과 운영 정책을 사전에 고려 하여 운영체제 설치 계획을 세워야 합니다. 운영체제의 설치는 그 설치 방식에 따라 성능, 보안, 안정성, 시스템 가용성 등의 시스템 전체 성능이 좌우 됩니다. 기초 설치 문서나 서적에 의해 설치를 한다면 실제 서비스 자체 환경 구현은 가능 하겠지만, 최적의 성능이나 시스템 보안 레벨 시스템 회복 능력, 시스템 관리상의 효율성 등에서 실무서비스 환경을 고려한 운영체제와는 큰 차이를 보일 것입니다. 여기서는 실무 환경에 맞는 운영체제 설치를 하는데 고려 해야 할 사항과 실제 운영체제 설치 이후 설치 방식에 따라 이후 관리에 어떤 차이가 있는지, 그리고 안정적인 시스템 환경 유지를 위해 설치 이후 어떤 작업등이 필요한지에 대해 설명하도록 할 것입니다.
GFS란. GFS란 Sistina 에서 시작된 클러스터 파일 시스템 프로젝트 Redhat 에 의해 연구 개발권 인수 SAN(DAS)스토리지 환경 기반의 클러스터 파일 시스템 단일 볼륨에 대한 분산 노드의 R/W 권한 부여 NFS와 외향적으로 유사함 (구조, 성능 차이 큼) 주요 사이트 http://gfs.wikidev.net/Installation http://gfs.wikidev.net/GNBD_installation#Starting_the_services_.28DLM.2C_CCSD.2C_FENCE.29 http://www.redhat.com/docs/manuals/csgfs/ http://code.ximeta.com/cgi-bin/trac.cgi/wiki/HowToGFS https://open.datacore.ch/DCwiki.open/Wiki.jsp?page=GFS http://sources.redhat.com/cluster
GFS 설치 환경 준비 GFS 설치 환경 준비 GFS는 커널에 속한 기능 (NFS는 어플리케이션 기반) Redhat사에 소유권 이전 후 Redhat패키지 의존성 강함 주요 패키지 ccs-1.0.0-0.i686.rpm gulm-1.0.0-0.i686.rpm cman-1.0.0-0.i686.rpm dlm-1.0.0-0.i686.rpm fence-1.32.1-0.i686.rpm gnbd-1.0.0-0.i686.rpm gfs-6.1.0-0.i386.rpm lvm2-2.01.08-1.0.RHEL4.i386.rpm lvm2-cluster-2.01.09-5.0.RHEL4.i386.rpm
GFS 설치 환경 준비 GFS 기본 구성도 SAN Switch Storage(FC/SCSI) FC/SCSI GFS
GFS 설치 환경 준비 설치 시 주의 사항 및 주요 진행 단계 GFS노드간 Time Sync (시간 단위의 오차 시 오류 발생) Disk interface drive 설정 및 네트워크 설정(hosts) Ccs 설정 (노드간 클러스터 요소 정의 및 통신,Fencing 방법 정의) GFS 관련 modules 탑재 Storage Disk Partitioning GFS File System 생성 GFS Disk mount
GFS 설치 환경 준비 CCS 설정 예제 (/etc/cluster/cluster.conf) <?xml version="1.0"?> <cluster name="cluster" config_version="1"> <cman> </cman> <clusternodes> <clusternode name="node01" votes="1"> <fence> <method name="single"> <device name="human" ipaddr="node01"/> </method> </fence> </clusternode> <clusternode name="node02" votes="1"> <fence> <method name="single"> <device name="human" ipaddr="node02"/> </method> </fence> </clusternode> </clusternodes> <fence_devices> <device name="human" agent="fence_manual"/> </fence_devices> </cluster>
GFS 설치 환경 준비 GFS 구동 절차 Mount 모듈 탑재 데몬 시작 파티셔닝 # fdisk GFS 파일 시스템 생성 # depmod -a # modprobe dm-mod # modprobe gfs # modprobe lock_dlm 데몬 시작 # ccsd # cman_tool join # fence_tool join 파티셔닝 # fdisk GFS 파일 시스템 생성 # gfs_mkfs -p lock_dlm -t cluster:enfs -j 2 /dev/sda1 Mount # mkdir /gfs # mount –t gfs /dev/sda1 /gfs
GNBD를 이용한 GFS환경 구축 GNBD란.. Network 상의 Remote host의 block device를 nbd(network block device)를 통해 연결 Network application에 의한 데이터 전송이 아닌 block device간의 데이터 전송 효과 FC/SCSI 인터페이스가 없이 네트워크 상에 Direct Attached Storage 구성 가능 비용적인 절감 효과와 확장성에서 우수 네트워크 상태에 의한 안정성 문제 존재 SAN 과 GNBD를 이용하여 대용량 클러스터 파일 시스템 구축 가능
GNBD를 이용한 GFS 설치 환경 준비 GNBD+GFS 기본 구성도 L2 Switch Gigabit GNBD Client GFS GNBD Client GFS GNBD Client L2 Switch Gigabit GNBD File Server GFS
GNBD를 이용한 GFS 환경 구축 기본 환경 구축은 GFS와 동일 GNBD modules 탑재 GNBD Server : gnbd_serv, gnbd_export 실행 # gnbd_serv –v # gnbd_export -v -e gnbd0 -d /dev/sda1 GNBD Client : gnbd_import 실행 # gnbd_import -v -i GNBD_Server GFS 파일시스템 생성(GNBD_Server) # gfs_mkfs -p lock_dlm -t cluster:gnbdfs -j 3 /dev/sda1 GFS Mount (GNBD_Client) # mount -t gfs /dev/gnbd/gnbd0 /gfs
GFS,GNBD,CLVMD를 이용한 GFS 환경구축 Lvm2,lvm2_cluster 패키지 준비 GFS노드간 LVM 볼륨 환경을 실시간 동기화함 GNBD서버간의 디스크를 LVM으로 구성 후 GNBD클라이언트에서 CLVMD를 통해 볼륨 관리 네트워크상에 존재하는 Disk를 Span mode로 확장 가능, 대용량 스토리지 구성 가능
GNBD를 이용한 GFS 설치 환경 준비 GNBD+GFS+CLVMD 기본 구성도 L2 Switch Gigabit LVM2 GNBD Client CLVMD GFS GNBD Client CLVMD GFS GNBD Client L2 Switch Gigabit LVM2 GNBD Server GFS CLVMD GNBD Server GFS CLVMD
GNBD를 이용한 GFS 환경 구축 - 모든 노드에서 clvmd 데몬 시작 # /etc/rc.d/init.d/clvmd start - lvm2구성 (node01) # partprobe # pvcreate /dev/gnbd/gnbd1 /dev/gnbd/gnbd2 # vgcreate vg0 /dev/gnbd/gnbd1 /dev/gnbd/gnbd2 # lvcreate -L 100G -n lvm0 vg0 - LVM2 구성 확인 node01,02,03,04,05 에서 아래 방식으로 node01 에서 적용한 볼륨 구성이 동기화가 되었는지 확인한다. # pvdisplay -> physical volume 구성 확인 # vgdisplay -> volume group 구성 확인 # lvdisplay -> logical volume 구성 확인
GNBD를 이용한 GFS 환경 구축 - GFS 파일 시스템 구성 node01 에서 GFS 로 파일 시스템을 포맷한다. # gfs_mkfs -p lock_dlm -t cluster:enfs -j 5 /dev/vg0/lvm0 - GFS mount 모든 노드에서 아래와 같이 gfs 파일 시스템에 mount 를 한다. # mount -t gfs /dev/vg0/lvm0 /gfs
GFS,GNBD,DRBD를 이용한 GFS 환경구축 Network를 통한 remote block device간의 mirroring기능제공 Primary/Secondary 형식으로 read/write 권한 제어 GNBD,GFS 구성에 포함하여 클러스터 파일 시스템 HA 구현 가능 DRBD-0.8 Version 부터 GFS를 겨냥한 Primary/Primary기능 제공 Active/Active File 클러스터 시스템 구축 가능
GFS,GNBD,DRBD를 이용한 GFS 환경구축 GNBD+GFS+DRBD 기본 구성도 GFS GNBD Client GFS GNBD Client GFS GNBD Client L2 Switch Gigabit DRBD GNBD Server GFS GNBD Server GFS
GFS를 마치며… Linux 기반의 SAN Cluster File System으로의 가치 높음 안정성 보장에 대한 검증 필요 DRBD-0.8과 연동하면 HA 기술의 혁신이 될 가능 큼 NFS 대체 파일 서비스에 비중을 둠