【Linux】LVMで論理ボリューム作成-5コマンドで設定できる

【Linux】LVMで論理ボリューム作成-5コマンドで設定Linuxサーバ

5つのコマンド実行でLVMの論理ボリュームを作成できます。
その作成方法とポイントと注意事項を解説します。

LVMの論理ボリューム作成の5ステップ(コマンド)は以下になります。

  1. PV(Physical Volume)の作成
  2. VG(Volume Group)の作成 
  3. LV(Logical Volume)の作成 
  4. ファイルシステムの作成(mkfs)
  5. ディスクのマウント
論理ボリューム作成の5ステップのイメージ図
論理ボリューム作成の5ステップのイメージ図

スポンサーリンク

LVMの論理ボリューム作成で利用する5つのコマンド

1.PV(Physical Volume)の作成

pvcreate  /dev/sdb

※新規のデバイス(/dev/sdb)であること
/dev/sdb:任意のデバイス名を指定


2.VG(Volume Group)の作成

vgcreate  vg-sdb /dev/sdb

vg-sdb:VG名を任意で指定(VG名は自分で決める)

3.LV(Logical Volume)の作成

lvcreate  -n  lv-sdb -l 100%FREE  vg-sdb

lv-sdb:「-n」オプションでLV名を任意で指定(LV名は自分で決める)

4.ファイルシステムの作成(mkfs)

mkfs.xfs  /dev/vg-sdb/lv-sdb

※xfsでフォーマットする場合

/dev/vg-sdb/lv-sdb:lvdisplayコマンド実行後の「LV Path」を指定

5.ディスクのマウント

mount  /dev/vg-sdb/lv-sdb  /lv-data/

※「mkdir /lv-data」で事前にディレクトが作成されていること
/lv-data:マウントするディレクトリを任意で指定(ディレクトリは自分で決める)



LVMで論理ボリューム作成の解説

5コマンド(ステップ)実行時のポイントを踏まえて細かく解説します。

LVM設定するデバイスが単一(/dev/sdb)と複数(/dev/sdbと/deb/sdc)ある場合と比較して解説します。

1.PV(Physical Volume)の作成

■ポイント

  1. パーティションを作成しない。
    ※fdiskコマンドで「/dev/sdb1」「/dev/sdc1」とパーティション作成をしない

  2. pvcreateコマンドは、単一ディスク指定でも複数ディスク指定でも実行結果は同じになります。
    ※まとめて実行するか個別に実行するかの違いだけです。


単一ディスク(デバイス)の場合

fdisk -l /dev/sdb
pvcreate /dev/sdb
pvdisplay
単一デバイスのPV(Physical Volume)を作成

複数ディスク(デバイス)の場合

fdisk -l /dev/sdb /dev/sdc
pvcreate /dev/sdb  /dev/sdc
pvdisplay
複数デバイスのPV(Physical Volume)を作成


2.VG(Volume Group)の作成

■ポイント

  1. 1デバイスごとにVGを作成します。
    ※pvcreateで作成した複数のデバイスをまとめて1つのVGとして登録しない。


単一ディスク(デバイス)の場合

vgcreate  vg-sdb /dev/sdb
vgdisplay



単一デバイスのVG(Volume Group)を作成

複数ディスク(デバイス)の場合

vgcreate  vg-sdb /dev/sdb
vgcreate  vg-sdc /dev/sdc
vgdisplay
複数デバイスのVG(Volume Group)を作成

■おススメしない設定
pvcreate /dev/sdb /dev/sdc
vgcreate vg-sdb-sdc /dev/sdb /dev/sdc


3.LV(Logical Volume)の作成

■ポイント

  1. マウントポイントを分けたい場合はLV作成時に行います。
    ※マウントポイントを分ける理由は他のマウントポイントの容量に干渉しないためなので、LV作成時に実現できます。

  2. LVの作成でデバイスのマッパー(mapper)が作成されます。
    これは、LVをOS上で管理するために作成されたデバイス名です。

    「LV Path(/dev/vg-sdb/lv-sdb) 」=  「デバイスのマッパー(/dev/mapper/vg--sdb-lv--sdb)」
    ※「fdisk -l」を実行するとデバイスのマッパーが表示され、LV Pathは表示されません。

単一ディスク(デバイス)の場合

lvcreate  -n  lv-sdb -l 100%FREE  vg-sdb
lvdisplay






単一デバイスのLV(Logical Volume)の作成

複数ディスク(デバイス)の場合

lvcreate  -n  lv-sdb -l 100%FREE  vg-sdb
lvcreate  -n  lv-sdc01 -L 100M  vg-sdc
lvcreate  -n  lv-sdc02 -L 900M  vg-sdc
lvdisplay
複数デバイスのLV(Logical Volume)の作成

「-l 100%FREE」:空き容量をすべて割り当てる場合に指定します。

「-L 100M」:割り当てたい容量を指定します。単位は「M(メガ)、G(ギガ)、T(テラ)」などが利用可能です。



LVPathとデバイスのマッパー(mapper)が同じである根拠

下記、画像より「/dev/vg-sdb/lv-sdb」と「/dev/mapper/vg--sdb-lv--sdb」が同じデバイスを指示していることがわかります。
LVを作成すると勝手にデバイスのマッパー(mapper)が作成されます。
これは、LVをOS上で管理するために作成されたデバイス名だというぐらいの解釈で構いません。
どちらのデバイス名を利用しても問題ありません。
作成されたデバイスのマッパー(mapper)は「fdisk -l」で確認できます。

「LV Path」と「デバイスのマッパー(mapper)」が同じである根拠


4.ファイルシステムの作成(mkfs)

■ポイント

  1. 主流である「mkfs.xfs」で実行します。※適宜、「mkfs.ext4」などでも可能
  2. 「LV Path」と「デバイスのマッパー(mapper)」どちらでmkfsしても問題ありません。

単一ディスク(デバイス)の場合

mkfs.xfs /dev/vg-sdb/lv-sdb






単一デバイスのファイルシステムの作成(mkfs)

複数ディスク(デバイス)の場合

mkfs.xfs /dev/mapper/vg--sdb-lv--sdb
mkfs.xfs /dev/mapper/vg--sdc-lv--sdc01
mkfs.xfs /dev/vg-sdc/lv-sdc02
複数デバイスのファイルシステムの作成(mkfs)


5.ディスクのマウント

■ポイント

  1. 「LV Path」と「デバイスのマッパー(mapper)」どちらでmountしても問題ありません
  2. /etc/fstabでmount設定する時に利用するUUIDは「blkid |grep mapper」コマンドを実行して確認してください。
    ※lvdisplayで確認できる「LV UUID」とは違いますので注意ください。


単一ディスク(デバイス)の場合

mkdir /lv-data
mount /dev/vg-sdb/lv-sdb /lv-data
df -h












単一デバイスのディスクのマウント

複数ディスク(デバイス)の場合

mkdir /lv-sdb-data
mkdir /lv-sdc-data01
mkdir /lv-sdc-data02
mount /dev/mapper/vg--sdb-lv--sdb /lv-sdb-data
mount /dev/mapper/vg--sdc-lv--sdc01 /lv-sdc-data01
mount /dev/vg-sdc/lv-sdc02 /lv-sdc-data02
df -h
複数デバイスのディスクのマウント



LVMで作成した論理ボリュームを/etc/fstabに設定する方法

「blkid | grep mapper」コマンドを実行してUUIDを確認してマウントする方法をおススメします。

下記の画像でもわかりますが、LVMで作成した論理ボリュームは、「LV Path」名や「デバイスのマッパー(mapper)」名と「UUID」以外の方法でも/etc/fstabファイルに設定できます。
LVMで設定した論理ボリュームの場合、どの方法で/etc/fstabファイルに設定しても問題ありません。

LVM設定ではない「/dev/sdb1」とか「/dev/sdc1」などの物理デバイスをマウントするときは、必ず「UUID」を指定してマウントします。
それは、デバイスを「UUID」以外の方法で/etc/fsatbファイルに設定するとデバイスがテレコになって意図しないマウントになってしまうことがあるからです。
これを回避するため、どのようなケースであっても「UUIDで設定する」と覚えておけば、間違いが起こらないので「UUID」で設定することをおススメしています。

LVMで作成した論理ボリュームを/etc/fstabに設定する方法



LVMで論理ボリューム作成のまとめ

LVMとは「Logical Volume Manager」の略で物理的なディスクを論理的に扱い
複数のデバイス(ディスク)を単一の論理ボリュームとして設定して管理できる機能です。
とありますが、単一のデバイス(ディスク)で論理ボリュームを作成することをおススメします。

例えば
デバイスが「/dev/sdb」で存在するなら「/dev/sdc」のデバイスを用意せずに、「/dev/sdb」だけでLVMの設定をします。
※「/dev/sdb」と「/dev/sdc」の複数のデバイス(ディスク)を単一のVG(Volume Group)としてまとめて設定しない。

近年、仮想サーバを構築して仮想ディスクを利用することが多いので、「/dev/sdc」というように仮想デバイスを増強してディスク容量を増やすよりも、仮想ディスクでは「/dev/sdb」の容量を拡張する方が簡単に行えるので、仮想デバイス(「/dev/sdc」)を増やして増強する必要はなくなりました。

複数の仮想デバイスを単一の論理ボリュームとして扱うと、「/dev/sdb」と「/dev/sdc」のデバイスがまたがった構成となりデータ移行やディスクに問題が起こった時に対処が難しくなるので、1つのデバイスをLVMで論理ボリュームを作成すると管理面を考えても非常に便利です。
どうしても、マウントポイントを分けて管理したい場合はLV(Logical Volume)を作成するときに設定してください。

また、/etc/fstabへのLVM設定の論理ボリュームを設定するときは「UUID」を指定することをおススメします。

まとめポイント
  1. デバイスにパーティションを作成しない
  2. 複数あるデバイスをVG設定でまとめない
  3. ディスク容量を分割したい場合(マウントポイントを分けたい場合)はLV設定で分割する
  4. /etc/fstabでマウントするときは「UUID」で指定する



コメント

タイトルとURLをコピーしました