3.2. etcd を別のディスクに移動する
etcd を共有ディスクから別のディスクに移動して、パフォーマンスの問題を防止または解決できます。
Machine Config Operator (MCO) は、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
# lsblkCopy 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>は、ブロックデバイスタイプのシェル 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.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のような内容を含む
etcd-mc.ymlという名前のMachineConfigYAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<encoded_etcd_find_secondary_device_script>を、メモしておいたエンコードされたスクリプトの内容に置き換えます。
作成した
MachineConfigYAML ファイルを適用します。oc create -f etcd-mc.yml
$ oc create -f etcd-mc.ymlCopy 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/mountsCopy 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 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow