4.2. 物理ボリュームの管理

このセクションでは、物理ボリューム管理の様々な場面で使用するコマンドについて説明します。

4.2.1. 物理ボリュームの作成

以下のセクションでは、物理ボリュームの作成に使用するコマンドを説明します。

4.2.1.1. パーティションタイプの設定

ディスクデバイス全体を物理ボリュームに使用している場合は、そのディスクにパーティションテーブルがあってはなりません。ディスクパーティションが DOS の場合は、fdiskcfdisk などのコマンドを使用して、パーティション ID を 0x8e に設定している必要があります。ディスクデバイス全体に物理ボリュームがある場合はパーティションテーブルを消去する必要がありますが、このとき、そのディスクにあるデータはすべて効果的に破棄されます。以下のコマンドを使用すれば、最初のセクターをゼロで初期化し、既存のパーティションテーブルを削除できます。
# dd if=/dev/zero of=PhysicalVolume bs=512 count=1

4.2.1.2. 物理ボリュームの初期化

pvcreate コマンドを使用して、物理ボリュームとして使用するブロックデバイスを初期化します。初期化は、ファイルシステムのフォーマットと同様です。
以下のコマンドは、/dev/sdd/dev/sde、および /dev/sdf を LVM 物理ボリュームとして初期化します。作成したボリュームは、後で LVM 論理ボリュームに使用します。
# pvcreate /dev/sdd /dev/sde /dev/sdf
ディスク全体でなく、パーティションを初期化するには、そのパーティションで pvcreate コマンドを実行します。以下の例では、パーティション /dev/hdb1 を LVM 物理ボリュームとして初期化します。作成した物理ボリュームは、後でLVM 論理ボリュームに使用します。
# pvcreate /dev/hdb1

4.2.1.3. ブロックデバイスのスキャン

以下の例のように、lvmdiskscan コマンドを使用して、物理ボリュームに使用できるブロックデバイスをスキャンできます。
# lvmdiskscan
  /dev/ram0                    [       16.00 MB]
  /dev/sda                     [       17.15 GB]
  /dev/root                    [       13.69 GB]
  /dev/ram                     [       16.00 MB]
  /dev/sda1                    [       17.14 GB] LVM physical volume
  /dev/VolGroup00/LogVol01     [      512.00 MB]
  /dev/ram2                    [       16.00 MB]
  /dev/new_vg/lvol0            [       52.00 MB]
  /dev/ram3                    [       16.00 MB]
  /dev/pkl_new_vg/sparkie_lv   [        7.14 GB]
  /dev/ram4                    [       16.00 MB]
  /dev/ram5                    [       16.00 MB]
  /dev/ram6                    [       16.00 MB]
  /dev/ram7                    [       16.00 MB]
  /dev/ram8                    [       16.00 MB]
  /dev/ram9                    [       16.00 MB]
  /dev/ram10                   [       16.00 MB]
  /dev/ram11                   [       16.00 MB]
  /dev/ram12                   [       16.00 MB]
  /dev/ram13                   [       16.00 MB]
  /dev/ram14                   [       16.00 MB]
  /dev/ram15                   [       16.00 MB]
  /dev/sdb                     [       17.15 GB]
  /dev/sdb1                    [       17.14 GB] LVM physical volume
  /dev/sdc                     [       17.15 GB]
  /dev/sdc1                    [       17.14 GB] LVM physical volume
  /dev/sdd                     [       17.15 GB]
  /dev/sdd1                    [       17.14 GB] LVM physical volume
  7 disks
  17 partitions
  0 LVM physical volume whole disks
  4 LVM physical volumes

4.2.2. 物理ボリュームの表示

LVM 物理ボリュームのプロパティーを表示するのに使用できるコマンドは 3 つあります。pvspvdisplay、および pvscan です。
pvs コマンドは、物理ボリュームの情報を設定可能な形式で出力します。1 つの物理ボリュームが 1 行で表示されます。pvs コマンドでは形式をかなり自由にカスタマイズできるため、スクリプト作成時に役に立ちます。 pvs コマンドで出力をカスタマイズする詳細な方法は、「LVM 用のカスタム報告」 を参照してください。
pvdisplay コマンドは、各物理ボリュームの詳細をそれぞれ複数行出力します。物理プロパティー (サイズ、エクステント、ボリュームグループなど) が、決められた形式で表示されます。
以下の例は、1 つの物理ボリュームについて、pvdisplay コマンドで出力した情報です。
# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               new_vg
  PV Size               17.14 GB / not usable 3.40 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              4388
  Free PE               4375
  Allocated PE          13
  PV UUID               Joqlch-yWSj-kuEn-IdwM-01S9-XO8M-mcpsVe
pvscan コマンドは、システムにある、物理ボリュームでサポートされている LVM ブロックデバイスをすべてスキャンします。
以下のコマンドでは、検出された物理デバイスがすべて表示されます。
# pvscan
 PV /dev/sdb2   VG vg0   lvm2 [964.00 MB / 0   free]
 PV /dev/sdc1   VG vg0   lvm2 [964.00 MB / 428.00 MB free]
 PV /dev/sdc2            lvm2 [964.84 MB]
 Total: 3 [2.83 GB] / in use: 2 [1.88 GB] / in no VG: 1 [964.84 MB]
このコマンドで、特定の物理ボリュームがスキャンされないように、lvm.conf ファイルでフィルターを定義することができます。スキャンするデバイスを制御するフィルターの使用方法は、「フィルターを使用した LVM デバイススキャンの制御」 を参照してください。

4.2.3. 物理ボリューム上での割り当て防止

pvchange コマンドを使用すると、単一または複数の物理ボリュームの空き領域で物理エクステントが割り当てられないようにすることができます。これは、ディスクエラーが発生した場合や、物理ボリュームを取り除く場合に必要となる可能性があります。
以下のコマンドは、/dev/sdk1 での物理エクステントの割り当てを無効にします。
# pvchange -x n /dev/sdk1
pvchange コマンドで -xy 引数を使用すると、無効にされていた割り当てを許可できます。

4.2.4. 物理ボリュームのサイズ変更

なんらかの理由で基礎となるブロックデバイスのサイズを変更する必要がある場合は、pvresize コマンドを使用して LVM のサイズを更新します。このコマンドは、LVM が物理ボリュームを使用しているときに実行できます。

4.2.5. 物理ボリュームの削除

デバイスを LVM で使用する必要がなくなった場合、pvremove コマンドを使用して LVM ラベルを削除できます。pvremove コマンドを実行すると、空の物理ボリュームにある LVM メタデータをゼロにします。
削除したい物理ボリュームがボリュームグループの一部になっている場合は、「ボリュームグループからの物理ボリュームの削除」 で説明されているように、vgreduce コマンドで、ボリュームグループから物理ボリュームを取り除く必要があります。
# pvremove /dev/ram15
  Labels on physical volume "/dev/ram15" successfully wiped