Filesystem dan VFS (belum)
Last updated
Last updated
Program aplikasi membaca dan menulis file, daripada berurusan dengan lokasi fisik pada perangkat keras sebenarnya tempat file disimpan. Sistem file membuat format yang dapat digunakan pada partisi fisik.
File dan namanya adalah abstraksi yang menyamarkan lapisan I/O fisik. Menulis langsung ke disk dari baris perintah (mengabaikan lapisan sistem file) sangat berbahaya dan biasanya hanya dilakukan oleh perangkat lunak sistem operasi tingkat rendah dan bukan oleh aplikasi pengguna.
Linux menggunakan lapisan virtual filesystem (VFS) untuk berkomunikasi dengan filesystem software. Sistem file lokal umumnya berada dalam partisi disk yang dapat berupa partisi fisik pada disk, atau partisi logis yang dikontrol oleh Logical Volume Manager (LVM). Sistem file juga dapat bersifat jaringan dan perwujudan fisik aslinya sepenuhnya tersembunyi dari sistem lokal di seluruh jaringan.
Inode adalah struktur data pada disk yang mendeskripsikan dan menyimpan atribut file, setiap file diasosiakan dengan inode-nya sendiri. Inode digunakan oleh sistem operasi untuk melacak properti seperti nama, lokasi, atribut file (permission, ownership, dll), size, dan waktu akses. Semua aktifitas I/O yang berhubungan dengan file juga melibatkan file inode.
File direktori adalah jenis file yang digunakan untuk mengaitkan nama file dan inode. ada 2 cara yang disebut link dengan menggunakan ln:
Hard links ke sebuah inode. Harus berada pada filesystem yang sama dan mengubah konten file di satu tempat tidak mengubah di tempat lain
Soft links (simbolik) ke nama file yang memiliki inode. Mungkin berada di filesystem yang berbeda dan jika target tidak ada dapat menggantung
Dimungkinkan dua atau lebih entri direktori yang menunjuk ke inode yang sama (hard link) dapat dikenal beberapa nama yang masing-masing memiliki tempatnya sendiri dalam struktur direktori tapi hanya memiliki 1 inode.
Ketika sebuah proses mengacu pada pathname, kernel mencari direktori untuk menemukan nomor inode yang sesuai. Setelah dikonversi ke nomor inode, akan dimuat ke dalam memori dan digunakan oleh permintaan berikutnya.
Linux bekerja dengan lebih banyak jenis filesystem daripada sistem operasi lainnya yang menjadi faktor besar dalam keberhasilan. Sebagian besar filesystem memiliki akses read/write dan hanya beberapa read only. Filesystem yang umum digunakan adalah ext4, xfs, btrfs, squashfs, nfs, dan vfat. Daftar filesystem yang didukung ada di /proc/filesystems
Sistem file ext4 dapat mendukung volume hingga 1 EB dan ukuran file hingga 16 TB. Luas menggantikan mekanisme pemetaan blok yang lama.
ext4 kompatibel dengan ext3 dan ext2. Itu dapat mengalokasikan ruang disk untuk suatu file. Ruang yang dialokasikan biasanya terjamin dan bersebelahan. Ia juga menggunakan teknik kinerja yang disebut mengalokasikan-on-flush (menunda alokasi blok hingga menulis data ke disk). ext4 menembus batas 32.000 subdirektori ext3
ext4 menggunakan checksum untuk jurnal yang meningkatkan keandalan. Hal ini juga dapat dengan aman menghindari menunggu I/O disk selama penjurnalan, yang menghasilkan sedikit peningkatan kinerja.
Fitur lainnya adalah penggunaan stempel waktu yang ditingkatkan. ext4 menyediakan stempel waktu yang diukur dalam nanodetik.
Sistem file XFS dirancang dan dibuat oleh Silicon Graphics Inc. (SGI) dan digunakan dalam sistem operasi IRIX dan kemudian di-porting ke Linux. Ini dirancang untuk menangani kumpulan data besar untuk sistem SGI, serta menangani tugas I/O paralel dengan sangat efektif.
Itu dapat menangani:
Hingga 16 EB (exabytes) untuk total sistem file
Hingga 8 EB untuk satu file
Performa tinggi adalah salah satu elemen desain utama XFS, yang mengimplementasikan metode untuk:
Mengizinkan I/O DMA (Akses Memori Langsung)
Menjamin tingkat I/O
Menyesuaikan ukuran garis agar sesuai dengan perangkat penyimpanan RAID atau LVM yang mendasarinya.