Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
4.3. ボリュームグループの管理
このセクションでは、ボリュームグループ管理の様々な場面で使用するコマンドについて説明します。
4.3.1. ボリュームグループの作成
1 つまたは複数の物理ボリュームからボリュームグループを作成するには、
vgcreate
コマンドを使用します。vgcreate
コマンドは、名前を指定してボリュームグループを作成し、そこに物理ボリュームを 1 つ以上追加します。
以下のコマンドは、物理ボリューム
/dev/sdd1
と /dev/sde1
が含まれる vg1
という名前のボリュームグループを作成します。
# vgcreate vg1 /dev/sdd1 /dev/sde1
ボリュームグループの作成に物理ボリュームが使用されるとき、ディスク領域はデフォルトで 4MB のエクステントに分割されます。このエクステントは、論理ボリュームのサイズを拡張/縮小する最小単位です。エクステントの数が多くても、論理ボリュームの I/O パフォーマンスに影響を与えることはありません。
エクステントサイズのデフォルト設定が適切でない場合は、
vgcreate
コマンドに -s
オプションを使用して、エクステントのサイズを指定することができます。vgcreate
コマンドに -p
と -l
の引数を使用すると、ボリュームグループに追加可能な物理ボリュームまたは論理ボリュームの数に制限をかけることができます。
デフォルトでは、ボリュームグループは、同じ物理ボリューム上に並行ストライプを配置しないなど、常識的な規則に従って物理エクステントを割り当てます。これが
normal
の割り当てポリシーです。vgcreate
コマンドで --alloc
引数を使用して、contiguous
、anywhere
、または cling
の割り当てポリシーを指定できます。一般的に、normal
以外の割り当てポリシーが必要となるのは、通常とは異なる、標準外のエクステント割り当てを必要とする特別なケースのみです。LVM で物理エクステントを割り当てる方法の詳細は、「LVM の割り当て」 を参照してください。
LVM ボリュームグループと配下にある論理ボリュームは、
/dev
ディレクトリー内に、以下のような配置で、デバイス特有のファイルディレクトリーツリーに格納されます。
/dev/vg/lv/
たとえば、
myvg1
と myvg2
という名前のボリュームグループを作成し、それぞれに lv01
、lv02
、lv03
という名前の論理ボリュームを作成した場合は、デバイス特有のファイルが 6 つ作成されます。
/dev/myvg1/lv01 /dev/myvg1/lv02 /dev/myvg1/lv03 /dev/myvg2/lv01 /dev/myvg2/lv02 /dev/myvg2/lv03
デバイス特有のファイルは、対応する論理ボリュームがアクティブになっていないと表示されません。
LVM におけるデバイスの最大サイズは、64 ビット CPU 上で 8 エクサバイトです。
4.3.2. LVM の割り当て
LVM の操作で物理エクステントを単一または複数の論理ボリュームに割り当てる必要がある場合、割り当ては以下のように行われます。
- ボリュームグループ上で割り当てられていない物理エクステントが、割り当ての候補になります。コマンドラインの末尾に物理エクステントの範囲を指定すると、指定した物理ボリュームの中で、その範囲内で割り当てられていない物理エクステントだけが、割り当て用エクステントとして考慮されます。
- 割り当てポリシーは順番に試行されます。最も厳格なポリシー (
contiguous
) から始まり、最後は--alloc
オプションで指定した割り当てポリシーか、特定の論理ボリュームやボリュームグループにデフォルトとして設定されている割り当てポリシーが試行されます。割り当てポリシーでは、埋める必要がある空の論理ボリューム領域の最小番号の論理エクステントから始まり、割り当てポリシーによる制限に沿って、できるだけ多くの領域の割り当てを行います。領域が足りなくなると、LVM は次のポリシーに移動します。
割り当てポリシーの制限は以下のとおりです。
contiguous
の割り当てポリシーでは、論理ボリュームの最初の論理エクステントを除いたすべての論理エクステントは、その直前の論理エクステントに物理的に隣接している必要があります。論理ボリュームがストライプ化またはミラー化されている場合は、contiguous
の割り当て制限が、領域を必要とする各ストライプまたはミラーイメージ (レッグ) に個別に適用されます。cling
の割り当てポリシーでは、既存の論理ボリュームに追加する論理エクステントに使用される物理ボリュームが、その論理ボリューム内の別の (1 つ以上の) 論理エクステントですでに使用されている必要があります。allocation/cling_tag_list
の設定パラメーターが定義されており、一覧表示されているいずれかのタグが 2 つの物理ボリュームにある場合、この 2 つの物理ボリュームは一致すると見なされます。これにより、割り当てのために、同様のプロパティー (物理的な場所など) を持つ物理ボリュームのグループにタグを付け、その物理ボリュームを同等なものとして処理することができます。cling
ポリシーを、LVM ボリュームの拡張時に使用する追加の物理ボリュームを指定する LVM タグと併用する方法の詳細は、「cling
割り当てポリシーを使用した論理ボリュームの拡張」 を参照してください。論理ボリュームがストライプ化またはミラー化されると、cling
の割り当て制限が、領域を必要とする各ストライプまたはミラーイメージ (レッグ) に個別に適用されます。normal
の割り当てポリシーは、並列の論理ボリューム (異なるストライプまたはミラーイメージ/レッグ) 内の同じオフセットで、その並列の論理ボリュームにすでに割り当てられている論理エクステントと同じ物理ボリュームを共有する物理エクステントは選択しません。ミラーデータを保持するために、論理ボリュームと同時にミラーログを割り当てる場合、normal
の割り当てポリシーでは、最初にログとデータに対して、それぞれ別の物理ボリュームを選択しようとします。異なる物理ボリュームを選択できず、かつallocation/mirror_logs_require_separate_pvs
設定パラメーターが 0 に設定されている場合は、データの一部とログが物理ボリュームを共有できるようになります。また、シンプールメタデータを割り当てる場合も、normal
の割り当てポリシーはミラーログを割り当てる場合と同じようになりますが、設定パラメーターはallocation/thin_pool_metadata_require_separate_pvs
の値が適用されます。- 割り当て要求を満たすのに十分な空きエクステントがあっても、
normal
の割り当てポリシーによって使用されない場合は、たとえ同じ物理ボリュームに 2 つのストライプを配置することによってパフォーマンスが低下しても、anywhere
割り当てポリシーがその空きエクステントを使用します。
割り当てポリシーは、
vgchange
コマンドで変更できます。
注記
定義された割り当てポリシーに沿って、このセクションで説明されている以上のレイアウトの操作が必要な場合は、今後のバージョンでコードが変更する可能性があることに注意してください。たとえば、割り当て可能な空き物理エクステントの数が同じ 2 つの空の物理ボリュームをコマンドラインで指定する場合、現行バージョンの LVM では、それが表示されている順番に使用が検討されます。ただし、今後のリリースで、そのプロパティーが変更されない保証はありません。特定の論理ボリューム用に特定のレイアウトを取得することが重要な場合は、各手順に適用される割り当てポリシー基づいて LVM がレイアウトを決定することがないように、
lvcreate
と lvconvert
を順に使用してレイアウトを構築してください。
特定のケースで、割り当てプロセスがどのように行われているかを確認するには、コマンドに
-vvvv
オプションを追加するなどして、デバッグロギングの出力を表示します。
4.3.3. クラスター内でのボリュームグループ作成
vgcreate
コマンドで、単一のノードで作成する場合と同様に、クラスター環境内に CLVM ボリュームグループを作成します。
注記
Red Hat Enterprise Linux 7 では、クラスターは Pacemaker で管理されます。クラスター化された LVM 論理ボリュームは Pacemaker クラスターと併用される場合のみサポートされ、クラスターリソースとして設定する必要があります。クラスターで LVM ボリュームを設定するための情報は、「「Red Hat High Availability クラスターの LVM 論理ボリューム」」を参照してください。
クラスターのメンバーによって共有されるボリュームグループを作成するには、
vgcreate -cy
または vgchange -cy
コマンドで clustered 属性を設定して作成する必要があります。CLVMD が実行されている場合、クラスター属性は自動的に設定されます。この clustered 属性は、ボリュームグループが CLVMD によって管理および保護される必要があることを示します。クラスターによって共有されず、単一のホストのみが認識できるボリュームグループを作成する場合、この clustered 属性を vgcreate -cn
または vgchange -cn
コマンドで向こうにする必要があります。
デフォルトでは、clustered 属性で共有ストレージに作成されたボリュームグループは、その共有ストレージにアクセス可能なすべてのコンピューターによって認識されます。ただし、
vgcreate
コマンドの -cn
オプションを使用すれば、クラスター内の 1 つのノードのみが認識できるローカルのボリュームグループを作成することができます。
クラスター環境で以下のコマンドを実行すると、コマンドを実行しているノードに対してローカルとなるボリュームグループが作成されます。このコマンドは、物理ボリュームである
/dev/sdd1
と /dev/sde1
を含むローカルボリューム vg1
を作成します。
# vgcreate -c n vg1 /dev/sdd1 /dev/sde1
vgchange
コマンドで -c
オプションを使用すると、既存のボリュームグループをローカルにするか、もしくはクラスター化するかを変更できます。詳細は 「ボリュームグループのパラメーター変更」 で説明しています。
既存のボリュームグループがクラスター化したボリュームグループであるかどうかは、
vgs
コマンドでチェックできます。ボリュームがクラスター化されている場合は、c
属性を表示します。以下のコマンドは、VolGroup00
と testvg1
のボリュームグループの属性を表示します。この例では、VolGroup00
はクラスター化されていませんが、testvg1
は、Attr
列にある c
属性が示すようにクラスター化されています。
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz--n- 19.88G 0
testvg1 1 1 0 wz--nc 46.00G 8.00M
4.3.4. ボリュームグループへの物理ボリュームの追加
物理ボリュームを既存ボリュームグループに追加するには、
vgextend
コマンドを使用します。vgextend
コマンドは、空き物理ボリュームを 1 つまたは複数追加して、ボリュームグループの容量を増やします。
以下のコマンドは、物理ボリューム
/dev/sdf1
をボリュームグループ vg1
に追加します。
# vgextend vg1 /dev/sdf1
4.3.5. ボリュームグループの表示
LVM ボリュームグループのプロパティーを表示するのに使用できるコマンドは 2 つあります。
vgs
と vgdisplay
です。
vgscan
コマンドは、ボリュームグループのすべてのディスクをスキャンして LVM キャッシュファイルを再構築するほかに、ボリュームグループを表示することもできます。vgscan
コマンドに関する情報は 「キャッシュファイル構築のためのボリュームグループのディスクスキャン」 を参照してください。
vgs
コマンドは、ボリュームグループの情報を設定可能な形式で提供し、1 ボリュームグループにつき 1 行ずつ表示します。vgs
コマンドでは形式をかなり自由にカスタマイズできるため、スクリプト作成に役立ちます。出力をカスタマイズする vgs
コマンドを使用する方法は、「LVM 用のカスタム報告」 を参照してください。
vgdisplay
コマンドは、決められた形式でボリュームグループのプロパティー (サイズ、エクステント、物理ボリュームの数など) を表示します。以下の例は、ボリュームグループ new_vg
に対する vgdisplay
コマンドの出力を示しています。ボリュームグループを指定しないと、既存のボリュームグループがすべて表示されます。
# vgdisplay new_vg
--- Volume group ---
VG Name new_vg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 11
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 51.42 GB
PE Size 4.00 MB
Total PE 13164
Alloc PE / Size 13 / 52.00 MB
Free PE / Size 13151 / 51.37 GB
VG UUID jxQJ0a-ZKk0-OpMO-0118-nlwO-wwqd-fD5D32
4.3.6. キャッシュファイル構築のためのボリュームグループのディスクスキャン
vgscan
コマンドは、システムでサポートされるすべてのディスクデバイスをスキャンし、LVM 物理ボリュームとボリュームグループを検索します。これにより、/etc/lvm/cache/.cache
ファイルに LVM キャッシュファイルが作成され、ここに現在の LVM デバイスの一覧を保ちます。
LVM は、システムの起動時、
vgcreate
コマンドの実行時、LVM による不整合の検出時などの他の LVM 操作時に、vgscan
コマンドを自動的に実行します。
注記
ハードウェア設定を変更して、ノードに対してデバイスの追加/削除を行う場合、システムの起動時に存在していなかったデバイスがシステムに認識されるように、
vgscan
コマンドを手動で実行しなければならない場合があります。これは、たとえば、SAN 上のシステムに新しいディスクを追加したり、物理ボリュームとしてラベルが付けられた新しいディスクをホットプラグする場合に必要になる可能性があります。
/etc/lvm/lvm.conf
ファイルでフィルターを定義して、特定デバイスを除外するようにスキャンを設定できます。スキャンするデバイスを制御するフィルターの使用方法は、「フィルターを使用した LVM デバイススキャンの制御」 を参照してください。
次の例は、
vgscan
コマンドの出力になります。
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "new_vg" using metadata type lvm2
Found volume group "officevg" using metadata type lvm2
4.3.7. ボリュームグループからの物理ボリュームの削除
ボリュームグループから未使用の物理ボリュームを削除するには、
vgreduce
コマンドを使用します。vgreduce
コマンドは、空の物理ボリュームを 1 つまたは複数削除して、ボリュームグループの容量を縮小します。これによって、物理ボリュームが解放され、異なるボリュームグループで使用したり、システムから削除できるようになります。
ボリュームグループから物理ボリュームを削除する前に、
pvdisplay
コマンドを使用して、その物理ボリュームが論理ボリュームで使用されていないことを確認することができます。
# pvdisplay /dev/hda1
-- Physical volume ---
PV Name /dev/hda1
VG Name myvg
PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB]
PV# 1
PV Status available
Allocatable yes (but full)
Cur LV 1
PE Size (KByte) 4096
Total PE 499
Free PE 0
Allocated PE 499
PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7
物理ボリュームが使用中の場合は、
pvmove
コマンドを使用して、データを別の物理ボリュームに移行する必要があります。その後、vgreduce
コマンドを使用してその物理ボリュームを削除します。
以下のコマンドは、物理ボリューム
/dev/hda1
を、ボリュームグループ my_volume_group
から取り除きます。
# vgreduce my_volume_group /dev/hda1
論理ボリュームに、障害のある物理ボリュームが含まれる場合は、その論理ボリュームを使用することはできません。見つからない物理ボリュームをボリュームグループから削除します。その物理ボリュームに論理ボリュームが割り当てられていない場合は、
vgreduce
コマンドの --removemissing
パラメーターを使用することができます。
障害が発生した物理ボリュームに、セグメントタイプが
mirror
の論理ボリュームのミラーイメージが含まれる場合、vgreduce --removemissing --mirrorsonly --force
コマンドを使ってミラーからイメージを削除することができます。これにより、物理ボリュームのミラーイメージである論理ボリュームのみが削除されます。
LVM ミラーの障害から回復する方法は、「LVM ミラー障害からの回復」 を参照してください。ボリュームグループから紛失した物理ボリュームを削除する方法は、「紛失した物理ボリュームのボリュームグループからの削除」 を参照してください。
4.3.8. ボリュームグループのアクティブ化と非アクティブ化
ボリュームグループを作成すると、デフォルトでアクティブになります。これは、そのグループ内の論理ボリュームがアクセス可能で、かつ変更される可能性があることを意味します。
ボリュームグループを非アクティブ化し、カーネルに認識されないようにする必要のある様々な状況があります。ボリュームグループを非アクティブ化またはアクティブ化するには、
vgchange
コマンドで -a
(--available
) 引数を使用します。
以下の例では、ボリュームグループ
my_volume_group
を非アクティブ化します。
# vgchange -a n my_volume_group
クラスターロッキングが有効な場合には、「e」を追加すると、 1 つのノードでボリュームグループが排他的にアクティブ化または非アクティブ化されます。「l」を追加すると、ローカルノードでのみボリュームグループがアクティブ化または非アクティブ化されます。単一ホストのスナップショットを使用する論理ボリュームは、一度に 1 つのノードでしか利用できないため、常に排他的にアクティブ化されます。
「論理ボリュームグループのパラメーター変更」 で説明されているように、
lvchange
コマンドを使用して、個別の論理ボリュームを非アクティブ化できます。クラスター内の個別ノード上で論理ボリュームをアクティブ化する方法については、「クラスター内の個別ノードでの論理ボリュームのアクティブ化」 を参照してください。
4.3.9. ボリュームグループのパラメーター変更
「ボリュームグループのアクティブ化と非アクティブ化」 で説明されているように、
vgchange
コマンドは、ボリュームグループを非アクティブ化およびアクティブ化するのに使用されます。また、このコマンドを使用して、既存のボリュームグループに関するボリュームグループパラメーターを変更することもできます。
以下のコマンドは、ボリュームグループ
vg00
の論理ボリュームの最大数を 128 に変更します。
# vgchange -l 128 /dev/vg00
vgchange
コマンドで変更できるボリュームグループパラメーターの説明については、vgchange
(8) の man ページを参照してください。
4.3.10. ボリュームグループの削除
論理ボリュームがないボリュームグループを削除するには、
vgremove
コマンドを使用します。
# vgremove officevg
Volume group "officevg" successfully removed
4.3.11. ボリュームグループの分割
ボリュームグループの物理ボリュームを分割して、新しいボリュームグループを作成するには、
vgsplit
コマンドを使用します。
論理ボリュームはボリュームグループ間で分割することはできません。それぞれの既存の論理ボリュームは完全に物理ボリューム上に存在し、既存または新規のボリュームグループを形成している必要があります。ただし必要な場合は、
pvmove
コマンドを使用して、その分割を強制することができます。
以下の例は、元のボリュームグループ
bigvg
から新規のボリュームグループ smallvg
を分割しています。
# vgsplit bigvg smallvg /dev/ram15
Volume group "smallvg" successfully split from "bigvg"
4.3.12. ボリュームグループの統合
2 つのボリュームグループを統合して 1 つのボリュームグループにするには、
vgmerge
コマンドを使用します。ボリュームの物理エクステントサイズが同じで、かつ両ボリュームグループの物理および論理ボリュームのサマリーが「マージ先」ボリュームグループの制限内に収まる場合は、非アクティブな「マージ元」のボリュームを、アクティブまたは非アクティブの「マージ先」ボリュームにマージすることができます。
以下のコマンドは、非アクティブなボリュームグループ
my_vg
をアクティブまたは非アクティブなボリュームグループ databases
にマージして、詳細なランタイム情報を提供します。
# vgmerge -v databases my_vg
4.3.13. ボリュームグループメタデータのバックアップ
メタデータのバックアップとアーカイブは、
lvm.conf
ファイルで無効になっていない限り、ボリュームグループまたは論理ボリューム設定の変更時に自動的に作成されます。デフォルトでは、メタデータのバックアップは /etc/lvm/backup
ファイルに保存され、メタデータのアーカイブは /etc/lvm/archives
ファイルに保存されます。vgcfgbackup
コマンドを使用すると、手動でメタデータを /etc/lvm/backup
ファイルにバックアップできます。
vgcfgrestore
コマンドは、ボリュームグループのメタデータを、アーカイブからボリュームグループのすべての物理ボリュームに復元します。
物理ボリュームのメタデータを復元する
vgcfgrestore
コマンドの使用例は、「物理ボリュームメタデータの復元」 を参照してください。
4.3.14. ボリュームグループの名前変更
既存ボリュームグループの名前を変更するには、
vgrename
コマンドを使用します。
以下のいずれかのコマンドで、既存ボリュームグループ
vg02
の名前を my_volume_group
に変更できます。
# vgrename /dev/vg02 /dev/my_volume_group
# vgrename vg02 my_volume_group
4.3.15. ボリュームグループの別のシステムへの移動
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
引数を使用して、ボリュームグループをアクティブにします。- ファイルシステムをマウントして使用可能にします。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。