それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

LVMの作成と削除のやり方の例-基本コマンド

基本的なLVMの作成例

  1. LVM の作成計画
  2. LVM の作成
  3. LVM の削除

作ったものは後始末するということで、LVMを作って削除するまでをメモしておきます。

用意するもの

LVM の容量計画

どのように物理的なHDDやパーティションを扱いたいのか決めておく必要がある。

ただし、LVMの知識がないとこの計画が立たないので、LVM作成を躊躇する人や、よくわからないのでフォーマットしちゃうような人が多い気がする。

でも大丈夫、LVMは「あとでどうにでもにも」することができるので、LVM管理下においちゃって大丈夫

今回は実験用にHDDのパーティションをLVM管理下においちゃうことにする。

LVM の名前

名前をつけないと、適当な名前がlvm2 のモジュールによって命名される。 今回は何か名前をつけようと思います。

作成の順番と使用

LVMで管理するディスクを決めたら、次のような手順で有効にしてファイルを書き込めるようにする。

計画→ PV 作成 → VG作成 → LV 作成 → フォーマット → マウント

PV の作成

sudo pvcreate /dev/sdc1
PV の作成結果を確認
takuya@:~$ sudo pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sdc1  example-vg lvm2 a--  150.00g 150.00g

VGの作成

sudo vgcreate example-vg /dev/sdc1
VG の作成結果を確認
takuya@:~$ sudo vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  example-vg   1   0   0 wz--n- 150.00g 150.00g

LV の作成

sudo lvcreate -n example-lv  -l 100%FREE example-vg
LV の作成結果を確認
takuya@:~$ sudo lvs
  LV         VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  example-lv example-vg -wi-a----- 150.00g

lsblk でデバイス・マッパーが出来たのを確認

takuya@:~$ lsblk
NAME                        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdc                           8:32   0 931.5G  0 disk
└─sdc1                        8:33   0   150G  0 part
  └─example--vg-example--lv 254:3    0   150G  0 lvm

フォーマット

sudo mkfs.ext4 /dev/mapper/example--vg-example--lv

マウントして書込みする。

takuya@:~$ sudo mount /dev/mapper/example--vg-example--lv mnt
takuya@:~$ cd mnt
takuya@:mnt$ sudo chmod 777 .
takuya@:mnt$ touch  a
takuya@:mnt$

コレで基本的なLVMの使い方はわかった。

lvm を使う上で一番基本になる使い方なので暗記しておいて、これらのコマンドをサラッと書ける必要がある。

つぎは、この作ったLVMを削除する

LVM の削除について

削除は、作成の逆を順番にやっていきます。

マウント解除 → LV削除 → VG 削除 → PV 削除

LV の削除

LV を削除していきます。先に削除前の状態を確認しておきます。

lvs で確認しながら、lvremove していきます。

LVの作り直しでも必要になるので覚えておく。

削除前のLV

takuya@:~$ sudo lvs
  LV         VG         Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  example-lv example-vg -wi-a----- 150.00g

LV の削除

sudo lvremove  VgName/LvName

実際にやってみた結果

takuya@:~$ sudo lvremove  example-vg/example-lv
Do you really want to remove active logical volume example-lv? [y/n]: y
  Logical volume "example-lv" successfully removed
  Volume group "example-lv" not found
  Skipping volume group example-lv

削除後のLV

takuya@:~$ sudo lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

VG の削除

VG の削除前と削除後の状態を確認しながら、VGの削除をやっていきます。

VGを削除して作り直すときにも使います。

削除前の VG

takuya@:~$ sudo vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  example-vg   1   0   0 wz--n- 150.00g 150.00g

VGの削除

takuya@:~$ sudo vgremove example-vg
  Volume group "example-vg" successfully removed

削除後のVG

takuya@:~$ sudo vgs
  VG   #PV #LV #SN Attr   VSize   VFree

PEをPV からの離脱

PEに登録してPVにしたボリュームを、解除します。

PV の状態を確認

takuya@:~$ sudo pvs
  PV         VG   Fmt  Attr PSize   PFree
  /dev/sdc1       lvm2 ---  150.00g 150.00g

PEの削除

takuya@:~$ sudo pvremove /dev/sdc1
  Labels on physical volume "/dev/sdc1" successfully wiped

PVの状態を確認

takuya@:~$ sudo pvs
  PV         VG   Fmt  Attr PSize   PFree

これで、LVMを使わない状態に戻すことが出来ました。

まとめ

  • PV / VG / LV の順番に登録していく
  • LV は通常ボリュームと同じに扱える
  • pvcreate / pvmorevevgcreate /vgremovelvcreate / lvremove と対になってる
  • LV / VG / PV の順番に解除していく( 登録時の逆

2022-06-15

lvremove のVG/LVの記載がおかしかったので修正