2.12. 論理ボリュームの拡張

Red Hat Virtualization Manager はシンプロビジョニングを使用して、ストレージプール内の使用可能なストレージをオーバーコミットし、物理的に使用可能な容量を超えるストレージを割り当てます。仮想マシンは、動作に応じてデータを書き込みます。シンプロビジョニングされたディスクイメージを使用する仮想マシンによって書き込まれるデータは、いずれはディスクイメージをバッキングする論理ボリュームが格納できる容量を超えてしまいます。その際には、論理ボリュームが拡張されて追加のストレージが提供され、その仮想マシンは稼働状態を継続することができます。
Red Hat Virtualization では、LVM でシンプロビジョニングのメカニズムを提供します。QCOW2 フォーマットのストレージを使用する場合には、Red Hat Virtualization はホストシステムのプロセス qemu-kvm に依存して、逐次的方法でディスク上のストレージブロックを論理ブロックにマッピングします。これにより、たとえば 1 GB の論理ボリュームで 100 GB の論理ディスクの定義が可能になります。qemu-kvm が VDSM によって設定された使用量の閾値を超えると、ローカルの VDSM インスタンスは論理ボリュームを 1 ギガバイト拡張するように SPM に要求します。ボリューム拡張を必要とする仮想マシンを実行しているホスト上の VDSM は、追加領域が必要なことを SPM の VDSM に通知します。SPM が論理ボリュームを拡張し、SPM の VDSM インスタンスは、ホストの VDSM を使用してボリュームグループ情報をリフレッシュし、拡張操作が完了したことを認識します。これでホストは稼働を継続することができます。
論理ボリュームを拡張する際には、対象のホストは、他のどのホストが SPM であるかを知る必要はありません。そのホスト自体が SPM である可能性もあります。ストレージ拡張の伝達は、データストレージドメイン内の専用論理ボリュームであるストレージメールボックスを介して行われます。SPM による論理ボリューム拡張を必要とするホストは、ストレージメールボックス内にあるそのホスト用の所定箇所にメッセージを書き込みます。SPM は定期的に受信メールを読み、要求された論理ボリューム拡張を実行して、返信内容を送信メールに書き込みます。要求を送信後、ホストは 2 秒ごとに受信メールをチェックして応答を確認します。論理ボリューム拡張要求が成功したという返信を受け取ると、ホストはデバイスマッパー内の論理ボリュームマップをリフレッシュし、新たに割り当てられたストレージを認識します。
ストレージプールに提供されている物理ストレージがほぼ使い果たされると、複数のイメージで使用可能なストレージが不足してしまい、リソースの補充を行う手段がなくなります。ストレージプールがストレージを使い果たすと、QEMU は デバイスに使用可能なストレージが残っていないことを示す enospc error を返します。この時点で、実行中の仮想マシンは自動的に一時停止状態となるので、管理者が介入して、新規 LUN をボリュームグループに追加する必要があります。
ボリュームグループに新しい LUN が追加されると、SPM は追加ストレージを必要としている論理ボリュームにその LUN を自動的に分配します。追加リソースの自動割り当てにより、関連する仮想マシンは中断せずに稼働を継続し、また停止状態であった場合は稼働が自動的に再開されます。