ワーカーノードを準備します
Kubernetesクラスタ内のすべてのワーカーノードが、ポッド用にプロビジョニングしたボリュームをマウントできる必要があります。ワーカーノードを準備するには、ドライバの選択に基づいて、NFS、iSCSI、またはNVMe/TCPのいずれかのツールをインストールする必要があります。
適切なツールを選択する
ドライバを組み合わせて使用している場合は、ドライバに必要なすべてのツールをインストールする必要があります。最新バージョンのRedHat CoreOSには、デフォルトでツールがインストールされています。
"NFSツールのインストール" を使用している場合: ontap-nas
、 ontap-nas-economy
、 ontap-nas-flexgroup
、 azure-netapp-files
、 gcp-cvs
。
"iSCSIツールをインストール" を使用している場合: ontap-san
、 ontap-san-economy
、 solidfire-san
。
"NVMeツールをインストールする" を使用している場合 ontap-san
Non-Volatile Memory Express(NVMe)over TCP(NVMe/TCP)プロトコルの場合。
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がiSCSIの自己修復機能を5分ごとに実行し、以下を実現します。
-
*希望するiSCSIセッションの状態と現在のiSCSIセッションの状態を識別します
-
*希望する状態と現在の状態を比較して、必要な修理を特定します。Astra Tridentが、修理の優先順位と、修理に先手を打つタイミングを判断
-
*現在のiSCSIセッションの状態を希望するiSCSIセッションの状態に戻すために必要な修復*を実行します。
自己回復アクティビティのログはにあります trident-main 各Demonsetポッドにコンテナを配置します。ログを表示するには、を設定しておく必要があります debug Astra Tridentのインストール中に「true」に設定。
|
Astra Tridentの自動修復機能は、次のような問題を防止します。
-
ネットワーク接続問題 後に発生する可能性がある古いiSCSIセッションまたは正常でないiSCSIセッション。古いセッションの場合、Astra Tridentは7分待機してからログアウトし、ポータルとの接続を再確立します。
たとえば、ストレージコントローラでCHAPシークレットがローテーションされた場合にネットワークが接続を失うと、古い(stale)CHAPシークレットが保持されることがあります。自己修復では、これを認識し、自動的にセッションを再確立して、更新されたCHAPシークレットを適用できます。 -
iSCSIセッションがありません
-
LUNが見つかりません
iSCSIツールをインストール
使用しているオペレーティングシステム用のコマンドを使用して、iSCSIツールをインストールします。
-
Kubernetes クラスタ内の各ノードには一意の IQN を割り当てる必要があります。* これは必須の前提条件です * 。
-
RHCOSバージョン4.5以降またはRHEL互換のその他のLinuxディストリビューションをで使用している場合は、を使用します
solidfire-san
DriverおよびElement OS 12.5以前。CHAP認証アルゴリズムがMD5 inに設定されていることを確認します/etc/iscsi/iscsid.conf
。Element 12.7では、FIPS準拠のセキュアなCHAPアルゴリズムSHA1、SHA-256、およびSHA3-256が提供されています。sudo sed -i 's/^\(node.session.auth.chap_algs\).*/\1 = MD5/' /etc/iscsi/iscsid.conf
-
iSCSI PVSを搭載したRHEL / RedHat CoreOSを実行するワーカーノードを使用する場合は、を指定します
discard
StorageClassのmountOptionを使用して、インラインのスペース再生を実行します。を参照してください "Red Hat のドキュメント"。
-
次のシステムパッケージをインストールします。
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
が含まれますfind_multipaths no
の下defaults
。 -
を確認します
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.1ubuntu6.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
が含まれますfind_multipaths no
の下defaults
。 -
を確認します
open-iscsi
およびmultipath-tools
有効になっていて実行中:sudo systemctl status multipath-tools sudo systemctl enable --now open-iscsi.service sudo systemctl status open-iscsi
Ubuntu 18.04の場合は、ターゲットポートをで検出する必要があります iscsiadm
開始する前にopen-iscsi
iSCSIデーモンを開始します。または、を変更することもできますiscsi
サービスを開始しますiscsid
自動的に。
iSCSI自己回復の設定または無効化
次のAstra TridentのiSCSI自己修復設定を使用して、古いセッションを修正できます。
-
* iSCSIの自己修復間隔*:iSCSIの自己修復を実行する頻度を指定します(デフォルト:5分)。小さい数値を設定することで実行頻度を高めるか、大きい数値を設定することで実行頻度を下げることができます。
iSCSIの自己修復間隔を0に設定すると、iSCSIの自己修復が完全に停止します。iSCSIの自己修復を無効にすることは推奨しません。iSCSIの自己修復が意図したとおりに機能しない、またはデバッグ目的で機能しない特定のシナリオでのみ無効にする必要があります。 |
-
* iSCSI自己回復待機時間*:正常でないセッションからログアウトして再ログインを試みるまでのiSCSI自己回復の待機時間を決定します(デフォルト:7分)。健全でないと識別されたセッションがログアウトされてから再度ログインしようとするまでの待機時間を長くするか、またはログアウトしてログインしてからログインするまでの時間を短くするように設定できます。
iSCSIの自己修復設定を構成または変更するには、 iscsiSelfHealingInterval
および iscsiSelfHealingWaitTime
helmのインストール中またはhelmの更新中のパラメータ。
次の例では、iSCSIの自己修復間隔を3分、自己修復の待機時間を6分に設定しています。
helm install trident trident-operator-100.2402.0.tgz --set iscsiSelfHealingInterval=3m0s --set iscsiSelfHealingWaitTime=6m0s -n trident
iSCSIの自己修復設定を構成または変更するには、 iscsi-self-healing-interval
および iscsi-self-healing-wait-time
tridentctlのインストールまたは更新中のパラメータ。
次の例では、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がダウンしてもパスを諦めないようにするための値。この設定は変更しないでください。
|