5.3. 리소스 및 리소스 그룹 생성

다음 절차에 따라 클러스터의 리소스를 생성합니다. 이러한 리소스가 모두 동일한 노드에서 실행되도록 하려면 apachegroup 리소스 그룹의 일부로 구성됩니다. 생성할 리소스는 다음과 같이 나열되며, 시작하는 순서대로 나열됩니다.

  1. XFS 파일 시스템으로 LVM 볼륨 구성에서 생성한 LVM 볼륨 그룹을 사용하는 my_lvm 이라는 LVM을 활성화합니다.
  2. XFS 파일 시스템을 사용하여 LVM 볼륨 구성에서 생성한 파일 시스템 장치 /dev/my_vg/my_lv 를 사용하는 my_fs 라는 파일 시스템 리소스입니다.
  3. apachegroup 리소스 그룹의 유동 IP 주소인 IPaddr2 리소스입니다. IP 주소는 물리적 노드와 이미 연결되어 있지 않아야 합니다. IPaddr2 리소스의 NIC 장치가 지정되지 않은 경우 유동 IP는 노드의 정적으로 할당된 IP 주소 중 하나와 동일한 네트워크에 있어야 합니다. 그렇지 않으면 유동 IP 주소를 할당하기 위해 NIC 장치를 올바르게 탐지할 수 없습니다.
  4. Apache HTTP 서버 구성에 정의된 index.html 파일 및 Apache 설정을 사용하는 website 라는 apache 리소스입니다.

다음 절차에서는 apachegroup 리소스 그룹과 그룹에 포함된 리소스를 생성합니다. 리소스는 그룹에 추가하는 순서대로 시작하고 그룹에 추가된 반대 순서로 중지됩니다. 클러스터의 노드 중 하나에서만 이 절차를 실행합니다.

절차

  1. 다음 명령은 LVM 활성화 리소스 my_lvm 을 생성합니다. apachegroup 리소스 그룹이 아직 존재하지 않기 때문에 이 명령은 리소스 그룹을 생성합니다.

    참고

    활성/수동 HA 구성에서 동일한 LVM 볼륨 그룹을 사용하는 LVM 활성화 리소스를 두 개 이상 구성하지 마십시오. 이로 인해 데이터 손상이 발생할 수 있습니다. 또한 활성/수동 HA 구성에서 LVM 활성화 리소스를 복제 리소스로 구성하지 마십시오.

    [root@z1 ~]# pcs resource create my_lvm ocf:heartbeat:LVM-activate vgname=my_vg vg_access_mode=system_id --group apachegroup

    리소스를 생성하면 리소스가 자동으로 시작됩니다. 다음 명령을 사용하여 리소스가 생성되었으며 시작되었는지 확인할 수 있습니다.

    # pcs resource status
     Resource Group: apachegroup
         my_lvm	(ocf::heartbeat:LVM-activate):	Started

    pcs resource disablepcs resource enable 명령을 사용하여 개별 리소스를 수동으로 중지하고 시작할 수 있습니다.

  2. 다음 명령은 구성에 대한 나머지 리소스를 생성하여 기존 리소스 그룹 apachegroup 에 추가합니다.

    [root@z1 ~]# pcs resource create my_fs Filesystem device="/dev/my_vg/my_lv" directory="/var/www" fstype="xfs" --group apachegroup
    
    [root@z1 ~]# pcs resource create VirtualIP IPaddr2 ip=198.51.100.3 cidr_netmask=24 --group apachegroup
    
    [root@z1 ~]# pcs resource create Website apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group apachegroup
  3. 리소스 및 리소스를 포함하는 리소스 그룹을 생성한 후 클러스터 상태를 확인할 수 있습니다. 4개의 리소스가 모두 동일한 노드에서 실행되고 있습니다.

    [root@z1 ~]# pcs status
    Cluster name: my_cluster
    Last updated: Wed Jul 31 16:38:51 2013
    Last change: Wed Jul 31 16:42:14 2013 via crm_attribute on z1.example.com
    Stack: corosync
    Current DC: z2.example.com (2) - partition with quorum
    Version: 1.1.10-5.el7-9abe687
    2 Nodes configured
    6 Resources configured
    
    Online: [ z1.example.com z2.example.com ]
    
    Full list of resources:
     myapc	(stonith:fence_apc_snmp):	Started z1.example.com
     Resource Group: apachegroup
         my_lvm	(ocf::heartbeat:LVM-activate):	Started z1.example.com
         my_fs	(ocf::heartbeat:Filesystem):	Started z1.example.com
         VirtualIP	(ocf::heartbeat:IPaddr2):	Started z1.example.com
         Website	(ocf::heartbeat:apache):	Started z1.example.com

    클러스터의 펜싱 장치를 구성하지 않은 경우 기본적으로 리소스가 시작되지 않습니다.

  4. 클러스터가 가동되어 실행되면 브라우저에서 IPaddr2 리소스로 정의한 IP 주소를 가리키어 샘플 디스플레이를 볼 수 있으며 간단한 단어 "Hello"로 구성됩니다.

    Hello

    구성한 리소스가 실행 중이 아닌지 확인하면 pcs resource debug-start resource 명령을 실행하여 리소스 구성을 테스트할 수 있습니다.

  5. apache 리소스 에이전트를 사용하여 Apache를 관리하는 경우 systemd 를 사용하지 않습니다. 이로 인해 systemctl 을 사용하여 Apache를 다시 로드하지 않도록 Apache와 함께 제공된 logrotate 스크립트를 편집해야 합니다.

    클러스터의 각 노드의 /etc/logrotate.d/httpd 파일에서 다음 행을 제거합니다.

    /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true

    /var/run/httpd-website.pid를 website 가 Apache 리소스의 이름인 PID 파일 경로로 지정하여 제거한 행을 다음 세 줄로 바꿉니다. 이 예에서 Apache 리소스 이름은 website 입니다.

    /usr/bin/test -f /var/run/httpd-Website.pid >/dev/null 2>/dev/null &&
    /usr/bin/ps -q $(/usr/bin/cat /var/run/httpd-Website.pid) >/dev/null 2>/dev/null &&
    /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -c "PidFile /var/run/httpd-Website.pid" -k graceful > /dev/null 2>/dev/null || true