手当たり次第に書くんだ

飽きっぽいのは本能

VM パフォーマンス Day4: ストレージ I/O 最適化

仮想化環境におけるストレージ I/O の最適化を整理します。VM の体感性能は CPU よりもストレージ遅延に引っ張られることが多く、virtio、イメージ形式、ホスト I/O スタックの選び方が重要になります。

ストレージ I/O の経路

一般的な VM の I/O は、ゲスト OS、仮想デバイス、QEMU、ホスト OS、物理デバイスという複数の層を通ります。性能を見るときは、どの層で待たされているのかを分けて考えます。

VM guest
  -> virtio-blk / virtio-scsi
  -> QEMU
  -> host I/O stack
  -> NVMe / SSD / storage backend

virtio-blk と virtio-scsi

方式特徴
virtio-blk単純でオーバーヘッドが少ない。小規模構成では扱いやすい。
virtio-scsi複数ディスク、ホットプラグ、SCSI 機能を扱いやすい。運用上の柔軟性が高い。

raw と qcow2

性能重視では raw が有利です。一方、qcow2 はスナップショットや薄いプロビジョニングなどの機能を持ちます。どちらを選ぶかは、性能だけでなく運用機能とのトレードオフです。

形式向いている用途
raw性能重視、シンプルな運用、別レイヤでバックアップやスナップショットを持つ構成
qcow2検証、スナップショット重視、容量効率を優先する構成

io_uring

新しい Linux 環境では io_uring による非同期 I/O が選択肢になります。ただし、ハイパーバイザー、QEMU、ストレージバックエンド、カーネルの組み合わせで効果が変わるため、ベンチマークで確認します。

NVMe パススルー

最短経路を狙うなら NVMe パススルーが強力です。ただし、ライブマイグレーションやホスト側での柔軟な管理は難しくなります。性能と運用性の交換として判断します。

まとめ

VM のストレージ最適化では、単に速い設定を探すのではなく、raw/qcow2、virtio-blk/virtio-scsi、io_uring、パススルーを用途ごとに選びます。性能、可搬性、バックアップ、運用のしやすさを同時に見た方が現実的です。

VM パフォーマンス Day4: ストレージ I/O 最適化

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る