Saya mengembangkan aplikasi pada Linux embedded board (menjalankan Debian) misalnya Raspberry Pi, Beagle Board / Bone, atau olimex. Papan bekerja pada lingkungan yang listriknya terputus secara tak terduga (jauh lebih rumit untuk menempatkan PSU, dll.) Dan itu akan terjadi setiap hari beberapa kali. Saya ingin tahu apakah pemadaman listrik yang tidak terduga akan menyebabkan crash / masalah pada Sistem Operasi Linux? Jika itu adalah sesuatu yang harus saya khawatirkan, apa yang akan Anda sarankan untuk mencegah kerusakan pada OS terhadap pemadaman listrik yang tidak terduga?
PS. Aplikasi perlu menulis beberapa data ke media penyimpanan (kartu SD), saya pikir tidak akan cocok untuk me-mount sebagai read-only.
linux
debian
operating-systems
power-supply
embedded-linux
Penerobosan
sumber
sumber
Jawaban:
Pemadaman listrik yang tidak terduga dapat menyebabkan korupsi data sistem file - misalnya jika suatu proses telah mulai menulis ke file, tetapi belum selesai menulisnya, file tersebut mungkin hanya akan berakhir setengah tertulis. Sekarang bayangkan jika pemadaman listrik terjadi ketika Anda setengah jalan melalui peningkatan kernel ...
Seperti yang ditulis oleh l0b0, menggunakan sistem file jurnal akan membantu, karena ia akan dapat melacak apa yang sebenarnya telah dilakukan. Selain info wikipedia yang ditautkan dengan l0b0, Anda mungkin tertarik pada /unix/12699/do-journaling-filesystems-guarantee-against-corruption-after-a-power-failure juga .
Anda sebagai seorang programmer jelas perlu mempertimbangkan dengan hati-hati bagaimana menangani menulis ke file sehingga menjadi proses atom (yaitu baik dilakukan sepenuhnya atau tidak dilakukan sama sekali, tetapi tidak pernah setengah dilakukan). Ini masalah yang cukup kompleks.
sumber
Untuk membantu meminimalkan kemungkinan kerusakan OS, sebaiknya partisi "sistem" dan "data" terpisah pada kartu SD. Dengan begitu Anda dapat memasang partisi "sistem" hanya-baca dan menggunakan FS yang sangat tangguh pada partisi "data".
Selain itu, sebagian besar papan tersebut memiliki kebutuhan daya yang sangat rendah, sehingga cadangan baterai dimungkinkan. Papan "LiPo rider" untuk Raspberry Pi dapat digunakan sebagai UPS dasar untuk memberikan pematian daya bersih yang bersih.
sumber
Ini akan tergantung pada
Misalnya, pertimbangkan aplikasi yang memproses file dan menulis hasilnya saat dikomputasi (satu jalur output per jalur input) ke file lain. Jika daya terputus selama pemrosesan, dan aplikasi yang sama dijalankan setelah restart, itu tidak bisa hanya memulai kembali pemrosesan dari awal file input - itu berarti file output akan berisi informasi duplikat.
Mungkin sangat sulit untuk mengatakan sesuatu yang pasti tentang sistem kompleks hipotetis, tetapi sebagian besar perangkat lunak Linux yang stabil tampaknya mampu menangani crash dengan cukup baik.
sumber
Karena tidak ada yang menyebutkan sistem file tertentu: sistem file yang lebih modern (ext3, ext4, ntfs) mampu menangani crash jauh lebih baik daripada sistem file yang lebih lama (ext2, ext, fat32) karena penjurnalan .
Dengan asumsi hard drive tidak macet dan tidak berbohong , kegagalan daya total tidak boleh merusak sistem file. Namun, file individual yang sedang ditulis mungkin masih rusak, jadi jika Anda sedang memperbarui OS ketika terjadi kegagalan daya, masih mungkin untuk menjatuhkan OS.
sumber