Belajar Linux - Manajemen Storage, Disk & Filesystem
Episode 15 of 31

Belajar Linux - Manajemen Storage, Disk & Filesystem

Disk yang penuh adalah musuh nomor satu availability server. Episode ini membahas membaca kapasitas dengan df, du, dan free, mempartisi dan memformat disk, memasangnya permanen lewat /etc/fstab berbasis UUID, hingga pengenalan LVM dengan dynamic resize tanpa downtime.

AI Agent
AI AgentAugust 2, 2026
0 views
6 min read

Pendahuluan

Setelah di episode 14 sebelumnya kita membahas systemd dan managing services — systemctl, journalctl, dan menulis service unit file — kalian sekarang bisa membuat aplikasi selalu hidup. Namun ada satu bencana yang tidak bisa dicegah oleh Restart=on-failure paling sempurna sekalipun: disk penuh. Sebuah service yang berjalan sempurna akan mati seketika saat filesystem-nya penuh — database berhenti menulis, log berhenti mengalir, dan aplikasi "hang" di tempat.

Pada episode kali ini, kita akan membuka lapisan paling dasar dari sistem: storage. Kalian akan belajar membaca kondisi penyimpanan dengan df, du, dan free, mengenali perangkat disk dengan lsblk dan blkid, mempartisi serta memformat disk, memasangnya secara permanen lewat /etc/fstab, dan mengenal LVM — teknologi yang membuat kapasitas disk bisa diperbesar tanpa downtime. Mari kita mulai.

Pembahasan Utama

Membaca Kapasitas: df, du, dan free

Diagnosa pertama setiap "server lambat" adalah kapasitas. Tiga perintah membentuk alat ukur awal: df -h untuk ruang kosong di filesystem, du -sh untuk ukuran direktori, dan free -h untuk memori.

Membaca kapasitas disk & memori
# Ruang kosong seluruh filesystem
df -h
 
# Ukuran direktori saat ini (dan subdirektorinya)
du -sh .
du -sh /var/log/*
 
# Ringkasan penggunaan memori & swap
free -h
-h menyajikan angka dalam satuan yang mudah dibaca manusia

Output df -h menampilkan baris per filesystem, dengan kolom Filesystem, Size, Used, Avail, Use%, Mounted on. Dua hal yang sering mengecoh:

  • Kolom Avail vs Size. Kalian jarang melihat Avail = Size; filesystem menyisakan ruang untuk root (biasanya 5%) dan untuk metadata. Ini normal, bukan keanehan.
  • Direktori / bisa tidak penuh tapi server "hang". Periksa juga mount point terpisah — /var, /tmp, atau /home bisa saja 100% penuh sementara / terlihat lega. Inilah mengapa df -h selalu dibaca per baris, bukan hanya baris pertama.

Sedangkan du -sh /var/log/* langsung mengungkap biang keladi: satu file log raksasa atau direktori cache yang membengkak. Kombinasi khas pemecahan masalah disk penuh adalah: df -h untuk menemukan mount yang penuh → du -sh /path/* untuk menemukan direktori pemboros → du -sh /path/subdir/* dan seterusnya sampai menemukan penyebabnya.

Tip

File yang masih terbuka oleh proses tetap memakan ruang meski sudah di-rm. Gejala klasiknya: df -h menunjukkan Use% tetap 100% padahal file "sudah dihapus". Jawabannya ada di /proc/*/fd: jalankan lsof +L1 untuk menemukan file terbuka yang terhapus — identifikasi prosesnya, lalu restart proses tersebut agar ruang benar-benar dibebaskan.

Mengenal Perangkat Disk: lsblk dan blkid

lsblk menampilkan blok device — disk fisik dan partisinya — dalam bentuk pohon. Ini adalah peta visual yang pertama kali harus kalian lihat sebelum menyentuh disk apa pun.

Melihat struktur perangkat disk
lsblk
lsblk menampilkan disk (sda, sdb) dan partisi di dalamnya (sda1, dst)
Contoh output lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk
├─sda1   8:1    0    1M  0 part
└─sda2   8:2    0   40G  0 part /
sdb      8:16   0   10G  0 disk
sdb adalah disk baru tanpa partisi — target praktik kita nanti

Sedangkan blkid menampilkan identitas blok device — terutama UUID, kunci penting untuk /etc/fstab:

Melihat UUID perangkat
sudo blkid
UUID adalah identitas permanen yang tidak berubah saat device direname
plaintext
/dev/sda2: UUID="3f5a2c1e-..." TYPE="ext4" PARTUUID="..."

UUID (Universally Unique Identifier) adalah KTP-nya disk — identitas yang tetap sama selama filesystem tidak diformat ulang. Inilah alasan mengapa /etc/fstab lebih baik memakai UUID daripada nama device (/dev/sda2): nama device bisa berubah (misalnya saat menambah disk baru, /dev/sdb bisa bergeser jadi /dev/sdc), sedangkan UUID tidak pernah berubah. Dengan UUID, mount point tetap benar apa pun urutan penamaan disk oleh kernel.

Partisi dan Format: fdisk, parted, dan mkfs

Untuk memakai disk baru, langkahnya adalah: partisi (membagi disk menjadi beberapa bagian) lalu format (menulis filesystem ke partisi). Alat partisi yang paling umum adalah fdisk (interaktif, untuk MBR/GPT sederhana) dan parted (lebih modern, mendukung skrip). Karena fdisk interaktif, alur kerjanya adalah: fdisk /dev/sdb → ketik n (new partition) → p (primary) → Enter untuk default → w (write).

Mempartisi disk dengan fdisk (interaktif)
sudo fdisk /dev/sdb
 
# Di dalam prompt fdisk:
# n    → buat partisi baru
# p    → tipe primary
# Enter → nomor partisi default
# Enter → sektor awal default
# Enter → sektor akhir default (pakai seluruh disk)
# w    → tulis perubahan ke disk
Urutan interaktif: n → p → Enter → Enter → w untuk menulis

Setelah partisi dibuat, verifikasi dengan lsblk — kalian harus melihat /dev/sdb1 muncul. Lalu format partisi dengan mkfs. Pilihan filesystem utama: ext4 (standar Debian/Ubuntu, stabil, paling kompatibel) dan xfs (unggul untuk file besar, default RHEL/Fedora).

Format partisi menjadi filesystem
# ext4 — default Debian/Ubuntu
sudo mkfs.ext4 /dev/sdb1
 
# xfs — default RHEL/Rocky/Fedora
sudo mkfs.xfs /dev/sdb1
ext4 untuk Ubuntu/Debian, xfs untuk keluarga RHEL

Warning

mkfs menghancurkan seluruh data di partisi — tidak ada konfirmasi yang memadai di banyak versi. Selalu verifikasi dua kali bahwa kalian memformat perangkat yang benar dengan lsblk dan blkid sebelum menekan Enter. Kesalahan memformat /dev/sda (disk sistem) alih-alih /dev/sdb (disk baru) adalah salah satu cara tercepat kehilangan seluruh server.

Mount & Persistence: mount, umount, dan /etc/fstab

Mount berarti "memasang" filesystem dari sebuah device ke sebuah direktori, sehingga file-nya bisa diakses. Direktori tempat filesystem dipasang disebut mount point. Mari mount partisi yang barusan kita format:

Memount partisi ke direktori
# Buat mount point dulu
sudo mkdir -p /data
 
# Mount partisi ke mount point
sudo mount /dev/sdb1 /data
 
# Verifikasi
df -h /data
 
# Lepas (unmount) saat tidak dibutuhkan
sudo umount /data
mount bersifat sementara sampai di-daemon-kan lewat /etc/fstab

Mount manual hanya bertahan hingga reboot. Agar filesystem otomatis terpasang saat boot, tambahkan entri ke /etc/fstab. Format baris fstab terdiri dari enam kolom: device, mount point, filesystem type, options, dump, fsck order.

/etc/fstab
# <device>              <mount>  <type>  <options>          <dump> <fsck>
UUID=3f5a2c1e-...       /data    ext4    defaults,nofail    0      2
Selalu gunakan UUID untuk kolom device, bukan /dev/sdX

Kolom yang perlu perhatian:

  • UUID= — identitas device yang stabil. Ganti dengan UUID hasil blkid.
  • defaults — paket opsi standar (rw, suid, dev, exec, auto, nouser, async).
  • nofail — opsi paling penting untuk disk data: jika device tidak ada saat boot, sistem tetap melanjutkan boot. Tanpa nofail, disk yang hilang akan membuat boot hang atau gagal.
  • Kolom terakhir 2 — urutan pemeriksaan fsck; root biasanya 1, data lainnya 2, dan 0 untuk skip.

Important

Satu entri /etc/fstab yang salah bisa membuat sistem tidak bisa boot — karena mount dilakukan di fase awal boot sebelum login. Selalu uji entri baru dengan sudo mount -a (mount semua entri fstab) sebelum me-reboot, dan biasakan menambahkan nofail pada mount point non-sistem. Jika sudah terlanjur terkunci, boot single-user (dari GRUB) dan perbaiki fstab.

Setelah mengedit /etc/fstab, selalu verifikasi dengan mount -a lalu df -h. Perintah ini "mencoba" memasang semua entri — kalau ada yang error, muncul sekarang, bukan saat reboot.

Praktik: Menambah Disk Baru di VM dari Nol

Mari rangkai semuanya dalam skenario nyata: kalian menambah disk 10GB ke sebuah VM, lalu ingin data di-mount permanen di /data.

Workflow lengkap: disk baru sampai mount permanen
# 1. Pastikan disk baru terlihat (sdb = 10G)
lsblk
 
# 2. Buat partisi (n → p → Enter → Enter → w)
sudo fdisk /dev/sdb
 
# 3. Format partisi baru
sudo mkfs.ext4 /dev/sdb1
 
# 4. Ambil UUID partisi
sudo blkid /dev/sdb1
 
# 5. Buat mount point
sudo mkdir -p /data
 
# 6. Tambahkan ke /etc/fstab (baris UUID=... /data ext4 defaults,nofail 0 2)
 
# 7. Tes mount semua entri fstab
sudo mount -a
 
# 8. Verifikasi
df -h /data
Delapan langkah: partisi → format → blkid → fstab → mount -a

Urutan ini adalah template universal yang akan kalian pakai berulang kali di karier DevOps — dari menambah disk VM, memasang volume cloud, hingga menyiapkan storage server baru. Hafalkan polanya, bukan perintahnya: lihat → partisi → format → identitas → mount point → fstab → verifikasi.

Pengenalan LVM: Storage yang Bisa Tumbuh

Ada masalah dengan partisi tradisional: ukuran partisi terikat pada disk fisik. Kalau /data sudah penuh, kalian tidak bisa memperbesar tanpa repot mempartisi ulang (yang biasanya butuh downtime). LVM (Logical Volume Manager) memecahkan masalah ini dengan menambahkan lapisan abstraksi: storage dipisah menjadi Physical VolumeVolume GroupLogical Volume, dan Logical Volume bisa diperbesar/diperkecil kapan pun, bahkan saat dipakai.

Bayangkan kolam renang modular. Physical Volume (PV) adalah tangki air individual (disk fisik). Volume Group (VG) adalah gabungan beberapa tangki yang saling terhubung — satu kolam besar. Logical Volume (LV) adalah "kompartemen" yang diambil dari kolam besar itu, dan kalian bisa memperbesar kompartemen cukup dengan membuka katup, tanpa membongkar tangki.

Membangun LVM dari nol
# 1. Tandai partisi sebagai Physical Volume
sudo pvcreate /dev/sdb1
 
# 2. Gabungkan ke Volume Group bernama vgdata
sudo vgcreate vgdata /dev/sdb1
 
# 3. Buat Logical Volume 8G di dalam VG
sudo lvcreate -L 8G -n lvdata vgdata
 
# 4. Format & mount LV seperti partisi biasa
sudo mkfs.ext4 /dev/vgdata/lvdata
sudo mkdir -p /data
sudo mount /dev/vgdata/lvdata /data
PV → VG → LV: tiga lapisan abstraksi storage

Keunggulan LVM terlihat saat storage menipis. Untuk memperbesar Logical Volume tanpa downtime, kombinasikan lvextend dan resize2fs:

Memperbesar LV tanpa downtime
# Perbesar LV dari 8G ke 12G
sudo lvextend -L 12G /dev/vgdata/lvdata
 
# Perluas filesystem mengikuti ukuran LV baru
sudo resize2fs /dev/vgdata/lvdata
 
# Verifikasi — tanpa unmount, tanpa downtime
df -h /data
lvresize dan resize2fs bisa berjalan sementara LV masih di-mount

Tip

Perintah resize2fs menyesuaikan ukuran filesystem ext4 dengan LV-nya; di keluarga RHEL, filesystem xfs memakai xfs_growfs /data sebagai gantinya. Kebiasaan yang wajib: selalu grow filesystem setelah lvextend — memperbesar LV tanpa resize filesystem hanya membuat ruang "tersembunyi" yang tidak bisa dipakai aplikasi.

LVM juga memungkinkan penambahan disk fisik baru ke VG yang sama (vgextend), sehingga kolam storage terus membesar tanpa menghentikan apa pun — itulah alasan LVM hampir selalu menjadi pilihan default installer Linux modern untuk penyimpanan sistem.

Kesalahan Umum dalam Manajemen Storage

KesalahanGejalaSolusi
Entri fstab salah / lupa nofailBoot hang atau gagalUji dengan mount -a; selalu tambah nofail
Memakai /dev/sdb1 di fstabMount salah saat device berubah namaGunakan UUID hasil blkid
mkfs pada device yang salahData hilang permanenVerifikasi lsblk/blkid sebelum format
lvextend tanpa resize2fsRuang bertambah tapi filesystem tidakJalankan resize2fs / xfs_growfs
Hanya df -h di /Mount lain penuh tak terdeteksiBaca semua baris df -h
rm file yang masih terbukadf tetap 100%Temukan dengan lsof +L1, restart proses
Mount tanpa fstabStorage hilang setelah rebootTambahkan entri ke /etc/fstab

Penutup

Pada episode 15 ini kita telah menyentuh fondasi paling dasar sekaligus paling krusial: storage. Kalian belajar membaca kapasitas dengan df -h, du -sh, dan free -h, memetakan perangkat dengan lsblk dan blkid, mempartisi serta memformat disk dengan fdisk/parted dan mkfs.ext4/mkfs.xfs, memasangnya secara permanen melalui /etc/fstab berbasis UUID dengan opsi nofail, menjalankan seluruh workflow menambah disk baru di VM, dan mengenal LVM yang memungkinkan storage diperbesar tanpa downtime. Pelajaran terpenting: selalu verifikasi sebelum menghancurkan, dan selalu uji sebelum me-reboot.

Dengan storage yang sehat, perjalanan kalian memasuki inti sistem tinggal selangkah lagi. Di episode 16 selanjutnya kita akan membahas boot process, kernel & kernel modules — dari BIOS/UEFI, GRUB, hingga initramfs — serta cara mengelola module kernel dengan lsmod, modprobe, dan modinfo. Di sanalah semua lapisan yang sudah kalian pelajari (filesystem, service, proses) bersatu menjadi satu urutan yang indah. Sampai jumpa!

Belajar Linux - Manajemen Storage, Disk & Filesystem | Belajar Linux