LVM/ja

LVM (Logical Volume Manager) は、Article description::管理者がファイルシステムと具体的物理ストレージの間に抽象レイヤを提供するメタデバイスを作ることを可能にします. メタデバイス (その上にファイルシステムが構成される) は 論理ボリューム(logical volumes)と呼ばれ、それがボリュームグループ(volume groups)と呼ばれるストレージのプールから領域を使います. ボリュームグループは1つまたは2つ以上の物理ボリューム(physical volume)から成っており、それがデータが保存される本当のデバイスです.

物理ボリュームはパーティション、JBOD(Just a Bunch Of Disks)によってグループ化されたハードドライブ全体、RAID、iSCSI、ファイバーチャンネル、eSATAなどがあり得ます.

インストール
LVMはデバイスドライバとユーザー空間のアプリケーション双方によって処理され、LVMの設定は行われます.

カーネル
次のカーネルオプションを有効化してください:

Emerge
Make sure to enable for :

USE フラグを確認したら、 パッケージをインストールするように Portage に指示してください:

設定
LVMの設定はいくつかのレベルにおいて行われます:
 * 1) 専用ユーティリティでのLV, PV と VG設定;
 * 2) 設定ファイルによるLVMサブシステムの微調整;
 * 3) ディストリビューションレベルのサービスの設定;
 * 4) initramfs時のセットアップ.

論理ボリュームや物理ボリューム、ボリュームグループの扱いは使い方の章にて取り上げます.

LVM設定ファイル
LVMはに大きな設定ファイルを用意しています. ほとんどのユーザーはLVMを使い始めるにあたってこのファイルの設定を修正する必要はないでしょう.

サービス管理
Gentoo は、ボリュームグループと論理ボリュームを自動的に検出してアクティブにする LVM サービスを提供しています.

サービスは、init システムを介して管理することができます.

openrc
LVMを手動で起動するには:

ブート時にLVMを起動するには:

systemd
LVMを手動で起動するには:

ブート時にLVMを起動するには:

initramfsの中でLVMを使う
ほとんどのブートローダは直接LVMから起動することはできません - GRUBレガシーもLILOもです. GRUB2は、LVMリニア論理ボリューム、ミラー化論理ボリュームとおそらくいくつかの種類のRAID論理ボリュームから起動することができます. 現時点で、シンプロビジョニングされた論理ボリュームをサポートするブートローダはありません.

それにより、LVMでない/bootパーティションを使いLVMのルートパーティションをinitramfsからマウントすることが推奨されています. initramfsはgenkernel または dracut を使って自動的に生成することができ、さらには手動でカスタム Initramfs として生成することもできます:


 * は全てのタイプからブート可能です. ただしシンプロビジョニングされたボリュームは除き(それがビルドホストからの バイナリのビルドもコピーもしてなければ)、また、おそらくRAID10も除かれます. (RAID10サポートはLVM2 2.02.98が必要ですがgenkernelは2.02.89をビルドします. しかし、スタティックバイナリがあればそれらがコピーされます);
 * は全てのタイプでブートするはずですが、もしホストがシンプロビジョニングルート上で動いている場合、シンプロビジョニングサポートがinitramfsにて必要です.

Genkernel
をインストールしてください. genkernelがシステムバイナリを使うよう(でなければそのプライベートコピーがビルドされます)、静的USEフラグもパッケージで有効化されます. 次の例はinitramfs(カーネル全体ではなく)をビルドし、LVMサポートを有効化します.

genkernelのmanpageは、システム要件に応じて他のオプションの概要を説明します.

initrdはどのようにLVMを開始するか、パラメータを必要とします. そして彼らは他のカーネルパラメータと同じように提供されます. 例えば:

Dracut
パッケージは RedHat プロジェクトから移植され、initramfs を生成する類似ツールを提供します. 詳細については、Dracutを参照してください. 一般に、次のコマンドは有効なデフォルト initramfs を生成します.

initrdはどのようにLVMを開始するか、パラメータを必要とします. そして彼らは他のカーネルパラメータと同じように提供されます. 例えば:

についてのLVMオプションの包括的リストはDracut Manualの一節をご覧ください.

使い方
LVMは次に示す3つの異なるレベルでストレージを構成します:
 * ハードドライブ、パーティション、RAID、物理ボリューム(PV)として初期化される他の種類のストレージ
 * 物理ボリューム(PV)はボリュームグループ(VG)中にグループ化される
 * 論理ボリューム(LV)はボリュームグループ(VG)中に管理される

PV (物理ボリューム)
物理ボリュームはLVMが構成される実際のハードウェアやストレージシステムやストレージです.

パーティショニング
LVM のパーティションタイプは 8e (Linux LVM) です.

例えば、でのパーティションのタイプを設定するには:

では、 キーを使ってパーティションをつくり、それから キーでパーティションタイプを 8e に変更してください.

PVを作成
物理ボリュームはコマンドによって作成あるいは初期化されます.

例えば、次のコマンドはとの先頭パーティションに物理ボリュームをつくります:

PVの一覧
コマンドによってシステムのアクティブな全ての物理ボリュームを得ることができます.

より多くの物理ボリュームについて表示したければ、は非アクティブの物理ボリュームを検知し、有効化します.

PVを削除する
LVMは自動的に(そうしないよう指示しない限り)全ての有効な物理ボリュームへデータを順に送ります. もし(ボリュームグループ内の)該当する論理ボリュームがある単一物理ボリュームのフリースペースの量より小さければ、その論理ボリューム用の全てのスペースがその(単一)物理ボリューム上に連続して確保されます. これはパフォーマンス上の理由です.

物理ボリュームがボリュームグループより削除される必要があるのであれば、データがまず物理ボリュームから除去される必要があります. コマンドで物理ボリューム上の全てのデータが同一ボリュームグループの物理ボリュームに移されます.

このような動作は移動する必要があるデータの量に応じて時間がかかります. 完了したらデバイス上に残されたデータはないはずです. によってどの論理ボリュームからも物理ボリュームがもはや使われていないことを確認してください.

次のステップは、を使って物理ボリュームが"deselected"になった後に物理ボリュームをボリュームグループからで削除することです.

VG (ボリュームグループ)
ボリュームグループ(VG)は多くの物理ボリュームをまとめ、デバイスファイルシステムにとして表示します. ボリュームグループの名前は管理者によって決定されます.

VGを作成
次のコマンドはボリュームグループ"vg0"をととして割り当てられた2つの物理ボリュームからつくります.

VGの一覧
全てのアクティブなボリュームグループを表示するにはコマンドを使ってください.

ボリュームグループが見つからなければコマンドを使ってください.

VGを拡張
管理者がストレージ・リソースのプールを使用できるようにボリューム・グループグループの物理ボリュームは、ファイルシステムに割り当てることができます. ボリュームグループが十分な記憶リソースを保持していない場合には、追加の物理ボリュームにボリュームグループを拡張する必要があります.

次の例はボリュームグループ "vg0"を物理ボリュームで拡張します.

物理ボリュームを最初のように初期化する必要があることを忘れないでください！

VGの縮小
物理ボリュームをボリュームグループから削除する必要があるときは物理ボリューム上のまだ使われている全てのデータはそのボリュームグループ内の他の物理ボリュームに移動される必要があります. 見てきたように、これはコマンドによって行われ、その後物理ボリュームはを使うことでボリュームグループから削除されます.

VGの削除
ボリュームグループがもはや必要でない(あるいは、言い換えれば、それが表すストレージプールがもはや使われてなく、その中の物理ボリュームが他の目的で解放される必要がある)なら、ボリュームグループはで削除されます. これは論理ボリュームがボリュームグループに存在しない場合と、プールからすでに除去された物理ボリューム以外の全てにのみ有効です.

LV (論理ボリューム)
論理ボリュームはシステムを利用可能にする最後のメタデバイスであり、通常、そこにファイルシステムを作成します. 論理ボリュームはボリュームグループ中に作成・管理され、として表示されます. ボリュームグループのように、論理ボリュームに使われる名前は管理者によって決定されます.

LVの作成
論理ボリュームをつくるためには、コマンドが使われます. コマンドへのパラメータは論理ボリュームの要求サイズ(ただしボリュームグループ中の空き量量より大きくすることはできません)から成り、それによりボリュームグループ中にスペースが確保され、論理ボリュームの名前がつくられます.

次の例では、論理ボリューム"lvol1"はボリュームグループ"vg0"から150MBのサイズでつくられます.

にボリュームグループ内の全ての空き容量を使うよう指示することが可能です. これは(人間に可読の)サイズではなく"エクステント"の量を指示する オプションによって行われます. 論理ボリュームはボリュームグループ内のデータの塊である"論理エクステント"に分割されます. ボリュームグループ内の全てのエクステントは同じサイズです. オプションでに全ての未使用エクステントに割り当てるよう指示できます.

"FREE"の次の"VG"キーワードはボリュームグループ全体のサイズを示すために使われます.

LVの表示
全てのアクティブな論理ボリュームを表示するにはコマンドを使ってください.

論理ボリュームがない場合、コマンドが全ての優子なボリュームグループ上の論理ボリュームをスキャンするのに使えます.

LVを拡張
論理ボリュームを拡張する必要がある場合、コマンドは論理ボリュームの確保済みスペースを広げるのに使うことが出来ます.

例えば、論理ボリューム"lvol1"を計500MBに拡張するには:

トータルサイズではなく追加サイズを指定することも可能です.

拡張されたボリュームグループは直ちに追加のストレージをユーザーに提供するわけではありません. そのためには、ボリュームグループ上のファイルシステムを必要サイズだけ拡張する必要があります. もしファイルシステムがオンラインリサイズを許可しないばあい、問題のファイルシステムについてドキュメントを調べてください.

例えば、ext4ファイルシステムを500MBになるように拡張するには:

一部のファイルシステムに対しては、 が論理ボリュームとファイルシステムを同時に拡張します. 例えば、論理ボリューム lvol1 を拡張し、その ext4 ファイルシステムをリサイズするには:

LVの縮小
論理ボリュームのサイズを縮小するには、まずファイルシステムそれ自体を縮小してください. . 全てのファイルシステムがオンライン縮小をサポートしているわけではありません.

例えば、ext4はオンライン縮小をサポートしていないのでファイルシステムはまずアンマウントされる必要があります. 問題を排除するためファイルシステムチェックを行うことが推奨されています.

縮小済みファイルシステムのもと、論理ボリュームを縮小することが可能です.

LV権限
LVMは論理ボリューム上での権限付与をサポートしています.

例えば、論理ボリュームはコマンドにより"read only"にすることが可能です.

変更が直ちに実行されるために再マウントが必要です.

論理ボリュームを再び書き込み可能にするためには、rw パーミッションビットを使ってください:

LVを削除する
論理ボリュームを削除する前に、それがマウントされていないことを確認してください.

さらなる書き込みが起こらないよう論理ボリュームを停止してください:

ボリュームがアンマウント・停止されたことで削除可能になり、ボリュームグループ内の他の論理ボリュームのためにエクステントを解放することができます.

機能
LVMはストレージ管理者にたくさんのおもろい機能を提供しています. たとえば
 * シンプロビジョニング (ストレージのオーバーコミット)
 * スナップショット
 * 異なる領域確保方法によるボリュームタイプ

シンプロビジョニング
Make sure to enable for :

新しいバージョンの LVM2 (2.02.89) は、"シン"ボリュームをサポートしています. シンボリュームは、ファイルシステムにおけるスパースファイルの考え方を、ブロックデバイスについて適用したものです. シンボリュームの示すサイズは割り付けられたサイズよりも大きく取ることができ、プールよりも大きいサイズにすることさえできます. スパースファイルと同様に、このブロックデバイスの内容が成長するのにしたがって、エクステントが割り付けられていきます. ファイルシステムが discard 操作をサポートしている場合は、ファイルが削除されたときにエクステントが再び解放され、プールの使用率を削減します.

LVM においては、このようなシンプールは、中に論理ボリュームを配置できる特殊な種類の論理ボリュームとなっています.

シンプールを作成する
Each thin pool has metadata associated with it, which is added to the thin pool size. LVM will compute the size of the metadata based on the size of the thin pool as the minimum of pool_chunks * 64 bytes or 2 MiB, whichever is larger. The administrator can select a different metadata size as well.

シンプールを作成するには、 に  オプションを付与してください:

上の例は、総サイズ 150 MB の thin_pool という名前のシンプールを作成します. これはシンプールのために実際に割り付けられるサイズです (つまり、使用できる実際のストレージの総容量です).

明示的にメタデータサイズを指定するには、 オプションを使用してください:

シンプールに与えられたメタデータにより、論理ボリュームを作成するためにボリュームグループのすべての空き容量を使用する直観的な方法は動作しません (LVM のバグ 812726 を確認してください):

シンプールは他の LV と異なり、対応するデバイスノードを持たないことに注意してください.

シン論理ボリュームを作成する
シン論理ボリュームは、シンプール (これ自体も論理ボリュームです) の中に存在する論理ボリュームです. シン論理ボリュームはスパースなので、 オプションを使用して、物理サイズではなく仮想サイズを指定します:

この例では、(シン) 論理ボリューム lvol1 が、背後のプールには 150MB のストレージしか実際に割り付けられていないものの、300MB のサイズのデバイスとして見えるようになります.

シンプールと、そのシンプールの中の論理ボリュームを、ひとつのコマンドで同時に作成することもできます:

シンプールとシン論理ボリュームを一覧表示する
シンプールもシン論理ボリュームも特殊な種類の論理ボリュームであり、そのため コマンドによって表示されます. コマンドもこれらの論理ボリュームを検出するでしょう.

シンプールを拡張する
シンでない論理ボリュームと同様に、シンプールは を使用して拡張されます. 例えば:

シン論理ボリュームを拡張する
シン論理ボリュームは、通常の論理ボリュームと同様に拡張されます:

コマンドでは、作成の際に使用した「仮想サイズ」のオプションと同様ではなく、 オプション (または、エクステント数を使う場合は  ) を使うことに注意してください.

シンプールを縮小する
現時点で、LVM はシンプールのサイズを縮小させることはできません. LVM のバグ 812731 を確認してください.

シン論理ボリュームを縮小する
シン論理ボリュームは、通常の論理ボリュームと同様に縮小されます.

例えば:

コマンドでは、作成の際に使用した「仮想サイズ」のオプションと同様ではなく、 オプション (または、エクステント数を使う場合は  ) を使うことに注意してください.

シンプールを削除する
シンプールは、その中のすべてのシン論理ボリュームが削除されるまで、削除することができません.

シンプールがシン論理ボリュームをひとつも提供していないなら、 コマンドを使って削除することができます:

LVM2 スナップショットとシンスナップショット
スナップショットは、他の論理ボリュームのコピーとして振る舞う論理ボリュームです. スナップショットはそれが作成された時点でのオリジナルの論理ボリュームの状態として見ることができます.

スナップショット論理ボリュームを作成する
スナップショット論理ボリュームは、 で  オプションを使用することで作成されます. スナップショット論理ボリュームにも記憶域が割り付けられ、与えられます. LVM はオリジナルの論理ボリュームに対して行われた変更をすべて「記録」し、これらの変更をスナップショットのために割り付けられた記憶域に保管します. スナップショットの状態が問い合わせられたとき、LVM はオリジナルの論理ボリュームを元にして、すべての記録された変更を確認し、変更を「アンドゥ」した結果をユーザに提示します.

したがって、スナップショット論理ボリュームはオリジナルの論理ボリュームへ変更が行われるのに応じて「成長」します. スナップショットに割り付けられた記憶域が完全に使用されると、スナップショットは自動的にシステムから削除されます.

上の例は、ボリュームグループ vg0 内の論理ボリューム lvol1 を元にして、20140412_lvol1 という名前のスナップショット論理ボリュームを作成します. スナップショット論理ボリュームは、ボリュームグループに割り付けられた容量 (実際にはエクステント) の 10% を使用します.

スナップショット論理ボリュームにアクセスする
スナップショット論理ボリュームは通常の論理ボリュームと同じようにマウントすることができます. スナップショットに対して行える操作は読み込みのみに制限されません. スナップショットを変更することもできるので、「実運用」用のファイルシステムに変更を加える前に変更をテストするためにスナップショットを使用することができます.

スナップショット論理ボリュームが存在している間は、通常のオリジナルの論理ボリュームはサイズ縮小または削除を行うことができません.

LVM シンスナップショット
シンスナップショットを作成するには、 コマンドを  とともに利用します. サイズの宣言を渡す必要はありません:

シン論理ボリュームスナップショットは、オリジナルのシン論理ボリュームと同じサイズを持ち、他のシン論理ボリュームと同様に物理割り付けを行いません.

スナップショットのスナップショットを取ることもできます:

シンスナップショットには通常のスナップショットに対するいくつかの利点があります. 第一に、シンスナップショットは一度作成されると、オリジナルの論理ボリュームから独立したものになります. オリジナルの論理ボリュームは、スナップショットに影響を与えることなく縮小したり削除したりできます. 第二に、シンスナップショットを再帰的に (スナップショットのスナップショットを) 作成する場合、通常の再帰 LVM スナップショットで発生する "連鎖" オーバーヘッドがなく、効率的に作成することができます.

スナップショットの状態にロールバックする
論理ボリュームをスナップショットの版にロールバックするには、次のコマンドを使用してください:

ボリュームのサイズにもよりますが、これには数分かかることがあります. 親の論理ボリュームがオフラインになったときに初めてロールバックが発生することに注意してください. そのため再起動が必要になるかもしれません.

シンスナップショットをロールバックする
シンボリュームでは、 は動作しません. 代わりに、オリジナルの論理ボリュームを削除して、スナップショットの名前を変更してください:

様々なストレージ割り付け方法
LVM は様々なストレージの割り付け方法に対応しています:
 * リニアボリューム (これがデフォルトです);
 * ミラー化ボリューム (アクティブ/スタンバイ構成に近い);
 * ストライピング (RAID0);
 * ミラー化ボリューム (RAID1 - アクティブ/アクティブ構成に近い);
 * パリティ付きストライピング (RAID4 および RAID5);
 * ダブルパリティ付きストライピング (RAID6);
 * ストライピングおよびミラーリング (RAID10).

リニアボリューム
リニアボリュームは最もよく使われる LVM ボリュームの種類です. LVM は論理ボリュームを可能な限り物理的に連続して割り付けようとします. 論理ボリューム全体を収められる大きさの物理ボリュームがある場合は、LVM はそこに論理ボリュームを割り付け、そうでない場合は可能な限り少ない断片に分けることになります.

先に紹介したボリュームグループと論理ボリュームを作成するコマンドは、リニアボリュームを作成します.

リニアボリュームには特別な前提条件が無いため、最も利用しやすく、自在にリサイズや移動を行うことができます. 論理ボリュームが複数の物理ボリュームにまたがって割り付けられている場合、物理ボリュームのどれかひとつでも利用できなくなると、その論理ボリュームはもはや開始させることができず、利用できなくなるでしょう.

ミラー化ボリューム
LVM はミラー化されたボリュームに対応しており、ドライブ障害発生時の耐障害性を提供します. RAID1 とは違い、パフォーマンス上の利点はありません. すべての読み込みと書き込みはミラーの一方に行われます.

ミラーの状態を追跡するために、LVM はログを取る必要があります. このログは、ミラー化論理ボリュームのいずれも含まない物理ボリューム上に配置するのが推奨されます (むしろ必須であることも多いです). ミラーのために利用できるログは 3 種類あります:


 * 1) Disk is the default log type. All changes made are logged into extra metadata extents, which LVM manages. If a device fails, then the changes are kept in the log until the mirror can be restored again.
 * 2) Mirror logs are disk logs that are themselves mirrored.
 * 3) Core mirror logs record the state of the mirror in memory only. LVM will have to rebuild the mirror every time it is activated. This type is useful for temporary mirrors.

To create a logical volume with a single mirror, pass the -m 1 argument (to select standard mirroring) with optionally  to select a particular log type:

The -m 1 tells LVM to create one (additional) mirror, so requiring 2 physical volumes. The  option is an optimization - without it LVM will try synchronize the mirror by copying empty sectors from one logical volume to another.

It is possible to create a mirror of an existing logical volume:

The  option does the conversion in the background as this can take quite a while.

ミラーを削除するには、ミラーの数を 0 に設定して (戻して) ください:

If part of the mirror is unavailable (usually because the disk containing the physical volume has failed), the volume group will need to be brought up in degraded mode:

On the first write, LVM will notice the mirror is broken. The default policy ("remove") is to automatically reduce/break the mirror according to the number of pieces available. A 3-way mirror with a missing physical volume will be reduced to 2-way mirror; a 2-way mirror will be reduced to a regular linear volume. If the failure is only transient, and the missing physical volume returns after LVM has broken the mirror, the mirrored logical volume will need to be recreated on it.

To recover the mirror, the failed physical volume needs to be removed from the volume group, and a replacement physical volume needs to be added (or if the volume group has a free physical volume, it can be created on that one). Then the mirror can be recreated with at which point the old physical volume can be removed from the volume group:

It is possible to have LVM recreate the mirror with free extents on a different physical volume if one side fails. To accomplish that, set  to allocate in.

シンミラー
It is not (yet) possible to create a mirrored thin pool or thin volume. It is possible to create a mirrored thin pool by creating a normal mirrored logical volume and then converting the logical volume to a thin pool with. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

ストライピング (RAID0)
Instead of a linear volume, where multiple contiguous physical volumes are appended, it possible to create a striped or RAID0 volume for better performance. This will alternate storage allocations across the available physical volumes.

To create a striped volume over three physical volumes:

The  option indicates over how many physical volumes the striping should be done.

It is possible to mirror a stripe set. The  and   options can be combined to create a striped mirror:

This creates a 2 physical volume stripe set and mirrors it on 2 different physical volumes, for a total of 4 physical volumes. An existing stripe set can be mirrored with.

A thin pool can be striped like any other logical volume. All the thin volumes created from the pool inherit that settings - do not specify it manually when creating a thin volume.

It is not possible to stripe an existing volume, nor reshape the stripes across more/less physical volumes, nor to convert to a different RAID level/linear volume. A stripe set can be mirrored. It is possible to extend a stripe set across additional physical volumes, but they must be added in multiples of the original stripe set (which will effectively linearly append a new stripe set).

ミラーリング (RAID1)
Unlike RAID0, which is striping, is mirroring, but implemented differently than the original LVM mirror. Under RAID1, reads are spread out across physical volumes, improving performance. RAID1 mirror failures do not cause I/O to block because LVM does not need to break it on write.

Any place where an LVM mirror could be used, a RAID1 mirror can be used in its place. It is possible to have LVM create RAID1 mirrors instead of regular mirrors implicitly by setting mirror_segtype_default to raid1 in.

To create a logical volume with a single mirror:

Note the difference for creating a mirror: There is no mirrorlog specified, because RAID1 logical volumes do not have an explicit mirror log - it built-in to the logical volume.

It is possible to convert an existing logical volume to RAID1:

To remove a RAID1 mirror, set the number of mirrors to 0:

If part of the RAID1 is unavailable (usually because the disk containing the physical volume has failed), the volume group will need to be brought up in degraded mode:

Unlike an LVM mirror, writing does NOT break the mirroring. If the failure is only transient, and the missing physical volume returns, LVM will resync the mirror by copying cover the out-of-date segments instead of the entire logical volume. If the failure is permanent, then the failed physical volume needs to be removed from the volume group, and a replacement physical volume needs to be added (or if the volume group has a free physical volume, it can be created on a different PV). The mirror can then be repaired with, and the old physical volume can be removed from the volume group:

シン RAID1
It is not (yet) possible to create a RAID1 thin pool or thin volume. It is possible to create a RAID1 thin pool by creating a normal mirrored logical volume and then converting the logical volume to a thin pool with. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will then merge them into a single logical volume.

パリティ付きストライピング (RAID4 および RAID5)
RAID0 is not fault-tolerant - if any of the physical volumes fail then the logical volume is unusable. By adding a parity stripe to RAID0 the logical volume can still function if a physical volume is missing. A new physical volume can then be added to restore fault tolerance.

Stripsets with parity come in 2 flavors: RAID4 and RAID5. Under RAID4, all the parity stripes are stored on the same physical volume. This can become a bottleneck because all writes hit that physical volume, and it gets worse the more physical volumes are in the array. With RAID5, the parity data is distributed evenly across the physical volumes so none of them become a bottleneck. For that reason, RAID4 is rare and is considered obsolete/historical. In practice, all stripesets with parity are RAID5.

Only the data physical volumes are specified with -i, LVM adds one to it automatically for the parity. So for a 3 physical volume RAID5, -i 2 is passed on and not -i 3.

When a physical volume fails, then the volume group will need to be brought up in degraded mode:

The volume will work normally at this point, however this degrades the array to RAID0 until a replacement physical volume is added. Performance is unlikely to be affected while the array is degraded - although it does need to recompute its missing data via parity, it only requires simple XOR for the parity block with the remaining data. The overhead is negligible compared to the disk I/O.

RAID5 を修復するには:

It is possible to replace a still working physical volume in RAID5 as well:

The same restrictions of stripe sets apply to stripe sets with parity as well: it is not possible to enable striping with parity on an existing volume, nor reshape the stripes with parity across more/less physical volumes, nor to convert to a different RAID level/linear volume. A stripe set with parity can be mirrored. It is possible to extend a stripe set with parity across additional physical volumes, but they must be added in multiples of the original stripe set with parity (which will effectively linearly append a new stripe set with parity).

シン RAID5 論理ボリューム
It is not (yet) possible to create stripe set with parity (RAID5) thin pools or thin logical volumes. It is possible to create a RAID5 thin pool by creating a normal RAID5 logical volume and then converting the logical volume into a thin pool with. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

ダブルパリティ付きストライピング (RAID6)
RAID6 is similar to RAID5, however RAID6 can survive up to two physical volume failures, thus offering more fault tolerance than RAID5 at the expense of extra physical volumes.

Like RAID5, the  option is used to specify the number of physical volumes to stripe, excluding the 2 physical volumes for parity. So for a 5 physical volume RAID6, pass on  and not.

RAID6 の回復は RAID5 と同じです.

シン RAID6 論理ボリューム
It is not (yet) possible to create a RAID6 thin pool or thin volumes. It is possible to create a RAID6 thin pool by creating a normal RAID6 logical volume and then converting the logical volume into a thin pool with. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

LVM RAID10
RAID10 is a combination of RAID0 and RAID1. It is more powerful than RAID0+RAID1 as the mirroring is done at the stripe level instead of the logical volume level, and therefore the layout doesn't need to be symmetric. A RAID10 volume can tolerate at least a single missing physical volume, and possibly more.

Both the  and   options are specified:   is the number of stripes and   is the number of mirrors. Two stripes and 1 mirror requires 4 physical volumes.

シン RAID10
It is not (yet) possible to create a RAID10 thin pool or thin volumes. It is possible to create a RAID10 thin pool by creating a normal RAID10 logical volume and then converting the logical volume into a thin pool with. 2 logical volumes are required: one for the thin pool and one for the thin metadata; the conversion process will merge them into a single logical volume.

LVM で実験する
実際のストレージデバイスを使用せずに LVM で実験することができます. これを実現するために、ループバックデバイスを作成します.

まずは、ループバックモジュールがロードされているか確認してください.

次に、デバイスのスキャンに を使用しないように LVM を設定してください:

Create some image files which will become the storage devices. The next example uses five files for a total of about ~10GB of real hard drive space:

Check which loopback devices are available:

Assuming all loopback devices are available, next create the devices:

The devices are now available to use as any other hard drive in the system (and thus be perfect for physical volumes).

トラブルシューティング
LVM は既に一定のレベルの冗長性を提供する機能をいくつか備えています. しかしながら、物理ボリュームまたは論理ボリュームが失われるという状況もあり、そしてそれらを復元できる場合もあります.

vgcfgrestore ユーティリティ
By default, on any change to a LVM physical volume, volume group, or logical volume, LVM2 create a backup file of the metadata in. These files can be used to recover from an accidental change (like deleting the wrong logical volume). LVM also keeps a backup copy of the most recent metadata in. These can be used to restore metadata to a replacement disk, or repair corrupted metadata.

To see what states of the volume group are available to be restored (partial output to improve readability):

誤って削除した論理ボリュームを復元する
Assuming the logical volume lvm_raid1 was accidentally removed from volume group vg0, it is possible to recover it as follows:

Replacing a failed physical volume
It possible to do a true "replace" and recreate the metadata on the new physical volume to be the same as the old physical volume:

The important line here is the UUID "unknown device".

This recreates the physical volume metadata, but not the missing logical volume or volume group data on the physical volume.

This now reconstructs all the missing metadata on the physical volume, including the logical volume and volume group data. However it doesn't restore the data, so the mirror is out of sync.

This will resync the mirror. This works with RAID 4,5 and 6 as well.

Deactivating a logical volume
It is possible to deactivate a logical volume with the following command:

It is not possible to mount the logical volume anywhere before it gets reactivated:

外部の情報

 * LVM2 sourceware.org
 * LVM tldp.org
 * LVM2 Wiki redhat.com
 * Shrinking root logical volume on-line