여기서는 2개의 25G LUN을 VG로 묶어서 50G로 만든 후 클러스터에 리소스를 등록하는 것을 보여주지만,
실무에서는 경우에 따라 SAN 스토리지에서 아주 많은 LUN을 할당하여 서버에 제공해 준다. 많은 LUN을 LVM으로 합쳐서 파일시스템 구성을 하려면 간단한 스크립트라도 동원을 해야 실수 없이 빠른 구성이 가능하다.
이 문서에서는 ESXi 상에서 돌아가는 RHEL OS 2대, NAS4Free(Storage) 1대를 이용해 RHCS를 구성된 클러스터 시스템을 볼륨을 추가해야 되는 상황이라고 가정하고 기술한다.

 

– 기존 정보 확인

- 기존 마운트된 볼륨 정보 확인
[root@RHEL63-1 ~]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel631-lv_root
                       28G   13G   14G  48% /
tmpfs                 939M   32M  908M   4% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/root/rhel-server-6.3-x86_64-dvd.iso
                      3.5G  3.5G     0 100% /mnt
/dev/mapper/vg_1-lv_1
                       50G  291M   47G   1% /share    --> EXT4 (DB Share Volume, 1번 node(DB Active)만 mount)
/dev/mapper/vg_2-lv_1
                       50G  518M   50G   2% /share2   --> GFS2 (Web Share Volume, 1,2번 node 모두 mount)

- 기존 pv 확인
[root@RHEL63-1 ~]# pvscan
  PV /dev/mapper/mpathd   VG vg_2         lvm2 [50.00 GiB / 0    free]
  PV /dev/mapper/mpatha   VG vg_1         lvm2 [50.00 GiB / 0    free]
  PV /dev/sda2            VG vg_rhel631   lvm2 [31.51 GiB / 0    free]
  Total: 5 [181.49 GiB] / in use: 5 [181.49 GiB] / in no VG: 0 [0   ]

- 기존 멀티패스 정보 확인
[root@RHEL63-1 ~]# multipath -ll
mpathd (3300000001f132b32) dm-3 FreeBSD,iSCSI DISK
size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 4:0:0:1 sdc 8:32  active ready running
  `- 3:0:0:1 sde 8:64  active ready running
mpatha (330000000c256818a) dm-2 FreeBSD,iSCSI DISK
size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 4:0:0:0 sdb 8:16  active ready running
  `- 3:0:0:0 sdd 8:48  active ready running

 

– iSCSI 접속

- iSCSI 타겟에 신규 할당된 LUN 확인 (2개의 패스로 구성해서 2개의 패스로 보인다)
[root@RHEL63-1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.0.161:3262
192.168.2.161:3262,3 iqn.2007-09.jp.ne.peach.istgt:vols3
192.168.0.161:3262,3 iqn.2007-09.jp.ne.peach.istgt:vols3

- 신규 LUN 접속 (2개의 패스에 연결)
[root@RHEL63-1 ~]# iscsiadm --mode node --targetname iqn.2007-09.jp.ne.peach.istgt:vols3 --portal 192.168.0.161:3262 --login
[root@RHEL63-1 ~]# iscsiadm --mode node --targetname iqn.2007-09.jp.ne.peach.istgt:vols3 --portal 192.168.2.161:3262 --login

 

– 볼륨 구성

- 추가된 볼륨 확인. mpathe(sdf,sdh-2패스), mpathf(sdg,sdi-2패스)로 2개의 볼륨이 확인된다.
[root@RHEL63-1 ~]# multipath -ll
mpathe (33000000019da2149) dm-6 FreeBSD,iSCSI DISK
size=25G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 5:0:0:0 sdf 8:80  active ready running
  `- 6:0:0:0 sdh 8:112 active ready running
mpathd (3300000001f132b32) dm-3 FreeBSD,iSCSI DISK
size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 4:0:0:1 sdc 8:32  active ready running
  `- 3:0:0:1 sde 8:64  active ready running
mpatha (330000000c256818a) dm-2 FreeBSD,iSCSI DISK
size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 4:0:0:0 sdb 8:16  active ready running
  `- 3:0:0:0 sdd 8:48  active ready running
mpathf (330000000c49f8bf1) dm-7 FreeBSD,iSCSI DISK
size=25G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 5:0:0:1 sdg 8:96  active ready running
  `- 6:0:0:1 sdi 8:128 active ready running

- PV 생성
[root@RHEL63-1 ~]# pvcreate /dev/mapper/mpathe /dev/mapper/mpathd

- VG 생성
[root@RHEL63-1 ~]# vgcreate vg_3 /dev/mapper/mpathe /dev/mapper/mpathd
 Clustered volume group "vg_3" successfully created  (CLVM을 사용 중이다.)

- Free PE 값 확인
[root@RHEL63-1 ~]# vgdisplay vg_3 | grep Free
  Free  PE / Size       12798 / 49.99 GiB

- LV 생성 (여기선 Free PE 값 모두 사용_상황에 맞게 PE값 대입)
[root@RHEL63-1 ~]# lvcreate -i 2 -l 12798 -n lv_1 vg_3
--> -i 2 (PV의 갯수 만큼 스트라이핑 적용)
--> 환경에 따라 linear 방식으로 lv를 생성할 수도 있다. 상황에 맞게 구성.

- 스트라이프 확인
[root@RHEL63-1 ~]# lvm lvs --segment
  LV      VG         Attr     #Str Type    SSize
  lv_1    vg_1       -wi-a---    1 linear  50.00g
  lv_1    vg_2       -wi-ao--    1 linear  50.00g
  lv_1    vg_3       -wi-a---    2 striped 49.99g  --> vg_3가 2개의 pv를 stripe로 묶은게 확인 됨 - Str 값.
  lv_root vg_rhel632 -wi-ao--    1 linear  27.57g
  lv_swap vg_rhel632 -wi-ao--    1 linear   3.94g

- 파일 시스템 생성
[root@RHEL63-1 ~]# mkfs.ext4 /dev/vg_3/lv_1

- node2 서버에서도 볼륨이 잘 보이는지 확인.
[root@RHEL63-2 ~]# lvscan | grep vg_3
  ACTIVE            '/dev/vg_3/lv_1' [49.99 GiB] inherit
--> 만약 CLVM을 사용하지 않았다면 ACTIVE가 아닌 inactive로 확인될 것이다. 테스트 서버는 CLVM을 적용 중.

- 마운트포인트 디렉토리 생성
[root@RHEL63-1 ~]# mkdir /share3
[root@RHEL63-2 ~]# mkdir /share3

 

– /etc/cluster/cluster.conf 수정 (node 1에서만)

<?xml version="1.0"?>
<cluster config_version="75" name="mycluster">  --> version 번호 1 증가하기
    <clusternodes>
        <clusternode name="node01" nodeid="1">
            <fence>
                <method name="Method01">
                    <device name="vmfence" port="RHEL63-1" ssl="on" uuid="564d16d2-1684-83d6-50ea-81d4b8a77cef"/>
                </method>
            </fence>
        </clusternode>
        <clusternode name="node02" nodeid="2">
            <fence>
                <method name="Method02">
                    <device name="vmfence" port="RHEL63-2" ssl="on" uuid="564d7ca4-ca7a-a599-ade5-a2ae362b0b06"/>
                </method>
            </fence>
        </clusternode>
    </clusternodes>
    <cman expected_votes="1" two_node="1"/>
    <fencedevices>
        <fencedevice agent="fence_vmware_soap" ipaddr="fence" login="root" name="vmfence" passwd="PASSWORD" power_wait="10"/>
    </fencedevices>
    <rm>
        <failoverdomains>
            <failoverdomain name="myfail" ordered="1" restricted="1">
                <failoverdomainnode name="node01" priority="1"/>
                <failoverdomainnode name="node02" priority="1"/>
            </failoverdomain>
        </failoverdomains>
        <resources>
            <ip address="192.168.0.177/24" sleeptime="10"/>
            <fs device="/dev/vg_1/lv_1" fsid="28078" mountpoint="/share" name="iscsi01"/>
            <fs device="/dev/vg_3/lv_1" fsid="28079" mountpoint="/share3" name="iscsi02"/>  --> 추가. fsid는 이 cluster.conf 의 다른 fsid와 겹치지 않게 임의의 번호로 설정
            <script file="/etc/init.d/mysql" name="mysql"/>
            <clusterfs device="/dev/vg_2/lv_1" fsid="39669" fstype="gfs2" mountpoint="/share2" name="mygfs"/>
            <script file="/etc/init.d/httpd" name="apache"/>
            <ip address="192.168.0.178/24" sleeptime="10"/>
            <ip address="192.168.0.179/24" sleeptime="10"/>
        </resources>
        <service domain="myfail" name="svc01" recovery="relocate">
            <script ref="mysql"/>
            <fs ref="iscsi01"/>
            <fs ref="iscsi02"/>   ---> 추가
            <ip ref="192.168.0.177/24"/>
            <clusterfs ref="mygfs"/>
            <script __independent_subtree="1" ref="apache"/>
            <ip __independent_subtree="1" ref="192.168.0.178/24"/>
        </service>
        <service domain="myfail" name="svc02" recovery="relocate">
            <script __independent_subtree="1" ref="apache"/>
            <clusterfs ref="mygfs"/>
            <ip __independent_subtree="1" ref="192.168.0.179/24"/>
        </service>
    </rm>
</cluster>

 

– 클러스터에 즉시 반영하기

[root@RHEL63-1 ~]# cman_tool version -r
You have not authenticated to the ricci daemon on node01
Password:
You have not authenticated to the ricci daemon on node02
Password:
--> 각 노드의 ricci 비번을 묻는다. 비번 입력.

 

– 반영 확인 하기

[root@RHEL63-1 ~]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel631-lv_root
                       28G   13G   14G  48% /
tmpfs                 939M   32M  908M   4% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/root/rhel-server-6.3-x86_64-dvd.iso
                      3.5G  3.5G     0 100% /mnt
/dev/mapper/vg_1-lv_1
                       50G  291M   47G   1% /share
/dev/mapper/vg_2-lv_1
                       50G  518M   50G   2% /share2
/dev/mapper/vg_3-lv_1
                       50G  180M   47G   1% /share3   --> 새로운 볼륨이 클러스터에 의해 마운트 되었다.

 

– 클러스터 상태 확인

[root@RHEL63-1 ~]# clustat
Cluster Status for mycluster @ Fri Aug 19 01:08:26 2016
Member Status: Quorate

 Member Name                                                    ID   Status
 ------ ----                                                    ---- ------
 node01                                                             1 Online, Local, rgmanager
 node02                                                             2 Online, rgmanager

 Service Name                                          Owner (Last)                                          State
 ------- ----                                          ----- ------                                          -----
 service:svc01                                         node01                                                started
 service:svc02                                         node02                                                started

 

– 서비스 절체 테스트 (절체 시 서비스 장애가 발생하므로 절체 테스트는 상황에 따라 진행)

- svc01을 node02로 넘김
[root@RHEL63-1 ~]# clusvcadm -r svc01 -m node02
Trying to relocate service:svc01 to node02...Success
service:svc01 is now running on node02

- 클러스터 상태 확인
[root@RHEL63-1 ~]# clustat
Cluster Status for mycluster @ Fri Aug 19 01:11:44 2016
Member Status: Quorate

 Member Name                                                    ID   Status
 ------ ----                                                    ---- ------
 node01                                                             1 Online, Local, rgmanager
 node02                                                             2 Online, rgmanager

 Service Name                                          Owner (Last)                                          State
 ------- ----                                          ----- ------                                          -----
 service:svc01                                         node02                                                started  --> node02로 서비스 넘어감
 service:svc02                                         node02                                                started


- node01의 /share, /share2 볼륨이 클러스터에 의해 umount 됨.
[root@RHEL63-1 ~]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel631-lv_root
                       28G   13G   14G  48% /
tmpfs                 939M   32M  908M   4% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/root/rhel-server-6.3-x86_64-dvd.iso
                      3.5G  3.5G     0 100% /mnt
/dev/mapper/vg_2-lv_1
                       50G  518M   50G   2% /share2

- node02 에서 확인되는 마운트 정보
[root@RHEL63-2 ~]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_rhel632-lv_root
                       28G  6.6G   20G  26% /
tmpfs                 939M   32M  908M   4% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/root/rhel-server-6.3-x86_64-dvd.iso
                      3.5G  3.5G     0 100% /mnt
/dev/mapper/vg_2-lv_1
                       50G  518M   50G   2% /share2
/dev/mapper/vg_1-lv_1
                       50G  291M   47G   1% /share   --> 마운트 확인
/dev/mapper/vg_3-lv_1
                       50G  180M   47G   1% /share3  --> 신규 볼륨 마운트 확인

 

이상이다.

RHCS 리소스에 볼륨 추가.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다