fitur largefile dalam menciptakan sistem file

17

Apakah berguna untuk menggunakan flag -T largefile dalam menciptakan sistem file untuk partisi dengan file besar seperti video, dan audio dalam format flac?

Saya menguji partisi yang sama dengan flag itu dan tanpa itu, dan menggunakan tune2fs -l [partisi] , saya memeriksa "Fitur Sistem File" yang keduanya memiliki "large_file" diaktifkan. Jadi, tidak perlu menggunakan flag -T largefile ?

Marc
sumber
1
Perhatikan bahwa saya bingung antara large_file (masuk tune2fs) dan largefile; sepertinya itu adalah argumen untuk hal-hal yang berbeda.
Marc

Jawaban:

24

The -T largefilebendera menyesuaikan jumlah inode yang dialokasikan pada penciptaan sistem file. Setelah dialokasikan, jumlah mereka tidak dapat disesuaikan (setidaknya untuk ext2 / 3, tidak sepenuhnya yakin tentang ext4). Standarnya adalah satu inode untuk setiap 16K ruang disk. -T largefilemenjadikannya satu inode untuk setiap megabyte.

Setiap file membutuhkan satu inode. Jika Anda tidak memiliki inode yang tersisa, Anda tidak dapat membuat file baru. Tetapi inode yang dialokasikan secara statis ini mengambil ruang juga. Anda dapat menghemat sekitar 1,5 gigabytes untuk setiap 100 GB disk dengan mengatur -T largefile, sebagai lawan dari default. -T largefile4(satu inode per 4 MB) tidak memiliki efek dramatis.

Jika Anda yakin bahwa ukuran rata-rata file yang disimpan pada perangkat akan di atas 1 megabyte, maka tentu saja, atur -T largefile. Saya senang menggunakannya di partisi penyimpanan saya, dan berpikir bahwa itu tidak terlalu radikal dari suatu pengaturan.

Namun, jika Anda membongkar tarball sumber yang sangat besar dari banyak file (pikirkan ratusan ribu) ke partisi itu, Anda memiliki kemungkinan kehabisan inode untuk partisi itu. Ada sedikit yang dapat Anda lakukan dalam situasi itu, selain dari memilih partisi lain untuk dibatalkan.

Anda dapat memeriksa berapa banyak inode yang tersedia di sistem file langsung dengan dumpe2fsperintah:

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

Di sini, saya masih bisa membuat 34 ribu file.

Inilah yang saya dapatkan setelah melakukan mkfs.ext3 -T largefile -m 0pada partisi 100-GB:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

Versi largefile memiliki 102.400 inode sementara yang normal menciptakan 6 553 600 inode, dan menghemat 1,5 GB dalam proses.

Jika Anda memiliki petunjuk yang baik tentang ukuran file apa yang akan Anda masukkan ke sistem file, Anda dapat mengatur jumlah inode secara langsung dengan -isaklar. Ini mengatur byte per rasio inode. Anda akan mendapatkan 75% dari penghematan ruang jika Anda menggunakan -i 65536sementara masih bisa membuat lebih dari satu juta file. Saya biasanya menghitung untuk menyimpan setidaknya 100.000 inode cadangan.

hhaamu
sumber
jawaban yang bagus, tetapi di mana Anda berkata, "dan menghemat 1,5 GB dalam proses." Anda seharusnya mengatakan "tetapi menggunakan ruang 1,5 GB untuk inode tambahan". Anda membuatnya terdengar seperti mode normal menciptakan lebih banyak inode dan juga meninggalkan lebih banyak ruang kosong pada disk.
localhost
"Saya biasanya menghitung untuk menyimpan setidaknya 100.000 inode cadangan." - mengapa Tentunya 0 cadangan (dan 0 lebih dibutuhkan) sudah optimal? Apakah Anda benar-benar khawatir bahwa Anda mungkin mati pada 100 ribu pada berapa banyak file atau direktori yang akan Anda miliki?
OJFord
3

Saya pikir Anda mencampurkan dua konsep yang sepenuhnya berbeda dan independen.

The large_filefitur yang Anda dapat melihat dalam output dari dumpe2fs berarti bahwa filesystem ini dapat menyimpan file yang lebih besar dari 2 GiB, saya pikir sudah diatur secara otomatis oleh kernel modern. Ini tidak ada hubungannya dengan -Topsi mke2fs.

Menggertak
sumber