VmWare/Linux で「奇数」サイズのディスクを作成する

VmWare/Linux で「奇数」サイズのディスクを作成する

私は「すべては 2 の累乗でなければならない」という症候群にかかっていると思います。VM 用に VmWare で 30G のディスクを作成するように求められた場合、32G のディスクを作成したいと考えています。LVM を使用して 256G のストレージが必要な場合は、1 つの 256、2 つの 128、または 4 つの 64 を作成します...

質問は単純明快です。Linux のボリューム グループに「奇数」サイズのディスクを配置したとしても、そのディスクを作成することでパフォーマンスに影響や欠点はあるのでしょうか。誰かが 80G を要求した場合、それを実現するために 10、20、50 を作成しても問題ありませんか。それとも、可能であれば 2 の累乗にこだわるべきでしょうか。

答え1

パーティションがいわゆる I/O アラインメントされているかどうかに注目することをお勧めします。これは、I/O パフォーマンスに実際に影響する可能性があるためです。現在では、インストーラーや構成ウィザードが通常、パーティションをある"power of 2"境界で自動的にアラインメントするため、それほど問題にはなりませんが、手動で作成する場合は、それがどのように機能するかを知っておくと便利です。

仮想環境から借りた簡単な例で概念を説明してみます。簡単にするために、VMware vSphere インフラストラクチャと VMFS ファイルシステムを想定します。合計 3 つのレイヤーを考慮する必要があります。データを要求するための一定サイズのチャンクを持つディスク アレイ、一定サイズのブロックを持つ VMFS ファイルシステム、そして最後にブロック/クラスターに編成されたゲスト オペレーティング システム ファイルシステムです。

通常、VMFS ファイルシステムとディスク アレイの調整は、vCenter で新しい VMFS データストアを作成するときに自動的に実行されるため、これに時間を費やす必要はありません。ゲスト OS の場合は状況が悪くなります。以下は、調整されていないレイヤーの図です。

ここに画像の説明を入力してください

ゲスト OS が単一のブロック/クラスターを読み取り/書き込みする場合、そのブロックは複数のチャンクにまたがるため、基盤となるハイパーバイザー/ディスク アレイは VMFS ファイルシステムから 1 つのブロックと 2 つのディスク アレイ チャンクを要求する必要があります。これは、RAID 構成に応じてこれらのチャンクが複数のディスクにストライプ化される可能性があるため、複数のディスク スピンドルから読み取りまたは書き込みを行うことを意味する場合があります。もちろん、これは最適な構成ではありません。よりよいのは、整列された構成です。

ここに画像の説明を入力してください

次に、1 つのファイルシステム ブロック要求によって 1 つのディスク アレイ チャンク要求が生成されます。ただし、最近のオペレーティング システムのほとんどは、インストール時にパーティションの I/O アラインメントを自動的に実行します。たとえば、Windows Server 2008 または RedHat Enterprise Linux 6 ではこれを実行しますが、Windows Server 2003 以前のディストリビューションでは実行しません。

したがって、自動 I/O アライメントは通常、ストレージ デバイスの機能に依存して、優先される I/O アライメントと I/O ブロック サイズを示すため、覚えておく価値があります。最新の Linux I/O スタック (RHEL 6、parted、LVM、mkfs など) は、このような情報を使用して自動的に実行できます。ただし、期待どおりに動作しない場合は、手動で行う必要があります。

関連情報