LVM を使って マウントされているHDDの整理をしました

仮想OS上で 小さなHDD を沢山使っていたのですが
ちょっと複雑になってきたのでHDDの整理をしました

4G, 8G の小さなHDDをLVMから抜く作業をして
一つの大きなHDD(20G)を使うように変更しました。


その時に LVMでいろいろな操作をしたので手順をメモ。

■ 未使用の LV を削除する
使用しているlvがマウントされていないことを確認してから lvremove

root@ubuntu:~# lvscan 
  ACTIVE            '/dev/ubuntu-vg/root' [6.73 GiB] inherit
  ACTIVE            '/dev/ubuntu-vg/swap_1' [2.00 GiB] inherit
  ACTIVE            '/dev/ubuntu-vg/docker.data' [11.03 GiB] inherit

root@ubuntu:~# lvremove /dev/ubuntu-vg/docker.data
Do you really want to remove and DISCARD active logical volume docker.data? [y/n]: y
  Logical volume "docker.data" successfully removed

root@ubuntu:~# lvscan 
  ACTIVE            '/dev/ubuntu-vg/root' [6.73 GiB] inherit
  ACTIVE            '/dev/ubuntu-vg/swap_1' [2.00 GiB] inherit

■使用していないpv を VGから抜いた後 削除

root@ubuntu:~# pvscan 
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdb    VG ubuntu-vg   lvm2 [4.00 GiB / 3.03 GiB free]
  PV /dev/sdc    VG ubuntu-vg   lvm2 [8.00 GiB / 8.00 GiB free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 20.00 GiB free]
  Total: 4 [39.75 GiB] / in use: 4 [39.75 GiB] / in no VG: 0 [0   ]

root@ubuntu:~# vgreduce ubuntu-vg /dev/sdc
  Removed "/dev/sdc" from volume group "ubuntu-vg"
  
root@ubuntu:~# pvscan 
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdb    VG ubuntu-vg   lvm2 [4.00 GiB / 3.03 GiB free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 20.00 GiB free]
  PV /dev/sdc                   lvm2 [8.00 GiB]
  Total: 4 [39.75 GiB] / in use: 3 [31.75 GiB] / in no VG: 1 [8.00 GiB]

root@ubuntu:~# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped
  
root@ubuntu:~# pvscan   
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdb    VG ubuntu-vg   lvm2 [4.00 GiB / 3.03 GiB free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 20.00 GiB free]
  Total: 3 [31.75 GiB] / in use: 3 [31.75 GiB] / in no VG: 0 [0   ]


■pvを使っているとvgから取り外せない

root@ubuntu:~# pvscan 
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdb    VG ubuntu-vg   lvm2 [4.00 GiB / 3.03 GiB free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 20.00 GiB free]
  PV /dev/sdc                   lvm2 [8.00 GiB]
  Total: 4 [39.75 GiB] / in use: 3 [31.75 GiB] / in no VG: 1 [8.00 GiB]
root@ubuntu:~# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped

■pvで使っている領域を移動させる

root@ubuntu:~# pvscan
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdb    VG ubuntu-vg   lvm2 [4.00 GiB / 3.03 GiB free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 20.00 GiB free]
  Total: 3 [31.75 GiB] / in use: 3 [31.75 GiB] / in no VG: 0 [0   ]
root@ubuntu:~# pvmove /dev/sdb
  Detected pvmove in progress for /dev/sdb
  Ignoring remaining command line arguments
  /dev/sdb: Moved: 39.7%

root@ubuntu:~# pvscan
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdb    VG ubuntu-vg   lvm2 [4.00 GiB / 4.00 GiB free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 19.03 GiB free]
  Total: 3 [31.75 GiB] / in use: 3 [31.75 GiB] / in no VG: 0 [0   ]

root@ubuntu:~# vgreduce ubuntu-vg /dev/sdb
  Removed "/dev/sdb" from volume group "ubuntu-vg"
root@ubuntu:~# pvscan
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 19.03 GiB free]
  PV /dev/sdb                   lvm2 [4.00 GiB]
  Total: 3 [31.75 GiB] / in use: 2 [27.75 GiB] / in no VG: 1 [4.00 GiB]
root@ubuntu:~# pvremove /dev/sdb
  Labels on physical volume "/dev/sdb" successfully wiped
root@ubuntu:~# pvscan
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 19.03 GiB free]
  Total: 2 [27.75 GiB] / in use: 2 [27.75 GiB] / in no VG: 0 [0   ]


■新しいPVを LVにサイズ上限まで 追加

root@ubuntu:~# lvextend -l +100%FREE /dev/ubuntu-vg/root 
  Size of logical volume ubuntu-vg/root changed from 6.73 GiB (1722 extents) to 25.76 GiB (6594 extents).
  Logical volume root successfully resized
root@ubuntu:~# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "ubuntu-vg" using metadata type lvm2
root@ubuntu:~# pvscan
  PV /dev/sda5   VG ubuntu-vg   lvm2 [7.76 GiB / 0    free]
  PV /dev/sdd    VG ubuntu-vg   lvm2 [20.00 GiB / 0    free]
  Total: 2 [27.75 GiB] / in use: 2 [27.75 GiB] / in no VG: 0 [0   ]
root@ubuntu:~# df -H
Filesystem                   Size  Used Avail Use% Mounted on
udev                         1.1G     0  1.1G   0% /dev
tmpfs                        210M  4.8M  206M   3% /run
/dev/mapper/ubuntu--vg-root  7.0G  3.5G  3.2G  53% /
tmpfs                        1.1G     0  1.1G   0% /dev/shm
tmpfs                        5.3M     0  5.3M   0% /run/lock
tmpfs                        1.1G     0  1.1G   0% /sys/fs/cgroup
/dev/sda1                    247M   93M  142M  40% /boot
tmpfs                        210M     0  210M   0% /run/user/0
root@ubuntu:~# resize2fs /dev/ubuntu-vg/root 
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/ubuntu-vg/root is now 6752256 (4k) blocks long.

root@ubuntu:~# df -H
Filesystem                   Size  Used Avail Use% Mounted on
udev                         1.1G     0  1.1G   0% /dev
tmpfs                        210M  4.8M  206M   3% /run
/dev/mapper/ubuntu--vg-root   28G  3.5G   23G  14% /
tmpfs                        1.1G     0  1.1G   0% /dev/shm
tmpfs                        5.3M     0  5.3M   0% /run/lock
tmpfs                        1.1G     0  1.1G   0% /sys/fs/cgroup
/dev/sda1                    247M   93M  142M  40% /boot
tmpfs                        210M     0  210M   0% /run/user/0

LVM 便利だなぁ。。。