Bagaimanakah Shutdowns yang tidak dijangka merosakkan Komputer Linux?
Adakah shutdowns yang tidak dijangkakan sebagai berbahaya kepada Linux kerana sistem operasi lain? Bacalah semasa kami menyiasat kesan penutupan sistem bencana pada sistem fail Linux.
Sesi Soalan & Jawapan hari ini datang kepada kami dengan ihsan SuperUser-bahagian pembahagian Stack Exchange, kumpulan yang diketuai oleh komuniti laman web Q & A.
Soalan
Pembaca SuperUser User208554 adalah penasaran tentang struktur fail Linux dan prihatin tentang apl / pemasangan yang dia kerjakan:
Saya membangunkan aplikasi pada papan terbenam Linux (menjalankan Debian) mis. Raspberry Pi, Board / Bony Beagle, atau olimex. Papan berfungsi pada persekitaran yang elektrik dipotong secara tidak disangka-sangka (ia terlalu rumit untuk meletakkan PSU, dll.) Dan ia akan berlaku setiap hari beberapa kali. Saya tertanya-tanya jika pemotongan kuasa yang tidak dijangka akan menyebabkan masalah pada Sistem Operasi Linux? Jika ia sesuatu yang perlu saya bimbang, apa yang anda cadangkan untuk mencegah kerosakan pada OS terhadap pemotongan kuasa yang tidak dijangka?
PS. Aplikasi ini perlu menulis beberapa data ke medium penyimpanan (kad SD), saya fikir ia tidak sesuai untuk dipasang sebagai bacaan sahaja.
Jadi apakah keputusan itu?
Jawapan
Penyumbang SuperUser l0b0 menawarkan beberapa gambaran mengenai sistem fail jurnal / bukan jurnal:
Ini bergantung kepada
- sama ada anda menggunakan sistem fail jurnal dan
- seberapa baik aplikasi dapat mengendalikan pemprosesan yang dibatalkan.
Pertimbangkan sebagai contoh sebuah aplikasi yang memproses fail dan menulis keputusan seperti yang dikira (satu garisan output setiap baris input) ke fail lain. Jika kuasa dipotong semasa pemprosesan, dan aplikasi yang sama dijalankan selepas memulakan semula, ia tidak boleh menghidupkan semula pemprosesan dari permulaan fail input - itu bermakna fail output akan mengandungi maklumat pendua.
Ia boleh menjadi sangat sukar untuk mengatakan apa-apa yang pasti mengenai sistem kompleks hipotetikal, tetapi perisian Linux paling stabil seolah-olah dapat mengendalikan kemalangan dengan baik.
Stu mencadangkan pengasingan sistem operasi dan data, serta menambah sandaran bateri:
Untuk membantu meminimumkan kemungkinan rasuah OS, lebih baik memisahkan partition "sistem" dan "data" berasingan pada kad SD. Dengan cara itu, anda boleh melancarkan pembahagian "sistem" baca sahaja dan menggunakan FS yang sangat berdaya tahan pada partition "data".
Di samping itu, kebanyakan papan mempunyai keperluan kuasa yang sangat rendah, jadi cadangan bateri adalah mungkin. Papan "LiPo rider" untuk Raspberry Pi dapat digunakan sebagai UPS dasar untuk memberikan penutupan bersih pada kehilangan daya.
Akhirnya, Jenny D mengembang pada cadangan sistem fail jurnal:
Pemotongan kuasa yang tidak dijangka dapat menyebabkan korupsi data sistem fail - mis. jika proses telah mula menulis ke fail, tetapi belum selesai menulisnya, fail itu mungkin hanya separuh bertulis. Sekarang bayangkan jika pemotongan kuasa berlaku apabila anda setengah jalan melalui peningkatan kernel ...
Seperti yang ditulis l0b0, menggunakan sistem fail jurnal akan membantu, kerana ia dapat menjejaki apa yang sebenarnya telah dilakukan. Sebagai tambahan kepada info wikipedia yang dihubungkan dengan l0b0, anda mungkin berminat dengan Do Journaling Filesystems Guarantee Against Corruption Setelah Kegagalan Daya juga.
Anda sebagai seorang pengatur cara jelas perlu mempertimbangkan dengan teliti cara mengendalikan menulis ke fail supaya ia menjadi proses atom (iaitu sama ada dilakukan sepenuhnya atau tidak dilakukan sama sekali, tetapi tidak pernah dilakukan setengah). Ini isu yang agak rumit.
Mempunyai sesuatu untuk menambah penjelasannya? Bunyi dalam komen. Ingin membaca lebih banyak jawapan dari pengguna Stack Exchange yang berteknologi tinggi? Lihat thread perbincangan penuh di sini.