Αρχική σελίδα » πως να » Πώς μπορούν οι απροσδόκητες διακοπές να βλάψουν έναν υπολογιστή Linux;

    Πώς μπορούν οι απροσδόκητες διακοπές να βλάψουν έναν υπολογιστή Linux;

    Οι απροσδόκητες διακοπές είναι τόσο επιβλαβείς για το Linux όπως και σε άλλα λειτουργικά συστήματα; Διαβάστε παρακάτω καθώς εξετάζουμε τις επιπτώσεις των καταστροφών σε καταστροφικά συστήματα σε συστήματα αρχείων Linux.

    Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.

    Το ερώτημα

    Ο αναγνώστης SuperUser User208554 είναι περίεργος για τις δομές αρχείων Linux και ανησυχεί για μια εφαρμογή / εγκατάσταση στην οποία εργάζεται:

    Αναπτύσσω μια εφαρμογή σε μια ενσωματωμένη πλακέτα Linux (τρέχει το Debian) π.χ. Raspberry Pi, Beagle Board / Bone ή olimex. Οι πίνακες λειτουργούν σε περιβάλλον όπου η ηλεκτρική ενέργεια κόβεται απροσδόκητα (είναι πολύ περίπλοκη η τοποθέτηση του PSU κλπ.) Και θα συμβεί καθημερινά μερικές φορές. Αναρωτιέμαι αν οι απρόσμενες διακοπές ενέργειας θα προκαλούσαν πρόβλημα στο Λειτουργικό Σύστημα Linux; Αν είναι κάτι που θα πρέπει να ανησυχώ, τι θα πρότεινα για να αποτρέψετε τις ζημιές στο OS ενάντια στις απροσδόκητες περικοπές ρεύματος?

    PS. Η εφαρμογή χρειάζεται να γράψει κάποια δεδομένα στο μέσο αποθήκευσης (κάρτα SD), νομίζω ότι δεν θα ήταν κατάλληλο να το τοποθετήσετε ως μόνο για ανάγνωση.

    Λοιπόν ποια είναι η ετυμηγορία?

    Η απάντηση

    Ο συνδρομητής του SuperUser l0b0 προσφέρει κάποια ιδέα για συστήματα αρχειοθέτησης αρχείων / μη-περιοδικών:

    Αυτό θα εξαρτηθεί από

    1. είτε χρησιμοποιείτε ένα σύστημα αρχειοθέτησης αρχείων και
    2. πόσο καλά οι εφαρμογές είναι σε θέση να χειριστούν την αργοπορημένη επεξεργασία.

    Εξετάστε, για παράδειγμα, μια εφαρμογή που επεξεργάζεται ένα αρχείο και γράφει τα αποτελέσματα όπως αυτά υπολογίζονται (μία γραμμή εξόδου ανά γραμμή εισόδου) σε ένα άλλο αρχείο. Εάν η παροχή ενέργειας διακοπεί κατά τη διάρκεια της επεξεργασίας και η ίδια εφαρμογή εκτελείται μετά την επανεκκίνηση, δεν μπορεί απλώς να επανεκκινήσει την επεξεργασία από την αρχή του αρχείου εισόδου - αυτό σημαίνει ότι το αρχείο εξόδου θα περιέχει διπλές πληροφορίες.

    Θα μπορούσε να είναι πολύ δύσκολο να πει κανείς κάτι σίγουρο για ένα υποθετικό σύνθετο σύστημα, αλλά το πιο σταθερό λογισμικό Linux φαίνεται να είναι σε θέση να χειριστεί τα συντρίμμια αρκετά ωραία.

    Η Stu προτείνει τη διάσπαση του λειτουργικού συστήματος και των δεδομένων καθώς και την προσθήκη εφεδρικής μπαταρίας:

    Για να ελαχιστοποιήσετε την πιθανότητα διαφθοράς του λειτουργικού συστήματος, ίσως είναι καλύτερο να έχετε ξεχωριστά διαμερίσματα "συστήματος" και "δεδομένων" στην κάρτα SD. Με αυτόν τον τρόπο μπορείτε να προσαρτήσετε το διαμέρισμα "συστήματος" μόνο για ανάγνωση και να χρησιμοποιήσετε ένα υψηλής ανθεκτικότητας FS στο διαμέρισμα "δεδομένων".

    Επιπλέον, οι περισσότεροι από αυτούς τους πίνακες έχουν πολύ χαμηλές απαιτήσεις ισχύος, οπότε είναι δυνατή η δημιουργία αντιγράφων ασφαλείας μπαταρίας. Ο πίνακας "LiPo αναβάτης" για το Raspberry Pi μπορεί να χρησιμοποιηθεί ως βασικό UPS για την παροχή καθαρού τερματισμού της απώλειας ισχύος.

    Τέλος, η Jenny D επεκτείνεται στην πρόταση συστήματος αρχειοθέτησης αρχειοθέτησης:

    Μη αναμενόμενες διακοπές ρεύματος μπορεί να προκαλέσουν καταστροφή δεδομένων συστήματος αρχείων - π.χ. αν μια διαδικασία έχει αρχίσει να γράφει σε ένα αρχείο, αλλά δεν έχει ακόμη ολοκληρωθεί η εγγραφή του, το αρχείο μπορεί να καταλήξει μόνο στο μισό. Τώρα φανταστείτε εάν η διακοπή ρεύματος συμβαίνει όταν βρίσκεστε στο ήμισυ μέσα από την αναβάθμιση του πυρήνα ...

    Όπως έγραψε το l0b0, η χρήση ενός συστήματος αρχειοθέτησης αρχείων θα βοηθήσει, αφού θα είναι σε θέση να παρακολουθεί τι έχει πραγματικά γίνει. Εκτός από τις πληροφορίες της wikipedia που συνδέονται με το l0b0, μπορεί να σας ενδιαφέρει το Do Fileing Systems Files Guarantee Against Corruption Μετά από μια αποτυχία εξουσίας επίσης.

    Εσείς, ως προγραμματιστής, πρέπει προφανώς να εξετάσετε προσεκτικά πώς να χειριστείτε τη γραφή σε αρχεία έτσι ώστε να γίνει μια ατομική διαδικασία (δηλ. Είτε έχει ολοκληρωθεί είτε δεν έχει γίνει καθόλου, αλλά ποτέ δεν έχει γίνει το μισό). Είναι ένα πολύ σύνθετο ζήτημα.


    Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.