Όλα για την υγεία της κάρτας SD / microSD στο Raspberry Pi

Η κάρτα SD είναι - δίπλα στην τροφοδοσία ρεύματος - ένα κρίσιμο πρόσθετο εξάρτημα του Raspberry Pi. Η παρακολούθηση της υγείας της είναι πολύ σημαντική για να διασφαλιστεί η ομαλή λειτουργία του λειτουργικού συστήματος του Raspberry Pi και η καλή εμπειρία χρήσης. Αυτό το άρθρο θα σας δείξει διάφορους τρόπους για να ελέγξετε και να παρακολουθήσετε την υγεία της κάρτας microSD.

Αρχικά, θα δώσω μια λεπτομερή επισκόπηση του τρόπου λειτουργίας των καρτών μνήμης, ώστε να κατανοήσετε τις δυνατότητες και τους περιορισμούς του ελέγχου της κατάστασης της κάρτας SD. Στη συνέχεια, θα εξηγήσω πώς μπορείτε να προστατεύσετε την κάρτα microSD μειώνοντας τα συνήθη προβλήματα που αντιμετωπίζουν οι χρήστες του Raspberry Pi. Θα αναφερθούμε επίσης στις καλύτερες μάρκες καρτών microSD για Raspberry Pi που προτείνουμε. Αν θέλετε, μπορείτε επίσης να μεταβείτε πιο κάτω, για να πάρετε μόνο τις εντολές Linux για να ελέγξετε την τρέχουσα κατάσταση της κάρτας microSD.

Βασικά στοιχεία: Μέσα στην κάρτα microSD

Εσωτερική κάρτα microSD
Εικόνα: Εικόνα του εσωτερικού μιας κάρτας SD. Η κάρτα microSD έχει παρόμοια δομή. Πηγή εικόνας: CC-BY-SA Korpsvart, Wikimedia Commons

Η κάρτα microSD περιέχει ένα τσιπ μνήμης flash (στα αριστερά της εικόνας) και έναν μικροελεγκτή (στα δεξιά της εικόνας, συνήθως βασισμένο σε ARM).

Flash

Η μνήμη flash αποθηκεύει πληροφορίες με "παγίδευση" ηλεκτρονίων, τα οποία "εγχέονται" με τη χρήση υψηλής τάσης μέσω ενός μη αγωγού σε ένα λεγόμενο κυμαινόμενη πύλη(**). Τα ηλεκτρόνια αποτελούν έτσι μέρος ενός τρανζίστορ που μπορεί να επιτρέπει ή να μην επιτρέπει τη ροή συνδεδεμένου ρεύματος, ανάλογα με το φορτίο της πλωτής πύλης. Θεωρητικά, δεν μπορούν να διαρρεύσουν, επειδή η πλωτή πύλη είναι ηλεκτρικά απομονωμένη. Αυτό σημαίνει ότι οι πληροφορίες διατηρούνται ακόμη και μετά τη διακοπή της παροχής ρεύματος.

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

Για τον προγραμματισμό της πλωτής πύλης χρησιμοποιούνται σημαντικά υψηλότερες ηλεκτρικές τάσεις (π.χ. 10 V) από ό,τι για την κανονική λειτουργία ανάγνωσης (π.χ. 3,3 V). Για το σκοπό αυτό χρησιμοποιείται επιπλέον η πύλη ελέγχου (V1/V2/V3).

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

Τα στοιχεία NAND flash που χρησιμοποιούνται στις κάρτες microSD ομαδοποιούν τα μεμονωμένα τρανζίστορ μνήμης σε σελίδες και αρκετές από τις σελίδες σε μπλοκ. Μια σελίδα έχει μεταξύ 512 και 8192 bytes, ένα μπλοκ μπορεί να περιέχει έως και 256 σελίδες (επομένως συνολικά 2048 kB με μέγεθος σελίδας 8kB).

Η εγγραφή (για ένα λογικό "1") μπορεί να γίνει ανά bit ή τουλάχιστον ανά byte/λέξη. Η διαγραφή (για ένα λογικό "0") μπορεί να γίνει μόνο κατά μπλοκ. Οι πληροφορίες που δεν έχουν αλλάξει πρέπει να προγραμματιστούν ξανά.

Οι μνήμες flash έχουν περιορισμένη διάρκεια ζωής λόγω του προγραμματισμού και της διαγραφής, η οποία δίνεται σε κύκλους διαγραφής

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

Παρεμπιπτόντως: Κύτταρα μνήμης πολλαπλών επιπέδων

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

Από τη μία πλευρά, αυτό καθιστά δυνατή τη σημαντική αύξηση της πυκνότητας των κυψελών μνήμης, αλλά από την άλλη πλευρά, η ανάγνωση είναι πιο αργή και οι κυψέλες μνήμης αντιδρούν πολύ πιο ευαίσθητα με σφάλματα bit στις απώλειες φορτίου. Με τα κύτταρα ενός επιπέδου είναι δυνατοί 100.000 έως 1.000.000 κύκλοι εγγραφής-διαγραφής, ενώ με τα TLC (κύτταρα τριπλού επιπέδου με τρία bit ανά κύτταρο μνήμης) περίπου 1000 κύκλοι εγγραφής-διαγραφής.

Αυτός είναι ο λόγος που οι βιομηχανικές κάρτες SD έχουν συνήθως μικρότερη πυκνότητα μνήμης και χρησιμοποιούν SLC (single level cells), για καλύτερη ακεραιότητα δεδομένων..

Ο ελεγκτής

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

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

Αυτή η διαφοροποίηση της φυσικής κατανομής είναι επίσης ο λόγος που ο έλεγχος εγγραφής της κάρτας SD (γράφοντας και διαβάζοντας με εργαλεία bad block tools, κλπ.) δεν θα εντοπίσει τα πραγματικά bad blocks και δεν θα σας επιτρέψει να τα αποφύγετε σε επίπεδο λειτουργικού συστήματος / συστήματος αρχείων! Μόνο ο ελεγκτής μνήμης flash στο εσωτερικό της κάρτας microSD γνωρίζει σε ποιο μπλοκ γράφεται / διαβάζεται κάθε στιγμή, και όπως συζητήθηκε αυτό μπορεί να αλλάξει με την πάροδο του χρόνου.

Τα ελαττωματικά μπλοκ (bad blocks) είναι ήδη παρόντα στην ολοκαίνουργια μνήμη flash. Αυτά τα ελαττωματικά μπλοκ επισημαίνονται σε μια ειδική περιοχή της μνήμης flash.

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

Η κάρτα microSD διαθέτει συνήθως - ανάλογα με τον κατασκευαστή - περίπου 10% εφεδρική χωρητικότητα για την αντικατάσταση των κακών μπλοκ με καλά "εφεδρικά μπλοκ".

Μικρά βρώμικα μυστικά: προβλήματα μνήμης Flash

Η διαγραφή γίνεται μόνο με τη φορά των δεικτών του μπλοκ

Τα δεδομένα μπορούν να διαγραφούν μόνο μπλοκ προς μπλοκ. Η διαγραφή καταπονεί τα κύτταρα μνήμης και μειώνει τη διάρκεια ζωής τους - δημιουργούνται νέα κακά μπλοκ.

Ελαττωματικά μπλοκ από το εργοστάσιο

Οι μνήμες flash αποστέλλονται ήδη με ελαττωματικά μπλοκ. Κατά τη διάρκεια της λειτουργίας, προστίθενται και άλλα ελαττωματικά μπλοκ (bad blocks). Συνεπώς, ο ελεγκτής προσπαθεί να εγγράφει/διαγράφει μπλοκ όσο το δυνατόν πιο ομοιόμορφα κατανεμημένα μέσω της εξισορρόπησης φθοράς.

MLC και TLC ιδιαίτερα ευαίσθητες

Οι κυψέλες μνήμης πολλαπλών επιπέδων (MLC) μειώνουν τον αριθμό των κύκλων διαγραφής και συνεπώς τη μακροπρόθεσμη αξιοπιστία.

Διαβάστε Ενοχλήστε

Ένα φαινόμενο που δεν έχω αναφέρει ακόμη, αλλά είναι ιδιαίτερα ύπουλο, είναι Διαβάστε Ενοχλήστε. Ακόμα και όταν διαβάζει μόνο από την κάρτα, μπορεί -μόνο με την ανάγνωση- να προκαλέσει την αλλαγή του προγραμματισμού των γειτονικών κελιών μνήμης στο ίδιο μπλοκ. Η πιθανότητα να συμβεί αυτό αυξάνεται απότομα μετά από μερικές 100.000 αναγνώσεις.

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

Όλα αυτά είναι πράγματα που ένας ελεγκτής πρέπει να αντισταθμίσει για να μας προσποιηθεί ότι είναι μια "τέλεια κάρτα μνήμης" εξωτερικά, ενώ στο εσωτερικό της κάθε άλλο παρά τέλεια φαίνεται!

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

Κατασκευαστής & επιλογή μιας καλής κάρτας

Τόσο ο μικροελεγκτής και η συσκευή flash όσο και η τελική κάρτα microSD μπορεί να προέρχονται από διαφορετικούς κατασκευαστές - η κάρτα SD της Panasonic στη φωτογραφία του παραδείγματος έχει flash της Samsung και ο ελεγκτής κατασκευάστηκε στην Ιαπωνία.

Οι συσκευές NAND flash παράγονται από τέσσερις κατασκευαστές:

  • Samsung <- ηγέτης της αγοράς
  • Toshiba
  • IM Flash Technologies (κοινοπραξία Micron Technology & Intel)
  • Hynix σε συνεργασία με την Numonyx

Η Toshiba και η Samsung παράγουν την πλειονότητα όλων των τσιπ.

SanDisk

Συνιστάται TL;DR

Η SanDisk και η Toshiba έχουν κοινοπραξία για την κατασκευή flash. Ωστόσο, το 2009, η SanDisk μεταβίβασε τα δικαιώματα των εργοστασίων παραγωγής στην Toshiba για να γίνει κατασκευαστής μνήμης flash χωρίς εργοστάσιο. Η ανάπτυξη της μνήμης εξακολουθεί να γίνεται από κοινού. Η SanDisk και η Toshiba, μαζί με την Matshushita, είναι οι ιδρυτές του προτύπου SD, το οποίο εισήχθη το 1999. Το πρότυπο microSD δημιουργήθηκε επίσης από τη SanDisk.

Βασιζόμαστε στη μάρκα SanDisk εδώ και πολύ καιρό και είχαμε πολύ καλές εμπειρίες μαζί της μέχρι τώρα.

Samsung

Συνιστάται TL;DR

Συχνά συνιστώνται επίσης κάρτες μνήμης Samsung. Ως ηγέτης της αγοράς στον τομέα του NAND flash, η Samsung μπορεί να συνδυάσει όλα τα συστατικά της κάρτας SD τέλεια μεταξύ τους και διαθέτει όλες τις απαραίτητες πληροφορίες για ένα αξιόπιστο προϊόν.

Kingston

TL;DR ΔΕΝ συνιστώμενη

Είχαμε μια κακή εμπειρία με την αξιοπιστία των καρτών Kingston 128 GB σε ένα κρίσιμο έργο. Η Kingston δεν διαθέτει δικά της εργοστάσια και αγοράζει πλεονάζουσα χωρητικότητα από άλλους κατασκευαστές flash. Ως αποτέλεσμα, δεν μπορεί να εγγυηθεί σταθερή απόδοση.

Τα ακόλουθα άρθρο του Bunny Huang είναι επίσης ενδιαφέρουσα σε αυτό το πλαίσιο.

Toshiba

Η Toshiba, ως #2 στην παγκόσμια αγορά DRAM, πωλεί επίσης τα δικά της προϊόντα καρτών μνήμης. Η SanDisk και η Toshiba, μαζί με την Matshushita, είναι οι θεμελιωτές του προτύπου SD, το οποίο εισήχθη το 1999. Δεν έχουμε καμία εμπειρία με τις κάρτες της Toshiba μέχρι στιγμής.

Transcend / Silicon Power

Έχουμε επίσης χρησιμοποιήσει κάρτες Transcend και Silicon Power, ειδικά στην κατηγορία χαμηλού κόστους. Οι κάρτες είναι βασικά καλές, αλλά έχουμε δει υψηλότερες επιστροφές/ελαττώματα με την Transcend από ό,τι με τη SanDisk. Για κρίσιμα έργα, θα συνιστούσα επομένως μάλλον την SanDisk / Samsung.

Επιλογή καλής κάρτας μνήμης

Για να επιλέξετε μια καλή κάρτα μνήμης, το πρώτο πράγμα που πρέπει να κάνετε είναι να επιλέξετε τον κατασκευαστή. Συνιστούμε Samsung ή SanDisk, και ενδεχομένως η Toshiba, για τη λίστα των υποψήφιων.

Στη συνέχεια, θα πρέπει να εξεταστεί η κατηγορία μνήμης. Αυτή η κλάση υποδεικνύει την ταχύτερη ταχύτητα εγγραφής ανά μπλοκ. Δεν είναι η ταχύτητα εγγραφής για διάσπαρτες εγγραφές τυχαίας προσπέλασης, η οποία έχει μεγαλύτερη σημασία στις πραγματικές εφαρμογές.

Μια υψηλότερη κατηγορία είναι πιο ακριβή, αλλά συνιστάται λόγω της σημαντικής αύξησης των επιδόσεων. Συνήθως αποστέλλουμε κάρτες κατηγορίας 10.

Στο αυτή η επισκόπηση στο eLinux.org μια κατάλληλη κάρτα μνήμης μπορεί στη συνέχεια να ελεγχθεί ως προς τη συμβατότητά της με το Raspberry Pi. Σημαντική σημείωση: το υλικολογισμικό του Raspberry Pi έχει τροποποιηθεί αρκετές φορές για καλύτερη συμβατότητα με τις κάρτες μνήμης και για την αποφυγή καταστροφής δεδομένων.

Θα πρέπει να παραγγείλετε από αξιόπιστες πηγές - για παράδειγμα, παίρνουμε τις κάρτες SanDisk microSD απευθείας από την Raspberry Pi Trading και από αξιόπιστους, μεγάλους Γερμανούς διανομείς. Στο Amazon, φροντίστε να παραγγείλετε απευθείας από το Amazon και όχι από έναν έμπορο λιανικής πώλησης στην αγορά.

Ορισμένες πληροφορίες (cid, csd, ημερομηνία, manfid, oemid, serial) της κάρτας microSD μπορεί να διαβαστεί με το Linux για να ελέγξετε ότι έχετε λάβει τον σωστό κατασκευαστή. Παραδείγματα με μια κάρτα Transcend:

cd /sys/class/mmc_host/mmc?/mmc?:*
echo "man:$(cat manfid) oem:$(cat oemid) name:$(cat name) hwrev:$(cat hwrev) fwrev:$(cat fwrev)"
 man:0x000074 oem:0x4a60 name:USD hwrev:0x1 fwrev:0x0
echo "serial:$(cat serial) mdt:$(cat date)"
serial:0x401e39f2 mdt:03/2017

Το αναγνωριστικό κατασκευαστή (manfid) ανατίθεται από SD-3C LLC, καθώς και το αναγνωριστικό cOem/εφαρμογής (oemid). Το oemid προσδιορίζει τον ΚΑΕ της κάρτας ή/και το περιεχόμενο της κάρτας.

Το όνομα του προϊόντος (όνομα) έχει μήκος 5 χαρακτήρων (ASCII). hwrev είναι η αναθεώρηση του υλικού, και fwrev την αναθεώρηση του υλικολογισμικού. Μαζί αποτελούν την αναθεώρηση προϊόντος (hwrev.fwrev).

Το σειριακή είναι ο σειριακός αριθμός της κάρτας microSD, είναι ένα πεδίο 32bit που πρέπει να διαβαστεί ως ακέραιος αριθμός χωρίς πρόσημο.

Το mdt (Ημερομηνία κατασκευής) υποδεικνύει πότε κατασκευάστηκε η κάρτα - έτος και μήνας.

Οι τιμές μπορούν να συγκριθούν με τις τιμές σε ιστότοπους για τον εντοπισμό απάτης από πλαστές κάρτες microSD. Συνιστώ να διαβάσετε Το άρθρο στο blog του Bunny (ένα) και αυτό το άρθρο (δύο).

Σταθερό man/oem συνδυασμοί ενός εμπορικού σήματος υποδηλώνουν μια καλά ελεγχόμενη και συνεπή αλυσίδα εφοδιασμού. Για παράδειγμα, η SanDisk έχει τον ακόλουθο συνδυασμό για όλες τις καταχωρήσεις στο eLinux.org Wiki: man:0x000003 oem:0x5344. Άλλες μάρκες, όπως η Transcend, διαφοροποιούν τους προμηθευτές τους, οπότε η σταθερή ποιότητα δεν μπορεί πλέον να διασφαλιστεί.

Αποφυγή αλλοίωσης δεδομένων κατά τη λειτουργία

Η κάρτα microSD είναι ο "σκληρός δίσκος" του Raspberry Pi. Με μια κανονική διαμόρφωση του Linux, αντιμετωπίζεται ακριβώς με τον ίδιο τρόπο που θα αντιμετωπιζόταν ένας σκληρός δίσκος - πραγματοποιούνται προσπελάσεις τόσο ανάγνωσης όσο και εγγραφής. Το Linux καταγράφει πληροφορίες σε πολλά αρχεία καταγραφής και, μεταξύ άλλων, ενημερώνει τους χρόνους πρόσβασης στα αρχεία. Συνεπώς, τα δεδομένα αλλάζουν και αντικαθίστανται συχνά. Αυτό είναι κάτι για το οποίο οι κάρτες microSD δεν σχεδιάστηκαν εξαρχής.

Συμβουλή #1: Κλείστε το Raspberry Pi σωστά και χρησιμοποιήστε ένα καλό τροφοδοτικό

Ούτε έναν υπολογιστή με Windows θα αποσυνδέατε από την πρίζα. Με τους υπολογιστές Linux, και ειδικά με τα Raspberry Pi που υποστηρίζονται από κάρτες microSD, είναι θέμα χρόνου... πριν από την καταστροφή δεδομένων κατά τη διάρκεια διακοπών ρεύματος.

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

Όπως αναφέρθηκε προηγουμένως, ο ελεγκτής microSD μετατοπίζει ενεργά τα δεδομένα κατά τη διάρκεια της λειτουργίας για την εξισορρόπηση της φθοράς και την αποφυγή διαταραχών στην ανάγνωση. Αυτό συμβαίνει εν αγνοία του συστήματος Linux ("διαφανές"). Και ανάλογα με τον κατασκευαστή, περισσότερο ή λιγότερο συντηρητικά. Επίσης, εδώ - ειδικά κατά τη διάρκεια των λειτουργιών εγγραφής! - μπορεί να προκύψουν ζημιές και απώλειες δεδομένων.

Επομένως, θα πρέπει να βεβαιωθείτε ότι, αφού κλείσετε το Pi σας, η λυχνία ACT-LED του Raspberry Pi σταματά να αναβοσβήνει και μόνο τότε τραβήξτε το ρεύμα.

Ένα κακό τροφοδοτικό μπορεί επίσης να οδηγήσει σε προβλήματα λόγω διακοπές ρεύματος (υπόταση). Εάν έχετε αμφιβολίες, χρησιμοποιήστε το τροφοδοτικό που συνιστάται/προμηθεύεται από την Raspberry Pi Trading.

Συμβουλή #2 Σύστημα μόνο για ανάγνωση με επικαλύψεις

Ένα σύστημα μόνο για ανάγνωση δεν προστατεύει την κάρτα SD από την ενόχληση της ανάγνωσης και, συνεπώς, από τη γήρανση λόγω των απαραίτητων κύκλων διαγραφής. Ωστόσο, αυτό συμβαίνει πολύ πιο αργά από ό,τι όταν γίνεται ενεργή εγγραφή.

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

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

Ακολουθούν μερικές πληροφορίες από το πρόγραμμα Debian στο οποίο βασίζεται το Raspbian: https://wiki.debian.org/ReadonlyRoot.

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

Χρησιμοποιούμε αυτή την τεχνική με το προϊόν μας Anonymebox, όπου πρέπει να υποτεθεί ότι οι χρήστες απλώς το αποσυνδέουν από την πρίζα.

Ψάχνετε για έναν συνεργάτη που θα υλοποιήσει μια σταθερή λύση μόνο για ανάγνωση για το ενσωματωμένο έργο σας Raspberry Pi; Εμείς (ως pi3g e.K.) προσφέρουμε συμβουλευτικές & αναπτυξιακές υπηρεσίες, για υλικό και λογισμικό.

Συμβουλή #3 Μείωση των λειτουργιών εγγραφής

Ειδικά με τους παλαιότερους πυρήνες, το Linux ενημερώνει το χρόνο πρόσβασης για κάθε πρόσβαση σε αρχείο, σύμφωνα με το πρότυπο POSIX. Αυτό σημαίνει ότι κάθε λειτουργία ανάγνωσης οδηγεί αυτόματα σε λειτουργία εγγραφής. Υπάρχει η δυνατότητα να ορίσετε ρητά noatime στο /etc/fstab αν δεν έχει ήδη οριστεί (το Raspbian φαίνεται να το ορίζει αυτόματα).

Περισσότερες πληροφορίες σχετικά με relatime και noatime

Απενεργοποίηση της καταγραφής συστήματος με χρήση μάσκας:

systemctl mask systemd-journald.service
Δημιουργήθηκε συμβολικός σύνδεσμος από το αρχείο /etc/systemd/system/systemd-journald.service στο αρχείο /dev/null.
sudo systemctl mask rsyslog.service
Δημιουργήθηκε συμβολικός σύνδεσμος από το αρχείο /etc/systemd/system/rsyslog.service στο αρχείο /dev/null.

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

Ανταλλαγή αρχείου:

Εάν δεν υπάρχει αρκετή μνήμη RAM, το Linux μετακινεί μεμονωμένες περιοχές RAM σε ένα αρχείο SWAP. (Σκεφτείτε να χρησιμοποιήσετε ένα Raspberry Pi 4 με αρκετή μνήμη RAM, για παράδειγμα το Pi 4 / 4 GB ή το Pi 4/8 GB για τη δική σας περίπτωση χρήσης.) Με την ακόλουθη εντολή μπορείτε να ελέγξετε την κατάσταση του αρχείου SWAP:

sudo systemctl status dphys-swapfile
● dphys-swapfile.service - LSB: Αυτόματη δημιουργία και χρήση αρχείου swap
Φορτωμένο: φορτωμένο (/etc/init.d/dphys-swapfile)
Ενεργό: ενεργό (εξήλθε) από το Sat 2017-07-01 19:11:57 UTC; 8min ago
 498 ExecStart=/etc/init.d/dphys-swapfile start (code=exited, status=0/SUCCESS)

Η ακόλουθη εντολή μπορεί να χρησιμοποιηθεί για την απενεργοποίηση του SWAP:

sudo systemctl disable dphys-swapfile

Συμπέρασμα

οι κάρτες microSD σε συνεχή χρήση θέτουν σε σκληρή δοκιμασία τη μακροπρόθεσμη αξιοπιστία των συστημάτων που βασίζονται στο Raspberry Pi.

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

Εάν χρειάζεστε επαγγελματική υποστήριξη για το έργο/προϊόν σας που βασίζεται στο Raspberry Pi, παρακαλούμε επικοινωνήστε μαζί μας για μια δωρεάν αρχική διαβούλευση..

Σημειώσεις

(*) Σημείωση: Τα Raspberry Pi 3, 3B+ και 4 μπορούν να εκκινήσουν από μέσο USB ή μέσω δικτύου (Ethernet), χωρίς κάρτα microSD.

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

Οι παραπάνω εξηγήσεις σχετικά με τη δομή της μνήμης flash ισχύουν και για τα στικάκια USB, καθώς η μνήμη flash είναι επίσης εγκατεστημένη σε αυτά.

(**) Σημείωση: μια ολοένα και περισσότερο χρησιμοποιούμενη εναλλακτική λύση για τις κυμαινόμενες πύλες είναι οι μνήμες flash με παγίδευση φορτίου, η λειτουργική αρχή παραμένει η ίδια. Το κύτταρο flash με παγίδευση φορτίου επιτρέπει υψηλότερες πυκνότητες μνήμης.

1 Σχόλιο

  1. Pete στις Οκτώβριος 13, 2021 στις 8:27 μμ

    Γεια σας,
    υπάρχει τρόπος να ελέγξετε τον ελεγκτή στην κάρτα SD πόσα κακά plocks υπάρχουν;
    Με τον περιοδικό έλεγχο θα ήθελα να δημιουργήσω ένα διάγραμμα τάσης.
    Σας ευχαριστώ για το έργο.
    Χαιρετισμούς,
    Peter

Αφήστε ένα σχόλιο