Saya memiliki partisi ext4 (LVM pada VM) dengan sejumlah besar file kecil , yang harus saya perpanjang setiap 3-4 bulan.
Mengenai jumlah ruang yang digunakan oleh inode.
Apakah salah satu dari sistem file xfs, btrfs atau ext4 menggunakan lebih sedikit ruang?
Dengan kata lain, apakah beralih ke btrfs atau xfs akan membuat partisi terisi dengan inode lebih lambat daripada dengan ext4?
mkfs.ext4 -t news
untuk hasil terbaik. Juga, saya sarankan pengujian - buat (pada lvm, atau perangkat loopback misalnya) masing-masing file filesems pada gilirannya, dan mulai menyalin file nyata Anda ke dalamnya sampai terisi. Ketika mengisi, lakukandf -i
(ataufind | wc -l
) untuk menemukan yang berhasil menyimpan sebagian besar file Anda - dengan cara itu Anda akan tahu pasti.-T
dengan huruf kapital T. File config juga memiliki beberapa pilihan lain yang tampak bergunamkfs.ext4 -T news
Jawaban:
Untuk memulai dengan pertanyaan pertama Anda: ya, salah satu sistem file ini menggunakan lebih sedikit ruang. Bahkan tanpa perincian lebih lanjut, tidak mungkin bahwa mereka semua menggunakan jumlah ruang yang sama, mengingat bahwa mereka memiliki implementasi yang berbeda. Jadi seseorang terikat untuk menggunakan ruang lebih sedikit daripada yang lainnya.
Btrfs memiliki alokasi inode dinamis, jadi tidak ada pengisian seperti yang Anda miliki dengan tabel inode untuk ext4 (ukuran yang ditetapkan pada waktu pembuatan sistem file ext4).
XFS bersifat dinamis dengan cara yang serupa, tetapi memiliki batas (persentase sistem file yang dapat digunakan untuk inode), jadi di sana, apakah Anda mengisi tunjangan inode Anda tergantung pada persentase yang ditetapkan serta jumlah file / ukuran file
sumber
xfs_growfs -m XX
Ya, dan ketahuilah bahwa semuanya tergantung pada kebutuhan Anda:
Btrfs (diucapkan sebagai Butter FS, Better FS, atau B-Tree FS)
Mempertimbangkan bahwa btrfs akan dapat menjangkau lebih dari beberapa hard drive, itu adalah hal yang sangat baik bahwa ia dapat mendukung ruang drive 16 kali lebih banyak daripada ext4 . Ukuran partisi maksimum sistem file btrfs adalah 16 exbibytes, serta ukuran file maksimum juga 16 exbibytes.
Jumlah File Maksimal: 2 ** 64
XFS
The XFS adalah kinerja tinggi 64-bit sistem journal berkas. XFS mendukung ukuran sistem file maksimum 8 exbibytes untuk sistem file 64-bit. Sekarang, RHEL 7.0 menggunakan XFS sebagai sistem file default, termasuk dukungan untuk menggunakan XFS untuk
/boot
partisi.Jumlah File Maksimal: 2 ** 64
EXT4
The ext4 terkenal karena membawa perbaikan kecepatan di atas ext3. Ext4 memiliki beberapa batasan. Ukuran file maksimum adalah 16 tebibytes (yang kira-kira 17,6 terabyte). Volume / partisi terbesar yang dapat Anda miliki dengan ext4 adalah 1 exbibyte. Seperti dalam sistem file yang paling modern, ini adalah sistem file penjurnalan yang berarti bahwa itu akan membuat jurnal di mana file-file tersebut terutama terletak pada disk dan dari setiap perubahan lain yang terjadi pada disk. Terlepas dari semua fitur-fiturnya, itu tidak mendukung kompresi transparan, enkripsi transparan, atau deduplikasi data. Snapshots didukung secara teknis, tetapi fitur seperti itu paling eksperimental.
Jumlah File Maksimal: 4 miliar
XFS vs Btrfs
XFS tidak memiliki RAID, sementara Btrfs RAID belum sepenuhnya stabil dan masih dalam masa awal. XFS lebih dan lebih dewasa daripada Btrfs , tetapi kami tidak dapat menyangkal bahwa Btrfs kuat dan FileSystem yang berkembang dengan baik.
Untuk saat ini, XFS adalah pilihan saya - khususnya karena ini adalah FS default pada RHEL 7 -, kecuali saya benar-benar membutuhkan Btrfs.
sumber
Saya kira masalah yang Anda miliki bukanlah partisi yang diisi dengan inode per se, tetapi kehabisan jumlah inode di sistem file. ext4 menyimpan inode secara statis saat filesystem dibuat, tetapi Anda dapat mengatur angkanya dengan opsi menjadi
mkfs.ext4
:Manual menyatakan secara eksplisit bahwa byte per rasio inode tidak dapat diubah setelah FS dibuat, tetapi jumlah total akan skala untuk memenuhi rasio jika FS diubah ukurannya.
Anda juga dapat mengatur ukuran setiap inode. Standarnya adalah 256 byte pada sistem file "kebanyakan", tetapi dapat dikurangi menjadi 128 (standar untuk sistem file "kecil"). Ruang ekstra digunakan untuk menyimpan atribut yang diperluas (mis. Label SELinux), jadi jika Anda tidak membutuhkannya, itu harus aman untuk mengurangi ukuran ke minimum.
df -i
harus menunjukkan jumlah inode yang dialokasikan dan digunakan. Dengan opsi default, satu partisi 30 GB yang saya lihat memiliki satu inode untuk setiap 16 kB, tetapi jika file Anda sangat kecil, Anda dapat mengatur, katakanlah,-i 4096
untuk memiliki satu inode untuk setiap blok data pada sistem.Jika file Anda lebih kecil dari 4096, Anda mungkin ingin mengurangi ukuran blok sistem file juga, karena semua file biasa akan memerlukan satu blok data penuh pula. (Yaitu, pada ext4. Saya tidak tahu apakah sistem file saat ini melakukan pengepakan file kecil.)
mkfs.ext4
juga memiliki-T <type>
opsi yang dapat digunakan sebagai singkatan untuk beberapa atau semua ini. Pengaturan sedang dalam/etc/mke2fs.conf
, yang pada Debian saya membuat misalnyamkfs.ext4 -T small
setara denganYang mungkin bukan set pilihan yang buruk untuk banyak file kecil (dan tidak ada xattrs.)
Jika file Anda bahkan lebih kecil dari satu kB, sistem file mungkin bukan cara terbaik untuk menyimpan data, tetapi sesuatu seperti database atau sistem aplikasi tertentu mungkin harus dipertimbangkan.
sumber