Jump to content
  • entries
    5
  • comments
    15
  • views
    1009

Quick & Dirty SAN


gspiliot

991 views

 Share

Πολλές φορές θέλουμε να φτιάξουμε ένα μικρό και φτηνό disk-array based, virtualized περιβάλλον για διάφορους λόγους:

  • θέλουμε να προσομοιάσουμε ένα περιβάλλον που πρόκειται να στήσουμε στην εταιρεία μας και θέλουμε να διαπιστώσουμε τις δυσκολίες που θα συναντήσουμε,

  • θέλουμε να κάνουμε reorganize εκείνο το SAN που έχουμε χωρίς downtime,
  • είμαστε μια μικρή εταιρεία στα πρώτα της βήματα και δεν θέλουμε να ξοδέψουμε μεγάλα ποσά για εκείνο το super-duper disk array.
Θα μπορούσε κάποιος να ξεκινήσει με βάση το Windows Storage Server 2008 μαζί με το Microsoft iSCSI Software Target 3.2 με το technet που διαθέτει αλλά τι γίνεται όταν δεν διαθέτουμε technet ή θέλουμε να το βάλουμε στην παραγωγή; Μπορούμε να χρησιμοποιήσουμε ένα Open Source αντίστοιχο προϊόν. Μην περιμένετε θαύματα ή τις ταχύτητες ενός επαγγελματικού λειτουργικού αλλά μπορείτε να κάνετε άνετα τις δουλειές σας χωρίς πρόβλημα.

 

Ξεκινάμε με ένα PC με μικρές σχετικά απαιτήσεις, 512 MB RAM, επεξεργαστή από P4 και πάνω, αρκεί να έχει γρήγορο disk subsystem (κατά προτίμηση SATA 3). Το εξοπλίζουμε και με κάρτες δικτύου Gbit κατά προτίμηση από εκείνες που κάνουν offload την CPU κατά την λειτουργία τους. Ανάλογα με την ταχύτητα που επιθυμούμε και την σπουδαιότητα των δεδομένων εξοπλίζουμε το μηχάνημα με 2 ή 4 σκληρούς δίσκους SATA ικανοποιητικής ταχύτητας (velociraptor κανείς;). Δεν χρειάζεται να είναι εξοπλισμένο το μηχάνημα με RAID Controller αφού αυτό θα το κάνουμε με software. Περισσότερες από μια κάρτες δικτύου μπορούν να χρησιμοποιηθούν και ως failover/bond για μεγαλύτερη ταχύτητα/διαθεσιμότητα.

 

Κατεβάζουμε την διανομή openfiler (http://www.openfiler.com) και την γράφουμε σε CD ή USB stick (bootable). Τοποθετούμε τους σκληρούς δίσκους στον υπολογιστή και εγκαθιστούμε το openfiler σε ένα μικρό partition (1GB) σε έναν από αυτούς, κατά προτίμηση εκείνον που κάνει boot  (http://www.openfiler.com/learn/how-to/graphical-installation). Μπορείτε βέβαια να το εγκαταστήσετε και σε ένα USB key.

 

Θα προσπεράσουμε τις advanced δυνατότητες του openfiler όπως Active Directory authentication, Block level real-time remote replication, Failover Clustering και θα μπούμε κατ' ευθείαν στο ψητό: setup ενός raid 1 ή 10 iSCSI target. Τα βήματα εν συντομία είναι:

0. Setup networking

1a. Create Physical volume on a single disk

1b. Create RAID volumes on multiple disks and create array

2. Add volumes from #1 into a Volume Group

3. Create an iSCSI volume in the VG from #2

4. Start the "iSCSI target server" service

5. Add a network entry for the client machine (or local subnet if private) at the bottom of "System > Network Setup"

6. Click "iSCSI Targets" on the Volumes page

7. Click "Add" to create a new target.

8. Click "Lun Mapping"

9. Click "Map"

10. Click "Network ACL"

11. Change the combo box for your network to "Allow".

Για να μην μακρηγορώ και παραθέτω άπειρες οθόνες για το setup μπορείτε να συμβουλευτείτε μερικά από τα παρακάτω links (google it):

http://www.techhead.co.uk/how-to-configure-openfiler-v23-iscsi-storage-for-use-with-vmware-esx

http://www.programiranje.rs.ba/default.asp?PgID=102

Το setup είναι απλό αρκεί να μην ζητάτε advanced πράγματα που γίνονται με περισσότερες κινήσεις και περισσότερο διάβασμα (π.χ. multiple LUNs, Raid 5, hot spares). Τώρα μπορείτε να κάνετε mount το LUN που μόλις φτιάξατε από τον υποψήφιο Hyper-V server σας και να δοκιμάσετε τα πάντα στην πράξη. Μερικές παρατηρήσεις στην περίπτωση που δεν έχετε ξαναστήσει κάτι παρόμοιο:

  • Το μηχάνημα που τρέχει το openfiler είναι το shared storage του όλου setup. Χρειάζεστε και ένα πλήθος ( >=1 ) από servers (π.χ. Hyper-V server) που θα χρησιμοποιούν το shared storage σαν να ήταν τοπικός δίσκος τους σε block level access (σε αντιδιαστολή με το NAS που γνωρίζει ο περισσότερος κόσμος το οποίο προσφέρει απλά remote mount points).
  • Ο τίτλος shared storage καμιά φορά είναι παραπλανητικός. Στην ουσία δεν επιτρέπεται ταυτόχρονη προσπέλαση αρχείων από δύο ή περισσότερους "clients" σε filesystem level γιατί τα γνωστά μας filesystem δεν έχουν την δυνατότητα αυτή (NTFS, ext3, HPFS). Για την σπάνια περίπτωση που χρειαζόμαστε κάτι τέτοιο (θα ήθελα να ακούσω use cases) μπορούμε να δούμε τα GFS, OCFS, GPFS.
  • Είναι καλό οι servers που θα μοιράζονται το shared storage να διαθέτουν περισσότερες από μία κάρτα δικτύου. Μία από αυτές θα χρειαστεί για να συνδέσετε τον server με το υπόλοιπο δίκτυό σας και μία (ή περισσότερες) για να συνδέσετε τον server με το switch που θα διαθέσετε αποκλειστικά για την δικτύωση των servers με το shared storage. Σε αυτό το switch (που φυσικά είναι gigabit) θα περνούν αποκλειστικά πακέτα iSCSI μεταξύ των servers και του shared storage (αποτελεί δηλαδή ανεξάρτητο δίκτυο). Το shared storage μπορεί να είναι συνδεδεμένο μόνο σε αυτό το switch και καθόλου στο δίκτυό σας (καλό θα ήταν να συνδέεται με μια άλλη κάρτα και σε αυτό γιατί θα θέλατε να μπορεί να σας στείλει email σε περίπτωση που πάθει βλάβη κάποιος σκληρός, έτσι δεν είναι;)

  • Καλό θα ήταν να ενεργοποιήσετε τα jumbo frames (9000 bytes πακέτα, αντί για το σύνηθες του ethernet, 1500 bytes) στους servers (hint: network card properties στον device manager) και στο openfiler (MTU: 9000) για μεγαλύτερη ταχύτητα (από το μικρότερο overhead). Φυσικά προϋπόθεση είναι να τα υποστηρίζει και το switch.
Θα ήταν ενδιαφέρον να αναρωτηθούμε σε αυτό το σημείο: αφού το shared storage παρουσιάζεται ως σκληρός για τους servers, θα μπορούσαμε να τους κάνουμε να ξεκινήσουν από λειτουργικό που βρίσκεται στο shared storage (άρα οι συγκεκριμένοι servers να είναι diskless); Με dedicated HBA (είτε Fiber είτε iSCSI) που διαθέτουν δική τους ROM αυτό είναι εύκολο να γίνει γιατί οι κάρτες αυτές είναι αρκετά έξυπνες ώστε να κάνουν "mount" το shared storage πριν ακόμα ξεκινήσει το BIOS του μηχανήματος το οποίο τελικά "βλέπει" τον remote σκληρό και κάνει boot. Τις λύσεις σε αυτή την ερώτηση θα τις αφήσω για επόμενο post ή ως άσκηση για τα comments.

 

 

 Share

6 Comments


Recommended Comments

Ωραία, έχω ήδη Project στα σκαριά με Openfiler, δεν σου κρύβω ότι το μυρίστηκα όταν ανέφερες στο προηγούμενο post σου για φθηνό SAN Like περιβάλλον, βέβαια το ορθό είναι iSCSI.

Ο Καβαλάκης (Blackman) είχε παρουσιάσει στο παρελθόν σε video το το Freenas εδώ: http://autoexec.gr/blogs/blackman/archive/2009/05/08/nas-freenas-linux.aspx

 

Περιμένω να δω και τη συνέχεια με το AD Integration το οποίο και μας ενδιαφέρει άμεσα!

 

Α και μην ξεχάσω.... Καλή αρχή στο blogging!

Link to comment

Δεν θα ήταν καλύτερα να βάλουμε και έναν RAID Controller? Το software RAID σε σύγκριση με το Hardware RAID είναι αργό έως αρκετά πιο αργό. Πόσο μάλλον αν το βάλουμε και σε παραγωγικό περιβάλλον.

 

Είχα ξεκινήσει κάτι τέτοιο εδώ και κανά 6μηνο με Openfiler kai SCSI U320 RAID Controller με 4 SCSI U320 146 GB δίσκους σε RAID-10 αλλά το άφησα λόγο φόρτου εργασίας. Ισως το ξαναπιάσω στα χέρια μου τώρα που έχει ανοίξει η όρεξη με Hyper-V και Windows 2008 R2.

 

Μετά το IT Pro Connections πήρες φωτιά και ρίχνεις τα άρθρα δυό δυό. Καλή συνέχεια και σύντομαααααα.......

 

Α και μη σε πάρει μυρουδιά ο Νάσος με το Openfiler (open source!!!!) γιατί θα σε κάνει ban ή θα στείλει τα παλικάρια να σου εξηγήσουν το όνειρο.......

 

Link to comment

Μερικά σχόλια για το Hardware/Software raid (και από την αρκετά μεγάλη εμπειρία μου στο θέμα σε εταιρεία ASP). To hardware raid είναι καλό σε περιπτώσεις RAID5 όπου υπάρχει computational effort χωρίς να λαμβάνουμε φυσικά υπ’όψη τον ίδιο τον controller. Για να καταλάβετε τι εννοώ διαβάστε το επόμενο παράδειγμα που είναι πραγματικό:

 

Εταιρεία συνεχούς λειτουργίας (είχε βραδινή βάρδια) έχει ένα σύστημα με RAID controller γνωστής εταιρείας (OEM από άλλη γνωστή εταιρεία του χώρου, μην τις θίξουμε κι όλας!). Στις 22:30 περίπου το βράδυ (όπου ο IT manager μάλλον έκανε άλλα πράγματα) ο controller σταμάτησε να δουλεύει με hardware fault error (το σύμπτωμα ήταν blue screen, automatic reboot, blue screen κ.ο.κ). Ειδοποιήθηκε η εταιρεία να τον αντικαταστήσει άμεσα (με βάση την σύμβαση) αλλά το διαθέσιμο stock για την αντικατάσταση είχε χρησιμοποιηθεί την ίδια και την προηγούμενη ημέρα ενώ οι νέοι controllers προέρχονταν από άλλον OEM και ήταν ασύμβατοι! Δεν λέω σε μιάμιση εργάσιμη ημέρα ο controller είχε φτάσει αλλά καταλάβατε το πρόβλημα. Το software RAID μπορεί να είναι πιο αργό αλλά η διαθεσιμότητα των δεδομένων είναι δεδομένη πάντα! Επιπλέον υπάρχουν εργαλεία ανάκτησης των δεδομένων σε περίπτωση προβλήματος σε software raid όπως επίσης και δυνατότητες ελέγχου του SMART status και αποστολής email σε περιπτώσεις προβλήματος. Είναι αξιοσημείωτο το ότι οι περισσότεροι hardware raid controllers μέχρι πριν λίγο καιρό δεν διέθεταν την δυνατότητα να στείλουν automated email σε περίπτωση προβλήματος!

 

Τώρα όσον αφορά τα non computational RAID σχήματα (δες π.χ. RAID 10) θα διαφωνήσω στο πόσο πιο γρήγορος είναι ένας hardware raid controller. Εκτός του ότι μπορεί να είναι πιο γρήγορος σαν disk subsystem (δηλαδή μεγαλύτερες ταχύτητες διαμεταγωγής) με την είσοδο του SATA 3 πολύ δύσκολα θα συμβούλευα κάποιον να μην χρησιμοποιήσει software RAID με όλα τα πλεονεκτήματα που προσφέρει.

 

Μάλιστα το software raid σε linux (md) σε συνδυασμό με LVM (logical volume management) δίνει ένα πλεονέκτημα που τώρα μόνο τελευταία άκουσα ότι δίνουν κάποια εξειδικευμένα hardware arrays (αξίας >10K): on the fly volume expansion & shrinkage. Δηλαδή να προσθέτουμε χώρο και να αφαιρούμε χωρίς repartitioning του όλου array απλά με την χρήση επιπλέον σκληρών και μάλιστα χωρίς downtime.

 

Link to comment

Όποιος δει το post του BlackMan θα παρατηρήσει στα σχόλια ότι του είχα ζητήσει να ασχοληθεί με το Openfiler, αλλά δυστυχώς δε στάθηκε δυνατό.

Link to comment

Νομίζω πως δεν υποστηρίζει scsi-3 persistent reservations commands για fail-over clustering σε hyper-v r2 και vmware esx. Κατά τα άλλα καλό μου ακούγεται για δοκιμές και για light φθηνές εγκαταστάσεις.

 

Link to comment

Έχεις δίκιο για τις scsi-3 persistent reservations commands στο free μοντέλο του OpenFiler. Το web interface του openfiler υποστηρίζει το IET (το αρχικό iSCSI target) που δεν ξέρει τίποτα για αυτές τις εντολές. Το θέμα είναι ότι ένα latest build του openfiler έρχεται με LIO-3 που είναι ο τελευταίος και καλύτερος iSCSI target που υποστηρίζει scsi-3 persistent reservations commands. Υπάρχει όμως ένα αλλά: είτε κανείς πληρώνει τους developers για το WEB setup του LIO-3 είτε αναγκαστικά το κάνει "με το χέρι" σε κλασσικό command-line (που γνωρίζω πόσο αρέσει σε πολλούς εδώ...).

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...