Hyper-VホストがワークグループでもSQL Server FCIは構築できる?共有ストレージ設計と手順(Windows Server 2022)

Hyper-Vホストをセキュリティ要件でワークグループ運用にしつつ、ゲストVMはAD参加してSQL Server FCIを組みたい──この要件は実現できます。鍵は「ホストの可用性」と「ゲスト内WSFC/FCI」を分け、共有ストレージの渡し方を正しく選ぶことです。

目次

結論:ホストがワークグループでも、ゲストVM(AD参加)でSQL Server FCIは構成できる

結論から言うと、Hyper-Vホストがワークグループでも、ゲストVMをActive Directory(AD)に参加させてSQL Server Failover Cluster Instance(FCI)を構成すること自体は可能です。ホストがADに参加していないことは、ゲストOSのドメイン参加や、ゲストOS内で動くWindows Server Failover Clustering(WSFC)の成立条件にはなりません。

不安になりやすいのは「共有ストレージをどうやってゲストに渡すか」です。ここを押さえると、設計の迷いが一気に減ります。

まず整理:今回の「クラスタ」は2階層で別物

今回の構成は、実は“ホスト側の可用性”と“ゲスト側のアプリ可用性(SQL FCI)”の2つを同時に考える必要があります。混ぜて考えると「ホストがワークグループだからダメなのでは?」となりがちなので、役割で切り分けます。

層何を守るか技術要素AD参加の必須性今回の要件との関係
ホスト層VMそのもの(移動・再起動・再配置)Hyper-V / (必要なら)ホスト側Failover Cluster / CSV構成次第(後述)セキュリティ要件でワークグループ運用にしたい
ゲスト層SQL Serverインスタンス(FCI)ゲストOS内WSFC + 共有ストレージ + SQL Server FCI一般に必須(FCIの名前解決・認証)ゲストVMはAD参加できる前提

ポイントは、ゲスト層のWSFC/FCIが必要とするのは「ゲスト同士でのAD認証」と「両ノードから見える共有ストレージ」であり、ホストがAD参加かどうかは本質ではありません。

「共有ボリュームをVMに渡せるか?」は、渡し方を選べば解決する

HP MSAのようなFibre Channel(FC)共有ストレージがある場合、共有ディスクをゲストVMに渡す方法は複数あります。大きく分けると次の3パターンです。

方法共有ディスクの見え方ホスト側クラスタの要否向いているケース注意点
Virtual Fibre Channel(vFC)VMがFC-SANに直接接続(LUNがVMに見える)不要(VM可用性まで狙うなら別途検討)FC-SANがあり、NPIVが使える。構成を素直にしたいHBA/SAN/ゾーニング設計、ゲスト内MPIOが重要
ゲストOS内iSCSIVMがiSCSIターゲットへ接続(LUNがVMに見える)不要ストレージがiSCSI提供できる/ネットワーク分離できるネットワーク設計がシビア(MTU/帯域/冗長)
ホスト側CSV上のVHD Set(.vhds)を共有VMが“共有仮想ディスク”を共有(ゲストからは共有ディスク)通常は必要物理LUNをVMへ直接渡せない/運用をHyper-V側で完結したいホストクラスタの設計・サポート範囲に注意

このうち、FC接続のHP MSAを使ってSQL FCIを組むなら、まず検討したいのはVirtual Fibre Channel(vFC)です。Hyper-Vの仮想FCは、VMからSANへ直接接続でき、ゲストOS内で共有ストレージを使ったクラスタリングが可能になります。

推奨パターン:Virtual Fibre Channelで「VMにLUNを直接提示」してSQL FCIを組む

ワークグループ運用のホストでも実現しやすく、構造も分かりやすいのがこのパターンです。ホスト側はあくまでHyper-VとしてVMを動かし、共有ディスクはゲストがSANから直接受け取ります。結果として、「ホストのAD参加有無」と「SQL FCIの共有ストレージ」が切り離され、セキュリティ要件とも両立しやすくなります。

Virtual Fibre Channelの前提条件(ここが満たせれば強い)

  • Hyper-VホストにFC HBAが搭載され、仮想FCに対応したドライバであること
  • SAN側がNPIV(N_Port ID Virtualization)に対応していること
  • VMのゲストOSがWindows Server 2012以降で、仮想FCアダプターをサポートすること

Microsoftのドキュメントでも、仮想FCにはNPIV対応SANや対応HBAなどの前提が示されています。

構成イメージ

(物理)Hyper-V Host A(WG)      (物理)Hyper-V Host B(WG)
         |   \\                        //   |
         |    \\  FC Fabric 1/2       //    |
         |     \\                  //       |
         +------ HP MSA(FC-SAN:共有LUN)------+
                 |                    |
          (VM)SQL01(AD参加)   (VM)SQL02(AD参加)
                 |  vFC×2            |  vFC×2
                 +---- 共有LUN(Data/Log/TempDB/Quorum 等) ----+
                 (ゲスト内WSFC) → (SQL Server FCI)

手順の全体像(ホスト側→SAN→ゲスト側)

  1. ホスト側で仮想SAN(Virtual SAN)を定義し、VMに仮想FCアダプターを付与する
    • 可能なら各SQL VMに仮想FCアダプターを2本(冗長)
    • WWNは自動生成でもよいが、運用を考えると固定(静的WWN)で管理した方がトラブルシュートしやすい
  2. SAN側でゾーニング/マスキングを行い、VMのWWNに対してLUNを割り当てる
    • 「ホストの物理WWN」ではなく「VMの仮想WWN」に対して割り当てる点が重要
    • SQL用LUN(Data/Log/TempDB/Quorumなど)を用途別に分けると、I/Oの性質が違うものを分離できる
  3. ゲストOSでMPIOを構成し、共有LUNを認識させる
    • FC-SANの冗長パス前提なら、MPIOを入れないと「片系断」でストレージが落ちたように見える
    • クラスタ用途では、ストレージスタック(HBA/ドライバ/MPIO等)をノード間で揃えるのが基本
    Failover Clusteringの要件としても、Fibre Channel利用時はMPIOやHBA/ドライバ/ファームウェアをノード間で揃える推奨が示されています。
  4. ゲストVM同士でWSFC(Windows Server Failover Cluster)を作成し、共有ディスクをクラスタディスクとして追加
    • クラスタ検証(Validate Configuration)は必ず実施し、ストレージ/ネットワークの警告を潰す
    • 2ノード構成ではクォーラム(ウィットネス)設計が安定性に直結する
  5. SQL Server FCIをインストール(1台目で新規、2台目でノード追加)
    • FCIはWSFCのリソースグループとして動作し、ネットワーク名・IP・共有ディスクなどを束ねてフェールオーバーします
    • 共有ストレージは、iSCSI/FCなどのクラスタディスクやSMBファイル共有など幅広い方式がサポートされます
    FCIは共有ストレージを前提とし、FCやiSCSI等のクラスタディスク、SMBファイル共有などを利用できることがSQL Serverドキュメントでも示されています。

ゲスト側WSFC/FCIで「ここだけは外さない」設計ポイント

項目推奨理由
IPアドレス静的IPFCIはDNS登録と接続継続性が重要。DHCPは運用上の不確実性が増える
共有ディスクの分割Data/Log/TempDB/Quorumを分けるI/O特性が違うため、性能・障害切り分け・拡張が楽になる
ウィットネス安定した第三地点(ファイル共有/クラウド/ディスク)2ノードは分断時に“どちらが正か”の判断が難しいため
名前解決クラスタ名/FCI名がDNSで確実に引けるクライアントは“名前”で接続するため、DNSが不安定だと障害に直結

SQL Server側の推奨としても、本番環境ではFCIの仮想IPに静的IPを使い、DHCPは避けるべきことが示されています。

運用上の小ワザ:ホストがクラスタ化できなくても、SQLの可用性は担保できる

ホストがワークグループで、かつホスト側Failover Clusterを採用しない場合でも、SQL FCIの2ノードを「別ホストに常時1台ずつ」配置しておけば、片方のホスト障害でももう片方のVM上でFCIが稼働し続けられます(アクティブノードが落ちたらパッシブへフェールオーバー)。

このやり方は「VMの自動再配置(ホストHA)」は弱くなりますが、“DBサービスの継続”という目的に対しては、最小構成で強いのがメリットです。セキュリティ要件が厳しく、ホストをドメイン参加させられない環境では現実解になりやすいです。

別パターン:ホスト側CSV上の「VHD Set(.vhds)」を共有してゲストクラスタの共有ディスクにする

どうしても「物理LUNをVMに直接見せられない」「SAN運用をVMのWWN単位でやりたくない」という場合は、ホスト側で共有ストレージをいったん受けて、CSV上に“共有仮想ディスク”を作ってゲストへ渡す方法があります。

このとき、現行の選択肢として押さえておきたいのがVHD Set(.vhds)です。VHD Setは、ゲストクラスタ向けの共有仮想ディスクモデルとしてWindows Server 2016で導入され、オンラインリサイズやHyper-V Replica、アプリ整合性チェックポイントへの対応などが整理されています。

VHD Set方式のざっくり手順

  1. (ホスト側)Failover Clusteringを構成し、共有ストレージをクラスタへ追加
  2. 追加したLUNをCSV(Cluster Shared Volumes)に変換し、CSV上にVMやVHD Setを配置
  3. CSV上にVHD Set(.vhds)を作成し、SQL用VM 2台へ同一のVHD Setを接続
  4. (ゲスト側)共有ディスクとして認識されたVHD Setを使ってWSFC→SQL FCIを構成

CSVは、Failover Cluster内の複数ノードが同一LUNへ同時に読み書きできる仕組みとして説明されています。

ただし重要:Windows Server 2022の「ホストをワークグループでクラスタ化」にはサポート観点の注意がある

「ホスト側もワークグループクラスタ(ADなし)にしてCSVを使いたい」という発想は自然ですが、MicrosoftのドキュメントではワークグループクラスタはADを使わない一方でDNSが必須であること、また対応ワークロードに制約があることが明記されています。

  • ワークグループクラスタはWindows Server 2016で導入され、ADに参加せずに構成できます(ただしDNSは必要)。
  • 準備として、各ノードに同一の管理者アカウントを用意し、WinRMのTrustedHosts設定や共通のPrimary DNS Suffixを揃える手順が示されています。
  • 同じページ内で、SQL Server FCIはワークグループクラスタのサポート対象外であることが明記されています。
  • またHyper-V VM(クラスタ上でVMを高可用にする用途)はWindows Server 2025からサポート対象と記載されています。

ここで誤解しないでほしいのは、上記は「ワークグループクラスタ上で何の役割を動かすか(どのワークロードがサポートされるか)」の話です。今回の主題である“ゲストVM(AD参加)内でSQL FCIを組む”こととは別問題です。

ただし、ホスト側もクラスタ化してVMの自動フェールオーバーやライブマイグレーションまで求める場合、Windows Server 2022で「ホストをワークグループのまま」実現しようとすると、サポート範囲や設計の難易度が一気に上がります。現場では次のどれかに落ち着くことが多いです。

落としどころ概要メリットデメリット
ホストはクラスタ化しない(単体2台)SQL VMを各ホストに1台ずつ固定配置し、可用性はゲストFCIで担保ワークグループ運用と両立しやすい。構成が単純ホスト障害時のVM再配置は手動対応
ホストはAD参加(管理用ドメインなど)ホストクラスタでVM高可用、ゲストでもFCIでアプリ高可用運用が王道でトラブルが少ないセキュリティ要件の調整が必要
将来的にWindows Server 2025/Azure Localを検討ワークグループでもHyper-Vワークロードが整理された世代で設計ワークグループ運用の制約が軽くなる可能性OS更新や検証コストがかかる

つまずきポイント集:設計で潰せる“ハマりどころ”

ホストがワークグループの場合に増える「名前解決」の作業

ワークグループ環境では、ADによる名前解決・自動登録が期待できません。ワークグループクラスタもDNSを必要とし、クラスタ名とIPがDNSに関連付けられる前提で説明されています。

  • DNSの動的更新を許可できない環境では、クラスタ名や管理用の名前(必要な場合)を手動でAレコード登録する
  • ノード間の解決がブレないよう、Primary DNS Suffixを揃える(Microsoftの手順にも出てきます)
  • 最悪、閉域の検証環境ならhostsで固定も可能だが、本番運用ではDNSで管理した方が後々安全

FC-SAN利用時のストレージ設計(MPIOと“同一構成”が効く)

FCやSASなどの共有ストレージをクラスタで使う場合、ノード間でHBAやドライバ、MPIOなどを揃えるべきだというガイドがあります。

  • ホスト側:HBAファーム/ドライバ、MPIO関連はできる限り揃える
  • ゲスト側:仮想FCを2本にして、ゲストOSのMPIOで冗長パスを束ねる
  • MSA側:コントローラ冗長・パス冗長・ALUA設定など、ベンダ推奨に合わせる

SQL FCIは“クォーラムが落ちると全部落ちる”

FCIはWSFCの健全性(クォーラム)に依存し、クォーラムを失うとFCIが停止しうることがSQL Serverドキュメントでも説明されています。

  • 2ノード構成では、ウィットネス(クラウド/ファイル共有/ディスク)を必ず検討する
  • 「ネットワーク分断」時に想定外の停止をしないよう、投票設定(Vote)も含めて設計する

バックアップとスナップショットの扱い

SQL FCIは共有ディスクを含むため、バックアップはまずSQLの論理バックアップ(FULL/DIFF/LOG)を基本にして設計するのが安全です。仮想基盤側のチェックポイントは便利ですが、共有ディスクを含むVMでは運用ルールを決めずに乱用すると復旧の難易度が跳ね上がります。

設計チェックリスト(そのままレビューに使える)

カテゴリチェック項目OKの目安
ホスト(Hyper-V)ホストはワークグループ運用か/管理方法は決まっているかローカル管理者の統制、パッチ運用、監査ログの収集方法が決まっている
ストレージ共有LUNの分割(Data/Log/TempDB/Quorum)用途別に分け、I/Oが競合しないよう設計
パス冗長仮想FC/MPIOで冗長経路が取れているか片系断でもディスクI/Oが継続する
ネットワーククライアント用/クラスタ通信用の分離最低限、帯域とMTUを考慮し、分断時の挙動を検証
AD/DNSゲストWSFC/FCIの名前がDNSで解決できるかクラスタ名・FCI名が確実に名前解決でき、IPも静的
クォーラムウィットネスの種類と置き場所2ノードで安定し、分断時の停止条件が説明できる
運用パッチ適用手順(ホスト/ゲスト/SQL)計画フェールオーバー→作業→戻し、まで手順化

よくある質問

ホストがワークグループだと、ゲストVMはドメイン参加できない?

できます。ゲストOSのドメイン参加は、ゲストOSがADに到達できるネットワーク/名前解決/時刻同期が成立していれば問題ありません。ホストがワークグループかどうかとは別です。

「ホスト側もワークグループクラスタ+CSV」で固めたいが、結局どう判断すべき?

技術的には成立するケースがありますが、OSバージョンと“何をサポート対象として動かすか”で判断が変わります。ワークグループクラスタはDNS必須で、準備手順やサポートワークロードが明記されています。

設計としては、まず「SQLサービスを止めない」ことが最優先なら、ゲストFCIを成立させる(共有ストレージはvFC等で直結)を軸にし、次に「VMも自動で逃がしたい(ホストHA)」が必要なら、ホスト側のクラスタ/AD参加/将来のOS選定まで含めて再検討するのが安全です。

まとめ

Hyper-Vホストがワークグループでも、ゲストVMをAD参加させてSQL Server FCIを構築することは可能です。設計の肝は、共有ストレージをどうゲストへ提示するかと、ホスト可用性(VMのHA)まで求めるかの切り分けです。

FC-SAN(HP MSA)があるなら、まずはVirtual Fibre ChannelでVMにLUNを直接提示する構成が分かりやすく、要件にも合わせやすいです。ホスト側のクラスタ化やCSV/VHD Setは便利な選択肢ですが、OS世代とサポート範囲、運用設計まで含めて慎重に選びましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次