Red Hat OpenShift 또는 업스트림 Kubernetes를 사용하는 게이트키퍼
Zusammenfassung: 이 KB는 Red Hat GitHub kubevirt-rawio-addon 리포지토리를 사용하여 Red Hat OpenShift 또는 업스트림 Kubernetes 환경에 PowerMax 게이트키퍼를 제공하는 방법에 대해 설명합니다.
Weisungen
PowerMax 게이트키퍼
PowerMax 게이트키퍼는 Solutions Enabler 명령에 대한 SCSI 타겟 역할을 하는 PowerMax의 디스크를 깎아낸 소형 디바이스(일반적으로 3MB)입니다. 구성 및 상태 정보는 기본적으로 PowerMax 호스트 데이터베이스 파일에 symapi_db.bin 유지됩니다. 이를 PowerMax 구성 데이터베이스라고 합니다. 이를 통해 호스트에서 스토리지 어레이로의 조회 수가 줄어듭니다. 게이트키퍼는 OS가 조작 없이 SCSI 명령을 전달하기만 하면 되는 원시 디바이스여야 합니다. 물리적 호스트는 항상 게이트키퍼(지원되는 OS 포함)와 함께 작동하지만 가상 호스트는 RDM(Physical Raw Device Mapping), Windows 또는 Linux의 게스트 내 iSCSI, Linux의 게스트 내 NVMe/TCP 또는 패스스루 디바이스(NIC 또는 HBA)를 사용하는 VMware로 제한됩니다. 그러나 VMware만이 실행 가능한 게이트키퍼로 인식되는 진정한 원시 디바이스를 제시할 수 있습니다. 다른 가상화 솔루션을 사용하면 사용자가 디바이스를 "원시"로 표시할 수 있지만 해당 솔루션은 일부 SCSI 명령을 차단하여 게이트키퍼로 사용할 수 없습니다. Solutions Enabler는 게이트키퍼로 레이블을 지정하지만 아래와 같이 오류를 보고합니다.

또한 게이트키퍼를 검사하면 "CLS" 또는 닫힘 상태가 표시됩니다.

따라서 필요한 SCSI 명령을 전달할 수 없습니다.
이 솔루션을 활용하려면 선택한 운영 체제에서 Solutions Enabler가 지원하는 프로토콜을 사용해야 합니다. 제품 설명서를 참조하십시오.
Red Hat GitHub 솔루션
Dell은 일부 상호 고객을 위해 OpenShift 환경의 게이트키퍼에 대한 해결 방법을 개발하기 위해 Red Hat의 지원을 요청했습니다. 이를 위해 OpenShift와 Upstream Kubernetes 모두에서 작동하는 솔루션을 만들었으며, 구현에 약간의 변화가 있었습니다. GitHub 리포지토리는 kubevirt-rawio-addon https://github.com/openshift-cnv/kubevirt-rawio-addon GitHub에는 readme https://github.com/openshift-cnv/kubevirt-rawio-addon/blob/main/README.md 포함되어 있습니다.
추가 기능은 다음과 같은 여러 구성 요소를 설치합니다.
- 웹훅을 변경하여 즉석에서 오브젝트 수정
- 웹훅 검증 - OpenShift 관련 안전성 검사
- 권한 있는 기능을 허용하는 보안 구성
- 사이드카 후크
사이드카는 VM 포드와 함께 실행되고 시작하기 전에 VM의 하위 수준 구성을 수정하는 작은 추가 컨테이너입니다. KubeVirt 생성 VM 구성을 가로채고, 주석이 달린 디스크를 찾고, rawio=yes를 설정합니다. 그런 다음 KubeVirt는 XML을 다시 가져옵니다. libvirt/QEMU 기본 아키텍처는 이를 지원하지만 노출하지 않으므로 이 약간의 조정이 필요합니다. KubeVirt가 나중에 이를 노출할 수 있으며, 이 시점에서 해결 방법은 필요하지 않습니다.
OpenShift에서 구현
리포지토리에는 이 솔루션을 구현하기 위한 모든 지침이 포함되어 있습니다. Red Hat이 솔루션을 소유하므로 Dell은 향후 변경될 수 있는 현재 지침을 따르는 것이 좋습니다. Dell은 이러한 변경 사항을 반영하기 위해 KB를 업데이트하지 않습니다. 아래의 기본 정보를 제공하지만 이 KB의 사용자는 리포지토리와 함께 기본 정보를 사용할 것을 권장합니다.
앞서 언급했듯이 OpenShift 또는 업스트림 Kubernetes에서 이를 구현할 수 있습니다. OpenShift의 단계이므로 업스트림 Kubernetes를 수행하는 경우 몇 가지 주의해야 할 사항이 있습니다.
- 바닐라 K8s에서 구현하는 경우 cert-manager가 설치되어 있어야 합니다. PowerMax CSI 드라이버가 설치되어 있는 경우 이 드라이버가 표시됩니다.
- 바닐라 K8s에서 구현하는 경우 권한 있는 네임스페이스가 필요합니다. 스크립트에서 네임스페이스를 사용하거나 스크립트를 직접 만든 다음 수정할 수 있습니다.
구현에 필요한 두 개의 스크립트는 hack 폴더에 있습니다. rawio-setup.sh 는 첫 번째 스크립트이며 두 플랫폼 모두에서 동일하지만 OpenShift에만 있는 openshift-cnv 네임스페이스에 의존합니다. 네임스페이스를 추가하거나 새 네임스페이스를 생성하고 K8s용 스크립트를 수정합니다. VM 생성 스크립트는 플랫폼에 고유하지만 다시 openshift-cnv 네임스페이스를 사용합니다. OpenShift의 경우 rawio-create-vm-openshift.sh 입니다. 스크립트는 테스트 환경을 만들도록 설계되었으며 프로덕션 설정을 수정해야 합니다. 특히, rawio-setup.sh 스크립트는 가상 SCSI 디바이스를 생성합니다. 대신 PowerMax 스토리지 클래스를 사용하도록 스크립트를 수정하십시오. 또한 스크립트는 VM을 예약하기 위해 단일 노드를 가정합니다. 모든 작업자 노드에서 실행할 수 있도록 수정합니다. 스크립트는 pre-buit Fedora OS를 사용합니다.
샘플 스크립트는 보충 내용에 있습니다.
기본 단계
- 리포지토리 복제: git clonehttps://github.com/openshift-cnv/kubevirt-rawio-addon.git
- 매니페스트 설치: oc apply -fhttps://github.com/openshift-cnv/kubevirt-rawio-addon/releases/download/v0.1.0/rawio-addon-openshift.yaml
- 사이드카 설치: oc annotate –overwrite -n openshift-cnv hco kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[{"op": "더하기", "경로": "/spec/configuration/developerConfiguration/featureGates/-", "value": "사이드카"}]'
- setup 실행: rawio-setup.sh
- VM 생성: rawio-create-vm-openshift.sh
- OS 설치(사전 빌드된 OS를 사용하지 않는 경우)
기존 3MB 게이트키퍼를 요청하더라도 PowerMax CSI는 50MB 미만의 디바이스를 생성할 수 없습니다. 이는 문제를 일으키지 않습니다.


기타 가상화 솔루션
아래 솔루션 중 어느 것도 이 Red Hat 리포지토리에서 작동하지 않습니다.
- SUSE Harvester와 같은 K8s 기반 솔루션 - SUSE는 자체 솔루션을 개발해야 합니다.
- Proxmox 또는 Oracle KVM(oVirt)과 같은 KVM 솔루션 - KubeVirt 기반이 아니므로 사용할 수 없습니다.
Weitere Informationen
rawio-setup.sh
*******************************************
rawio-create-vm-openshift.sh