Red Hat OpenShift VirtualizationでのVMに関するベストプラクティスの推奨事項
作成者:Banu Sundhar、NetApp
このセクションでは、新しいVMを導入する場合、またはVMware vSphereからOpenShift Container PlatformのOpenShift Virtualizationに既存のVMをインポートする場合に考慮する必要があるさまざまな要因について説明します。
VM パフォーマンス
OpenShift Virtualizationで新しいVMを作成する場合は、アクセスパターンと、VMで実行されるワークロードのパフォーマンス(IOPSとスループット)要件を考慮する必要があります。これは、OpenShift ContainerプラットフォームのOpenShift仮想化で実行する必要があるVMの数と、VMディスクに使用するストレージの種類に影響します。
VMディスク用に選択するストレージのタイプは、次の要因によって決まります。
-
ワークロードのデータアクセスに必要なプロトコルアクセス
-
必要なアクセスモード(RWOとRWX)
-
ワークロードに必要なパフォーマンス特性
詳細については、後述の「ストレージ構成」の項を参照してください。
VMワークロードの高可用性
OpenShift Virtualizationは、VMのライブマイグレーションをサポートしています。ライブマイグレーションでは、ワークロードを中断することなく、実行中の仮想マシンインスタンス(VMI)を別のノードに移動できます。移行は、クラスタのアップグレード中や、メンテナンスや構成変更のためにノードを取り外す必要があるときに、スムーズに移行するのに役立ちます。ライブマイグレーションでは、ReadWriteMany(RWX)アクセスモードを提供する共有ストレージソリューションを使用する必要があります。VMディスクは、RWXアクセスモードを提供するストレージオプションでバックアップする必要があります。OpenShift Virtualizationは、VMIがライブマイグレーション可能であることを確認し、可能であれば、 evictionStrategyは LiveMigrate**に設定されます。詳細は、を参照してください "Red Hatドキュメントのライブマイグレーションのセクションについて" 。
-
RWX**アクセスモードをサポートするドライバを使用することが重要です。RWXアクセスモードをサポートするONTAPドライバの詳細については、後述の「ストレージ構成」の項を参照してください。
ストレージ構成
Trident CSIプロビジョニングツールには、NetAppストレージオプションを使用してストレージをプロビジョニングするための複数のドライバ(NAS、NASエコノミー、NAS FlexGroup、SAN、SANエコノミー)が用意されています。
使用プロトコル: NASドライバはNASプロトコル(NFSおよびSMB)を使用します* SANドライバはiSCSIまたはNVMe/TCPプロトコルを使用します
ワークロードの要件とストレージ利用率に基づいてストレージ構成をどのようにするかを決定するには、次の点に注意してください。
-
NAS ドライバは、1つのFlexVolume上に1つの永続ボリューム(PV)を作成します。
-
NASエコノミードライバは、共有FlexVolume上のqtreeにPVを1つ作成します。(200 PVSごとに1つのFlexVolume、50~300の間で設定可能)
-
NAS - FlexGroup ドライバが1つのFlexGroup上の1つのPVに作成
-
SANドライバが専用のFlexVol上のLUNに1つのPVを作成
-
SANエコノミードライバは、共有FlexVolume上のLUNに1つのPVを作成します(100 PVSごとに1つのFlexVolume、50~200の間で構成可能)。
次の図にこれを示します。
また、ドライバでサポートされているアクセスモードも異なります。
-
ONTAP NASドライバのサポート**
-
ファイルシステムアクセスおよびRWO、ROX、RWX、RWOPアクセスモード。
-
-
ONTAP SANドライバは'rawブロックモードとファイル・システム・モードをサポート**
-
rawブロックモードでは、RWO、ROX、RWX、RWOPアクセスモードをサポートできます。
-
ファイルシステムモードでは、RWOおよびRWOPアクセスモードのみが許可されます。
-
OpenShift仮想化仮想マシンのライブマイグレーションでは、ディスクにRWXアクセスモードが必要です。そのため、ONTAPでバックアップされたPVCおよびPVSを作成するには、rawブロックボリュームモードでNASドライバまたはSANドライバを選択することが重要です。
ストレージ構成のベストプラクティス
専用Storage Virtual Machine(SVM)
Storage Virtual Machine ( SVM )を使用すると、 ONTAP システムのテナントを分離し、管理者が分離できます。SVMをOpenShiftコンテナとOpenShift仮想化VM専用にすると、Privilegesの委譲が可能になり、リソース消費を制限するためのベストプラクティスを適用できます。
SVM上の最大ボリューム数を制限する
Trident がストレージシステム上の使用可能なボリュームをすべて消費しないようにするには、 SVM に制限を設定する必要があります。コマンドラインから実行できます。
vserver modify -vserver <svm_name> -max-volumes <num_of_volumes>
max-volumesの値は、個 々 のONTAPノードではなく、ONTAPクラスタ内のすべてのノードでプロビジョニングされたボリュームの合計です。その結果、 ONTAP クラスタノードの Trident でプロビジョニングされたボリュームの数が、別のノードよりもはるかに多い、または少ない場合があります。これを回避するには、Tridentで使用するSVMに、クラスタ内の各ノードから同数のアグリゲートを割り当てる必要があります。
Tridentで作成されるボリュームの最大サイズを制限
ONTAPでは、SVM単位で最大ボリュームサイズを設定できます。
-
vserver createコマンドを使用してSVMを作成し、ストレージの上限を設定します。
vserver create -vserver vserver_name -aggregate aggregate_name -rootvolume root_volume_name -rootvolume-security-style {unix|ntfs|mixed} -storage-limit value
-
既存のSVMのストレージ制限を変更するには、次の手順を実行します。
vserver modify -vserver vserver_name -storage-limit value -storage-limit-threshold-alert percentage
ストレージ制限は、データ保護ボリュームを含むSVM、SnapMirror関係にあるボリューム、またはMetroCluster構成には設定できません。 |
ストレージアレイでボリュームサイズを制御するだけでなく、 Kubernetes の機能も利用する必要があります。
-
Tridentで作成できるボリュームの最大サイズを設定するには、backend.json定義で limitVolumeSizeパラメータを使用します。
-
ONTAP SAN-EconomyドライバおよびONTAP NAS-Economyドライバのプールとして使用されるFlexVolの最大サイズを設定するには、backend.json定義で limitVolumePoolSizeパラメータを使用します。
SVM QoSポリシーを使用
SVMにサービス品質(QoS)ポリシーを適用して、プロビジョニングされたTridentボリュームで消費されるIOPSの数を制限します。これにより、Tridentでプロビジョニングされたストレージを使用するワークロードがTrident SVMの外部のワークロードに影響を与えるのを防ぐことができます。
ONTAP QoSポリシーグループは、ボリュームのQoSオプションを提供し、ユーザが1つ以上のワークロードのスループットの上限を定義できるようにします。QoSポリシーグループの詳細については、を参照してください。"ONTAP 9.15 QoS コマンド"
ストレージリソースへのアクセスをKubernetesクラスタメンバーに制限
ネームスペースの使用 Tridentで作成されたNFSボリュームおよびiSCSI LUNへのアクセスの制限は、Kubernetes環境のセキュリティ体制の重要な要素です。これにより、 Kubernetes クラスタに属していないホストがボリュームにアクセスしたり、データが予期せず変更されたりすることを防止できます。
また、コンテナ内のプロセスは、ホストにマウントされたストレージにアクセスできますが、コンテナ用ではありません。ネームスペースを使用してリソースの論理境界を設定すると、この問題を回避できます。ただし、
ネームスペースは Kubernetes のリソースの論理的な境界であることを理解することが重要です。そのため、必要に応じて名前空間を使用して分離することが重要です。ただし、特権コンテナは通常よりも大幅に多くのホストレベルの権限で実行されます。そのため、を使用してこの機能を無効にし"ポッドセキュリティポリシー"ます。
専用のエクスポートポリシーを使用専用のインフラストラクチャノードまたはユーザーアプリケーションをスケジュールできないその他のノードを持つOpenShift環境では、別のエクスポートポリシーを使用して、ストレージリソースへのアクセスをさらに制限する必要があります。これには、これらのインフラノードに導入されているサービス( OpenShift Metrics サービスや Logging サービスなど)のエクスポートポリシーの作成と、非インフラノードに導入されている標準アプリケーションの作成が含まれます。
Tridentはエクスポートポリシーを自動的に作成、管理できます。これにより、 Trident はプロビジョニング対象のボリュームへのアクセスを Kubernetes クラスタ内のノードに制限し、ノードの追加や削除を簡易化します。
ただし、エクスポートポリシーを手動で作成する場合は、各ノードのアクセス要求を処理する1つ以上のエクスポートルールをそのポリシーに入力します。
アプリケーションSVMのshowmountを無効にする Kubernetesクラスタに導入されたポッドは、データLIFに対してshowmount -eコマンドを発行し、使用可能なマウント(アクセスできないマウントも含む)のリストを受け取ることができます。これを回避するには、次のCLIを使用してshowmount機能を無効にします。
vserver nfs modify -vserver <svm_name> -showmount disabled
ストレージ構成とTridentの使用に関するベストプラクティスの詳細については、"Trident のドキュメント" |
OpenShift Virtualization - Tuning & Scaling Guide
Red Hatは文書化してい"OpenShiftクラスタの拡張に関する推奨事項と制限事項"ます。
さらに"OpenShift仮想化チューニングガイド"、およびも文書化されてい"OpenShift仮想化4.xでサポートされる制限"ます。
上記のコンテンツにアクセスするには、アクティブなRed Hatサブスクリプションが必要です。 |
チューニングガイドには、次のような多くのチューニングパラメータに関する情報が記載されています。
-
複数のVMを一度または大量に作成するためのパラメータの調整
-
VMのライブマイグレーション
-
ワークロードタイプを含めることによるVMテンプレートのカスタマイズ
サポートされる制限は、OpenShiftでVMを実行した場合のテスト対象オブジェクトの最大数を記載したものです。
仮想マシンの最大数
-
VMあたりの仮想CPUの最大数
-
VMあたりの最大メモリと最小メモリ
-
VMあたりの最大ディスクサイズ
-
VMあたりのホットプラグ可能ディスクの最大数
同時ライブマイグレーションを含むホストの最大数(ノード単位およびクラスタ単位)
クラスタの最大数定義済みVMの最大数
VMware環境からのVMの移行
Migration Toolkit for OpenShift Virtualizationは、Red Hatが提供するオペレータで、OpenShift Container PlatformのOperatorHubから入手できます。このツールを使用して、vSphere、Red Hat Virtualization、OpenStack、OpenShift VirtualizationからVMを移行できます。
vSphereからのVMの移行の詳細については、"ワークフロー Red Hat OpenShift Virtualization with NetApp ONTAP"
CLIまたはMigration Webコンソールから、さまざまなパラメータの制限を設定できます。いくつかのサンプルを以下に示します。
-
Max concurrent virtual machine migrations(仮想マシンの最大同時移行)同時に移行できる仮想マシンの最大数を設定します。デフォルト値は20台の仮想マシンです。
-
Precopy interval (minutes)ウォーム移行を開始する前に、新しいスナップショットが要求される間隔を制御します。デフォルト値は60分です。
-
スナップショットポーリング間隔(秒)は、oVirtウォーム移行中にスナップショットの作成または削除のステータスをシステムがチェックする頻度を決定します。デフォルト値は10秒です。
同じ移行計画でESXiホストから10個を超えるVMを移行する場合は、ホストのNFCサービスメモリを増やす必要があります。そうしないと、NFCサービスメモリの並列接続数が10に制限されるため、移行が失敗します。詳細については、Red Hatのドキュメントを参照してください。"ESXiホストのNFCサービスメモリの拡張"
ここでは、仮想化向け移行ツールキットを使用して、vSphereの同じホストからOpenShift仮想化に10台のVMを並行して移行する方法を紹介します。
同じESXiホスト上のVM
-
VMwareから10台のVMを移行するためのプランが最初に作成されます**
移行計画の実行が開始されました
-
10台すべてのVMが正常に移行されました**
-
10台すべてのVMがOpenShift Virtualizationで実行中の状態にある**