it-swarm-id.com

Ruang yang disediakan untuk root pada sistem file - mengapa?

Saya mengerti bahwa secara default, filesystem yang baru dibuat akan dibuat dengan 5% dari ruang yang dialokasikan untuk root. Saya juga tahu Anda dapat mengubah ruang yang ditentukan dengan:

tune2fs -m 1 /dev/sdXY

Yang membuat saya penasaran, adalah apa tujuan sebenarnya dari ruang yang dipesan ini. Apakah itu melayani tujuan praktis yang akan mendapat ruang lebih dari 5% dalam beberapa keadaan?

Alasan saya menemukan pertanyaan ini adalah bahwa kami baru-baru ini membangun filestore 1TB, dan tidak bisa mengetahui mengapa df -h membuat kami kehilangan 5% dari kapasitas kami.

108
suitedupgeek

Menyimpan ruang untuk proses root yang penting (dan kemungkinan tindakan penyelamatan) adalah salah satu alasannya.

Tapi ada lagi. Ext3 cukup bagus untuk menghindari fragmentasi sistem file, tetapi begitu Anda mendapatkan di atas sekitar 95% penuh, perilaku itu jatuh dari tebing, dan tiba-tiba kinerja sistem file menjadi berantakan. Jadi menyisakan 5% dicadangkan memberi Anda penyangga terhadap ini.

Ext4 seharusnya lebih baik dalam hal ini, seperti dijelaskan oleh pengembang/guru sistem file Linux Theodore Ts'o :

Jika Anda menetapkan jumlah blok yang dicadangkan ke nol, itu tidak akan mempengaruhi banyak kinerja kecuali jika Anda menjalankan untuk jangka waktu yang lama (dengan banyak file yang dibuat dan dihapus) sementara sistem file hampir penuh (yaitu, katakan di atas 95%), pada titik mana Anda akan mengalami masalah fragmentasi. Pengalokasi multi-blok Ext4 jauh lebih tahan fragmentasi, karena ia berusaha lebih keras untuk menemukan blok yang bersebelahan, jadi bahkan jika Anda tidak mengaktifkan fitur ext4 lainnya, Anda akan melihat hasil yang lebih baik hanya dengan memasang sistem file ext3 menggunakan ext4 sebelum sistem file sepenuhnya penuh.

Jika Anda hanya menggunakan sistem file untuk arsip jangka panjang, di mana file tidak terlalu sering berubah (mis., Toko mp3 atau video besar), itu jelas tidak masalah.

106
mattdm

Jika Anda mengizinkan orang lain masuk ke sistem Anda, melalui ssh, misalnya, memiliki 5% blok yang dicadangkan ini memastikan pengguna eksternal tidak dapat mengisi disk. Bahkan jika Anda tidak mengizinkan orang lain masuk ke sistem Anda, blok yang disediakan mencegah program tidak berjalan sebagai root dari mengisi disk Anda.

45
LawrenceC

Dengan blok yang dicadangkan pengguna Anda, dan layanan yang berjalan sebagai pengguna spesifik daripada berjalan sebagai root, tidak dapat mengisi filesystemsem dan berpotensi memecah hal-hal lain yang perlu ditulis ke filesystem tersebut - meskipun layanan yang berjalan sebagai root masih dapat membuatnya sepenuhnya penuh tentu saja.

Ini juga memberi Anda beberapa ruang untuk bekerja dengan ketika pengguna mengeluh bahwa disk penuh, atau layanan mulai gagal karena sistem file penuh. Sebagai contoh, Anda dapat mengarsipkan beberapa file ke arsip Zip/gz/7Zip sebelum menghapusnya (meskipun jika sistem file benar-benar penuh, kemungkinan Anda memiliki beberapa sistem file lain yang tersedia sehingga Anda dapat membuat file arsip sebagai gantinya).

5% telah menjadi default untuk waktu panjang, dari belakang ketika disk jauh lebih kecil (puluhan megabita daripada ratusan gigabita) jadi 5% tidak terlalu banyak. Untungnya itu dapat dengan mudah disetel ke persentase yang lebih kecil seperti yang Anda katakan, atau setel ke sejumlah blok tertentu jika Anda menggunakan tune2fs's -r pilihan alih-alih -m. Dalam kedua kasus, Anda dapat memberikan parameter 0 untuk mematikan reservasi sepenuhnya - saya tidak akan melakukan ini untuk /, /tmp, /var dan sebagainya, tetapi Anda mungkin ingin untuk sistem file yang hanya bertindak sebagai penyimpanan pengguna (mis. berbagi file global) atau yang hanya menyimpan file ukuran tetap (seperti VM berukuran tetap) yang hanya akan tumbuh ketika Anda membuat baru.

22
David Spillett

Default 5% dimaksudkan untuk partisi sistem. Misalnya, jika ruang disk Anda terisi, sistem mencatat (/var/log) dan kotak surat root (/var/mail/root) masih dapat menerima informasi penting. Untuk sebuah /home atau partisi penyimpanan data umum, tidak perlu meninggalkan ruang untuk root. Untuk kebutuhan khusus, Anda dapat mengubah pengguna yang mendapat ruang darurat (tune2fs -u 1234).

Ada alasan lain untuk tidak membiarkan sistem file ext [234] menjadi penuh, yaitu fragmentasi .