3.2. etcd를 다른 디스크로 이동
성능 문제를 방지하거나 해결하기 위해 공유 디스크에서 별도의 디스크로 etcd를 이동할 수 있습니다.
MCO(Machine Config Operator)는 OpenShift Container Platform 4.19 컨테이너 스토리지를 위한 보조 디스크를 마운트하는 역할을 합니다.
이 인코딩된 스크립트는 다음 장치 유형에 대한 장치 이름만 지원합니다.
- SCSI 또는 SATA
-
/dev/sd*
- 가상 장치
-
/dev/vd*
- NVMe
-
/dev/nvme*[0-9]*n*
제한
-
새 디스크가 클러스터에 연결되면 etcd 데이터베이스가 루트 마운트의 일부가 됩니다. 기본 노드가 다시 생성될 때 이는 보조 디스크나 의도된 디스크의 일부가 아닙니다. 결과적으로 기본 노드는 별도의
/var/lib/etcd
마운트를 생성하지 않습니다.
사전 요구 사항
- 클러스터의 etcd 데이터를 백업했습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - 머신 구성을 업로드하기 전에 추가 디스크를 추가하세요.
-
MachineConfigPool은
metadata.labels[machineconfiguration.openshift.io/role]
와 일치해야 합니다. 이는 컨트롤러, 워커 또는 사용자 정의 풀에 적용됩니다.
이 절차는 /var/
과 같은 루트 파일 시스템의 일부를 설치된 노드의 다른 디스크나 파티션으로 이동하지 않습니다.
제어 평면 머신 세트를 사용하는 경우 이 절차는 지원되지 않습니다.
프로세스
클러스터에 새 디스크를 연결하고 디버그 셸에서
lsblk
명령을 실행하여 디스크가 노드에서 감지되는지 확인합니다.oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lsblk
# lsblk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lsblk
명령에서 보고된 새 디스크의 장치 이름을 기록해 보세요.다음 스크립트를 만들고
etcd-find-secondary-device.sh
라고 이름을 지정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<device_type_glob>을
블록 장치 유형에 맞는 셸 글로브로 바꾸세요. SCSI 또는 SATA 드라이브의 경우/dev/sd*를
사용하고, 가상 드라이브의 경우/dev/vd*를
사용하고, NVMe 드라이브의 경우/dev/nvme*[0-9]*n*을
사용합니다.
etcd-find-secondary-device.sh
스크립트에서 base64로 인코딩된 문자열을 만들고 내용을 기록해 둡니다.base64 -w0 etcd-find-secondary-device.sh
$ base64 -w0 etcd-find-secondary-device.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같은 내용을 포함하는
etcd-mc.yml
이라는MachineConfig
YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<encoded_etcd_find_secondary_device_script>를
귀하가 기록해 둔 인코딩된 스크립트 내용으로 바꾸세요.
생성된
MachineConfig
YAML 파일을 적용합니다.oc create -f etcd-mc.yml
$ oc create -f etcd-mc.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증 단계
노드의 디버그 셸에서
grep /var/lib/etcd /proc/mounts
명령을 실행하여 디스크가 마운트되었는지 확인하세요.oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow grep -w "/var/lib/etcd" /proc/mounts
# grep -w "/var/lib/etcd" /proc/mounts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
/dev/sdb /var/lib/etcd xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
/dev/sdb /var/lib/etcd xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow