LVM memiliki beberapa fitur yang dapat digunakan seperti menggabungkan beberapa Pysical Volume menjadi satu Logical Volume, Mirror Logical Volume, Raid Volume, dan masih banyak lagi.
Namun bagaimana jika Anda memiliki server yang sudah live tetapi ingin partisi root (/) menggunakan LVM. Dalam kasus tersebut direkomendasikan untuk menginstall ulang OS lalu memilih partisi LVM dan mendeploy ulang setiap service yang ada di server sebelumnya.
Tapi cara tersebut mungkin sukar untuk dilakukan karena tidak efisien waktu. Untuk itu Anda dapat mencoba ikuti panduan berikut untuk memigrasikan OS Ubuntu ke LVM tanpa perlu install ulang.
Download GParted #
Download Gparted melalui link berikut https://gparted.org/download.php
Selanjutnya tambahkan disk untuk digunakan sebagai LVM.
Install LVM #
Sebelum partisi root dipindahkan ke LVM. Pastikan pada disisi server sudah terinstall lvm2
apt-get install lvm2
Selanjutnya buka terminal dan jalankan perintah sfdisk untuk menyamakan partisi /dev/vda
ke /dev/vdb
sfdisk -d /dev/vda > backup.img
sfdisk /dev/vdb < backup.img
Migrasi OS #
Power Off server lalu tambahkan ISO Gparted ke cdrom.
Power On server dan pastikan masuk ke booting dari ISO GParted
Pilih Default setting lalu klik enter pada setiap opsi yang muncul sampai ke tampilan Home
Masuk ke partisi /dev/vdb
dengan fdisk
fdisk /dev/vdb
Hapus partisi /dev/vdb1
atau partisi dengan type Linux Filesystem
Buat partisi /dev/vdb1
menggunakan type partisi Linux LVM
Lalu buat Pysical Volume, Group Volume, dan Logical Volume pada /dev/vdb1
pvcreate /dev/vdb1
vgcreate vg_root /dev/vdb1
lvcreate -l +100%FREE -n root vg_root
Format Logical Volume menggunakan XFS. Beri Label partisi dengan nama rootfs
mkfs.xfs /dev/mapper/vg_root-root
xfs_admin -L rootfs /dev/mapper/vg_root-root
Selanjutnya buat folder untuk mounting Logical Volume dan /dev/vda1
mkdir -p /mnt/oldrootfs /mnt/newrootfs
Mounting partisi ke masing-masing folder
mount /dev/vda1 /mnt/oldrootfs
mount /dev/mapper/vg_root-root /mnt/newrootfs
Resync /mnt/oldrootfs ke tujuan /mnt/newrootfs
rsync -axHAX /mnt/oldrootfs/ /mnt/newrootfs/
Jika proses sudah selesai. Buka Gparted lalu copy partisi bios_grub
dan boot
Power Off server lalu lepas ISO dan setting agar bisa booting dulu ke disk yang lama (/dev/vda).
Power On server, setelah itu update konfig grub dengan menambahkan konfig berikut.
GRUB_TIMEOUT=10
GRUB_DISABLE_OS_PROBER=false
Update grub dengan perintah update-grub
# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50-cloudimg-settings.cfg'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-69-generic
Found initrd image: /boot/initrd.img-5.15.0-69-generic
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Ubuntu 22.04.2 LTS (22.04) on /dev/mapper/vg_root-root
done
Selanjutnya mount partisi /dev/mapper/vg_root-root
ke /mnt
mount /dev/mapper/vg_root-root /mnt
Edit /mnt/etc/fstab
LABEL=rootfs / xfs defaults 0 1
LABEL=UEFI /boot/efi vfat umask=0077 0 1
Reboot server dan edit boot pada partisi LVM
Edit bagian root=UUID
menjadi root=LABEL=rootfs
Lalu tekan CTRL+X dan tunggu proses booting.
Jika sudah berhasil booting, login ke server dan cek filesystems dengan df -hT
# df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 198M 996K 197M 1% /run
/dev/mapper/vg_root-root xfs 2.1G 1.6G 525M 75% /
tmpfs tmpfs 988M 0 988M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 vfat 105M 6.1M 99M 6% /boot/efi
tmpfs tmpfs 198M 4.0K 198M 1% /run/user/0
Install grub pada partisi /dev/vdb.
grub-install /dev/vdb
Selanjutnya Anda dapat mencoba melepas disk lama lalu setting disk baru pada urutan booting pertama.
Jika berhasil booting. Langkah terakhir jalankan update-grub
kembali agar boot pada disk lama terhapus.