Saya memiliki sistem yang menjalankan linux yang harus dijalankan tanpa pengawasan untuk jangka waktu yang lama. Sistem ini menggunakan kartu CF industri untuk penyimpanan. Sebagian besar waktu tidak ada menulis ke flash, meskipun kadang-kadang beberapa konfigurasi data / pengaturan dapat dimodifikasi. Sistem harus tahan terhadap gangguan daya.
Saya ingin menggunakan ext4 untuk ini. Apa cara terbaik untuk mengkonfigurasi ext4 untuk pengaturan semacam ini? Ingatlah bahwa:
- Performa bukan masalah sama sekali (terutama kinerja menulis)
- Setelah kehilangan daya, sistem harus selalu boot dalam keadaan bersih, bahkan jika itu berarti bahwa data yang ditulis dalam beberapa detik terakhir hilang
- Jika mungkin untuk menghindari fsck, maka semuanya akan lebih baik.
(Saya mengetahui pertanyaan terkait ini: Mencegah kerusakan data pada drive ext4 / Linux pada hilangnya daya )
Saya akan mengawali ini dengan mengatakan bahwa sejauh yang saya ketahui, EXT (dalam semua inkarnasinya) adalah filesystem yang cukup mengerikan - saya telah melihat lebih banyak kasus " menarik " dari korupsi filesystem dalam jumlah yang relatif kecil dari Linux / EXT {2,3,4} sistem yang saya kelola dari pada sistem file Not-EXT yang relatif besar yang pernah saya gunakan.
Jika memungkinkan cobalah untuk memilih sistem file yang lebih kuat. Anda akan berterima kasih kepada diri sendiri ketika hal yang tak terhindarkan terjadi.
Itulah yang dikatakan dan semua bias pribadi saya di tempat terbuka dan disingkirkan, EXT4 memang memiliki tiga fitur yang dapat saya pikirkan yang dapat membantu Anda:
Journal
EXT4 bisa menjadi filesystem journal, jika Anda ingin menjadi. Aktifkan fitur penjurnalan (dan secara khusus mengatur mode penjurnalan data ke
journal
viatune2fs
atau sebagai opsi pemasangan).Hal ini menimbulkan hit kinerja karena semua data harus dituliskan ke jurnal EXT sebelum "berkomitmen" ke sistem file (setiap penulisan pada dasarnya terjadi dua kali), tetapi memastikan Anda selalu dapat memulihkan sejauh replay jurnal membuat Anda tanpa masalah.
SYNC
Mounts hronousKetika keselamatan merupakan hal terpenting untuk memasang sistem file dengan
sync
opsi selalu merupakan ide yang baik. Ini memaksa semua menulis ke disk segera - lagi ini adalah hit kinerja, tetapi ide yang bagus jika Anda mengharapkan kegagalan daya atau orang asing acak menarik kartu CF keluar.Batasi sebanyak mungkin sistem file yang dapat ditulisi. Yang satu ini tidak spesifik untuk EXT, tetapi filosofi Linux yang terlalu umum "hanya membuat satu partisi root besar dan membuang semuanya ke dalamnya", terus terang, bodoh . Membuat struktur filesystem yang tepat (
/
,/var
,/usr
,/home
, dll ...), dan mount karena banyak filesystem read-only mungkin.Ini dulunya merupakan saran umum untuk sistem unix demi keamanan, tetapi dalam kasus Anda ini memiliki manfaat tambahan: Anda tidak dapat merusak sistem file jika Anda tidak dapat menulisnya.
sumber
sync
setelah setiap penulisan - Tunggangan sinkron tidak akan (atau setidaknya tidak boleh) kembali dari panggilan tulis sistem file sampai data ada di disk. Memanggilsync
akan mem-flush semua tulisan yang tertunda, tetapi masih ada jendela (seberapa pendek) antara ketika penulisan kembali dan panggilan Anda untuksync
kembali selama data mungkin belum ditulis ke disk.data=journal
(apa yang saya jelaskan di atas),data=ordered
(metadata dijurnal. Data berkomitmen ke disk sebelum metadata berkomitmen ke sistem file), dandata=writeback
(yang secara efektif tidak ada penjurnalan / perlindungan data - Hal Buruk dapat terjadi setelah crash, seperti sampah di tengah file). Saya percayaordered
ini adalah default pada kebanyakan distro Linux hari ini ...EXT4 tidak terdengar seperti pilihan terbaik untuk sistem Anda; Saya akan menyarankan melihat sistem file log-terstruktur. Ini bekerja dengan memperlakukan data sebagai aliran konstan pembaruan tulis terhadap aliran virtual, dengan pointer yang menunjuk 'kepala' terbaru. Pembaruan terjadi dengan menulis data dan metadata ke penyimpanan, kemudian memperbarui pointer. Dalam kasus crash setelah menulis tetapi sebelum penunjuk memperbarui data terbaru hilang tetapi sistem file konsisten.
Dua kandidat filesystem adalah LogFS dan NILFS . Keduanya tersedia di kernel Linux arus utama.
sumber
Saya tertarik dengan perangkat gedung Anda. Anda mencari keandalan perangkat yang disematkan saat menggunakan sistem file yang tidak benar-benar cocok.
Ext4 (dan keluarga) adalah sistem file serba guna yang bagus dengan (saya kira) banyak milyaran jam penggunaan pada beragam perangkat keras dan kasus penggunaan. Namun, apa yang Anda minta tidak benar-benar cocok dengan ext4. Petunjuk dari voretaq7 dan Giovanni akan membantu mendapatkan yang terbaik dari penggunaan ext4 jika Anda harus, tetapi jawaban sebenarnya adalah menggunakan sesuatu yang lebih sesuai dengan kebutuhan Anda. Steve telah memberi Anda beberapa opsi. Jika Anda terus menarik daya dari ext4 FS Anda akhirnya akan berantakan.
Jika ini adalah sistem satu-satunya yang sedang Anda bangun, Anda harus membuat pilihan untuk menggunakan sesuatu yang lebih cocok atau menerima bahwa akan ada masalah di beberapa titik. Mungkin hanya 1 pemadaman listrik dari 100 atau 1 dari 1000. Itu bisa cukup baik bagi Anda untuk mengambil risiko dan perangkat mungkin bisa berjalan untuk waktu yang lama (tahun) tanpa intervensi manual.
Jika ini adalah produk yang ingin Anda gunakan secara luas / bawa ke pasar, Anda memiliki pilihan untuk menggunakan sesuatu yang lebih cocok. Atau Anda mengambil keputusan bisnis untuk mendukung persentase perangkat yang akan ditutup setiap tahun dan perlu diganti atau intervensi manual untuk memulihkannya.
sumber