Λειτουργική εμπειρία CEPH

Όταν υπάρχουν περισσότερα δεδομένα από όσα χωρούν σε έναν δίσκο, ήρθε η ώρα να σκεφτείτε το RAID. Ως παιδί, άκουγα συχνά από τους μεγαλύτερους μου: «Μια μέρα το RAID θα γίνει παρελθόν, η αποθήκευση αντικειμένων θα γεμίσει τον κόσμο και δεν ξέρεις καν τι είναι το CEPH», οπότε το πρώτο πράγμα στην ανεξάρτητη ζωή μου ήταν να δημιουργήσω το δικό μου cluster. Ο σκοπός του πειράματος ήταν να εξοικειωθεί με την εσωτερική δομή του ceph και να κατανοήσει το εύρος της εφαρμογής του. Πόσο δικαιολογημένη είναι η εφαρμογή του ceph σε μεσαίες και μικρές επιχειρήσεις; Μετά από αρκετά χρόνια λειτουργίας και μερικές μη αναστρέψιμες απώλειες δεδομένων, προέκυψε η κατανόηση των περιπλοκών ότι δεν είναι όλα τόσο απλά. Οι ιδιαιτερότητες του CEPH θέτουν εμπόδια στην ευρεία υιοθέτησή του και εξαιτίας αυτών, τα πειράματα έχουν φτάσει σε αδιέξοδο. Παρακάτω περιγράφονται όλα τα βήματα που έγιναν, το αποτέλεσμα που προέκυψε και τα συμπεράσματα που εξήχθησαν. Εάν γνωστοί άνθρωποι μοιραστούν την εμπειρία τους και εξηγήσουν κάποια σημεία, θα είμαι ευγνώμων.

Σημείωση: Οι σχολιαστές έχουν εντοπίσει σοβαρά σφάλματα σε ορισμένες από τις υποθέσεις που απαιτούν αναθεώρηση ολόκληρου του άρθρου.

Στρατηγική CEPH

Το σύμπλεγμα CEPH συνδυάζει έναν αυθαίρετο αριθμό K δίσκων αυθαίρετου μεγέθους και αποθηκεύει δεδομένα σε αυτούς, αντιγράφοντας κάθε κομμάτι (4 MB από προεπιλογή) έναν δεδομένο αριθμό N φορές.

Ας εξετάσουμε την απλούστερη περίπτωση με δύο ίδιους δίσκους. Από αυτά μπορείτε είτε να συναρμολογήσετε το RAID 1 είτε ένα σύμπλεγμα με N=2 - το αποτέλεσμα θα είναι το ίδιο. Εάν υπάρχουν τρεις δίσκοι και είναι διαφορετικών μεγεθών, τότε είναι εύκολο να συναρμολογήσετε ένα σύμπλεγμα με N=2: μερικά από τα δεδομένα θα βρίσκονται στους δίσκους 1 και 2, μερικά θα βρίσκονται στους δίσκους 1 και 3 και μερικά θα είναι στις 2 και 3, ενώ το RAID όχι (μπορείτε να συναρμολογήσετε ένα τέτοιο RAID, αλλά θα ήταν μια διαστροφή). Εάν υπάρχουν ακόμη περισσότεροι δίσκοι, τότε είναι δυνατή η δημιουργία RAID 5. Το CEPH έχει ένα ανάλογο - erasure_code, το οποίο έρχεται σε αντίθεση με τις πρώτες έννοιες των προγραμματιστών και επομένως δεν λαμβάνεται υπόψη. Το RAID 5 προϋποθέτει ότι υπάρχει ένας μικρός αριθμός μονάδων δίσκου, οι οποίοι είναι όλοι σε καλή κατάσταση. Εάν ένα αποτύχει, τα άλλα πρέπει να αντέξουν μέχρι να αντικατασταθεί ο δίσκος και να αποκατασταθούν τα δεδομένα σε αυτόν. Το CEPH, με N>=3, ενθαρρύνει τη χρήση παλιών δίσκων, ιδίως εάν διατηρείτε πολλούς καλούς δίσκους για να αποθηκεύσετε ένα αντίγραφο δεδομένων και αποθηκεύετε τα υπόλοιπα δύο ή τρία αντίγραφα σε μεγάλο αριθμό παλιών δίσκων, τότε οι πληροφορίες θα είναι ασφαλές, αφού προς το παρόν υπάρχουν νέοι δίσκοι - δεν υπάρχουν προβλήματα, και αν σπάσει ένας από αυτούς, τότε η ταυτόχρονη αποτυχία τριών δίσκων με διάρκεια ζωής μεγαλύτερη από πέντε χρόνια, κατά προτίμηση από διαφορετικούς διακομιστές, είναι εξαιρετικά απίθανη Εκδήλωση.

Υπάρχει μια λεπτότητα στη διανομή των αντιγράφων. Από προεπιλογή, θεωρείται ότι τα δεδομένα χωρίζονται σε περισσότερες (~100 ανά δίσκο) ομάδες διανομής PG, καθεμία από τις οποίες είναι διπλό σε ορισμένους δίσκους. Ας πούμε K=6, N=2, τότε αν αποτύχουν οποιοιδήποτε δύο δίσκοι, τα δεδομένα είναι εγγυημένα ότι θα χαθούν, αφού σύμφωνα με τη θεωρία πιθανοτήτων, θα υπάρχει τουλάχιστον ένα PG που θα βρίσκεται σε αυτούς τους δύο δίσκους. Και η απώλεια μιας ομάδας καθιστά μη διαθέσιμα όλα τα δεδομένα στη δεξαμενή. Εάν οι δίσκοι χωρίζονται σε τρία ζεύγη και τα δεδομένα επιτρέπεται να αποθηκεύονται μόνο σε δίσκους εντός ενός ζεύγους, τότε μια τέτοια διανομή είναι επίσης ανθεκτική στην αστοχία οποιουδήποτε δίσκου, αλλά εάν αποτύχουν δύο δίσκοι, η πιθανότητα απώλειας δεδομένων δεν είναι 100%, αλλά μόνο 3/15, και ακόμη και σε περίπτωση αποτυχίας τρεις δίσκοι - μόνο 12/20. Ως εκ τούτου, η εντροπία στη διανομή δεδομένων δεν συμβάλλει στην ανοχή σφαλμάτων. Σημειώστε επίσης ότι για έναν διακομιστή αρχείων, η δωρεάν μνήμη RAM αυξάνει σημαντικά την ταχύτητα απόκρισης. Όσο περισσότερη μνήμη σε κάθε κόμβο και όσο περισσότερη μνήμη σε όλους τους κόμβους, τόσο πιο γρήγορο θα είναι. Αυτό είναι αναμφίβολα ένα πλεονέκτημα ενός συμπλέγματος έναντι ενός μόνο διακομιστή και, ακόμη περισσότερο, ενός NAS υλικού, όπου είναι ενσωματωμένη πολύ μικρή ποσότητα μνήμης.

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

Υλοποίηση συμπλέγματος

Για το πείραμα, ας πάρουμε έναν παροπλισμένο υπολογιστή Intel DQ57TM + Intel core i3 540 + 16 GB μνήμης RAM. Θα οργανώσουμε τέσσερις δίσκους 2 TB σε κάτι σαν RAID10, μετά από μια επιτυχημένη δοκιμή θα προσθέσουμε έναν δεύτερο κόμβο και τον ίδιο αριθμό δίσκων.

Εγκατάσταση Linux. Η διανομή απαιτεί τη δυνατότητα προσαρμογής και σταθερότητας. Το Debian και το Suse πληρούν τις απαιτήσεις. Η Suse έχει ένα πιο ευέλικτο πρόγραμμα εγκατάστασης που σας επιτρέπει να απενεργοποιήσετε οποιοδήποτε πακέτο. Δυστυχώς, δεν μπόρεσα να καταλάβω ποια θα μπορούσαν να πεταχτούν χωρίς να καταστραφεί το σύστημα. Εγκαταστήστε το Debian χρησιμοποιώντας debootstrap buster. Η επιλογή min-base εγκαθιστά ένα κατεστραμμένο σύστημα που δεν διαθέτει προγράμματα οδήγησης. Η διαφορά μεγέθους σε σχέση με την πλήρη έκδοση δεν είναι τόσο μεγάλη ώστε να ενοχλεί. Δεδομένου ότι η εργασία εκτελείται σε μια φυσική μηχανή, θέλω να τραβήξω στιγμιότυπα, όπως σε εικονικές μηχανές. Αυτή η επιλογή παρέχεται είτε από το LVM είτε από το btrfs (ή xfs ή zfs - η διαφορά δεν είναι μεγάλη). Τα στιγμιότυπα LVM δεν είναι δυνατό σημείο. Εγκαταστήστε το btrfs. Και ο bootloader είναι στο MBR. Δεν έχει νόημα να γεμίζετε έναν δίσκο 50 MB με ένα διαμέρισμα FAT όταν μπορείτε να τον σπρώξετε σε μια περιοχή πίνακα διαμερισμάτων 1 MB και να διαθέσετε όλο τον χώρο για το σύστημα. Πήρε 700 MB στο δίσκο. Δεν θυμάμαι πόσο έχει η βασική εγκατάσταση SUSE, νομίζω ότι είναι περίπου 1.1 ή 1.4 GB.

Εγκαταστήστε το CEPH. Αγνοούμε την έκδοση 12 στο αποθετήριο του debian και συνδέουμε απευθείας από τον ιστότοπο 15.2.3. Ακολουθούμε τις οδηγίες από την ενότητα «Εγκατάσταση CEPH με μη αυτόματο τρόπο» με τις ακόλουθες προειδοποιήσεις:

  • Πριν συνδέσετε το αποθετήριο, πρέπει να εγκαταστήσετε τα πιστοποιητικά gnupg wget ca
  • Μετά τη σύνδεση του αποθετηρίου, αλλά πριν από την εγκατάσταση του συμπλέγματος, η εγκατάσταση πακέτων παραλείπεται: apt -y --no-install-recommends install ceph-common ceph-mon ceph-osd ceph-mds ceph-mgr
  • Κατά την εγκατάσταση του CEPH, για άγνωστους λόγους, θα προσπαθήσει να εγκαταστήσει το lvm2. Κατ 'αρχήν, δεν είναι κρίμα, αλλά η εγκατάσταση αποτυγχάνει, επομένως ούτε το CEPH θα εγκαταστήσει.

    Αυτό το patch βοήθησε:

    cat << EOF >> /var/lib/dpkg/status
    Package: lvm2
    Status: install ok installed
    Priority: important
    Section: admin
    Installed-Size: 0
    Maintainer: Debian Adduser Developers <[email protected]>
    Architecture: all
    Multi-Arch: foreign
    Version: 113.118
    Description: No-install
    EOF
    

Επισκόπηση συμπλέγματος

ceph-osd - είναι υπεύθυνος για την αποθήκευση δεδομένων στο δίσκο. Για κάθε δίσκο, εκκινείται μια υπηρεσία δικτύου που δέχεται και εκτελεί αιτήματα για ανάγνωση ή εγγραφή σε αντικείμενα. Δύο κατατμήσεις δημιουργούνται στο δίσκο. Ένα από αυτά περιέχει πληροφορίες σχετικά με το σύμπλεγμα, τον αριθμό του δίσκου και τα κλειδιά του συμπλέγματος. Αυτές οι πληροφορίες 1 KB δημιουργούνται μία φορά κατά την προσθήκη ενός δίσκου και δεν έχουν παρατηρηθεί ποτέ ότι αλλάζουν. Το δεύτερο διαμέρισμα δεν έχει σύστημα αρχείων και αποθηκεύει δυαδικά δεδομένα CEPH. Η αυτόματη εγκατάσταση σε προηγούμενες εκδόσεις δημιούργησε ένα διαμέρισμα xfs 100MB για πληροφορίες υπηρεσίας. Μετέτρεψα το δίσκο σε MBR και διέθεσα μόνο 16 MB - η υπηρεσία δεν παραπονιέται. Νομίζω ότι το xfs θα μπορούσε να αντικατασταθεί με ext χωρίς κανένα πρόβλημα. Αυτό το διαμέρισμα είναι τοποθετημένο στο /var/lib/…, όπου η υπηρεσία διαβάζει πληροφορίες σχετικά με το OSD και βρίσκει επίσης μια αναφορά στη συσκευή μπλοκ όπου αποθηκεύονται τα δυαδικά δεδομένα. Θεωρητικά, μπορείτε να τοποθετήσετε αμέσως βοηθητικά αρχεία στο /var/lib/… και να εκχωρήσετε ολόκληρο τον δίσκο για δεδομένα. Κατά τη δημιουργία ενός OSD μέσω ceph-deploy, δημιουργείται αυτόματα ένας κανόνας για την προσάρτηση του διαμερίσματος στο /var/lib/… και στον χρήστη ceph εκχωρούνται επίσης δικαιώματα για την ανάγνωση της επιθυμητής συσκευής μπλοκ. Εάν κάνετε την εγκατάσταση με μη αυτόματο τρόπο, πρέπει να το κάνετε μόνοι σας· η τεκμηρίωση δεν το λέει αυτό. Συνιστάται επίσης να καθορίσετε την παράμετρο στόχο μνήμης osd, ώστε να υπάρχει αρκετή φυσική μνήμη.

ceph-mds. Σε χαμηλό επίπεδο, το CEPH είναι αποθήκευση αντικειμένων. Η δυνατότητα αποκλεισμού αποθήκευσης καταλήγει στην αποθήκευση κάθε μπλοκ 4 MB ως αντικείμενο. Η αποθήκευση αρχείων λειτουργεί με την ίδια αρχή. Δημιουργούνται δύο ομάδες συγκέντρωσης: το ένα για μεταδεδομένα και το άλλο για δεδομένα. Συνδυάζονται σε ένα σύστημα αρχείων. Αυτή τη στιγμή, δημιουργείται κάποιο είδος εγγραφής, οπότε αν διαγράψετε το σύστημα αρχείων, αλλά διατηρήσετε και τις δύο ομάδες, δεν θα μπορείτε να το επαναφέρετε. Υπάρχει μια διαδικασία εξαγωγής αρχείων ανά μπλοκ, δεν την έχω δοκιμάσει. Η υπηρεσία ceph-mds είναι υπεύθυνη για την πρόσβαση στο σύστημα αρχείων. Κάθε σύστημα αρχείων απαιτεί ξεχωριστή παρουσία της υπηρεσίας. Υπάρχει μια επιλογή "ευρετηρίου", η οποία σας επιτρέπει να δημιουργήσετε την ομοιότητα πολλών συστημάτων αρχείων σε ένα - επίσης δεν έχει δοκιμαστεί.

Ceph-mon - Αυτή η υπηρεσία αποθηκεύει έναν χάρτη του συμπλέγματος. Περιλαμβάνει πληροφορίες για όλα τα OSD, έναν αλγόριθμο για τη διανομή PG σε OSD και, κυρίως, πληροφορίες για όλα τα αντικείμενα (οι λεπτομέρειες αυτού του μηχανισμού δεν μου είναι ξεκάθαρες: υπάρχει ένας κατάλογος /var/lib/ceph/mon/…/ store.db, περιέχει ένα μεγάλο αρχείο είναι 26MB και σε ένα σύμπλεγμα 105K αντικειμένων, αποδεικνύεται ότι είναι λίγο πάνω από 256 byte ανά αντικείμενο - νομίζω ότι η οθόνη αποθηκεύει μια λίστα με όλα τα αντικείμενα και τα PG στα οποία βρίσκονται). Η ζημιά σε αυτόν τον κατάλογο έχει ως αποτέλεσμα την απώλεια όλων των δεδομένων στο σύμπλεγμα. Ως εκ τούτου, συνήχθη το συμπέρασμα ότι το CRUSH δείχνει πώς βρίσκονται τα PG στο OSD και πώς τα αντικείμενα βρίσκονται στα PG - αποθηκεύονται κεντρικά μέσα στη βάση δεδομένων, ανεξάρτητα από το πόσο οι προγραμματιστές αποφεύγουν αυτήν τη λέξη. Ως αποτέλεσμα, πρώτον, δεν μπορούμε να εγκαταστήσουμε το σύστημα σε μια μονάδα flash σε λειτουργία RO, καθώς η βάση δεδομένων καταγράφεται συνεχώς, απαιτείται πρόσθετος δίσκος για αυτά (μόλις περισσότερο από 1 GB), δεύτερον, είναι απαραίτητο να υπάρχει αντιγράψτε σε πραγματικό χρόνο αυτή τη βάση. Εάν υπάρχουν πολλές οθόνες, τότε η ανοχή σφαλμάτων εξασφαλίζεται αυτόματα, αλλά στην περίπτωσή μας υπάρχει μόνο μία οθόνη, το πολύ δύο. Υπάρχει μια θεωρητική διαδικασία για την επαναφορά μιας οθόνης με βάση τα δεδομένα OSD, κατέφυγα σε αυτήν τρεις φορές για διάφορους λόγους και τρεις φορές δεν υπήρχαν μηνύματα σφάλματος, καθώς και δεδομένα. Δυστυχώς, αυτός ο μηχανισμός δεν λειτουργεί. Είτε λειτουργούμε ένα μινιατούρο διαμέρισμα στο OSD και συναρμολογούμε ένα RAID για την αποθήκευση της βάσης δεδομένων, κάτι που σίγουρα θα έχει πολύ άσχημη επίδραση στην απόδοση, είτε διαθέτουμε τουλάχιστον δύο αξιόπιστα φυσικά μέσα, κατά προτίμηση USB, για να μην καταλαμβάνουμε θύρες.

rados-gw - εξάγει την αποθήκευση αντικειμένων μέσω του πρωτοκόλλου S3 και παρόμοια. Δημιουργεί πολλές πισίνες, δεν είναι σαφές γιατί. Δεν πειραματίστηκα πολύ.

ceph-mgr - Κατά την εγκατάσταση αυτής της υπηρεσίας, εκκινούνται πολλές ενότητες. Ένα από αυτά είναι η αυτόματη κλίμακα που δεν μπορεί να απενεργοποιηθεί. Προσπαθεί να διατηρήσει τη σωστή ποσότητα PG/OSD. Εάν θέλετε να ελέγξετε την αναλογία με μη αυτόματο τρόπο, μπορείτε να απενεργοποιήσετε την κλιμάκωση για κάθε ομάδα, αλλά στην περίπτωση αυτή η μονάδα διακόπτεται με διαίρεση με το 0 και η κατάσταση του συμπλέγματος γίνεται ERROR. Το module είναι γραμμένο σε Python και αν σχολιάσετε την απαραίτητη γραμμή σε αυτό, αυτό οδηγεί στην απενεργοποίησή του. Πολύ τεμπέλης για να θυμηθώ τις λεπτομέρειες.

Κατάλογος πηγών που χρησιμοποιήθηκαν:

Εγκατάσταση CEPH
Ανάκτηση από πλήρη αποτυχία οθόνης

Καταχωρίσεις σεναρίων:

Εγκατάσταση του συστήματος μέσω debootstrap

blkdev=sdb1
mkfs.btrfs -f /dev/$blkdev
mount /dev/$blkdev /mnt
cd /mnt
for i in {@,@var,@home}; do btrfs subvolume create $i; done
mkdir snapshot @/{var,home}
for i in {var,home}; do mount -o bind @${i} @/$i; done
debootstrap buster @ http://deb.debian.org/debian; echo $?
for i in {dev,proc,sys}; do mount -o bind /$i @/$i; done
cp /etc/bash.bashrc @/etc/

chroot /mnt/@ /bin/bash
echo rbd1 > /etc/hostname
passwd
uuid=`blkid | grep $blkdev | cut -d """ -f 2`
cat << EOF > /etc/fstab
UUID=$uuid / btrfs noatime,nodiratime,subvol=@ 0 1
UUID=$uuid /var btrfs noatime,nodiratime,subvol=@var 0 2
UUID=$uuid /home btrfs noatime,nodiratime,subvol=@home 0 2
EOF
cat << EOF >> /var/lib/dpkg/status
Package: lvm2
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install

Package: sudo
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
EOF

exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

apt -yq install --no-install-recommends linux-image-amd64 bash-completion ed btrfs-progs grub-pc iproute2 ssh  smartmontools ntfs-3g net-tools man
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

Δημιουργήστε ένα σύμπλεγμα

apt -yq install --no-install-recommends gnupg wget ca-certificates
echo 'deb https://download.ceph.com/debian-octopus/ buster main' >> /etc/apt/sources.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
apt update
apt -yq install --no-install-recommends ceph-common ceph-mon

echo 192.168.11.11 rbd1 >> /etc/hosts
uuid=`cat /proc/sys/kernel/random/uuid`
cat << EOF > /etc/ceph/ceph.conf
[global]
fsid = $uuid
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
mon allow pool delete = true
mon host = 192.168.11.11
mon initial members = rbd1
mon max pg per osd = 385
osd crush update on start = false
#osd memory target = 2147483648
osd memory target = 1610612736
osd scrub chunk min = 1
osd scrub chunk max = 2
osd scrub sleep = .2
osd pool default pg autoscale mode = off
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 1
osd pool default pgp num = 1
[mon]
mgr initial modules = dashboard
EOF

ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
cp ceph.client.admin.keyring /etc/ceph/
ceph-authtool --create-keyring bootstrap-osd.ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
cp bootstrap-osd.ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add rbd1 192.168.11.11 --fsid $uuid monmap
rm -R /var/lib/ceph/mon/ceph-rbd1/*
ceph-mon --mkfs -i rbd1 --monmap monmap --keyring ceph.mon.keyring
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-mon@rbd1
systemctl start ceph-mon@rbd1
ceph mon enable-msgr2
ceph status

# dashboard

apt -yq install --no-install-recommends ceph-mgr ceph-mgr-dashboard python3-distutils python3-yaml
mkdir /var/lib/ceph/mgr/ceph-rbd1
ceph auth get-or-create mgr.rbd1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-rbd1/keyring
systemctl enable ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_port 7000
ceph dashboard ac-user-create root 1111115 administrator
systemctl stop ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1

Προσθήκη OSD (μέρος)

apt install ceph-osd

osdnum=`ceph osd create`
mkdir -p /var/lib/ceph/osd/ceph-$osdnum
mkfs -t xfs /dev/sda1
mount -t xfs /dev/sda1 /var/lib/ceph/osd/ceph-$osdnum
cd /var/lib/ceph/osd/ceph-$osdnum
ceph auth get-or-create osd.0 mon 'profile osd' mgr 'profile osd' osd 'allow *' > /var/lib/ceph/osd/ceph-$osdnum/keyring
ln -s /dev/disk/by-partuuid/d8cc3da6-02  block
ceph-osd -i $osdnum --mkfs
#chown ceph:ceph /dev/sd?2
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-osd@$osdnum
systemctl start ceph-osd@$osdnum

Περίληψη

Το κύριο πλεονέκτημα μάρκετινγκ του CEPH είναι το CRUSH - ένας αλγόριθμος για τον υπολογισμό της θέσης των δεδομένων. Οι οθόνες διανέμουν αυτόν τον αλγόριθμο στους πελάτες, μετά τον οποίο οι πελάτες ζητούν απευθείας τον επιθυμητό κόμβο και το επιθυμητό OSD. Το CRUSH δεν εξασφαλίζει συγκεντρωτισμό. Είναι ένα μικρό αρχείο που μπορείτε ακόμη και να το εκτυπώσετε και να το κρεμάσετε στον τοίχο. Η πρακτική έχει δείξει ότι το CRUSH δεν είναι ένας εξαντλητικός χάρτης. Εάν καταστρέψετε και αναδημιουργήσετε τις οθόνες, διατηρώντας όλα τα OSD και CRUSH, τότε αυτό δεν αρκεί για να επαναφέρετε το σύμπλεγμα. Από αυτό συνάγεται το συμπέρασμα ότι κάθε οθόνη αποθηκεύει κάποια μεταδεδομένα για ολόκληρο το σύμπλεγμα. Η μικρή ποσότητα αυτών των μεταδεδομένων δεν επιβάλλει περιορισμούς στο μέγεθος του συμπλέγματος, αλλά απαιτεί τη διασφάλιση της ασφάλειάς τους, η οποία εξαλείφει την εξοικονόμηση δίσκου εγκαθιστώντας το σύστημα σε μονάδα flash και αποκλείει συμπλέγματα με λιγότερους από τρεις κόμβους. Η επιθετική πολιτική του προγραμματιστή σχετικά με τις προαιρετικές δυνατότητες. Μακριά από μινιμαλισμό. Η τεκμηρίωση είναι στο επίπεδο του "ευχαριστούμε για όσα έχουμε, αλλά είναι πολύ, πολύ πενιχρά". Παρέχεται η δυνατότητα αλληλεπίδρασης με υπηρεσίες σε χαμηλό επίπεδο, αλλά η τεκμηρίωση αγγίζει αυτό το θέμα υπερβολικά επιφανειακά, επομένως είναι πιο πιθανό ένα όχι παρά ένα ναι. Δεν υπάρχει πρακτικά καμία πιθανότητα ανάκτησης δεδομένων από μια κατάσταση έκτακτης ανάγκης.

Επιλογές για περαιτέρω δράση: εγκαταλείψτε το CEPH και χρησιμοποιήστε το κοινόχρηστο btrfs πολλαπλών δίσκων (ή xfs, zfs), μάθετε νέες πληροφορίες για το CEPH, οι οποίες θα σας επιτρέψουν να το λειτουργήσετε υπό τις καθορισμένες συνθήκες, προσπαθήστε να γράψετε το δικό σας χώρο αποθήκευσης ως προηγμένο εκπαίδευση.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο