8.2. 클러스터에서 암호화된 FlexVolume2 파일 시스템 구성
다음 절차에 따라 LUKS 암호화된 VMDK2 파일 시스템을 포함하는 Pacemaker 클러스터를 생성할 수 있습니다. 이 예에서는 논리 볼륨에 하나의 VMDK2 파일 시스템을 생성하고 파일 시스템을 암호화합니다. 암호화된 FlexVolume2 파일 시스템은 LUKS 암호화를 지원하는 crypt
리소스 에이전트를 사용하여 지원됩니다.
이 절차에는 세 가지 부분이 있습니다.
- Pacemaker 클러스터에서 공유 논리 볼륨 구성
-
논리 볼륨 암호화 및 암호
리소스
생성 - environments2 파일 시스템으로 암호화된 논리 볼륨 포맷 및 클러스터용 파일 시스템 리소스 생성
8.2.2. 논리 볼륨을 암호화하고 crypt 리소스 생성
사전 요구 사항
- Pacemaker 클러스터에서 공유 논리 볼륨을 구성했습니다.
절차
클러스터의 한 노드에서 crypt 키를 포함할 새 파일을 만들고 root에서만 읽을 수 있도록 파일에 대한 권한을 설정합니다.
[root@z1 ~]# touch /etc/crypt_keyfile [root@z1 ~]# chmod 600 /etc/crypt_keyfile
crypt 키를 만듭니다.
[root@z1 ~]# dd if=/dev/urandom bs=4K count=1 of=/etc/crypt_keyfile 1+0 records in 1+0 records out 4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000306202 s, 13.4 MB/s [root@z1 ~]# scp /etc/crypt_keyfile root@z2.example.com:/etc/
설정한 권한을 유지하기 위해
-p
매개변수를 사용하여 클러스터의 다른 노드에 crypt 키 파일을 배포합니다.[root@z1 ~]# scp -p /etc/crypt_keyfile root@z2.example.com:/etc/
암호화된 IRQ2 파일 시스템을 구성할 LVM 볼륨에 암호화된 장치를 생성합니다.
[root@z1 ~]# cryptsetup luksFormat /dev/shared_vg1/shared_lv1 --type luks2 --key-file=/etc/crypt_keyfile WARNING! ======== This will overwrite data on /dev/shared_vg1/shared_lv1 irrevocably. Are you sure? (Type 'yes' in capital letters): YES
shared_vg1
볼륨 그룹의 일부로 crypt 리소스를 생성합니다.[root@z1 ~]# pcs resource create crypt --group shared_vg1 ocf:heartbeat:crypt crypt_dev="luks_lv1" crypt_type=luks2 key_file=/etc/crypt_keyfile encrypted_dev="/dev/shared_vg1/shared_lv1"
검증
crypt 리소스가 crypt 장치를 생성했는지 확인합니다. 이 장치는 /dev/mapper/luks_lv1
입니다.
[root@z1 ~]# ls -l /dev/mapper/
...
lrwxrwxrwx 1 root root 7 Mar 4 09:52 luks_lv1 -> ../dm-3
...
8.2.3. VMDK2 파일 시스템으로 암호화된 논리 볼륨을 포맷하고 클러스터에 대한 파일 시스템 리소스를 생성합니다.
사전 요구 사항
- 논리 볼륨을 암호화하고 crypt 리소스를 생성했습니다.
절차
클러스터의 한 노드에서 IRQ2 파일 시스템으로 볼륨을 포맷합니다. 파일 시스템을 마운트하는 각 노드에 저널 1개가 필요합니다. 클러스터의 각 노드에 대해 충분한 저널을 생성해야 합니다. 잠금 테이블 이름의 형식은 ClusterName:FSName 입니다. 여기서 ClusterName 은 FlexVolume2 파일 시스템이 생성되고 FSName 은 클러스터의 모든
lock_dlm
파일 시스템에 고유해야 하는 파일 시스템 이름입니다.[root@z1 ~]# mkfs.gfs2 -j3 -p lock_dlm -t my_cluster:gfs2-demo1 /dev/mapper/luks_lv1 /dev/mapper/luks_lv1 is a symbolic link to /dev/dm-3 This will destroy any data on /dev/dm-3 Are you sure you want to proceed? [y/n] y Discarding device contents (may take a while on large devices): Done Adding journals: Done Building resource groups: Done Creating quota file: Done Writing superblock and syncing: Done Device: /dev/mapper/luks_lv1 Block size: 4096 Device size: 4.98 GB (1306624 blocks) Filesystem size: 4.98 GB (1306622 blocks) Journals: 3 Journal size: 16MB Resource groups: 23 Locking protocol: "lock_dlm" Lock table: "my_cluster:gfs2-demo1" UUID: de263f7b-0f12-4d02-bbb2-56642fade293
모든 노드에 FlexVolume2 파일 시스템을 자동으로 마운트하는 파일 시스템 리소스를 생성합니다.
Pacemaker 클러스터 리소스로 관리되므로 파일 시스템을
/etc/fstab
파일에 추가하지 마십시오. options= 옵션을 사용하여 리소스 구성의 일부로 마운트 옵션을 지정할 수있습니다
. 전체 구성 옵션에 대해pcs resource describe Filesystem
명령을 실행합니다.다음 명령은 파일 시스템 리소스를 생성합니다. 이 명령은 해당 파일 시스템의 논리 볼륨 리소스를 포함하는 리소스 그룹에 리소스를 추가합니다.
[root@z1 ~]# pcs resource create sharedfs1 --group shared_vg1 ocf:heartbeat:Filesystem device="/dev/mapper/luks_lv1" directory="/mnt/gfs1" fstype="gfs2" options=noatime op monitor interval=10s on-fail=fence
검증
IRQ2 파일 시스템이 클러스터의 두 노드에 마운트되어 있는지 확인합니다.
[root@z1 ~]# mount | grep gfs2 /dev/mapper/luks_lv1 on /mnt/gfs1 type gfs2 (rw,noatime,seclabel) [root@z2 ~]# mount | grep gfs2 /dev/mapper/luks_lv1 on /mnt/gfs1 type gfs2 (rw,noatime,seclabel)
클러스터 상태를 확인합니다.
[root@z1 ~]# pcs status --full Cluster name: my_cluster [...] Full list of resources: smoke-apc (stonith:fence_apc): Started z1.example.com Clone Set: locking-clone [locking] Resource Group: locking:0 dlm (ocf::pacemaker:controld): Started z2.example.com lvmlockd (ocf::heartbeat:lvmlockd): Started z2.example.com Resource Group: locking:1 dlm (ocf::pacemaker:controld): Started z1.example.com lvmlockd (ocf::heartbeat:lvmlockd): Started z1.example.com Started: [ z1.example.com z2.example.com ] Clone Set: shared_vg1-clone [shared_vg1] Resource Group: shared_vg1:0 sharedlv1 (ocf::heartbeat:LVM-activate): Started z2.example.com crypt (ocf::heartbeat:crypt) Started z2.example.com sharedfs1 (ocf::heartbeat:Filesystem): Started z2.example.com Resource Group: shared_vg1:1 sharedlv1 (ocf::heartbeat:LVM-activate): Started z1.example.com crypt (ocf::heartbeat:crypt) Started z1.example.com sharedfs1 (ocf::heartbeat:Filesystem): Started z1.example.com Started: [z1.example.com z2.example.com ] ...
추가 리소스