💽 LVM Basics di Linux (Create, Extend, Snapshot)

LVM (Logical Volume Manager) adalah mekanisme manajemen storage di Linux yang memberikan fleksibilitas dalam mengelola disk.
Dengan LVM, administrator dapat membuat, memperbesar (extend), memperkecil (shrink), dan membuat snapshot volume tanpa banyak downtime.


🔹 Komponen LVM

  • PV (Physical Volume) → disk/partisi fisik yang digunakan LVM.
  • VG (Volume Group) → kumpulan PV yang digabungkan.
  • LV (Logical Volume) → partisi logis yang dipakai OS/aplikasi.
  • Snapshot → salinan sementara dari LV, berguna untuk backup.

🔹 Dasar Operasional LVM

1. Membuat LVM

# 1. Membuat Physical Volume
sudo pvcreate /dev/sdb /dev/sdc

# 2. Membuat Volume Group
sudo vgcreate vg_data /dev/sdb /dev/sdc

# 3. Membuat Logical Volume
sudo lvcreate -L 50G -n lv_data vg_data

# 4. Format dan mount
sudo mkfs.ext4 /dev/vg_data/lv_data
sudo mkdir /data
sudo mount /dev/vg_data/lv_data /data

2. Extend Logical Volume (Menambah Kapasitas)

Misalnya ingin menambah kapasitas dari 50GB → 100GB.

# Tambahkan disk baru ke VG
sudo pvcreate /dev/sdd
sudo vgextend vg_data /dev/sdd

# Extend LV
sudo lvextend -L +50G /dev/vg_data/lv_data

# Resize filesystem (ext4/xfs)
sudo resize2fs /dev/vg_data/lv_data
# atau untuk XFS
sudo xfs_growfs /data

➡️ Tidak perlu unmount → dapat dilakukan tanpa downtime jika filesystem mendukung online resize.


3. Snapshot LVM

# Membuat snapshot 10GB
sudo lvcreate -L 10G -s -n lv_data_snap /dev/vg_data/lv_data

# Mount snapshot (opsional)
sudo mkdir /snap
sudo mount /dev/vg_data/lv_data_snap /snap

# Hapus snapshot setelah selesai
sudo lvremove /dev/vg_data/lv_data_snap

Snapshot sering digunakan untuk backup cepat atau testing sebelum update.


🔹 Best Practices

  1. Gunakan XFS atau EXT4 → keduanya mendukung online resize.
  2. Gunakan UUID untuk mount di fstab agar stabil setelah reboot.
  3. Selalu sisakan ruang di VG untuk kebutuhan mendesak (misalnya 10-20%).
  4. Gunakan snapshot untuk backup singkat, tetapi jangan dibiarkan lama karena bisa membebani storage.
  5. Monitoring LVM dengan:
    sudo pvs
    sudo vgs
    sudo lvs
  6. Jangan shrink LV pada filesystem aktif kecuali dengan downtime penuh.
  7. Gunakan RAID atau storage redundancy di bawah LVM untuk keamanan data.

🔹 Implementasi di Cloud vs On-Prem

Cloud (AWS, GCP, Azure, dll.)

  • Cloud disk dapat di-extend langsung dari console.
  • Setelah extend, gunakan:
    sudo pvresize /dev/sdb
    sudo lvextend -l +100%FREE /dev/vg_data/lv_data
    sudo xfs_growfs /data
  • Best practice: gunakan snapshot cloud (EBS Snapshot di AWS, Disk Snapshot di GCP/Azure) sebagai tambahan backup selain LVM snapshot.
  • Kelebihan: proses scaling storage cepat, sering bisa tanpa downtime.

On-Prem (VMware, Proxmox, KVM, Hyper-V)

  • Tambah disk dari hypervisor ke VM (hot-add jika didukung).
  • Rescan disk:
    for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done
  • Gunakan prosedur LVM biasa (pvcreate → vgextend → lvextend → resize2fs/xfs_growfs).
  • Best practice: gunakan thin provisioning di hypervisor agar efisien.

🔹 Rekomendasi Teknis Tanpa Downtime

  1. Gunakan filesystem yang mendukung online resize (XFS atau EXT4).
  2. Gunakan LVM untuk menghindari unmount ketika extend storage.
  3. Tambahkan disk baru → pvcreatevgextendlvextendresize2fs/xfs_growfs.
  4. Gunakan LVM snapshot sebelum operasi besar (backup instan).
  5. Jika di cloud, manfaatkan fitur hot-extend disk dan snapshot bawaan provider.
  6. Jika di on-prem (VMware/Proxmox), pastikan VM mendukung hot-add disk agar tidak perlu reboot.

⚙️ Kesimpulan

  • LVM memberikan fleksibilitas tinggi dalam manajemen storage.
  • Dengan create, extend, snapshot, admin dapat mengelola disk tanpa downtime signifikan.
  • Implementasi di cloud lebih cepat karena dukungan native resize & snapshot.
  • Implementasi on-prem juga fleksibel jika hypervisor mendukung hot-add.

LVM adalah solusi ideal untuk server production dengan kebutuhan storage yang dinamis.