68.3. LVM ボリュームグループの管理
ボリュームグループ (VG) は、物理ボリューム (PV) の集合です。これにより、論理ボリューム (LV) に割り当て可能なディスク領域のプールが作成されます。
ボリュームグループ内で、割り当て可能なディスク領域は、エクステントと呼ばれる固定サイズの単位に分割されます。割り当て可能な領域の最小単位は、1 エクステントです。エクステントは、物理ボリュームでは物理エクステントと呼ばれます。
論理ボリュームには、物理エクステントと同じサイズの論理エクステントが割り当てられます。そのため、エクステントのサイズは、ボリュームグループ内のすべての論理ボリュームで同じになります。ボリュームグループは、論理エクステントを物理エクステントにマッピングします。
68.3.1. LVM ボリュームグループの作成
この手順では、物理ボリューム/dev/vdb1 および /dev/vdb2を使用して、LVM ボリュームグループ (VG) myvgを作成する方法を説明します。
前提条件
-
lvm2
パッケージがインストールされている。 - 物理ボリュームが作成されます。物理ボリュームの作成方法は、LVM 物理ボリュームの作成 を参照してください。
手順
ボリュームグループを作成します。
# vgcreate myvg /dev/vdb1 /dev/vdb2 Volume group "myvg" successfully created.
これにより、myvg という名前の VG が作成されます。物理ボリュームの /dev/vdb1 および /dev/vdb2 は、ボリュームグループ myvg のベースストレージレベルです。
要件に応じて、以下のコマンドのいずれかを使用して、作成したボリュームグループを表示します。
vgs
コマンド: ボリュームグループの情報を設定可能な形式で提供し、1 ボリュームグループにつき 1 行ずつ表示します。# vgs VG #PV #LV #SN Attr VSize VFree myvg 2 0 0 wz-n 159.99g 159.99g
vgdisplay
コマンド: 決められた形式でボリュームグループのプロパティー (サイズ、エクステント、物理ボリュームの数など) およびその他のオプションを表示します。以下の例は、ボリュームグループ myvg に関するvgdisplay
コマンドの出力を示しています。既存のすべてのボリュームグループを表示するには、ボリュームグループを指定しないでください。# vgdisplay myvg --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 4 Metadata Sequence No 6 VG Access read/write [..]
vgscan
コマンド: ボリュームグループ用に、システムにあるサポートされるすべての LVM ブロックデバイスをスキャンします。# vgscan Found volume group "myvg" using metadata type lvm2
オプション:オプション: 空き物理ボリュームを 1 つまたは複数追加して、ボリュームグループの容量を増やします。
# vgextend myvg /dev/vdb3 Physical volume "/dev/vdb3" successfully created. Volume group "myvg" successfully extended
オプション:既存のボリュームグループの名前を変更します。
# vgrename myvg myvg1 Volume group "myvg" successfully renamed to "myvg1"
関連情報
-
vgcreate (8)
、vgextend (8)
、vgdisplay (8)
、vgs (8)
、vgscan (8)
、vgrename (8)
、およびlvm (8)
の man ページ
68.3.2. LVM ボリュームグループの統合
2 つのボリュームグループを統合して 1 つのボリュームグループにするには、vgmerge
コマンドを使用します。ボリュームの物理エクステントサイズが同じで、かつ両ボリュームグループの物理ボリュームおよび論理ボリュームのサマリーがマージ先ボリュームグループの制限内に収まる場合は、非アクティブなマージ元のボリュームを、アクティブまたは非アクティブのマージ先ボリュームにマージができます。
手順
非アクティブなボリュームグループ databases をアクティブまたは非アクティブなボリュームグループ myvg にマージして、詳細なランタイム情報を提供します。
# vgmerge -v myvg databases
関連情報
-
vgmerge(8)
の man ページ
68.3.3. ボリュームグループからの物理ボリュームの削除
ボリュームグループから未使用の物理ボリュームを削除するには、vgreduce
コマンドを使用します。vgreduce
コマンドは、空の物理ボリュームを 1 つまたは複数削除して、ボリュームグループの容量を縮小します。これにより、物理ボリュームが解放され、異なるボリュームグループで使用したり、システムから削除できるようになります。
手順
物理ボリュームがまだ使用中の場合は、データを同じボリュームグループから別の物理ボリュームに移行します。
# pvmove /dev/vdb3 /dev/vdb3: Moved: 2.0% ... /dev/vdb3: Moved: 79.2% ... /dev/vdb3: Moved: 100.0%
既存のボリュームグループ内の他の物理ボリュームに空きエクステントが十分にない場合は、以下を行います。
/dev/vdb4 から、物理ボリュームを新規作成します。
# pvcreate /dev/vdb4 Physical volume "/dev/vdb4" successfully created
新規作成した物理ボリュームを myvg ボリュームグループに追加します。
# vgextend myvg /dev/vdb4 Volume group "myvg" successfully extended
データを /dev/vdb3 から /dev/vdb4 に移動します。
# pvmove /dev/vdb3 /dev/vdb4 /dev/vdb3: Moved: 33.33% /dev/vdb3: Moved: 100.00%
ボリュームグループから物理ボリューム /dev/vdb3 を削除します。
# vgreduce myvg /dev/vdb3 Removed "/dev/vdb3" from volume group "myvg"
検証
/dev/vdb3 物理ボリュームが myvg ボリュームグループから削除されているかどうかを確認します。
# pvs PV VG Fmt Attr PSize PFree Used /dev/vdb1 myvg lvm2 a-- 1020.00m 0 1020.00m /dev/vdb2 myvg lvm2 a-- 1020.00m 0 1020.00m /dev/vdb3 lvm2 a-- 1020.00m 1008.00m 12.00m
関連情報
-
vgreduce(8)
、pvmove(8)
、およびpvs(8)
の man ページ
68.3.4. LVM ボリュームグループの分割
この手順では、既存のボリュームグループを分割する方法を説明します。この物理ボリュームに未使用領域が十分にあれば、新たにディスクを追加しなくてもボリュームグループを作成できます。
初期設定では、ボリュームグループ myvg は/dev/vdb1、/dev/vdb2、および /dev/vdb3 で設定されます。この手順を完了すると、ボリュームグループ myvg は /dev/vdb1 および /dev/vdb2 で設定され、2 番目のボリュームグループ yourvg は /dev/vdb3 で設定されます。
前提条件
-
ボリュームグループに十分な空き領域がある。
vgscan
コマンドを使用すると、現在ボリュームグループで利用可能な空き領域の容量を確認できます。 -
既存の物理ボリュームの空き容量に応じて、
pvmove
コマンドを使用して、使用されている物理エクステントをすべて他の物理ボリュームに移動します。詳細は、ボリュームグループからの物理ボリュームの削除 を参照してください。
手順
既存のボリュームグループ myvg を新しいボリュームグループ yourvg に分割します。
# vgsplit myvg yourvg /dev/vdb3 Volume group "yourvg" successfully split from "myvg"
注記既存のボリュームグループを使用して論理ボリュームを作成した場合は、次のコマンドを実行して論理ボリュームを非アクティブにします。
# lvchange -a n /dev/myvg/mylv
論理ボリュームを作成する方法は、LVM 論理ボリュームの管理 を参照してください。
2 つのボリュームグループの属性を表示します。
# vgs VG #PV #LV #SN Attr VSize VFree myvg 2 1 0 wz--n- 34.30G 10.80G yourvg 1 0 0 wz--n- 17.15G 17.15G
検証
新規作成したボリュームグループ yourvg が、/dev/vdb3 物理ボリュームで設定されているかどうかを確認します。
# pvs PV VG Fmt Attr PSize PFree Used /dev/vdb1 myvg lvm2 a-- 1020.00m 0 1020.00m /dev/vdb2 myvg lvm2 a-- 1020.00m 0 1020.00m /dev/vdb3 yourvg lvm2 a-- 1020.00m 1008.00m 12.00m
関連情報
-
vgsplit(8)
、vgs(8)
、およびpvs(8)
の man ページ
68.3.5. ボリュームグループを別のシステムへ移動
LVM ボリュームグループ全体を、別のシステムに移動できます。これを実行するには、vgexport
と vgimport
のコマンドの使用が推奨されます。
vgimport
コマンドの --force
引数を使用できます。この引数を使用すると、物理ボリュームがないボリュームグループをインポートし、その後に vgreduce --removemissing
コマンドを実行することが可能になります。
vgexport
コマンドは、非アクティブのボリュームグループにシステムがアクセスできないようにするため、物理ボリュームの割り当て解除が可能になります。vgimport
コマンドは、vgexport
コマンドで非アクティブにしていたボリュームグループに、マシンが再度アクセスできるようにします。
ボリュームグループを 2 つのシステム間で移行するには、以下の手順に従います。
- ボリュームグループ内のアクティブなボリュームのファイルにアクセスしているユーザーがいないことを確認してから、論理ボリュームをアンマウントします。
-
vgchange
コマンドで-a n
引数を使用して、そのボリュームグループを非アクティブとしてマークします。これによりこのボリュームグループでこれ以上の動作が発生しないようにします。 vgexport
コマンドを使用してボリュームグループをエクスポートします。これにより、削除するシステムからボリュームグループへアクセスできなくなります。ボリュームグループをエクスポートして
pvscan
コマンドを実行すると、以下の例のように、エクスポート先のボリュームグループに物理ボリュームが表示されます。#
pvscan
PV /dev/sda1 is in exported VG myvg [17.15 GB / 7.15 GB free] PV /dev/sdc1 is in exported VG myvg [17.15 GB / 15.15 GB free] PV /dev/sdd1 is in exported VG myvg [17.15 GB / 15.15 GB free] ...次にシステムがシャットダウンする時に、ボリュームグループを設定していたディスクを外して、新しいシステムに接続できます。
-
ディスクが新しいシステムに接続したら、
vgimport
コマンドを使用してボリュームグループをインポートし、新しいシステムからアクセスできるようにします。 -
vgchange
コマンドで-a y
引数を使用して、ボリュームグループをアクティブにします。 - ファイルシステムをマウントして使用できるようにします。
68.3.6. LVM ボリュームグループの削除
この手順では、既存のボリュームグループを削除する方法を説明します。
前提条件
- ボリュームグループには論理ボリュームがありません。ボリュームグループから論理ボリュームを削除するには、LVM 論理ボリュームの削除 を参照してください。
手順
クラスター環境にボリュームグループが存在する場合は、その他のすべてのノードで、ボリュームグループの
lockspace
を停止します。削除するノード以外の全ノードで、次のコマンドを実行します。# vgchange --lockstop vg-name
ロックが停止するのを待ちます。
ボリュームグループを削除します。
# vgremove vg-name Volume group "vg-name" successfully removed
関連情報
-
vgremove(8)
の man ページ