작업자 노드를 준비합니다
Kubernetes 클러스터의 모든 작업자 노드는 Pod용으로 프로비저닝된 볼륨을 마운트할 수 있어야 합니다. 작업자 노드를 준비하려면 드라이버 선택에 따라 NFS, iSCSI 또는 NVMe/TCP 도구를 설치해야 합니다.
올바른 도구 선택
드라이버 조합을 사용하는 경우 드라이버에 필요한 모든 도구를 설치해야 합니다. 최신 버전의 RedHat CoreOS에는 기본적으로 도구가 설치되어 있습니다.
"NFS 툴을 설치합니다" , ontap-nas-economy
, , , ontap-nas-flexgroup
azure-netapp-files
gcp-cvs
을 사용하는 경우 ontap-nas
"iSCSI 도구를 설치합니다" 를 사용하는 경우: ontap-san
, ontap-san-economy
solidfire-san
.
"NVMe 툴을 설치합니다" TCP(NVMe/TCP) 프로토콜을 통해 NVMe(Nonvolatile Memory Express) 에 를 사용하는 경우 ontap-san
NVMe/TCP에 ONTAP 9.12 이상을 사용하는 것이 좋습니다. |
노드 서비스 검색
Astra Trident는 노드가 iSCSI 또는 NFS 서비스를 실행할 수 있는지 자동으로 감지하려고 시도합니다.
노드 서비스 검색은 검색된 서비스를 식별하지만 서비스가 올바르게 구성된다고 보장하지 않습니다. 반대로 검색된 서비스가 없으면 볼륨 마운트가 실패한다고 보장할 수 없습니다. |
Astra Trident는 검색된 서비스를 식별하기 위해 노드에 대한 이벤트를 생성합니다. 이러한 이벤트를 검토하려면 다음을 실행합니다.
kubectl get event -A --field-selector involvedObject.name=<Kubernetes node name>
Astra Trident는 Trident 노드 CR의 각 노드에 대해 활성화된 서비스를 식별합니다. 검색된 서비스를 보려면 다음을 실행합니다.
tridentctl get node -o wide -n <Trident namespace>
NFS 볼륨
운영 체제의 명령을 사용하여 NFS 툴을 설치합니다. 부팅 중에 NFS 서비스가 시작되었는지 확인합니다.
sudo yum install -y nfs-utils
sudo apt-get install -y nfs-common
볼륨에 연결할 때 오류가 발생하지 않도록 NFS 툴을 설치한 후 작업자 노드를 재부팅합니다. |
iSCSI 볼륨
Astra Trident는 iSCSI 세션을 자동으로 설정하고, LUN을 검색하고, 다중 경로 장치를 검색하고, 포맷하고, 포드에 마운트할 수 있습니다.
iSCSI 자동 복구 기능
ONTAP 시스템의 경우, Astra Trident가 5분마다 iSCSI 자동 복구를 실행하여 다음을 수행합니다.
-
* 원하는 iSCSI 세션 상태와 현재 iSCSI 세션 상태를 식별합니다.
-
* 원하는 상태를 현재 상태와 비교 * 하여 필요한 수리를 확인합니다. Astra Trident는 수리 우선 순위 및 수리 시기를 결정합니다.
-
* 현재 iSCSI 세션 상태를 원하는 iSCSI 세션 상태로 되돌리는 데 필요한 복구 수행 *
자가 치유 활동 로그는 trident-main 해당 Demonset POD의 컨테이너에 있습니다. 로그를 보려면 Astra Trident 설치 중에 "true"로 설정해야 debug 합니다.
|
Astra Trident iSCSI 자동 복구 기능을 사용하면 다음과 같은 문제를 방지할 수 있습니다.
-
네트워크 연결 문제가 발생한 후 발생할 수 있는 오래되거나 비정상적인 iSCSI 세션. 오래된 세션의 경우 Astra Trident는 로그아웃하기 7분 전에 대기하여 포털과의 연결을 다시 설정합니다.
예를 들어, 스토리지 컨트롤러에서 CHAP 암호를 회전시키고 네트워크에서 연결이 끊어지면 이전의 (stale) CHAP 암호가 지속될 수 있습니다. 자동 복구 기능은 이 문제를 인식하고 업데이트된 CHAP 암호를 적용하기 위해 세션을 자동으로 다시 설정할 수 있습니다. -
iSCSI 세션이 누락되었습니다
-
LUN이 없습니다
-
Trident 업그레이드 전에 고려해야 할 사항 *
-
23.04+에서 도입된 노드별 igroup만 사용 중인 경우, iSCSI 자동 복구가 SCSI 버스의 모든 장치에 대해 SCSI 재검색을 시작합니다.
-
백엔드 범위 igroup(23.04부터 더 이상 사용되지 않음)만 사용 중인 경우 iSCSI 자동 복구가 SCSI 버스에서 정확한 LUN ID에 대한 SCSI 재검색을 시작합니다.
-
노드당 igroup과 백엔드 범위 igroup이 함께 사용되고 있는 경우 iSCSI 자동 복구가 SCSI 버스에서 정확한 LUN ID에 대한 SCSI 재검색을 시작합니다.
iSCSI 도구를 설치합니다
운영 체제의 명령을 사용하여 iSCSI 도구를 설치합니다.
-
Kubernetes 클러스터의 각 노드에는 고유한 IQN이 있어야 합니다. * 이것은 필수 전제 조건입니다 *.
-
드라이버 및 Element OS 12.5 이전 버전과 함께 RHCOS 버전 4.5 이상 또는 기타 RHEL 호환 Linux 배포를 사용하는 경우
solidfire-san
에서 CHAP 인증 알고리즘을 MD5로 설정해야 합니다. 보안 FIPS 호환 CHAP/etc/iscsi/iscsid.conf
알고리즘 SHA1, SHA-256 및 SHA3-256은 Element 12.7에서 사용할 수 있습니다.sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
-
iSCSI PVS와 함께 RHEL/RedHat CoreOS를 실행하는 작업자 노드를 사용하는 경우
discard
인라인 공간 재확보를 수행하려면 StorageClass에 mount옵션을 지정합니다. 을 "RedHat 설명서"참조하십시오.
-
다음 시스템 패키지를 설치합니다.
sudo yum install -y lsscsi iscsi-initiator-utils sg3_utils device-mapper-multipath
-
iscsi-initiator-utils 버전이 6.2.0.874-2.el7 이상인지 확인합니다.
rpm -q iscsi-initiator-utils
-
스캔을 수동으로 설정합니다.
sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
-
다중 경로 설정:
sudo mpathconf --enable --with_multipathd y --find_multipaths n
etc/multipath.conf`아래 내용을 `defaults
포함해야find_multipaths no
합니다. -
iscsid`및 `multipathd
가 실행 중인지 확인합니다.sudo systemctl enable --now iscsid multipathd
-
활성화 및 시작
iscsi
:sudo systemctl enable --now iscsi
-
다음 시스템 패키지를 설치합니다.
sudo apt-get install -y open-iscsi lsscsi sg3-utils multipath-tools scsitools
-
open-iscsi 버전이 2.0.874-5ubuntu2.10 이상(bionic) 또는 2.0.874-7.1uubuttu6.1 이상(focal)인지 확인합니다.
dpkg -l open-iscsi
-
스캔을 수동으로 설정합니다.
sudo sed -i 's/^\(node.session.scan\).*/\1 = manual/' /etc/iscsi/iscsid.conf
-
다중 경로 설정:
sudo tee /etc/multipath.conf <<-'EOF defaults { user_friendly_names yes find_multipaths no } EOF sudo systemctl enable --now multipath-tools.service sudo service multipath-tools restart
etc/multipath.conf`아래 내용을 `defaults
포함해야find_multipaths no
합니다. -
및
multipath-tools
가 활성화되어 있고 실행 중인지open-iscsi
확인합니다.sudo systemctl status multipath-tools sudo systemctl enable --now open-iscsi.service sudo systemctl status open-iscsi
Ubuntu 18.04의 경우 iSCSI 데몬을 시작하기 전에 open-iscsi
에서 대상 포트를 검색해야iscsiadm
합니다. 또는 서비스가 자동으로 시작되도록iscsid
수정할 수iscsi
있습니다.
iSCSI 자동 복구를 구성하거나 사용하지 않도록 설정합니다
다음 Astra Trident iSCSI 자동 복구 설정을 구성하여 오래된 세션을 수정할 수 있습니다.
-
iscsi 자동 복구 간격: iSCSI 자동 복구가 호출되는 빈도를 결정합니다(기본값: 5분). 더 큰 숫자를 설정하여 더 적은 숫자를 설정하거나 더 자주 실행되도록 구성할 수 있습니다.
iSCSI 자동 복구 간격을 0으로 설정하면 iSCSI 자동 복구가 완전히 중지됩니다. iSCSI 자동 복구를 비활성화하는 것은 권장하지 않습니다. iSCSI 자동 복구가 의도된 대로 작동하지 않거나 디버깅 목적으로 작동하지 않는 특정 시나리오에서만 비활성화해야 합니다. |
-
* iSCSI 자동 복구 대기 시간 *: 비정상 세션에서 로그아웃하고 다시 로그인을 시도하기 전에 iSCSI 자동 복구 대기 시간을 결정합니다(기본값: 7분). 상태가 좋지 않은 것으로 확인된 세션이 로그아웃되기 전에 더 오래 대기해야 하고 다시 로그인하려고 시도하거나 더 적은 수의 숫자를 사용하여 이전에 로그아웃하도록 구성할 수 있습니다.
iSCSI 자동 복구 설정을 구성하거나 변경하려면 iscsiSelfHealingInterval
Helm 설치 또는 Helm 업데이트 중에 및 iscsiSelfHealingWaitTime
매개 변수를 전달합니다.
다음 예에서는 iSCSI 자동 복구 간격을 3분으로 설정하고 자동 복구 대기 시간을 6분으로 설정합니다.
helm install trident trident-operator-100.2406.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
iSCSI 자동 복구 설정을 구성하거나 변경하려면 iscsi-self-healing-interval
tridentctl 설치 또는 업데이트 중에 및 iscsi-self-healing-wait-time
매개 변수를 전달합니다.
다음 예에서는 iSCSI 자동 복구 간격을 3분으로 설정하고 자동 복구 대기 시간을 6분으로 설정합니다.
tridentctl install --iscsi-self-healing-interval=3m0s --iscsi-self-healing-wait-time=6m0s -n trident
NVMe/TCP 볼륨
운영 체제의 명령을 사용하여 NVMe 툴을 설치합니다.
|
sudo yum install nvme-cli sudo yum install linux-modules-extra-$(uname -r) sudo modprobe nvme-tcp
sudo apt install nvme-cli sudo apt -y install linux-modules-extra-$(uname -r) sudo modprobe nvme-tcp
설치를 확인합니다
설치 후 명령을 사용하여 Kubernetes 클러스터의 각 노드에 고유한 NQN이 있는지 확인합니다.
cat /etc/nvme/hostnqn
Astra Trident은 이 값을 수정하여 ctrl_device_tmo NVMe가 중단되어도 NVMe가 중단되지 않도록 합니다. 이 설정을 변경하지 마십시오.
|