Semua sistem file Linux memiliki ukuran blok 4kb. Katakanlah saya memiliki 10 MB penyimpanan hard disk. Itu berarti saya memiliki 2560 blok yang tersedia dan katakanlah saya menyalin 2560 file masing-masing memiliki ukuran 1kb. Setiap blok 1 kb akan menempati 1 blok meskipun tidak mengisi seluruh blok.
Jadi seluruh disk saya sekarang terisi tetapi saya masih memiliki ruang kosong 2560x3kb. Jika saya ingin menyimpan file lain katakanlah 1MB apakah sistem file mengizinkan saya untuk menyimpan? Apakah akan menulis di ruang kosong yang tersisa di blok individu? Apakah ada konsep yang mengatasi masalah ini?
Saya akan menghargai beberapa klarifikasi. Terima kasih sebelumnya
Jawaban:
Ukuran blok default adalah 512 byte sejak Linux pertama kali. Kecuali sampai saat ini ukuran blok 4k di mana diperkenalkan untuk memenuhi ukuran disk yang semakin meningkat. Ini sebenarnya bahkan hampir didikte oleh perangkat keras disk (lihat lebih lanjut: /unix/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd ).
Namun untuk pertanyaan spesifik Anda: Anda benar bahwa semua file membuang byte yang tidak terpakai dari blok terakhir pada banyak jenis sistem file, yang sangat boros untuk file kecil. Tetapi btfrs dan reiserfs tampaknya mampu mengatasinya, sesuai dengan https://en.m.wikipedia.org/wiki/Block_suballocation
sumber
Sistem file dapat memiliki ukuran blok dari 512 hingga (biasanya) 65536 byte. Ukuran blok dapat ditentukan sebagai opsi mkfs.xxx. Blocksize default di sebagian besar sistem file Linux - 4096 byte.
Beberapa filesystem mendukung pengemasan tailing dan / atau alokasi subblock. ext2 / 3/4 - tidak, xfs - tidak. Jika Anda berencana untuk mengisi partisi dengan beberapa file kecil, Anda dapat mengurangi ruang "ekor" yang terbuang dengan mengecilkan ukuran blok menjadi 512 atau 1024.
sumber