Αλλαγές zoning Fibre Channel, ένα fabric τη φορά
Αλλαγές zoning σε Brocade ώστε ένα λάθος να μην πάρει ποτέ κάθε διαδρομή ταυτόχρονα: single initiator zones, κανόνες ονομασίας, σταδιακά enables, έλεγχοι.

Δύο fabrics Fibre Channel σας προστατεύουν από ένα νεκρό switch. Δεν σας προστατεύουν από μια απρόσεκτη αλλαγή zoning που εφαρμόζεται και στα δύο fabrics μέσα στο ίδιο λεπτό. Η πειθαρχία που κλείνει αυτό το κενό περιγράφεται απλά και παραλείπεται εύκολα: αλλάξτε ένα fabric, αποδείξτε το, και μόνο τότε αγγίξτε το άλλο.
Γιατί το zoning είναι η πιο επικίνδυνη εργασία ρουτίνας σε ένα SAN
Το zoning αποφασίζει ποιοι initiators (πόρτες HBA των hosts) μπορούν να μιλούν με ποιους targets (πόρτες συστοιχίας). Αλλάζει κάθε φορά που ένας server προστίθεται, αντικαθίσταται ή αποσύρεται, οπότε είναι δουλειά ρουτίνας, και η δουλειά ρουτίνας είναι εκεί που η προσοχή χαλαρώνει. Σε fabric Brocade η ενεργή διαμόρφωση zoning είναι ένα μοναδικό αντικείμενο. Όταν ενεργοποιείτε μια νέα έκδοσή της, ολόκληρο το fabric παίρνει τη νέα έκδοση μονομιάς. Ένα τυπογραφικό που ρίχνει ένα zone, ένα μέλος που επικολλήθηκε σε λάθος zone, ή μια διαμόρφωση που ενεργοποιήθηκε πριν ολοκληρωθεί μπορεί να αφαιρέσει ακαριαία την πρόσβαση ενός host παραγωγής στους δίσκους του σε εκείνο το fabric.
Σε ένα μοναδικό fabric, αυτό είναι διακοπή. Σε σωστά χτισμένο διπλό fabric, είναι απώλεια διαδρομής, με την προϋπόθεση ότι το άλλο fabric δεν άλλαξε με τον ίδιο τρόπο την ίδια στιγμή. Πολλοί χειριστές ετοιμάζουν ένα script και το τρέχουν στα δύο switches το ένα μετά το άλλο. Αυτό μετατρέπει δύο ανεξάρτητα fabrics σε ένα κοινό σημείο αποτυχίας: το άτομο που κρατά το script.
Σχεδιάστε τα zones ώστε τα λάθη να είναι ορατά
Single initiator zoning. Κάθε zone περιέχει μία πόρτα HBA host και τις πόρτες συστοιχίας που πρέπει να βλέπει. Οι hosts δεν μοιράζονται ποτέ zone, οπότε μια HBA που συμπεριφέρεται άσχημα δεν μπορεί να ενοχλήσει τους γείτονές της, και η αφαίρεση ενός host σημαίνει αφαίρεση των zones του και τίποτα άλλο.
Aliases, όχι γυμνά WWPN. Κάθε πόρτα παίρνει alias, και τα zones χτίζονται από aliases.
Ένας κανόνας ονομασίας που κουβαλά το fabric. Βάλτε το γράμμα του fabric σε κάθε όνομα alias και zone, ώστε ένα zone για το Fabric A επικολλημένο στο Fabric B να είναι προφανώς λάθος σε όποιον διαβάζει την αλλαγή. Κρατήστε τα ονόματα σε κεφαλαία γράμματα, ψηφία και κάτω παύλες. Κάποια fabrics αρνούνται παύλες και άλλους χαρακτήρες σε ονόματα αντικειμένων, και τα ονόματα είναι case sensitive, οπότε μία σύμβαση που χρησιμοποιείται παντού αφαιρεί μια ολόκληρη κατηγορία σφαλμάτων.
alias: WEB01_HBA_A -> <host port WWPN, fabric A>
alias: ARRAY1_N0_P1_A -> <array port WWPN, fabric A>
zone: Z_WEB01_A__ARRAY1 -> WEB01_HBA_A; ARRAY1_N0_P1_A; ARRAY1_N1_P1_A
config: CFG_FABRIC_A
Πριν ξεκινήσετε: προέλεγχος
Αποθηκεύστε την τρέχουσα κατάσταση και των δύο fabrics πριν αλλάξετε οτιδήποτε:
cfgshow
cfgactvshow
zoneshow
alishow
nsshow
cfgtransshow
Το nsshow (ο name server) επιβεβαιώνει ότι οι πόρτες του νέου host έχουν πράγματι κάνει login στο fabric και δείχνει τα WWPN όπως τα βλέπει το switch, που είναι αυτό από το οποίο πρέπει να χτίζετε aliases αντί από μια ετικέτα πάνω σε ένα κουτί. Το cfgtransshow σας λέει αν κάποιος άλλος έχει ανοιχτή συναλλαγή zoning σε αυτό το fabric. Αν υπάρχει ανοιχτή και δεν είναι δική σας, σταματήστε και βρείτε ποιανού είναι.
Σε κάθε υπάρχοντα host που θα μπορούσε να αγγίξει η αλλαγή, καταγράψτε τα πλήθη διαδρομών (multipath -ll), ώστε να μπορείτε να αποδείξετε μετά ότι τίποτα δεν άλλαξε γι' αυτούς.
Η ίδια η αλλαγή, ένα fabric τη φορά
Ξεκινήστε με το fabric που θα προτιμούσατε να χάσετε. Χτίστε ολόκληρη την αλλαγή σε μία συνεδρία, ως μία συναλλαγή:
alicreate "WEB01_HBA_B", "<host port WWPN, fabric B>"
zonecreate "Z_WEB01_B__ARRAY1", "WEB01_HBA_B; ARRAY1_N0_P2_B; ARRAY1_N1_P2_B"
cfgadd "CFG_FABRIC_B", "Z_WEB01_B__ARRAY1"
cfgenable "CFG_FABRIC_B"
Το cfgenable αποθηκεύει τη διαμόρφωση και την ενεργοποιεί σε ένα βήμα, και ζητά επιβεβαίωση πριν κάνει commit. Αν το βάλετε σε script, το script πρέπει να απαντήσει σε εκείνο το prompt και μετά να διαβάσει την έξοδο για το μήνυμα commit, όχι να υποθέσει επιτυχία επειδή η εντολή επέστρεψε. Τίποτα δεν είναι ζωντανό μέχρι να ολοκληρωθεί το enable, που είναι η τελευταία σας ευκαιρία να διαβάσετε την ετοιμασμένη αλλαγή άλλη μία φορά με cfgshow.
Μετά επαληθεύστε, από τρία σημεία:
- Το switch. Το
cfgactvshowπεριέχει το νέο zone, και κάθε zone που υπήρχε πριν είναι ακόμη εκεί. - Η συστοιχία. Η πόρτα του νέου host σε αυτό το fabric εμφανίζεται τώρα συνδεδεμένη με τις αναμενόμενες πόρτες της συστοιχίας.
- Οι hosts. Ο νέος host βλέπει τα volumes του μέσα από την πόρτα HBA αυτού του fabric. Οι υπάρχοντες hosts δείχνουν ακριβώς τα πλήθη διαδρομών που καταγράψατε στον προέλεγχο.
Στον νέο host Linux, ένα rescan και μια ματιά στην HBA αρκούν:
cat /sys/class/fc_host/host*/port_state
rescan-scsi-bus.sh
multipath -ll
Μόνο όταν συμφωνούν και τα τρία επαναλαμβάνετε την ίδια αλλαγή στο άλλο fabric, χτισμένη με τον ίδιο τρόπο και επαληθευμένη με τον ίδιο τρόπο. Αν κάτι φαίνεται λάθος στο πρώτο fabric, σταματάτε εκεί. Η παραγωγή τρέχει ακόμη στο ανέγγιχτο fabric, και έχετε την αποθηκευμένη διαμόρφωσή σας για επαναφορά.
Μετά την αλλαγή
Ενημερώστε το inventory στην ίδια συνεδρία, ώστε το fabric και η εγγραφή να μη διαφωνούν ποτέ.
Πώς το κάνουμε εμείς
Τα fabrics μας είναι χτισμένα ως δύο πλήρως ανεξάρτητα fabrics Brocade, από τα core switches μέχρι τα switches που είναι ενσωματωμένα στα HPE blade enclosures μας. Μια παρτίδα νέων servers μπορεί να μπει σε zones ένα fabric τη φορά σε λίγα λεπτά χρόνου αλλαγής fabric, ενώ τα zones που μεταφέρουν παραγωγή μένουν ακριβώς όπως ήταν.
Αν η επόμενη αλλαγή storage σας περιλαμβάνει να αγγίξετε και τα δύο fabrics, ευχαρίστως να δούμε μαζί σας το σχέδιο πριν τρέξει.
Related (rows[1])
Σχετικά: Dual-fabric Fibre Channel SAN σε Brocade · Enterprise SAN storage σε HPE 3PAR, all-flash · Bare metal servers σε HPE και Dell
Δημοσιεύθηκε 21 Σεπτεμβρίου 2026.
Όλες οι σημειώσεις