4.8. LVM 用のカスタム報告
LVM では、カスタマイズされたレポートを生成したり、レポートの出力をフィルタリングしたりするためのさまざまな設定およびコマンドラインオプションが提供されます。LVM レポート機能の完全な説明は、lvmreport(7) man ページを参照してください。
pvs、lvs コマンド、および vgs コマンドを使用して、LVM オブジェクトについて簡潔でカスタマイズ可能なレポートを作成できます。このコマンドが生成するレポートには、オブジェクトごとに 1 行の出力が含まれます。各行には、オブジェクトに関連するプロパティーのフィールドについて、順序付けられたリストが含まれます。レポートするオブジェクトを選択する方法には、物理ボリューム別、ボリュームグループ別、論理ボリューム別、物理ボリュームセグメント別、および論理ボリュームセグメント別の 5 つの方法があります。
Red Hat Enterprise Linux 7.3 リリースでは、lvm fullreport コマンドを使用して、物理ボリューム、ボリュームグループ、論理ボリューム、物理ボリュームセグメント、および論理ボリュームセグメントに関する情報を一度に報告できます。このコマンドとその機能の詳細は、lvm-fullreport(8)の man ページを参照してください。
Red Hat Enterprise Linux 7.3 リリースでは、LVM は、LVM コマンドの実行中に収集された操作、メッセージ、およびオブジェクトごとのステータス (完全なオブジェクト ID 付き) が含まれるメッセージログレポートをサポートします。LVM ログレポートの例は、「コマンドログレポート (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。LVM ログレポートの詳細は、lvmreport(7) man ページを参照してください。
以下のセクションでは、pvs コマンド、lvs コマンド、および vgs コマンドを使用して、レポートをカスタマイズする概要を説明します。
- 「形式の制御」。レポートの書式を制御するために使用できるコマンド引数の概要を提供します。
- 「オブジェクト表示フィールド」。各 LVM オブジェクトに対して表示できるフィールドの一覧を提供します。
- 「LVM 報告のソート」。生成されたレポートをソートするために使用できるコマンド引数の概要を提供します。
- 「ユニットの指定」。レポート出力の単位を指定する手順を提供します。
- 「JSON 形式の出力 (Red Hat Enterprise Linux 7.3 以降)」。JSON 形式の出力を指定する例を提供します (Red Hat Enterprise Linux 7.3 以降)。
- 「コマンドログレポート (Red Hat Enterprise Linux 7.3 以降)」。コマンドログの例を提供します。
4.8.1. 形式の制御 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pvs、lvs コマンド、または vgs コマンドのどちらを使用するかによって、表示されるデフォルトのフィールドセットとソート順序が決まります。このコマンドの出力は、以下の引数を使用して制御できます。
-o引数を使用すると、表示するフィールドをデフォルト以外に変更できます。たとえば、以下の出力は pvs コマンドのデフォルト表示です(物理ボリュームの情報を表示します)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドは、物理ボリュームの名前とサイズだけを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - -o 引数との組み合わせで使用するプラス記号 (+) を使用して、出力にフィールドを追加できます。以下の例は、デフォルトフィールドに加えて、物理ボリュームの UUID を表示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コマンドに
-v引数を追加すると、追加のフィールドが含まれます。たとえば、pvs -v コマンドは、デフォルトフィールドに加えて、DevSizeフィールドとPV UUIDフィールドを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow --noheadings引数は、見出し行を表示しません。これはスクリプトを作成する際に便利です。以下の例は、pv_name引数と共に--noheadings引数を使用して、すべての物理ボリュームのリストを生成しています。pvs --noheadings -o pv_name /dev/sdb1 /dev/sdc1 /dev/sdd1
# pvs --noheadings -o pv_name /dev/sdb1 /dev/sdc1 /dev/sdd1Copy to Clipboard Copied! Toggle word wrap Toggle overflow --separator separator引数は、区切り文字 を使用して、各フィールドを区切ります。以下の例は、pvs コマンドのデフォルト出力フィールドを等号(=)で区切ります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow separator引数の使用時にフィールドを配置するには、--aligned引数とともにseparator引数を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
表示引数の完全なリストは、pvs(8)、vgs(8)、および lvs(8)の man ページを参照してください。
ボリュームグループフィールドは、物理ボリューム (および物理ボリュームセグメント) フィールド、または論理ボリューム (および論理ボリュームセグメント) フィールドと混在させることができますが、物理ボリュームフィールドと論理ボリュームフィールドは混在させることができません。たとえば、以下のコマンドは、1 つの物理ボリュームつき 1 行の出力を表示します。
4.8.2. オブジェクト表示フィールド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、pvs コマンド、vgs コマンド、および lvs コマンドを使用して、LVM オブジェクトについて表示できる情報を一覧表示する一連の表を提供します。
便宜上、フィールド名の接頭辞は、コマンドのデフォルトと一致する場合は省略できます。たとえば、pvs コマンドでは、
name は pv_name を意味しますが、vgs コマンドでは、name は vg_name として解釈されます。
以下のコマンドを実行すると、pvs -o pv_free の実行と同じです。
注記
pvs、vgs、および lvs 出力の属性フィールドにある文字数は、後続のリリースで増加する可能性があります。既存の文字フィールドの位置は変更しませんが、新しいフィールドが末尾に追加される可能性があります。相対的な位置を使用して特定の属性文字を検索するスクリプトを作成する場合は、このことを考慮して、フィールドの終点ではなく、フィールドの始点を基点として文字検索を行います。たとえば、
lv_attr フィールドの 9 番目のビットの文字 p を検索するには、文字列 "^/........p/" を検索できますが、文字列 "/*p$/" を検索することはできません。
pvs コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表4.3「pvs コマンド表示フィールド」 は、pvs コマンドの表示引数、ヘッダーに表示されるフィールド名、およびフィールドの説明をリストにまとめています。
| 引数 | ヘッダー | 説明 |
|---|---|---|
dev_size | DevSize | 物理ボリュームを作成する基となるデバイスのサイズ |
pe_start | 1st PE | 基となるデバイス内の最初の物理エクステントの開始点までのオフセット |
pv_attr | Attr | 物理ボリュームのステータス - (a)llocatable または e(x)ported |
pv_fmt | Fmt | 物理ボリュームのメタデータ形式(lvm2 または lvm1) |
pv_free | PFree | 物理ボリュームにある残りの空き領域 |
pv_name | PV | 物理ボリュームの名前 |
pv_pe_alloc_count | Alloc | 使用される物理エクステントの数 |
pv_pe_count | PE | 物理エクステントの数 |
pvseg_size | SSize | 物理ボリュームのセグメントサイズ |
pvseg_start | Start | 物理ボリュームセグメントの最初の物理エクステント |
pv_size | PSize | 物理ボリュームのサイズ |
pv_tags | PV Tags | 物理ボリュームに割り当てられた LVM タグ |
pv_used | Used | 物理ボリュームで現在使用中の領域の量 |
pv_uuid | PV UUID | 物理ボリュームの UUID |
pvs コマンドは、デフォルトで
pv_name、vg_name、pv_fmt、pv_attr、、pv_size、pv_free フィールドを表示します。この表示は、pv_name でソートされています。
pvs コマンドに
-v 引数を使用すると、デフォルトの表示に dev_size フィールドおよびpv_uuid フィールドが追加されます。
pvs コマンドの
--segments 引数を使用して、各物理ボリュームセグメントの情報を表示します。セグメントはエクステントの集合です。セグメントの表示は、論理ボリュームがフラグメント化 (断片化) しているかどうかを確認するのに役立ちます。
pvs --segments コマンドは、デフォルト
で pv_name、vg_name、pv_fmt、pv_fmt、pv_attr、pv_size、pvseg_ start、pvseg_size のフィールドを表示します。この表示は、物理ボリューム内では pv_name および pvseg_size でソートされています。
pvs -a コマンドを使用して、LVM が検出した、LVM 物理ボリュームとして初期化していないデバイスを確認できます。
vgs コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表4.4「vgs 表示フィールド」 は、vgs コマンドの表示引数、ヘッダーに表示されるフィールド名、およびフィールドの説明をリストにまとめています。
| 引数 | ヘッダー | 説明 |
|---|---|---|
lv_count | #LV | ボリュームグループに含まれる論理ボリュームの数 |
max_lv | MaxLV | ボリュームグループで許容される論理ボリュームの最大数 (無制限の場合は 0) |
max_pv | MaxPV | ボリュームグループで許容される物理ボリュームの最大数 (無制限の場合は 0) |
pv_count | #PV | ボリュームグループを定義する物理ボリューム数 |
snap_count | #SN | ボリュームグループに含まれるスナップショット数 |
vg_attr | Attr | ボリュームグループのステータス - (w)riteable (書き込み可能)、(r)eadonly (読み取りのみ)、resi(z)eable (サイズ変更可能)、e(x)ported (エクスポート済)、(p)artial (部分的)、および (c)lustered (クラスター化) |
vg_extent_count | #Ext | ボリュームグループの物理エクステントの数 |
vg_extent_size | Ext | ボリュームグループの物理エクステントのサイズ |
vg_fmt | Fmt | ボリュームグループのメタデータ形式(lvm2 または lvm1) |
vg_free | VFree | ボリュームグループの残りの空き領域のサイズ |
vg_free_count | Free | ボリュームグループの空き物理エクステントの数 |
vg_name | VG | ボリュームグループ名 |
vg_seqno | Seq | ボリュームグループの改訂を示す番号 |
vg_size | VSize | ボリュームグループのサイズ |
vg_sysid | SYS ID | LVM1 システム ID |
vg_tags | VG Tags | ボリュームグループに割り当てられた LVM タグ |
vg_uuid | VG UUID | ボリュームグループの UUID |
vgs コマンドは、デフォルトで
vg_name、pv_count、lv_count、snap_count、vg_attr、vg_size、vg_free フィールドを表示します。この表示は、vg_name でソートされています。
vgs VG #PV #LV #SN Attr VSize VFree new_vg 3 1 1 wz--n- 51.42G 51.36G
# vgs
VG #PV #LV #SN Attr VSize VFree
new_vg 3 1 1 wz--n- 51.42G 51.36G
vgs コマンドに
-v 引数を使用すると、デフォルトの表示に vg_extent_size フィールド、vg_uuid フィールドが追加されます。
lvs コマンド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
表4.5「lvs 表示フィールド」 は、lvs コマンドの表示引数、ヘッダーに表示されるフィールド名、およびフィールドの説明をリストにまとめています。
注記
Red Hat Enterprise Linux の今後のリリースでは、lvs コマンドの出力と、出力にフィールドが追加される場合があります。ただし、フィールドの順序は同じで、追加のフィールドは出力の最後に表示されます。
| 引数 | ヘッダー | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chunk | スナップショットボリュームのユニットサイズ | ||||||||||
copy_percent | Copy% | ミラー化論理ボリュームの同期率。pv_move コマンドで物理エクステントを移動する際にも使用されます。 | ||||||||||
devices | Devices | 論理ボリュームを設定するデバイス - 物理ボリューム、論理ボリューム、および物理エクステントと論理エクステントの開始点 | ||||||||||
lv_ancestors | Ancestors | (Red Hat Enterprise Linux 7.2 以降) シンプールスナップショットにおける、論理ボリュームの先祖 (ancestor) | ||||||||||
lv_descendants | Descendants | (Red Hat Enterprise Linux 7.2 以降) シンプールスナップショットにおける、論理ボリュームの子孫 (descendant) | ||||||||||
lv_attr | Attr | 論理ボリュームのステータス。論理ボリュームの属性ビットは以下のようになります。
| ||||||||||
lv_kernel_major | KMaj | 論理ボリュームの実際のメジャーデバイス番号 (非アクティブの場合は -1) | ||||||||||
lv_kernel_minor | KMIN | 論理ボリュームの実際のマイナーデバイス番号 (非アクティブの場合は -1) | ||||||||||
lv_major | Maj | 論理ボリュームの永続的なメジャーデバイス番号 (未指定の場合は -1) | ||||||||||
lv_minor | Min | 論理ボリュームの永続的なマイナーデバイス番号 (未指定の場合は -1) | ||||||||||
lv_name | LV | 論理ボリュームの名前 | ||||||||||
lv_size | LSize | 論理ボリュームのサイズ | ||||||||||
lv_tags | LV Tags | 論理ボリュームに割り当てられた LVM タグ | ||||||||||
lv_uuid | LV UUID | 論理ボリュームの UUID | ||||||||||
mirror_log | Log | ミラーログが存在するデバイス | ||||||||||
modules | Modules | この論理ボリュームを使用するのに必要な、対応するカーネルデバイスマッパーターゲット | ||||||||||
move_pv | Move | pvmove コマンドで作成された一時的な論理ボリュームの、ソース物理ボリューム | ||||||||||
origin | Origin | スナップショットボリュームの作成元のデバイス | ||||||||||
| Region | ミラー化論理ボリュームのユニットサイズ | ||||||||||
seg_count | #Seg | 論理ボリュームのセグメント数 | ||||||||||
seg_size | SSize | 論理ボリュームのセグメントサイズ | ||||||||||
seg_start | Start | 論理ボリュームのセグメントのオフセット | ||||||||||
seg_tags | Seg Tags | 論理ボリュームのセグメントに割り当てられた LVM タグ | ||||||||||
segtype | タイプ | 論理ボリュームのセグメントタイプ (例: ミラー、ストライプ、リニア) | ||||||||||
snap_percent | Snap% | 使用中スナップショットボリュームの現在のパーセンテージ | ||||||||||
stripes | #Str | 論理ボリュームのストライプ、またはミラーの数 | ||||||||||
| Stripe | ストライプ化論理ボリュームのストライプのユニットサイズ |
lvs コマンドはデフォルトで、
lv_name、vg_name、lv_attr、lv_size、origin、snap_percent、move_pv、mirror_log、copy_lv、convert_ lv フィールドを表示します。デフォルトの表示は、ボリュームグループ内では vg_name および lv_name でソートされます。
lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert lvol0 new_vg owi-a- 52.00M newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvol0 new_vg owi-a- 52.00M
newvgsnap1 new_vg swi-a- 8.00M lvol0 0.20
lvs コマンドで
-v 引数を使用すると、デフォルトの表示に、seg_count、lv_major、lv_minor、lv_kernel_major、lv_kernel_minor、lv_uuid のフィールドが追加されます。
lvs コマンドの
--segments 引数を使用して、セグメント情報を強調するデフォルトの列で情報を表示できます。segments 引数を使用する場合、seg 接頭辞は任意となります。lvs --segments コマンドはデフォルトで、lv_name、vg_name、lv_attr、stripe、segtype、seg_size の各フィールドを表示します。デフォルトの表示は、ボリュームグループ内では vg_name、lv_name でソートされ、論理ボリュームでは seg_start でソートされます。論理ボリュームが断片化されると、このコマンドの出力が表示されます。
lvs --segments コマンドで
-v 引数を使用すると、デフォルトの表示に seg_start、stripesize、chunksize のフィールドが追加されます。
以下の例は、論理ボリュームが 1 つあるシステムで lvs コマンドのデフォルト出力を示しています。次に、
segments 引数を指定して lvs コマンドのデフォルト出力を示しています。
4.8.3. LVM 報告のソート リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
通常、lvs コマンド、vgs コマンド、または pvs コマンドの出力全体をソートし、列を正しく配置する前に、その出力を生成して内部に保存する必要があります。
--unbuffered 引数を指定すると、生成直後にソートされていないままの出力で表示できます。
別の順列のコラムリストのソートを指定するには、報告コマンドのいずれかと一緒に
-O 引数を使用します。出力自体に、このフィールドを含める必要はありません。
以下の例は、物理ボリュームの名前、サイズ、および空き領域を表示する pvs コマンドの出力を示しています。
以下の例では、空き領域のフィールドでソートされた同じ出力を示しています。
以下の例では、ソートするフィールドを表示する必要がないことを示しています。
逆順でソートするには、
-O 引数の後で指定するフィールドの先頭に - 印を付けます。
4.8.4. ユニットの指定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
LVM 報告表示用の単位を指定するには、報告コマンドに
--units 引数を使用します。バイト (b)、キロバイト (k)、メガバイト (m)、ギガバイト (g)、テラバイト (t)、エクサバイト (e)、ペタバイト (p)、および人間が判読できる表示 (h) を指定できます。デフォルトは人間が判読できる表示です。このデフォルト設定を上書きするには、lvm.conf ファイルの global セクションに units パラメーターを設定します。
以下の例は、pvs コマンドの出力をデフォルトのギガバイトでなく、メガバイトで指定しています。
デフォルトでは、単位は 2 の累乗 (1024 の倍数) で表示されます。単位を 1000 の倍数で表示するには、大文字 (B、K、M、G、T、H) で単位を指定できます。
以下のコマンドは、1024 の倍数 (デフォルト) で出力を表示します。
以下のコマンドは、1000 の倍数で出力を表示します。
セクター (512 バイトとして定義) またはカスタム単位も指定できます。
以下の例は、pvs コマンドの出力をセクター数として表示しています。
以下の例は、pvs コマンドの出力を 4 MB 単位で表示しています。
4.8.5. JSON 形式の出力 (Red Hat Enterprise Linux 7.3 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.3 では、LVM 表示コマンドで、
--reportformat オプションを使用して JSON 形式で出力を表示できます。
以下の例は、標準的なデフォルト形式の lvs の出力を示しています。
以下のコマンドは、JSON 形式を指定する場合と同じ LVM 設定の出力を表示します。
また、
/etc/lvm/lvm.conf ファイルで output_format 設定を使用して、レポート形式を設定オプションとして設定することもできます。ただし、コマンドラインの --reportformat 設定は、この設定よりも優先されます。
4.8.6. コマンドログレポート (Red Hat Enterprise Linux 7.3 以降) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7.3 では、レポート指向および処理指向の LVM コマンドの両方が、
log/report_command_log 設定でこれが有効になっていると、コマンドログを報告できるようになりました。このレポートで表示およびソートするフィールドセットを決定できます。
以下の例では、LVM コマンド向けの完全なログレポートを生成するように LVM を設定します。この例では、論理ボリューム
lvol0 と lvol1 の両方が、ボリュームを含むボリュームグループ VG と同様に正常に処理されたことを確認できます。
LVM レポートおよびコマンドログの設定の詳細は、lvmreport の man ページを参照してください。