Filesystem Linux berevolusi dari ext2 yang sederhana menjadi ext4, XFS, btrfs, dan ZFS yang kaya fitur. Episode ini menelusuri sejarah setiap filesystem, masalah penyimpanan yang mereka selesaikan, dan mengapa pemahaman filesystem menjadi krusial bagi operasional server.

Di episode 0 kalian sudah menyiapkan lab dan toolchain. Sekarang kita mundur sejenak untuk memahami mengapa filesystem muncul dan bagaimana mereka berevolusi. Sebuah filesystem bukan sekadar teknologi; dia adalah jawaban terhadap masalah nyata: bagaimana menyimpan, mengatur, dan melindungi data di media yang terbatas dan tidak sempurna.
Memahami sejarah membantu kalian membuat keputusan yang lebih baik. Ketika kalian tahu bahwa ext4 dibangun di atas fondasi ext3 dengan extents, atau bahwa btrfs dan ZFS lahir untuk menjawab korupsi data diam-diam, kalian akan paham mengapa konfigurasi tertentu ada dan kapan harus memilihnya.
Episode 1 ini membahas evolusi filesystem Linux dari ext2 hingga generasi modern, masalah yang mereka selesaikan, dan mengapa topik ini penting bagi SysAdmin maupun DevOps Engineer. Tidak ada perintah yang wajib dihafal di sini — fokuslah pada peta sejarahnya.
Cerita dimulai dari ext2 yang dirilis pada 1993. ext2 adalah filesystem yang bersih dan stabil, tetapi tidak memiliki journaling — artinya saat sistem crash, fsck harus memindai seluruh disk dan korupsi bisa permanen. Ini menjadi masalah besar seiring disk membesar karena pemeriksaan membutuhkan waktu berjam-jam.
ext3 (2001) menjawabnya dengan journaling: sebelum mengubah data, filesystem menulis catatan transaksi ke journal. Saat crash, replay journal memulihkan konsistensi dalam hitungan detik, bukan jam. ext4 (2008) lalu membawa extents, delayed allocation, dan fleksibilitas untuk disk besar. ext4 menjadi default Ubuntu/Debian dan tetap menjadi filesystem paling banyak dipakai sampai sekarang. Ketiga filesystem ini masih hidup berdampingan — ext2 dan ext3 masih didukung penuh oleh e2fsprogs hingga hari ini.
Satu hal yang patut dicatat: lompatan dari ext2 ke ext4 tidak pernah menghapus kompatibilitas. Sebuah filesystem ext2 bisa dibaca oleh driver ext4, dan ini adalah contoh bagaimana desain yang hati-hati menjaga data tetap bisa diakses puluhan tahun kemudian.
XFS lahir di IRIX (Silicon Graphics) pada 1994 sebagai filesystem untuk media streaming dan throughput tinggi. Di-porting ke Linux pada 2001 dan menjadi default RHEL/Rocky/AlmaLinux. Desainnya yang berorientasi allocation group dan B+tree membuatnya unggul untuk file raksasa dan beban paralel.
Yang menarik dari XFS adalah filosofinya: daripada mengoptimalkan banyak file kecil seperti ext4, XFS sengaja dioptimalkan untuk file besar, throughput tinggi, dan skala yang sangat besar. Ketika kalian mengelola server media atau backup server, filosofi ini langsung terasa.
Perjalanan XFS juga mengajarkan pentingnya ekosistem: meski asalnya bukan Linux, XFS berhasil berintegrasi karena kebutuhan nyata — dan kini menjadi bagian resmi dari kernel serta distro enterprise utama. Sejarah ini adalah bukti bahwa teknologi yang baik akan menemukan jalannya sendiri.
ZFS dirilis oleh Sun Microsystems pada 2005, dipindahkan ke OpenZFS untuk Linux sejak 2014. ZFS menggabungkan manajemen volume, RAID, checksum, dan snapshot dalam satu entitas — konsep yang belum ada di filesystem tradisional. btrfs dari Oracle (2007) membawa ide serupa: Copy-on-Write, subvolume, snapshot, dan checksum, namun sebagai bagian dari kernel Linux. btrfs mencapai kematangan modern sejak 2020 dan menjadi default openSUSE.
Verifikasi cepat semua filesystem yang terdeteksi di sistem kalian:
df -hTOutput df -hT menampilkan kolom TYPE yang menunjukkan tipe filesystem setiap mount point — ext4 di root, mungkin tmpfs, dan lain-lain. Bandingkan hasilnya dengan daftar sejarah di atas: kalian sedang melihat jejak evolusi yang hidup.
Masalah pertama dan paling mendasar: media penyimpanan hanyalah kumpulan sektor berurutan. Filesystem mengorganisasikannya menjadi blok, lalu membangun hierarki direktori dan file di atasnya. Tanpa filesystem, kalian hanya punya raw disk yang tidak bisa menyimpan nama file atau folder.
Alokasi blok adalah seni meminimalkan fragmentasi. ext4 memakai extents (rentang blok berurutan), sedangkan XFS memakai B+tree untuk menemukan ruang kosong dengan cepat. Setiap strategi berdampak pada performa tulis dan baca. Fragmentasi yang parah membuat disk terasa lambat bahkan ketika kapasitasnya masih lega.
Direktori sendiri adalah struktur yang menarik: di ext4, direktori adalah daftar nama yang dipetakan ke inode, dilindungi hash untuk pencarian cepat. Ketika kalian menjalankan ls, kernel membaca struktur ini melalui VFS — dan setiap filesystem punya cara berbeda untuk mengoptimalkannya.
Masalah kedua: listrik mati di tengah penulisan. Filesystem tradisional bisa meninggalkan struktur setengah jadi. Tiga pendekatan muncul untuk menanganinya:
Perbandingan ini akan terus berulang di seluruh series. Untuk sekarang, ingat saja perbedaan fundamental antara journaling dan COW. Keduanya sama-sama menjawab pertanyaan yang sama — apa yang terjadi saat crash — dengan cara yang sangat berbeda.
Perlu dicatat bahwa ketiga pendekatan bukan saling eksklusif. Sebuah filesystem bisa memakai checksum untuk metadata (seperti ext4 modern) sambil tetap bergantung pada journal untuk transaksi. Yang penting adalah memahami mana yang melindungi data dan mana yang melindungi struktur.
Masalah ketiga yang sering dilupakan adalah skala. Filesystem ext2 dirancang di era disk gigabyte; ZFS dirancang dengan pointer 256-bit untuk skala exabyte. Ketika kalian memilih filesystem, kalian sedang memilih seberapa jauh ruang penyimpanan kalian bisa tumbuh tanpa harus mengganti teknologi.
Simulasi sederhana untuk melihat seberapa besar skala yang ditangani filesystem modern:
1 sector = 512 byte
1 terabyte = 1,953,125,000 sector
1 exabyte = 1,000 terabyte (rentang ZFS 256-bit)Angka di atas menjelaskan mengapa struktur on-disk filesystem modern harus begitu efisien. Metadata yang dulu dianggap mahal kini menjadi penentu antara filesystem yang bertahan dan yang tertinggal.
Perhatikan bahwa "cukup untuk sekarang" adalah risiko jangka panjang: filesystem 32-bit yang dulu cukup kini menjadi penghalang di era terabyte. Keputusan kapasitas bukan tentang kebutuhan hari ini, melainkan tentang masa depan data kalian.
Pemilihan filesystem mempengaruhi hampir semua metrik operasional. Database transaksional butuh latency rendah dan fsync yang aman; file server butuh throughput tinggi dan kompresi; container storage butuh snapshot cepat. Salah pilih berarti tuning yang sia-sia atau kinerja yang buruk selama bertahun-tahun.
Filesystem juga menentukan bagaimana kalian melakukan backup, repair, dan monitoring. xfs_repair harus berjalan di filesystem unmounted, sedangkan btrfs check dan zpool scrub bisa berjalan online. Mengetahui aturan main ini menghindarkan kalian dari bencana saat produksi.
Data tersimpan lebih lama dari hardware. Keputusan filesystem hari ini akan kalian tanggung selama data masih hidup — perhatikan bahwa ext2 dari 1993 masih bisa dibaca oleh sistem modern lewat kompatibilitas ext4. Sebaliknya, filesystem yang salah kelola bisa membuat data tidak bisa dibaca. Memahami fondasi adalah investasi yang paling murah dan paling awet.
Keputusan ini juga berdampak pada tim. Ketika kalian memilih ZFS karena integritasnya, kalian harus siap mengelola ARC dan pool; ketika memilih ext4, kalian menukar fitur dengan kesederhanaan. Tidak ada jawaban universal — yang ada adalah pemahaman tentang tradeoff.
Perhatikan juga adopsi di industri: distro yang berbeda membuat pilihan berbeda untuk alasan yang sah. RHEL memilih XFS, Ubuntu memilih ext4, openSUSE memilih btrfs, dan TrueNAS memilih ZFS. Masing-masing punya pertimbangan dukungan, lisensi, dan karakteristik workload yang berbeda — dan memahami alasan mereka membantu kalian menentukan pilihan sendiri.
Sejarah filesystem Linux adalah cerita tentang keseimbangan: kecepatan vs keamanan data, kesederhanaan vs fitur, dan kompatibilitas vs inovasi. ext4 mewakili kesederhanaan yang teruji, XFS mewakili throughput, sedangkan btrfs dan ZFS mewakili generasi yang menempatkan integritas data sebagai prioritas utama.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya kita akan membedah konsep dasar dan anatomi filesystem — inode, superblock, block allocation, journaling vs COW, checksum self-healing, hingga bagaimana VFS (Virtual Filesystem Switch) Linux mengabstraksi semua filesystem di balik satu antarmuka. Kalian akan mulai melihat apa yang terjadi di balik setiap file yang kalian buat.