PowerFlex:vSphere上のRDMを使用するクラスタ化されたアプリケーションのSDCからNVMe/TCPへの変換
概要: VMFSデータストアにクラスター化されたVMDKが導入されて以来、Windows Serverフェールオーバー クラスター(WSFC)などのアプリケーションでは、SCSI-3永続予約(SCSI3-PR)を使用するためにRAWデバイス マッピング(RDM)が不要になりました。このため、BroadcomはNVMeoFプロトコルのRDMサポートを提供していません。SDCでRDMを使用しており、NVMe/TCPへの移行を希望するお客様は、これらのディスクを、クラスタ化されたVMDKプロパティを持つVMFSデータストア上のVMDKに変換する必要があります。この変換はStorage vMotionでは実行できないため、WSFCなどのアプリケーションではダウンタイムが発生します。 この KB では、WSFC 変換を大まかに実行する方法について説明します。また、Oracle RACはSCSI3-PRを必要としませんが、Oracle RAC環境をRDMからNVMe/TCP上の共有VMDKに変換する方法についても説明します。Oracle RACはSDCベースのVMFSデータストア上で実行できますが、PowerFlexはSDCベースのVMFS上のクラスタ化されたVMDKをサポートしていないため、SCSI3-PR依存のアプリケーションはその構成を使用できません。Oracle RACの説明も概要です。 ...
手順
このKBは以下に適用されます。
- PowerFlex 5.0システムでSDCからNVMe/TCPに移行するお客様
- ディスク用のマルチライターまたは共有物理SCSIバス コントローラーを備えたRDMを使用するVMware vSphere 8.0U3および9.x環境
- Oracle RACクラスター
- Windows Serverフェールオーバー クラスタリング(以下を含む):
- SQL Serverフェールオーバー クラスター
- ファイル サーバー クラスター
- クラスター クォーラム ディスク
サポート:
Dellでは、クラスタ化されたVMDKを使用する場合のこれらの手順について、次のバージョンをサポートしています。
- ESXiバージョン8.0U3および9.x
- これらのバージョンでは、PowerFlex 5.0でのNVMe/TCPクラスター化されたVMDKがサポートされています。
- PowerFlex 5.0
- PowerFlex 4.xはサポートされていません
Oracle RACを変換するときに、クラスタ化されたVMDKを使用していない場合は、PowerFlex 4.xがサポートされます。
概要
この記事では、NVMe/TCPデータストア上の既存のSDC、RDMベースのアプリケーション クラスターを共有VMDKに変換するためにサポートされているベスト プラクティス アプローチについて説明します。変換方法は、アプリケーション要件によって異なります。それに応じて計画を立てます。Dellは、このKBのユーザーが対象テクノロジーに熟達していることを求めます。したがって、ステップは高レベルであり、構文が含まれることはめったにありません。
ここでは、RDMの主な2つのユース ケースについて説明します。
- Oracle RACでの物理RDMとマルチライターの使用
- SCSI3-PR用の物理RDMを使用したWindows Serverフェールオーバー クラスタリング(WSFC)
VMware VMの仮想ストレージ コントローラーには、先に進む前に理解しておくべき重要な概念があります。これらのコントローラーは、仮想ディスクをVMに接続する役割を担います。仮想コントローラーは、基盤となるデータストアで使用される物理ストレージ プロトコルに関連付けられていません。たとえば、デフォルトのコントローラーは「SCSI」とラベル付けされていますが、完全に仮想であり、その下で使用される物理ストレージ トランスポートを反映したり制限したりすることはありません。この抽象化のため、ストレージ プロトコルがSCSIかNVMeoFかに関係なく、仮想SCSIコントローラーとNVMeコントローラーのどちらを使用してVMDKを接続しても機能に違いはありません。実際には、VMwareでは、ほとんどのワークロードで安定性が高く、パフォーマンスが向上する傾向があるため、VMware準仮想化(PVSCSI)タイプのストレージに関係なくSCSIコントローラーを使用することを推奨しています。ただし、必要に応じてNVMeコントローラーを使用できます。
1.Oracle RAC: RDMからVMDKへの変換
一部のOracle RAC環境では、RDMを使用して、VMDKではなく、データファイルまたはASMディスク グループ用の共有ストレージを提供します。これらのセットアップをオンラインで変換することは可能ですが、一部の方法ではダウンタイムが必要です。RDMベースとASMの両方に対応しています。
1.1 ASMを使用しないRAC
Oracle Automatic Storage Management (ASM)を使用していない場合は、次のいずれかの方法を使用してオンラインで変換できます。
オプション A — オンライン データファイル移行
- 新しい共有VMDKを作成します。
- NVMe/TCP上のVMFSデータストア(クラスタ化されたVMDKプロパティは不要)
- シック プロビジョニングEager Zeroed (EZT)
- マルチライターが有効
- VMDKをすべてのRACノードに接続します。
- VMDKを使用して新しいデータファイルを追加します。
- RDMベースのデータファイルからVMDKベースのデータファイルにデータを移行します。
- 元のRDMベースのデータファイルを削除します。
- crsctl/ocrconfigを使用してクラスターウェアを移動します。
このアプローチによりダウンタイムは回避されますが、テーブルスペース レベルまたはオブジェクト レベルでデータの移動が必要になる場合があり、時間がかかる場合があります。
オプションB:ASMに変換(推奨)
ASMへの変換は、長期的なストレージ管理をシンプルにし、戦略的な最終状態として推奨されます。
サポートされている2つのアプローチがあります。
- ASMディスク グループへのオンライン移行
- BACKUP AS COPY DATABASEを使用するRMAN
- 短時間のシステム停止が必要
- 大規模なデータベースをより高速かつ安全に
- 本番システムに一般的に推奨
1.2 すでにASMを使用しているRAC
ASMを使用している場合、RDMの交換は簡単で、オンラインです。
- 新しい共有VMDKを作成します。
- NVMe/TCP上のVMFSデータストア(クラスタ化されたVMDKプロパティは不要)
- シックプロビジョニング(Eager Zeroed)
- マルチライターが有効
- VMDKをASMディスク グループに追加します。
- ASMの再バランシングを完了させます。
- RDMによってバックアップされるASMディスクをドロップします。
- crsctl/ocrconfigを使用してクラスターウェアを移動します。
このプロセスでは、アプリケーションのダウンタイムは発生せず、リスクも最小限に抑えられます。
2.Wsfc:RDMからVMDKへの変換
⚠️ 重要:クラスターの安定性を維持するために、WSFC 移行を一度に 1 つのディスクで実行します。この例は、2ノード クラスターです。
2.1 前提条件(必須)
VMwareの要件
- クラスター化されたVMDKをサポートするVMハードウェア バージョン
- NVMe/TCP上のVMFSデータストア
- クラスター化されたVMDK機能の有効化
- シック プロビジョニングEager Zeroedディスク
- クラスターVMにスナップショットがありません
- Storage DRSが無効になっています
WSFC の要件
- クラスターの正常性
- クラスター検証がクリーン(警告は許容可能)
- 各ディスクに1つの所有ノードがあります
2.2 新しい共有VMDKの作成
RDMディスクごとに、次の手順を実行します。
- NVMe/TCPデータストアで新しいVMDKを作成します(クラスタ化されたVMDKが必要)。
- 同じまたはそれより大きいサイズ
- シックプロビジョニング(Eager Zeroed)
- VMDKを両方のクラスター ノードに接続します。
- 同じSCSIコントローラー タイプ(PVSCSIを推奨)
- 同じコントローラー番号
- 同じSCSI ID
- SCSI物理バス共有の有効化
2.3 ディスクの準備(所有者ノードのみ)
現在所有しているノードで、次の手順を実行します。
- 新しいディスクをオンラインにします。
- GPTとして初期化します。
- NTFSを128KBでフォーマットします。
- 一時ドライブ文字を割り当てます。
セカンダリー ノードで、ディスクをオフラインのままにします。
2.4 データの移行(ディスク単位)
SQL Serverデータ ディスクの例:
- 所有ノードへのSQLロールを失敗させます。
- 古いRDMを使用してSQLリソース(SQL Server)を停止し、ディスクをオンラインに保ちます。
- robocopyを使用してデータをコピーします(RはRDM、Vは新しいVMDK)。
- robocopy R:\V:\/MIR /COPYALL /DCOPY:T /R:0 /W:0
- データの整合性を検証します。
- 新しいディスクに古い文字が含まれるようにドライブ文字を変更します。
- 新しいディスクを参照するようにクラスター リソースの依存関係を更新します。
- リソースをオンラインにする。
- テストする別のノードに所有権を移動します。
- 完了したら、古いディスク(RDM)への依存関係を削除します。
- 各データ ディスクについて繰り返します
このプロセスを次の順番で繰り返します。
- ログ ディスク
- 温度
2.5 クラスター ディスク リソースの交換
検証後:
- クラスターの役割から古いRDMディスクを削除します。
- 新しいVMDKディスクをロールに追加します。
- 所有権と依存関係を確認します。
- テストする別のノードに所有権を移動します。
2.6 クォーラムディスクの移行 (使用中の場合)
偶発的なクラスターの停止を防ぐには、次の手順を実行します。
- クォーラムを一時的にディスクではなくノード マジョリティに切り替えます。
- Set-ClusterQuorum -NodeMajority
- セクション 2.3 に従って、新しいディスクを追加します。
- UIでディスクをクラスターに追加するか、PSでAdd-ClusterDiskを実行します。
- UIで新しいディスクをクォーラムとして設定するか、 Set-ClusterQuorum -DiskWitness "Cluster Disk X"を設定します
- オフラインにして、RDMディスクを削除します。
3 RDMの削除
いずれかのユース ケースで検証が成功した場合にのみ、次のようになります。
- 両方のVMからRDMマッピングを削除します。
- ESXiホストからLUNを接続解除します。
- PowerFlex Managerでボリュームをアンマップします。
4 よくある問題
- EZTディスク使用の失敗
- ここで取り上げるクラスター化されたソリューションにはEZTが必要です。thinまたはzeroedthickはサポートされていません
- コントローラー構成が一致しません。以下の不整合があると、ディスクがクラスター内で正常に機能しなくなります。
- 同じSCSIコントローラー タイプ
- 同じコントローラー番号
- 同じSCSI ID
- 各VMDKの各VM(ノード)でOracle EZT vmdkにマルチライターを設定できない
- WSFCのコントローラーでSCSI物理バス共有を設定できない
4.1 構成サポート
|
Configuration |
サポート |
注 |
|
VMFS上の共有VMDK(マルチライター) |
✅ サポート |
Oracle RACの推奨終了状態 |
|
シック プロビジョニングEager Zeroed (EZT) |
✅ サポート |
クラスタ化されたディスクの場合は必須 |
|
SCSI物理バス共有を備えたPVSCSIコントローラー |
✅ サポート |
クラスタ化されたVMDK上のWSFCに必要 |
|
SCSI物理バス共有を使用する物理RDM |
✅ サポート対象(レガシー) |
推奨されなくなりました |
|
NVMe/TCPを使用した物理RDM |
❌ サポート対象外 |
Unavailable(使用不可) |
|
シンまたはレイジー ゼロのVMDK |
❌ サポート対象外 |
クラスター ディスクの不安定性 |
|
クラスターVM上のスナップショット |
❌ サポート対象外 |
削除 |
|
クラスタ化された VM 上の Storage DRS |
❌ サポート対象外 |
クラスター ワークロードに対して無効にする |
|
RDMとVMDKの混在(一時的に) |
✅ サポート |
移行時のみ |
|
共有VMDKのStorage vMotion |
❌ サポート対象外 |
複数のVMに接続されている場合 |
その他の情報
追加ドキュメントのリンク(順不同):
https://learn.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver17
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
https://knowledge.broadcom.com/external/article/313472/microsoft-windows-server-failover-cluste.html
https://www.vmware.com/docs/vmw-vmdk-whitepaper-mmt
https://learn.microsoft.com/windows-server/administration/windows-commands/robocopy