리눅스에서 Veritas Cluster Server(VCS) 설치 및 사용 – part 2

리눅스에서 Veritas Cluster Server(VCS) 설치 및 사용 – part 2

이전글 리눅스에서 Veritas Cluster Server(VCS) 설치 및 사용 – part 1에서는 가장 간단한 2node VCS를 구성해 보았다.
이제, 공유스토리지를 추가하고 서비스(apache web server)를 추가할 것이다. 공유스토리지는 리눅스 LVM을 사용할 것이다.
공유스토리지를 추가한 구성은 아래 그림과 같다.

VCS_storage

구성환경
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 화일을 만들거나 수정하고, 웹브라우저로 접속해 본다.
vcs_test

서비스 그룹을 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

답글 남기기

Your email address will not be published.