【VMWare ESXi】図解 仮想ストレージ(仮想ディスク、データストア)の概要

音声で聞く

読む前にこの記事のポイントを音声で確認できます。この音声は本記事をもとにAIツール(NotebookLM)で自動生成したもので、発音や言い回しが不自然な箇所や、内容の誤りが含まれる可能性があります。理解の補助としてご利用ください。

この記事では、VMware ESXi から見たストレージの仮想化について、物理的なストレージがどのような段階を経て仮想マシンのディスクになるのかを、図で順番に説明します。

この記事でわかること
  1. 物理ディスク → RAID → LUN → データストアの流れ
  2. データストアと仮想ディスク(VMDK)の関係
  3. シンプロビジョニングとシックプロビジョニングの違い

物理ハードディスクの集約

複数の物理的なハードディスク(HDD)を RAID で構成すると、1つの論理ディスクとして見せることができます。RAID については、次の記事を参考にしてください。

>> 参考記事:【初心者・わかりやすく】RAIDシステムの種類

たとえば、1TB の HDD を5台使って RAID 5 を構成したとします。RAID 5 では1台分の容量がパリティに使われるので、4TB の論理ディスク1つとして見えます。

1TB1TB1TB1TB1TBRAID 54TB1TB の HDD × 5台1つの論理ディスク
図1 1TB の HDD 5台を RAID 5 で1つの論理ディスクにする

LUN(Logical Unit Number)

この論理ディスク(4TB)から、LUN という論理的な単位を切り出してホストに提供します。1つの物理的なものを論理的に複数に分けて使う点では、LAN スイッチの VLAN に似ています。

たとえば、4TB の論理ディスクから、500GB の LUN を3つ切り出したとします。残りの領域は、まだどの LUN にも割り当てていない状態です。

論理ディスク(4TB)LUN1500GBLUN2500GBLUN3500GB(未割り当て)
図2 4TB の論理ディスクから 500GB の LUN を3つ切り出す

LUNへの接続

ESXi ホストから、ストレージに接続します。ESXi はストレージアダプタ(FC の HBA や iSCSI アダプタなど)を使い、iSCSI や FC-SAN を経由して SCSI コマンドでストレージにアクセスします。この接続によって、ESXi はストレージ上の LUN の情報を取得します。

ESXiホストESXiVMkernelストレージアダプタストレージLUN1500GBLUN2500GBLUN3500GBSCSI コマンド(iSCSI・FC など)LUN の情報を取得
図3 iSCSI や FC でストレージに接続し、LUN の情報を取得する

FC-SAN については、次の記事を参考にしてください。

>> 参考記事:【VMware ESXi】図解 ファイバーチャネル SAN (FC-SAN)の概要

データストア

データストア作成

ESXi ホストは、LUN を ESXi が読み書きできる VMFS(vSphere Virtual Machine File System)形式でフォーマットします。VMFS でフォーマットした領域は ESXi から読み書きできるようになり、これをデータストアといいます。

ESXiホストESXiVMkernelストレージアダプタストレージデータストア(LUN1・VMFS)LUN2500GBLUN3500GBLUN1 を VMFS でフォーマット
図4 ESXi が LUN1 を VMFS でフォーマットし、データストアにする
補足

VMFS は、iSCSI や FC などのブロックストレージ上に作るデータストアの形式です。データストアにはほかに、NAS のファイル共有を NFS でマウントする NFS データストア、ホストのローカルディスクをまとめる vSAN データストア、vVols(Virtual Volumes)データストアがあります。NFS データストアは VMFS でフォーマットせず、NAS 側のファイルシステムをそのまま使います。

データストアへのISOファイルの保存

仮想マシンを作成するための ISO ファイルなどを、データストアに保存します。VMFS のデータストアは ESXi が管理しているので、ISO ファイルも vSphere Client などから ESXi を経由してアップロードします。

たとえば、Windows Server をインストールする場合は、Windows Server の ISO ファイルを保存しておきます。

ESXiホストESXiVMkernelストレージアダプタストレージデータストア(LUN1・VMFS)ISOvSphere Clientアップロード
図5 vSphere Client から ESXi 経由で ISO ファイルをアップロードする

仮想マシンの作成

仮想マシンを作成します。作成するときに、仮想マシンをどのデータストアに置くかを選びます。また、OS をインストールするために、ISO ファイルを仮想マシンの CD/DVD ドライブにマウントし、そこから起動するようにします。

仮想マシンを作成すると、データストアに仮想ディスクが作られます。

仮想ディスク

仮想マシンを作成すると、データストアに仮想ディスク(VMDK:Virtual Machine Disk)ファイルが作られます。仮想マシンにインストールした OS やデータは、このファイルに保存されます。仮想「ディスク」という名前ですが、実体はデータストア上のファイルです。

ESXiホストESXiVMkernelストレージアダプタVMストレージデータストア(LUN1・VMFS)ISO仮想ディスク(VMDK)ISO をマウントVM のディスクの中身は VMDK ファイル
図6 仮想マシンのディスクの中身は、データストア上の VMDK ファイル

仮想ディスクを作成(プロビジョニング)するときは、シンプロビジョニングとシックプロビジョニングのどちらかを選びます。

シンプロビジョニング

実際に書き込まれたデータの分だけ、データストアの容量を使う方式です。ストレージの容量を効率よく使えます。

たとえば、シンプロビジョニングで 100GB の仮想ディスクを作成し、実際のデータが 50GB しかない場合、データストア上で消費される容量は 50GB だけです。

シンプロビジョニング仮想ディスク 100GBデータ 50GB消費するのは 50GB
図7 シンプロビジョニングは、書き込んだデータの分だけ容量を使う
注意

シンプロビジョニングでは、データストアの実際の容量より大きい仮想ディスクを作れます(オーバーコミット)。仮想マシンのデータが増えてデータストアの空きがなくなると、書き込みができなくなるので、データストアの使用量を監視しておく必要があります。

シックプロビジョニング

実際に使っている容量に関係なく、作成時に指定したサイズの領域を最初から確保する方式です。

たとえば、シックプロビジョニングで 100GB の仮想ディスクを作成し、実際のデータが 50GB しかない場合でも、データストア上で消費される容量は 100GB です。

シックプロビジョニングでは、確保した領域を 0 で初期化(ゼロ埋め)します。どのタイミングで初期化するかによって、Eager Zeroed と Lazy Zeroed のどちらかを選びます。

形式初期化のタイミング特徴
Eager Zeroed仮想ディスクの作成時に、すべて 0 で初期化する作成に時間がかかるが、あとから初期化する必要がないので、最初の書き込みが速い。Fault Tolerance などのクラスタリング機能で使う
Lazy Zeroedデータを初めて書き込むときに、その領域を 0 で初期化する作成は短時間で終わるが、最初の書き込み時に初期化が入るので、Eager Zeroed より書き込みが遅くなることがある
シック(Eager Zeroed)作成時にすべて 0 で初期化仮想ディスク 100GBデータ 50GB000000000000000000000000000000消費するのは 100GBシック(Lazy Zeroed)書き込み時に 0 で初期化仮想ディスク 100GBデータ 50GB書き込むときに0 で初期化消費するのは 100GB
図8 シックプロビジョニングの Eager Zeroed と Lazy Zeroed
補足

シック(Lazy Zeroed/Eager Zeroed)とシンは、VMFS のデータストアと、ハードウェアアクセラレーションに対応した NFS データストアで選べます。ハードウェアアクセラレーションに対応していない NFS データストアでは、シンだけが使えます。

まとめ

段階ポイント
RAID複数の物理ディスクを1つの論理ディスクにまとめる
LUN論理ディスクから切り出して、ホストに見せる単位
データストアESXi が LUN を VMFS でフォーマットした領域
仮想ディスクデータストア上の VMDK ファイル。仮想マシンの OS やデータが入る
シン書き込んだ分だけ容量を使う。空き容量の監視が必要
シック最初から全容量を確保する。Eager Zeroed は作成時、Lazy Zeroed は書き込み時に初期化

コメント