GNU/Linux >> Belajar Linux >  >> Linux

Pengantar Sistem File Linux

Pendahuluan

Sistem file adalah serangkaian proses yang mengontrol bagaimana, di mana, dan kapan data disimpan dan diambil dari perangkat penyimpanan. Sistem file yang efisien sangat penting untuk proses sistem sehari-hari.

Kernel Linux mendukung berbagai sistem file, tetapi yang paling umum digunakan adalah sistem file ext4.

Dalam artikel ini, Anda akan mempelajari lebih lanjut tentang pengembangan sistem file Linux dan fitur utama sistem ext4.

Evolusi Sistem File Linux

Mari kita lihat lebih dekat evolusi sistem file Linux:

Sistem File MINIX

File Minix sistem mendukung sistem operasi Minix. Ini pertama kali diperkenalkan pada tahun 1987 oleh Andrew S. Tanenbaum.

Sistem operasi Minix dan sistem filenya sebagian besar digunakan untuk tujuan pengkodean pendidikan. Kinerja sistem file tidak memenuhi standar pada saat itu. Panjang nama file dibatasi hingga empat belas karakter, dan partisi dibatasi hingga 64 MB. Pada saat itu, hard drive mendukung partisi hingga 140MB.

Pada tahun 1992 Minix sebagian besar tidak digunakan karena kurangnya kinerja dan pengembangan sistem file ext .

Sistem File ext

Sistem file ext singkatan dari "Sistem File Diperpanjang". Ini adalah sistem file pertama yang dirancang untuk mendukung kernel Linux.

Sistem File Virtual (VFS) digunakan untuk sistem file ext. Tujuan utamanya adalah untuk memungkinkan kernel Linux mengakses sistem file ext. Sistem file ext membatasi panjang nama file hingga 255 karakter dan mendukung partisi hingga 2 GB.

Meskipun berhasil memecahkan masalah yang dimiliki sistem file Minix, ia memiliki satu kelemahan utama - timestamping. Tidak seperti sekarang di mana setiap file Linux memiliki tiga stempel waktu (akses stempel waktu, stempel waktu yang dimodifikasi, dan stempel waktu yang diubah), sistem file ext hanya mengizinkan satu stempel waktu per file.

Pada Januari 1993, sistem file ext2 diperkenalkan. Seiring waktu, semua pengguna beralih dari ext ke ext2.

Sistem File ext2

Remi Card mendesain sistem file ext2 dan merilisnya pada Januari 1993, kurang dari setahun setelah memperkenalkan sistem file ext.

Sistem file ext2 memungkinkan retensi struktur internal sementara fungsionalitas sistem file diperluas. Data dari file disimpan dalam blok data dengan panjang yang sama. Sistem file ext2 mendukung ukuran file maksimum 2TiB. Panjang nama file tidak dibatasi dalam karakter, tetapi dalam byte – 255 byte. Itu tidak mendukung penjurnalan.

Meskipun sistem file ini banyak digunakan, masih ada dua masalah utama:

  • File rusak – Fenomena ini akan terjadi jika data ditulis ke disk pada saat listrik padam atau sistem crash.
  • Penurunan kinerja – Fragmentasi disk terjadi ketika satu file dipecah menjadi beberapa bagian dan tersebar di beberapa lokasi pada disk. Akibatnya, file membutuhkan waktu lebih lama untuk dibaca dan ditulis, yang menyebabkan penurunan kinerja.

Sistem ext2 sebagian besar digunakan sampai awal 2000-an ketika sistem file ext3 diperkenalkan. Terkadang digunakan saat ini untuk perangkat USB karena tidak mendukung sistem penjurnalan.

Sistem File ext3

Stephen Tweedie mendesain sistem file ext3 (Sistem File Diperpanjang Ketiga). Diluncurkan pada November 2001 dengan kernel Linux 2.4.15. Ini masih digunakan sampai sekarang.

Sistem file ext3 adalah versi perbaikan dari sistem file ext2. Ini mendukung ukuran file maksimum 2TiB dan membatasi panjang nama file maksimum hingga 255 byte, seperti sistem file ext2. Peningkatan tersebut tercermin dalam penjurnalan.

jurnal sistem menyimpan "jurnal" dari semua perubahan dalam struktur data yang belum dilakukan. Jika terjadi kehilangan daya atau sistem mogok, log yang disimpan melalui sistem penjurnalan mengembalikan data dalam hitungan detik, mengurangi risiko kerusakan atau kehilangan data. Sistem menulis data di area yang benar dari sistem file saat log diperbarui.

Kernel Linux mendukung tiga tingkat penjurnalan:

  • Jurnal – Terdiri dari penulisan metadata dan konten file dalam jurnal sebelum perubahan dilakukan pada sistem file utama. Ini menghemat data jika terjadi kehilangan daya atau sistem crash. Kerugian dari tingkat penjurnalan ini adalah kinerja sistem menurun.
  • Dipesan – Level penjurnalan ini menulis metadata ke jurnal, sementara konten file disimpan secara otomatis di sistem file utama. Proses ini dilakukan dalam urutan tertentu. Pertama, metadata ditulis dalam jurnal. Kemudian, isi file ditulis ke sistem file utama. Akhirnya, metadata terhubung ke sistem file utama. Oleh karena itu, sistem file utama tidak rusak jika terjadi kerusakan sistem. Hanya file yang sedang dalam proses penulisan saat terjadi kerusakan yang dapat rusak.
  • Tulis Ulang – Level penjurnalan ini hanya menulis metadata ke jurnal. Isi file ditulis ke sistem file utama hanya setelah jurnal diperbarui. Karena kurangnya sinkronisasi metadata dan konten file, sistem file kemungkinan akan rusak jika sistem mogok.

Sistem File ext4

Sistem file ext4 adalah sistem file default dari kernel Linux saat ini. Itu diperkenalkan pada Oktober 2008 dengan kernel Linux 2.6.28.

Sistem file ext4 mendukung ukuran file maksimum 16TiB dan membatasi panjang nama file maksimum hingga 255 byte.

Fitur Sistem File ext4

Mari kita lihat fitur utama sistem file ext4.

Kompatibilitas Mundur

Sistem file ext4 mendukung kompatibilitas mundur dengan sistem file ext3 dan ext2. Fitur tambahan adalah pemasangan otomatis sistem file ext3 dalam mode ext3 dengan menggunakan driver ext4.

Peningkatan Alokasi

Sistem file ext4 mengalokasikan blok penyimpanan lebih efisien sebelum menulisnya ke disk. Itu meningkatkan kinerja baca dan tulis.

Peningkatan Stempel Waktu

Sistem file ext4 menambahkan 408 tahun lagi ke stempel waktu dan mendukung tanggal hingga 10 Mei 2446. Stempel waktu juga diukur lebih cepat, dalam nanodetik.

Ekstensi

Versi lama dari sistem file ext memetakan semua blok yang berkorelasi dengan setiap file. Prosesnya tidak berfungsi jika menyangkut file besar yang membutuhkan banyak blok. Ekstensi telah menyelesaikan masalah dalam sistem file ext4.

Ekstensi mengurangi jumlah metadata yang diperlukan untuk memetakan setiap blok file. Sistem menyimpan alamat blok pertama dan terakhir yang sesuai dengan file besar.

Peningkatan Alokasi Multiblok

Alokasi blok mencari blok gratis yang dapat digunakan untuk menulis data ke disk. Sistem file ext4 menggunakan beberapa alokasi yang memungkinkan alokasi beberapa blok per panggilan. Ini mengurangi fragmentasi disk.

Alokasi Tertunda

Alokasi tertunda fitur mengalokasikan blok hanya ketika file ditulis ke disk. Dengan fitur ini, memori cache tidak diisi dengan data yang tidak perlu, dan kinerja sistem meningkat.

Jumlah Subdirektori Tidak Terbatas

Kernel Linux versi 2.6.23 mendukung jumlah subdirektori yang tidak terbatas. Sistem file ext4 memperkenalkan struktur data Htree untuk menghindari penurunan kinerja. Struktur data HTree mewakili versi khusus dari B-tree.

Checksum Jurnal

Sistem file ext4 menggunakan checksum pilihan. Opsi ini diperkenalkan untuk mengurangi risiko korupsi file.

Sistem penjurnalan adalah bagian disk yang paling banyak digunakan. Ketika terjadi kegagalan perangkat keras, blok menjadi tidak dapat digunakan dan terjadi korupsi file. Opsi checksum terus-menerus memeriksa untuk melihat apakah sebuah blok rusak. Proses ini juga meningkatkan kinerja karena mempersingkat waktu penjurnalan.

Pemeriksaan Sistem File Lebih Cepat

Dalam sistem file ext4, grup blok dan tabel inode yang tidak terdistribusi ditandai. Waktu yang dibutuhkan untuk menjalankan fsck perintah secara signifikan dipersingkat karena grup yang ditandai dilewati. Ini meningkatkan kinerja secara keseluruhan.

Defragmentasi Online

Fragmentasi disk menyebabkan penurunan kinerja, yang merupakan masalah signifikan dengan sistem file ext2 dan ext3. Sistem file ext4 mendukung e4defrag alat yang memungkinkan pengguna mendefrag file individu atau sistem file lengkap.

Batasan Sistem File ext4

Meskipun sistem file ext4 dianggap sebagai sistem file terbaik untuk distribusi Linux, ada beberapa batasan yang harus dipertimbangkan dalam pengembangan sistem lebih lanjut:

  • Pemulihan data yang rusak – Sistem file ext4 tidak dapat mendeteksi atau memulihkan data rusak yang sudah tertulis di disk.
  • Ukuran volume maksimum – Ukuran volume maksimum diatur ke 1 EiB. Namun, sistem file tidak dapat menangani lebih dari 100 TiB data tanpa kehilangan kinerja yang signifikan dan peningkatan fragmentasi disk.

Sistem File Linux Alternatif

Ada beberapa alternatif untuk sistem file ext4. Kernel Linux mendukung semua alternatif yang tercantum di bawah ini.

XFS

XFS adalah sistem file 64-bit yang pertama kali diperkenalkan pada tahun 1994 dan dibangun ke dalam kernel Linux sejak tahun 2001. Ini adalah sistem file default untuk RedHat Linux.

XFS mendukung ukuran file maksimum 8 EiB dan membatasi panjang nama file hingga 255 byte. Ini mendukung penjurnalan, dan seperti ext4, ini menyimpan perubahan dalam jurnal sebelum perubahan dilakukan ke sistem file utama. Ini mengurangi kemungkinan korupsi file.

Data disusun dalam pohon B+ , yang menyediakan alokasi ruang yang efisien dan karenanya meningkatkan kinerja.

Kelemahan utama sistem ini tercermin dalam proses pengubahan ukuran yang sulit dari sistem file XFS yang ada.

OpenZFS

OpenZFS adalah platform yang menggabungkan sistem file dengan manajer volume. Ini pertama kali diperkenalkan pada tahun 2013.

OpenZFS mendukung ukuran file maksimum 16 EiB dan membatasi panjang nama file maksimum hingga 255 karakter. Beberapa fitur sistem ini adalah perlindungan terhadap kerusakan data, enkripsi, dukungan untuk kapasitas penyimpanan tinggi, copy-on-write, dan RAID-Z.

Kerugian utama OpenZFS adalah ketidakcocokan hukum antara lisensi CDDL (OpenZFS) dan GPL (Linux kernel). Itu diselesaikan dengan mengkompilasi dan memuat kode ZFS ke kernel Linux.

BtrFS

Oracle merancang BtrFS (singkatan dari “B-tree file system”) dan dirilis pada tahun 2009 dengan kernel Linux 2.6.29.

BtrFS mendukung ukuran file maksimum 16 EiB dan membatasi panjang nama file maksimum hingga 255 karakter. Beberapa fitur BtrFS adalah defragmentasi online, penambahan dan penghapusan perangkat blok online, dukungan RAID, kompresi yang dapat dikonfigurasi per file atau volume, kloning file, checksum, dan kemampuan untuk menangani file swap dan partisi swap.


Linux
  1. Salin file di terminal Linux

  2. Ganti nama file di terminal Linux

  3. Pindahkan file di terminal Linux

  1. Memahami sistem file Btrfs di Fedora Linux

  2. Linux – Mengapa Tidak Ada Sistem File Rootfs Di Sistem?

  3. Linux – Seberapa Sering Sistem File Proc Diperbarui di Linux?

  1. Pengantar perintah chown Linux

  2. Izin Linux:Pengantar chmod

  3. Pengantar perintah alternatif di Linux