3.4. 클러스터에서 볼륨 그룹의 단독 활성화

다음의 절차에 따라 LVM 볼륨 그룹을 설정하면 오직 클러스터만이 볼륨 그룹을 활성화시킬 수 있고 시작 시 클러스터 밖에서 볼륨 그룹이 활성화되지 않도록 설정됩니다. 만약 볼륨 그룹이 클러스터 밖에 있는 시스템에 의해 활성화되면 볼륨 그룹의 메타데이터가 손상될 수 있는 위험이 있습니다.
이 절차는 /etc/lvm/lvm.conf 설정 파일에 있는 volume_list 항목을 수정합니다. volume_list 목록에 있는 볼륨 그룹은 클러스터 관리자의 제어 범위를 벗어난 로컬 노드에서 자동으로 활성화되는 게 허용됩니다. 그 노드의 로컬 루트와 홈 디렉토리에 관련된 볼륨 그룹이 이 목록에 포함되어야 합니다. 클러스터 관리자가 관리하는 모든 볼륨 그룹은 volume_list 항목에서 제외되어야 합니다. 이 절차는 clvmd의 사용을 필요로 하지 않습니다.
클러스터의 각 노드에 다음과 같은 절차를 수행합니다.
  1. locking_type이 1로 설정되어 있고 /etc/lvm/lvm.conf 파일에서 use_lvmetad가 0으로 설정되어 있도록 확실히 하기 위해 다음의 명령을 실행합니다. 이 명령은 모든 lvmetad 프로세스를 즉시 비활성화 및 중지합니다.
    # lvmconf --enable-halvm --services --startstopservices
  2. 다음의 명령을 사용해서 어느 볼륨 그룹이 현재 사용자의 로컬 스토리지에 설정되어 있는지 확인합니다. 이 명령을 통해 현재 설정되어 있는 볼륨 그룹 목록이 표시됩니다. 이 노드에 루트와 홈 디렉토리를 위해 각각의 볼륨 그룹에 공간을 할당해 놓았다면 다음의 예시에서와 같이 그 볼륨을 표시된 목록에서 볼 수 있습니다.
    # vgs --noheadings -o vg_name
      my_vg        
      rhel_home
      rhel_root
  3. my_vg (사용자가 방금 클러스터를 위해 정의한 볼륨 그룹) 이외의 볼륨 그룹을 /etc/lvm/lvm.conf 설정 파일에 항목으로 추가합니다. 예를 들어, 각각의 볼륨 그룹에 루트와 홈 디렉토리를 위한 공간을 할당해 놓았다면 lvm.conf 파일의 volume_list 행을 주석 해제 처리하고 그 볼륨 그룹을 다음과 같이 volume_list에 항목으로 추가합니다.
    volume_list = [ "rhel_root", "rhel_home" ]

    참고

    클러스터 관리자 밖에서 활성화되는 노드에 로컬 볼륨 그룹이 하나도 없다 하더라도 사용자는 volume_list 항목을 volume_list = []로 초기화해야 합니다.
  4. 부트 이미지가 클러스터에 의해 제어되는 볼륨 그룹을 활성화하려고 시도하지 않도록 보장하기 위해 initramfs 부트 이미지를 재구축합니다. 다음의 명령을 사용해서 initramfs 장치를 업데이트합니다. 이 명령이 완료되려면 1분 정도 소요될 것입니다.
    # dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
  5. 노드를 재부팅합니다.

    참고

    사용자가 부트 이미지를 생성한 노드를 부팅한 후 새로운 Linux 커널을 설치했다면 새로운 initrd 이미지는 사용자가 노드를 재부팅했을 때 실행중인 새로운 커널이 아니라 사용자가 부트 이미지를 생성했을 때 실행중이었던 커널을 위한 것입니다. 올바른 initrd 장치를 사용중인지 확인하려면 재부팅 전과 후에 uname -r 명령을 실행해서 실행중인 커널 릴리즈를 확인합니다. 릴리즈가 동일하지 않다면 새로운 커널로 재부팅하고 나서 initrd 파일을 업데이트한 후 노드를 재부팅합니다.
  6. 노드가 재부팅된 후 그 노드에 클러스터 서비스가 다시 시작되었는지 확인하기 위해 그 노드에서 pcs cluster status 명령을 실행합니다. 이를 통해 Error: cluster is not currently running on this node라는 메시지가 표시된다면 다음의 명령을 실행합니다.
    # pcs cluster start
    다른 방법으로, 클러스터의 각 노드가 재부팅될 때까지 기다린 후에 다음의 명령을 실행해서 클러스터의 모든 노드에 클러스터 서비스를 시작합니다.
    # pcs cluster start --all