리눅스에서 Veritas Cluster Server(VCS) 설치 및 사용 – part 2
이전글 리눅스에서 Veritas Cluster Server(VCS) 설치 및 사용 – part 1에서는 가장 간단한 2node VCS를 구성해 보았다.
이제, 공유스토리지를 추가하고 서비스(apache web server)를 추가할 것이다. 공유스토리지는 리눅스 LVM을 사용할 것이다.
공유스토리지를 추가한 구성은 아래 그림과 같다.
구성환경
Node1 : CentOS6.3 minimal 64bit, 외부 IP(eth0): 192.168.100.21, 내부 IP(eth1): 172.16.1.21, 호스트네임: fox1
Node2 : CentOS6.3 minimal 64bit, 외부 IP(eth0): 192.168.100.22, 내부 IP(eth1): 172.16.1.22, 호스트네임: fox2
Virtual IP : 192.168.100.20
VCS : 6.0.2
OS disk: sdd
Shared Storage: sda, sdb, sdc 각각 1GB 크기. 이중 sda 를 LV로 만들어 사용.
용어:
■ Resource – 어플리케이션을 구성하는 하드웨어 또는 소프트웨어 엔티티. Disk Group과 화일시스템, IP, NIC과 어플리케이션은 리소스의 예라 할 수 있다.
■ Resource dependency – 어플리케이션이나 OS의 요구에 의해서 리소스들이 상호 의존하는것을 나타냄. 보통 계층구조로 나타낼 수 있다.
■ Resource type – 각 리소스를 관리하기위해 타입을 정의한다. 가령, 네트워크카드를 관리하기위해 NIC resource 타입을 설정할 수 있고, IP주소를 사용하기 위해 IP resource 타입을 설정 할 수 있다. VCS는 미리 정의된 resource type을 가진다.
■ Service group – VCS에 의해 관리되는 어플리케이션을 실행하는데 필요한 모든 하드웨어 및 소프트웨어 자원을 포함하는 가상 컨테이너(Virtual Container). 세가지 타입(failover, parallel, hybrid)의 서비스 그룹이 있다.
failover service group – 클러스터에서 한 순간에 단 하나의 시스템에서만 실행되는 서비스 그룹.
parallel service group – 클러스터에서 동시에 하나 이상의 시스템에서 실행되는 서비스 그룹.
hybrid service group – replicated data 클러스터와 failover,parallel 서비스그룹의 조합.
■ ClusterService group – VCS 구성요소에 의해 요구되는 리소스를 가지는 특별한 용도의 서비스 그룹이다.
1. 사전작업
1.1. Apache 웹서버 설치(간단하게 패키지로 설치한다. 상황에따라, 컴파일 설치해도 되며, 여기서는 시험용으로 다른 모듈들은 설치하지 않았다.)
양쪽 노드Node1, Node2 모두 설치하도록 한다.
# yum install httpd
1.2. 리눅스 공유디스크 설정.
Node1에서 아래처럼 LVM을 만든다. fox_vg에 fox_lv를 만들어 ext4로 포맷하고 export한다.
[root@fox1 ~]# pvcreate /dev/sda [root@fox1 ~]# vgcreate fox_vg /dev/sda Volume group "fox_vg" successfully created [root@fox1 ~]# lvcreate -n fox_lv -l 100%FREE fox_vg Logical volume "fox_lv" created. [root@fox1 ~]# mkfs -t ext4 /dev/mapper/fox_vg-fox_lv mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65280 inodes, 261120 blocks 13056 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8160 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@fox1 ~]# vgchange -a n fox_vg 0 logical volume(s) in volume group "fox_vg" now active [root@fox1 ~]# vgexport fox_vg Volume group "fox_vg" successfully exported
Node2에서는, Node1에서 만든 fox_vg를 import한다.
[root@fox2 ~]# vgimport fox_vg Volume group "fox_vg" successfully imported [root@fox2 ~]# vgchange -a y fox_vg 1 logical volume(s) in volume group "fox_vg" now active
2. 설정.
2.1. 설정 전 클러스터 설정 화일을 쓰기 가능하게 만든다.
[root@fox1 ~]# haconf -makerw
2.2. 서비스 그룹 만들고, 속성을 변경한다
서비스그룹의 이름은 apache_sg로 만들고, SystemList, AutoStartList 속성을 설정한다.
[root@fox1 ~]# hagrp -add apache_sg VCS NOTICE V-16-1-10136 Group added; populating SystemList and setting the Parallel attribute recommended before adding resources [root@fox1 ~]# hagrp -modify apache_sg SystemList fox1 0 fox2 1 [root@fox1 ~]# hagrp -modify apache_sg AutoStartList fox1
2.3. 서비스 그룹 apache_sg 를 위한 리소스를 생성한다.
apache_sg 서비스 그룹에 디스크 그룹 리소를 추가한다. 디스크 그룹 리소스는 apache_vg type은 LVMVolumeGroup이다.
[root@fox1 ~]# hares -add apache_vg LVMVolumeGroup apache_sg VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors [root@fox1 ~]# hares -modify apache_vg Critical 0 [root@fox1 ~]# hares -modify apache_vg VolumeGroup fox_vg [root@fox1 ~]# hares -modify apache_vg Enabled 1 [root@fox1 ~]# hares -online apache_vg -sys fox1 [root@fox1 ~]# hares -state apache_vg #Resource Attribute System Value apache_vg State fox1 ONLINE apache_vg State fox2 OFFLINE
Volume 리소스를 서비스 그룹에 추가 한다.
[root@fox1 ~]# hares -add apache_lv LVMLogicalVolume apache_sg VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors [root@fox1 ~]# hares -modify apache_lv Critical 0 [root@fox1 ~]# hares -modify apache_lv LogicalVolume fox_lv [root@fox1 ~]# hares -modify apache_lv VolumeGroup fox_vg [root@fox1 ~]# hares -modify apache_lv Enabled 1 [root@fox1 ~]# hares -online apache_lv -sys fox1 [root@fox1 ~]# hares -state apache_lv #Resource Attribute System Value apache_lv State fox1 ONLINE apache_lv State fox2 OFFLINE
Mount 리소스를 서비스그룹에 추가한다.
[root@fox1 ~]# hares -add apache_mnt Mount apache_sg VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors [root@fox1 ~]# hares -modify apache_mnt Critical 0 [root@fox1 ~]# hares -modify apache_mnt MountPoint /var/www/html [root@fox1 ~]# hares -modify apache_mnt BlockDevice /dev/mapper/fox_vg-fox_lv [root@fox1 ~]# hares -modify apache_mnt FSType ext4 [root@fox1 ~]# hares -modify apache_mnt FsckOpt %-y [root@fox1 ~]# hares -modify apache_mnt Enabled 1 [root@fox1 ~]# hares -online apache_mnt -sys fox1 [root@fox1 ~]# hares -state apache_mnt #Resource Attribute System Value apache_mnt State fox1 ONLINE apache_mnt State fox2 OFFLINE
Apache 리소스를 서비스 그룹에 추가한다.
[root@fox1 ~]# hares -add apache_svc Apache apache_sg VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors [root@fox1 ~]# hares -modify apache_svc Critical 0 [root@fox1 ~]# hares -modify apache_svc ConfigFile /etc/httpd/conf/httpd.conf [root@fox1 ~]# hares -modify apache_svc httpdDir /usr/sbin [root@fox1 ~]# hares -modify apache_svc Enabled 1 [root@fox1 ~]# hares -state apache_svc #Resource Attribute System Value apache_svc State fox1 ONLINE apache_svc State fox2 OFFLINE
2.4. 리소스 디펜던시를 정의하고 링크한다.
[root@fox1 ~]# hares -link apache_lv apache_vg [root@fox1 ~]# hares -link apache_mnt apache_lv [root@fox1 ~]# hares -link apache_svc apache_mnt [root@fox1 ~]# hares -dep | grep apache_sg apache_sg apache_lv apache_vg apache_sg apache_mnt apache_lv apache_sg apache_svc apache_mnt
2.5. 클러스터 설정화일을 읽기 전용으로 바꾼다.
[root@fox1 ~]# haconf -dump -makero
2.6. 서비스그룹을 실행한다.
[root@fox1 ~]# hagrp -online apache_sg -sys fox1 [root@fox1 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdd1 8118712 3164604 4535036 42% / tmpfs 510036 0 510036 0% /dev/shm /dev/mapper/fox_vg-fox_lv 1011672 1284 958164 1% /var/www/html
3. 테스트
/var/www/html/index.html 화일을 만들거나 수정하고, 웹브라우저로 접속해 본다.
서비스 그룹을 Node2로 이동시킨다. 여기서 ClusterService도 이동하는 이유는, apache_sg에 IP 리소스를 만들지 않았기 때문이다. 따라서, 기본 서비스인 ClusterService도 같이 이동한다.
[root@fox1 ~]# hagrp -switch apache_sg -to fox2 [root@fox1 ~]# hagrp -switch ClusterService -to fox2 [root@fox1 ~]# hastatus -sum -- SYSTEM STATE -- System State Frozen A fox1 RUNNING 0 A fox2 RUNNING 0 -- GROUP STATE -- Group System Probed AutoDisabled State B ClusterService fox1 Y N OFFLINE B ClusterService fox2 Y N ONLINE B apache_sg fox1 Y N OFFLINE B apache_sg fox2 Y N ONLINE [root@fox1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 7.8G 3.1G 4.4G 42% / tmpfs 499M 0 499M 0% /dev/shm tmpfs 4.0K 0 4.0K 0% /dev/vx
node2에서 확인해보면,
[root@fox2 ~]# hastatus -sum -- SYSTEM STATE -- System State Frozen A fox1 RUNNING 0 A fox2 RUNNING 0 -- GROUP STATE -- Group System Probed AutoDisabled State B ClusterService fox1 Y N OFFLINE B ClusterService fox2 Y N ONLINE B apache_sg fox1 Y N OFFLINE B apache_sg fox2 Y N ONLINE [root@fox2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 7.8G 1.9G 5.5G 26% / tmpfs 499M 0 499M 0% /dev/shm /dev/mapper/fox_vg-fox_lv 988M 1.3M 936M 1% /var/www/html
4. 기타
리소스 타입 보기
# hatype -list ASMDG ASMInst Apache ... IP IPMultiNIC KVMGuest LVMLogicalVolume LVMVolumeGroup Mount ... VolumeSet
클러스터에 등록된 시스템 보기
# hasys -list fox1 fox2
클러스터 정보 보기
# haclus -display #Attribute Value AdministratorGroups Administrators admin AutoAddSystemToCSG 1 AutoStartTimeout 150 BackupInterval 0 CID {f7df0792-1dd1-11b2-bf1b-9e3e294c71de} ClusState RUNNING ClusterAddress 192.168.100.20 ClusterLocation ClusterName fox_cluster ... ... TypeLimit 100 UseFence NONE UserNames admin VCSFeatures NONE VCSMode VCS WACPort 14155
LDF(log data file) 보기
현재 시스템에서 볼 수 있는 LDF 리스트 확인
# hamsg -list #Log data files hashadow-err_A Mount_A Apache_A HostMonitor_A CmdServer-log_A IP_A engine_A
이중 IP_A의 LDF확인
# hamsg -info IP_A #Attribute Value Version 3.0 System name fox2 Platform LINUX Create Date 2016년 06월 17일 (금) 오후 03시 20분 12초 Last Modify Time 2016년 06월 17일 (금) 오후 03시 20분 12초 CRITICAL Messages 0 ERROR Messages 3 WARNING Messages 0 NOTICE Messages 0 INFO Messages 0 VCS Messages 0 Cluster Messages 0 System Messages 0 Group Messages 0 Agent Messages 0 Resource Messages 3 Total Messages 3