Ubuntuのディスク領域をLVMで拡張
LVM(Linux Volume Manager)とは論理ボリューム管理と呼称されています。
後からでもパーティションのサイズを変更することが可能で、手順はもちろん面倒だけど、それを補って余りある凄く有り難い機能です。
条件
以前、Ubuntu18を新規インストールした時に、ディスクの管理をLVMに設定していました。
この機能はLinuC レベル2の試験で出てきていたので、一応免疫程度の知識はありましたが、実際に作業するのは初めてです。
Linuxをインストールしているディスク(M.2, 500GB)の残り容量が少なくなってきて、新しいM.2を追加したので、LVMのグループに追加して管理していきます。
また次の増設の機会があったら再現出来るように、この作業の防備録として残しておきます。
既存のボリュームグループ(旧M.2)に、新しいボリューム(新M.2)を追加する、という感じになります。
参考
非常に参考になりました。ありがとうございます。
今回の目的 2つ
既存LVMのボリュームグループに新しい物理ボリューム(M.2)を追加します。
さらに、インストール時にSwapを1Gしか取っていなくて、最近OSがフリーズすることが多発するのでSwap領域も拡張しようと思います。
下準備(UEFI)
念の為データのバックアップをして、追加M.2をマザーボードに挿し、追加M.2が認識されていることを確認
本作業(Ubuntu)
確認作業
$ sudo fdisk -l (例) /dev/nvme1n1
同じくボリュームグループ名の確認
$ ll /dev/mapper/ (例)/dev/mapper/ubuntu--vg-root
ここで、df -h, cat /proc/partitions, sudo lvmdiskscanなどでパーティションを確認してもいいかもしれません。
追加M.2のパーティションを作成、パーティションタイプは8e(Linux LVM)を設定
$ sudo fdisk /dev/nvme1n1
物理ボリュームの一覧表示
$ sudo pvdisplay
物理ボリュームの作成
$ sudo pvcreate /dev/nvme1n1p1
新しく作った物理ボリュームを、既存のボリュームグループへ追加
$ sudo vgextend ubuntu-vg /dev/nvme1n1p1
物理ボリュームの一覧表示(出来ているか確認)
$ sudo pvdisplay
論理ボリュームの拡張(ここでは500GBの追加を設定)
$ sudo lvextend -L +500G /dev/ubuntu-vg/root
既存M.2に合わせて、ext4でフォーマットするが、エラーが出た。
(そのまま次に進んでしまったが、拡張できていた・・・?)
$ sudo e2fsck -f /dev/ubuntu-vg/root
拡張する
$ sudo resize2fs /dev/ubuntu-vg/root
上手く出来ているか確認コマンド
$ sudo pvscan 【物理ボリュームの確認】 PV /dev/nvme0n1p2 VG ubuntu-vg lvm2 [<465.26 GiB / 0 free] PV /dev/nvme1n1p1 VG ubuntu-vg lvm2 [<931.51 GiB / 384.46 GiB free] Total: 2 [1.36 TiB] / in use: 2 [1.36 TiB] / in no VG: 0 [0 ]
$ sudo vgdisplay 【ボリュームグループの確認】 --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.36 TiB PE Size 4.00 MiB Total PE 357572 Alloc PE / Size 259149 / 1012.30 GiB Free PE / Size 98423 / 384.46 GiB VG UUID S5SSSS-OOOO-IIII-XEDQ-xYxYxY-XXXX-yyyyy
上手く拡張できました。
Swapの拡張
参考
既存の1GBのSwapは削除して新しく作り直す、という方法が簡単そうだった。
$ sudo lvdisplay -C $ ll /dev/ubuntu-vg/ $ ll /dev/mapper/
$ sudo swapoff /dev/mapper/ubuntu--vg-swap_1 $ sudo lvextend -L 48G /dev/mapper/ubuntu--vg-swap_1 $ sudo mkswap /dev/mapper/ubuntu--vg-swap_1 $ sudo swapon /dev/mapper/ubuntu--vg-swap_1
以上になります