Hyper-V ストレージのベストプラクティス
ストレージは、サーバーに関連する最も重要なコンポーネントの一つです。これには、ハイパーバイザーがインストールされ、仮想マシンが実行されている仮想化サーバーも含まれます。 ストレージは、パフォーマンスの高低に影響を与えるだけでなく、VMデータや仮想ディスクの保持における信頼性の高低も左右します。Hyper-V仮想環境ではさまざまな種類のストレージを使用できますが、管理者はサーバーの構成や仮想マシンの展開を行う前に、適切な選択を行う必要があります。
このブログ記事は、お客様の環境に最適なストレージを選択し、要件を効率的に満たすために、さまざまなストレージオプションを検討する一助となることを目的としています。
Hyper-V ストレージに関する推奨事項
Hyper-V サーバーにマウントできるストレージには、ローカル ストレージとリモート ストレージの 2 種類があります。
ローカルストレージ サーバーにローカル接続された複数のディスクで構成されています。こうしたディスクは通常、SAS(シリアル・アタッチド・SCSI)インターフェースを介して、サーバー筐体内のRAID(Redundant Array of Independent Disks)コントローラに接続されています。互換性があるとはいえ(SATAディスクも接続可能ですが)、SATAディスクよりもSASディスクの使用が推奨されます。 ~へ (SASへの変換は可能ですが、その逆はできません)これは、SASディスクの方が信頼性が高いためです。ローカル ストレージは、リモート ストレージよりもコストを抑えられる場合があります。Hyper-V クラスターを展開する予定がない場合は、ローカル ストレージを使用できます。
リモートストレージ はHyper-Vサーバーとは別の場所に設置され、iSCSI、ファイバーチャネル、またはSMB 3.0プロトコルを介してサーバーに接続されます。ファイバーチャネルとiSCSIはブロックレベルのストレージを提供するのに対し、SMB 3.0はファイルレベルのストレージです。ファイバーチャネルでは、SAN(ストレージエリアネットワーク)などのストレージにサーバーを接続するために、専用の物理インターフェースが必要となります。 FCoE(Fibre Channel over Ethernet)を使用すると、イーサネットネットワーク経由でストレージに接続できます。iSCSIプロトコルは、サーバーをSANやNAS(Network Attached Storage)に接続するために使用できます。 NASデバイスは、内部にディスクドライブ用のスロットを備えたRAIDコントローラを持ち、外部のネットワークに接続するための様々なポートを備えた、ミニサーバーのような外観をしています。スタンドアロンのサーバーも、NASとして使用するように構成することができます。SANとNASは、データの冗長性を確保し、信頼性を高めることができます。
いつ フェイルオーバー・クラスターの展開、クラスタ内のすべてのノードで共有されるリモートストレージを使用する必要があります。この場合、そのようなストレージは"共有ストレージ"と呼ばれます。
RAID 1 または RAID 10 を使用する
RAIDとは、独立したディスクの冗長アレイのことです。ストレージ上のデータ冗長性により、ディスク障害が発生した場合でもデータを保護することができます。RAIDにはいくつかの種類があります。
RAID 0 これは冗長性を持たない構成であり、"ディスクストライピング"と呼ばれます。耐障害性はなく、1台のディスクが故障するとアレイ全体が機能しなくなります。パフォーマンスの向上は、その主な用途として挙げられます(例えば、テレビ業界におけるライブストリームのキャッシュなど)。このタイプのRAIDを構築するには、最低2台のディスクが必要です。

RAID 1 冗長性は確保されています。1つのディスク上のすべてのブロックが別のディスクにミラーリングされるため、100%の冗長性が実現されます。いずれかのディスクに障害が発生した場合でも、2つ目のディスク上のデータにアクセスしてアレイを再構築することができます。アレイの再構築が成功する確率は高いです。RAID 1はフェイルオーバーストレージとして利用できます。このタイプのRAIDを構築するには、最低2台のディスクが必要です。

RAID 10 RAID 0の組み合わせです そして RAID 10。このRAID構成は、前述の2つのアレイ方式の長所を併せ持つため、高いパフォーマンスと耐障害性を兼ね備えたアレイとなります。ミラーリングされたディスクはストライプとして結合されます。このタイプのRAIDを構築するには、最低4台のディスクが必要です。RAID 10が4台のディスクで構成されている場合、1台のディスクが故障してもデータは保護されます。さらに、異なるミラーに属する2台のディスクが同時に故障した場合でも、4台のディスクからなるアレイは正常に動作し続けます。

RAID 5 パリティ付きストライピングを提供します。ブロックはディスク間でストライピングされますが、復旧に使用できるパリティ情報も各ディスクに分散して保存されます。 パリティ情報が占める容量は、1台のディスクの容量に相当します。例えば、4台のディスクで構成されるアレイの場合、パリティ情報は約25%の容量を消費します。RAID 1のように100%の冗長性があるわけではありません。理論上、RAID 5はディスクの1台が故障しても動作を継続できます。このタイプのRAIDを構築するには、最低3台のディスクが必要です。

RAID 6 ダブルパリティを備えたストライピングを提供します。これはRAID 5の概念と似ていますが、パリティ情報は1つのディスクではなく2つのディスクに保存されます。RAID 6は、最大2台のディスクが故障しても動作を継続できます。このタイプのRAIDを構築するには、最低4台のディスクが必要です。

一見すると、RAID 5 や RAID 6 は魅力的に見えますが、もう少し詳しく見てみましょう。RAID 5 は、ディスクの容量がまだかなり小さかった数十年前につくられたものです。現代では、ハードディスクの容量はディスクの速度よりも急速に増大しています。その結果、1 台のディスクが故障した場合、RAID 5 の再構築には長い時間がかかることがあります。 RAID 5では、再構築中に各ディスクの負荷が大幅に増加します。特に、サーバーが同時に通常のタスクを実行するためにストレージを集中的に使用している場合はなおさらです。RAID 5に属するディスクには、めったに使用されないデータが含まれている可能性があり、そのデータが正常に読み取れるとは限りません。これにより、エラーが発生する確率が高まります。 アレイの再構築中にエラーが発生すると、アレイ全体が故障する可能性があります。RAID 5で1台のディスクが故障すると、このアレイはRAID 0のように動作し、データが危険にさらされます。
RAID 6は、RAID 5と比較して、復旧に使用できるパリティデータを2倍持っています。その結果、1台のディスクの故障を乗り切る確率、および再構築が成功する確率が高くなります。 RAID 6にはもう1つ問題があります。それは、RAID 10やRAID 5と比較してパフォーマンスが最も低いことです。パフォーマンスの問題は、特に再構築中に顕著になります。
ご覧の通り、RAID 1とRAID 10は最高の信頼性を提供するため、Hyper-Vストレージでの使用が推奨されています。ハードウェアRAIDは、物理サーバーまたはNASデバイスのいずれか上で構成できます。
高速ストレージを活用する
ストレージの入出力性能は、VMに十分なパフォーマンスを提供する上で大きな影響を及ぼします。VMの保存には、最速のハードディスクドライブ(HDD)を使用すべきです。現在では、ギガバイトあたりのコストを抑えつつ高速な処理を実現する、高性能なハードディスクが数多く市場に出回っています。もしハードディスクドライブの速度がVMの要件を満たさない場合は、ソリッドステートドライブ(SSD)を使用することができます。 従来の回転式HDDとは異なり、SSDには可動部品がないため、より高速ですが、価格は高くなります。SSDの1GBあたりの価格は高く、総容量も通常HDDよりも小さくなります。Hyper-Vストレージに最高性能のディスクを使用することで、VMは遅延なく動作できるようになります。
VMの保存には専用ボリュームを活用する
システムボリュームに仮想マシンを保存しないでください。システムボリュームは通常、オペレーティングシステムで使用されるシステムファイルの読み書きに割り当てられています(デフォルトでは、C: ドライブは常にシステムボリュームです)。そのため、システムボリュームに仮想マシンのファイルを保存すると、仮想マシンのパフォーマンスが低下する可能性があります。 もう 1 つ懸念される問題は、ボリュームの空き容量不足です。この状況は、システムファイルがディスクの空き容量をすべて占有している場合や、仮想ディスクファイルなどの VM ファイルがディスク容量をすべて占有している場合に発生する可能性があります。その結果、システムボリューム内にファイルが保存されている VM は、障害が発生するリスクにさらされます。 さらに、システムファイルの書き込みに必要な空き容量が不足していると、Hyper-V ホストが正常に動作しなくなる可能性があります。オペレーティングシステムと仮想マシンの保存には、別々のボリュームを使用してください。また、スワップファイルなどのシステムファイルを、仮想マシンのデータに使用されているドライブに保存することは避けてください。
VMファイルを1か所に保存する
Hyper-V 仮想マシンの主なファイルには、VHDX (VHD) – 仮想ディスクファイル、AVHDX – 差分仮想ディスクファイル、VMCX – 構成ファイル、および VMRS – ランタイム状態ファイルなどがあります。VM ファイルは、管理者にとって不便な異なるデフォルトの場所に保存される場合があります。これを回避するには、現在の VM に属するすべてのファイルを保存する単一のディレクトリを指定します。 下のスクリーンショットでは、Server2016-01 という名前の VM に属するすべてのファイルが、Server2016-01 という名前の 1 つのディレクトリのサブディレクトリに保存されていることが確認できます。

BIN(VMRS)ファイル用の空き領域を確保してください
BINファイルは、メモリの状態を保存するためにディスク容量を消費します。このため、VMファイルが保存されているボリュームには、予備の空き領域を確保しておく必要があります。Hyper-V 2016以降、このファイルタイプの拡張子はBINからVMRSに変更されました。このファイルタイプは、仮想ディスクのVHDXファイルに次いで、ディスク容量を消費する要因として2番目に大きな割合を占めています。 BIN (VMRS) ファイルのサイズは、VM の仮想メモリのサイズと同じです。たとえば、VM の仮想ディスクが 30 GB で、仮想メモリが 8 GB の場合、ストレージ上に少なくとも 38 GB を確保する必要があります。VM で動的仮想メモリが構成されている場合、BIN (VMRS) ファイルのサイズは、その時点でのプロビジョニングされたメモリ量と同じになります。
どのファイルシステムを使うべきか:NTFSかReFSか?
NTFS(New Technology File System)は、1993年にマイクロソフトによって開発されたファイルシステムであり、現在ではWindows環境で広く使用されています。
ReFS(Resilient File System)は、Windows Server 2012とともにリリースされたマイクロソフトの最新ファイルシステムであり、次のような改良が加えられています:
- メタデータとファイルにチェックサムを使用することで、データの破損から保護する
- ストレージスペースとの統合
- データの整合性チェックの自動化およびエラー発生時の訂正
- ブロッククローン技術(VMをクローンする際に有用な技術)
- 停電に対する耐性の向上
- BitLocker による暗号化のサポート
- ファイルの最大サイズとファイル名の文字数制限の拡大
- 最大音量の引き上げ
- 固定仮想ディスクの作成を高速化
ご覧の通り、 ReFS ファイルシステム 多くの利点があり、サーバーのストレージ要件をより効率的に満たすように設計されています。しかし、いくつかの欠点もあります:
- ReFS ボリュームから Windows を起動できません
- データ圧縮、Windows ファイルベースの重複排除、ファイル暗号化、ハードリンク、拡張属性、ディスククォータはサポートされていません
- クラスタ化された共有ボリュームには使用できません
- 従来の8.3形式のファイル名には対応していません
最後に、ファイルシステムの選択は管理者の判断に委ねられます。お使いのシステムにおいてReFSの制限が問題にならない場合は、Hyper-VストレージとしてReFSを使用することをお勧めします。
高速ストレージネットワークを利用する
リモートストレージを利用する際、ネットワーク接続は極めて重要な要素となります。NASやSANに高速ディスクを搭載していても、ネットワーク接続が遅ければ、ストレージシステム全体のパフォーマンスが低下してしまいます。そのため、低遅延の専用高速ネットワークの利用が推奨されます。十分な速度を確保するためには、10Gbpsのネットワーク接続が推奨されます。また、帯域幅を集約するためにNICチームングを利用することも有効です。
ドメイン コントローラーを含む仮想マシンを SMB3 共有に保存しないでください
SMB 3.0 共有を正常に機能させるには、ドメイン コントローラーへのアクセスが必要です。SMB 3.0 共有を持つホストまたは Hyper-V ホストがドメイン コントローラーにアクセスできない場合、認証に失敗し、接続を確立できません。この状況では、Hyper-V サーバーは、SMB 3.0 共有上に配置されたドメイン コントローラーを含む仮想マシンを起動できません。 この問題を回避するには、ドメイン コントローラーを搭載した仮想マシンを Hyper-V ホストのローカル ストレージに配置してください。
クラスタストレージとしてクラスタ共有ボリュームを活用する
クラスターを展開する際は、共有ストレージを設定する必要があります。CSVを使用しない従来のストレージでは、一度に1つのノード(Hyper-Vホスト)しか同じディスク/LUNにアクセスできません。クラスター共有ボリューム(CSV)を使用すれば、ボリュームの再マウントや所有権およびアクセス権の変更を行うことなく、複数のノードが同時にストレージにアクセスできるようになるため、この問題を解決できます。CSVを使用すると、Hyper-V向けにNTFSまたはReFSの上にクラスター化されたファイルシステムを構築できます。
パススルーディスクの使用は避けてください
パススルーディスクとは、仮想マシンに接続された物理ディスク(LUN)のことです。このタイプのディスクはストレージデバイスとして使用され、仮想マシンのディスクコントローラに直接接続されます。Hyper-Vの初期バージョンでは、パススルーディスクを使用することでパフォーマンスの向上が図られていました。しかし現在では、仮想ディスクのフォーマットは十分に進化しているため、パフォーマンスの向上という観点からも、パススルーディスクの使用に伴う問題が発生する可能性があることから、その利用には意味がありません。 パススルーディスクは仮想マシンと一緒に簡単に移動できず、また、このタイプのディスクを搭載した仮想マシンのバックアップを、ホストレベルでバックアップソフトウェアから取得することはできません。
VHDとVHDX、どちらの仮想ディスク形式を選ぶべきか?
VHDは、2003年に導入された仮想マシン用の仮想ディスクの旧式フォーマットです。VHDXは(Windows Server 2012でリリースされた)より先進的なフォーマットであり、仮想ディスクの容量制限がより高く(最大64TB)、4KBブロックに対応し、仮想ディスクのライブリサイズが可能で、メタデータ構造が継続的に更新されるため、停電によるデータ破損の可能性を低減します。 そのため、Hyper-V環境ではVHDX仮想ディスクの使用を推奨します。
固定サイズおよび動的に拡張可能な仮想ディスクの使用
A 固定仮想ディスク これは、仮想ディスク内で実際に使用されている容量にかかわらず、ストレージ上の事前割り当て済み領域をすべて消費するVHDX(VHD)ファイルです。固定サイズ仮想ディスクを使用する利点は、動作が高速であること、オーバープロビジョニングによる問題が発生しないこと、そしてVHDXファイルの断片化が作成後も一定であることです。 固定仮想ディスクを使用するデメリットは、NTFSボリューム上での作成に時間がかかる場合があり、ディスク作成のためにストレージ上のより多くの領域が必要となる点です。
動的に拡張する仮想ディスクは、事前割り当て後に数キロバイトという小さなサイズで開始され、仮想ディスク内にファイルが書き込まれるにつれて、ディスク作成時に事前割り当てされた最大サイズに達するまで拡大します。 このタイプのディスク上のデータが削除されても、ダイナミックディスクは自動的に縮小されません。ダイナミックディスクを使用する利点は、スペースを節約でき、作成が迅速で、オーバープロビジョニングが含まれていることです。欠点は、ダイナミックディスクが固定ディスクよりも速度が遅く、断片化が激しくなること、また、ダイナミックディスクの拡張後にオーバープロビジョニングによってストレージ上の空き容量が不足する可能性があることです。
ニーズに応じて、固定仮想ディスクとダイナミック仮想ディスクの両方を使用できます。
仮想ハードディスクの差分作成
差分仮想ハードディスクとは、チェックポイントの作成後に仮想ディスクが格納されているVMディレクトリ内に作成される仮想ディスクファイル(AVHDXまたはAVHD)のことです。仮想ディスクを差分化する目的は、チェックポイントの作成後にVMの親仮想ディスクに書き込まれた変更内容を保存することにあります。 親仮想ディスクは、固定ディスク、動的ディスク、または差分ディスクのいずれかです。チェックポイントが削除されると、そのチェックポイントとともに作成された差分仮想ディスクは、親仮想ディスクとマージされます。差分仮想ディスクは、Hyper-Vの新しい仮想ハードディスクウィザードを使用して作成することもできます。チェックポイントを多数作成すると、差分仮想ディスクが肥大化し、パフォーマンスの低下を招く可能性がある点に注意が必要です。
ディスクの状態とパフォーマンスの監視
ディスクの状態を定期的に監視することで、データの破損につながる可能性のあるディスクの損傷を防ぐことができます。RAIDに属するディスクを含め、ディスクドライブのS.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology)データを監視できるユーティリティを活用してください。問題のあるディスクを早期に特定すればするほど、データを安全に保てる可能性が高まります。 また、ディスクのパフォーマンスも監視し、過負荷になっているディスクを特定する必要があります。これにより、ディスクへの負荷が高い仮想マシン(VM)を他のストレージに再配置し、全体的なパフォーマンスを最適化するという判断を下すのに役立ちます。
結論
ストレージはサーバーにとって極めて重要なコンポーネントです。なぜなら、ストレージに格納されるデータは、多くのIT企業にとって特に重要だからです。本日のブログ記事では、Hyper-Vにおけるストレージのベストプラクティスについて解説しました。これらを実践することで、仮想マシンのパフォーマンスを最適化し、ストレージの高い信頼性を確保することができます。上記で挙げた推奨事項の中から、ご自身の環境に適したものを選択してください。
たとえ最高クラスのストレージを導入していたとしても、Hyper-Vの仮想マシンデータを適切にバックアップすることは重要です。 NAKIVO Backup & Replication Hyper-Vの仮想マシンを最も効率的な方法でバックアップするのに役立ちます。