Jump to content


NAS/SAN in a nutshell


Jaco

Recommended Posts

0. Περιεχόμενα

1. Εισαγωγή

2. Filesystems

3. NAS/SAN και πρωτόκολλα

4. Εξοπλισμός

5. Openfiler 2.3

6. FreeNAS

7. Linux/Windows NAS server

8. Μετρήσεις με μια NIC

9. Μετρήσεις με LAG/LACP

10.Συμπεράσματα

--------------------------------------------------------------------------------------------------

1. Εισαγωγή.

Τον τελευταίο καιρό τα NAS/SAN συστήματα έχουν αρχίσει να αποκτούν θέση σε πολλά σπίτια και οικιακά δίκτυα. Από την μια η ασφάλεια που παρέχουν και από την άλλη η ευκολία διαχείρισης και διαμοιρασμού των δεδομένων ταυτόχρονα σε πολλούς υπολογιστές, όπως home cinema pc, laptops και workstations μέσα στο σπίτι. Έτσι είπα και εγώ να παίξω λίγο μαζί τους, να δω που έχει φτάσει σήμερα η κατάσταση, εκτός των κλασικών Pentium II και III που στήναμε οι περισσότεροι με ένα linux. Η αλήθεια είναι ότι δεν έχουν αλλάξει πολλά, καθώς η βάση παραμένει ίδια, αλλά αυτό που έχει αλλάξει δραματικά είναι η ευκολία με την οποία στήνεται σήμερα ένα NAS και η διαμεταγωγή των δεδομένων, καθώς πλέον το να στηθεί ένα Gigabit δίκτυο δεν κοστίζει ακριβά.

Όταν έκανα τα πειράματα μου με τα NAS, ήρθα αντιμέτωπος με μια κατάσταση η οποία με οδήγησε στην σκέψη, ότι αντί να παραθέσω κάποια αποτελέσματα θα ήταν εξίσου καλό να αναλύσω με έναν απλό τρόπο αρκετά από τα συστατικά που αποτελούν την συνταγή αυτή. Σε αυτό με οδήγησε μια συζήτηση που είχα με ένα φίλο, ο οποίος με ρώτησε τι ακριβώς κάνω και η απάντηση μου διακόπηκε τα πρώτα δευτερόλεπτα από το βλέμμα του, δηλαδή την διάρκεια που είχα ήδη κατεβάσει 4-5 ονόματα από πρωτόκολλα. Τότε σταμάτησα και συνειδητοποίησα ότι έκανα αυτό το οποίο δεν μου αρέσει να μου κάνουν, δηλαδή να μιλάω χωρίς να με καταλαβαίνει ο άλλος και κυρίως χωρίς να εξηγώ τι είναι αυτά που λέω. Μόλις άρχισα να του μιλάω πιο απλά και να του φέρνω παραδείγματα από την ζωή και να τα αντιστοιχώ με τον κόσμο των δικτύων, τότε άρχισαν να έρχονται και οι πρώτες ερωτήσεις και εύστοχες απορίες, που σήμαινε ότι είχε καταλάβει το νόημα των προηγουμένων. Δεν κρύβω ότι αυτό με ικανοποίησε ιδιαίτερα. Έτσι αποφάσισα να μην κάνω μια απλή παρουσίαση των NAS, αλλά να εμβαθύνω όσο πιο απλά μπορώ, καθώς είναι σημαντικό να έχει κανείς μια ιδέα για το τι γίνεται μπροστά του, μέσα στο pc του, στο λειτουργικό του και ας μην μπαίνει βαθιά σε λεπτομέρειες. Τώρα το αν το έκανα με επιτυχία, αυτό θα κριθεί από αυτόν που θα το διαβάσει. Φυσικά για όσους έχουν γνώση όλων αυτών, θα ζητήσω την ανοχή τους αν σε πολλά σημεία υπεραπλουστεύω και ίσως θα μπορούσα να χρησιμοποιήσω καλύτερα παραδείγματα. Εννοείται πως οποιαδήποτε παρατήρηση - σημείωση είναι καλοδεχούμενη και ευχαρίστως να αλλάξω όπου χρειάζεται ό,τι χρειάζεται.

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

Link to comment
Share on other sites

  • Replies 82
  • Created
  • Last Reply

2. Filesystems

File System και Network File System.

Παρόλο που τα δυο παραπάνω δεν είναι πρωτόκολλα, αλλά μέθοδοι, προτιμώ να τα αναλύσω εδώ καθώς θα χρειαστούν για την κατανόηση των NAS/SAN πρωτοκόλλων.

Τί είναι λοιπόν το file system και τι το network file system. Για να καταλάβει κανείς το file system θα πρέπει να το δει σαν δυο διαφορετικά επίπεδα λειτουργιών συνδυασμένα στο να κάνουν μια συγκεκριμένη δουλειά. Η δουλειά αυτή είναι η διαχείριση και η αποθήκευση των δεδομένων ενός υπολογιστή και οι δυο που το αναλαμβάνουν αυτό, είναι πρώτων ένα σετ εντολών (API), το οποίο περιέχει την λειτουργία για την διαχείριση των δεδομένων και δεύτερον η λειτουργία για το διάβασμα/γράψιμο (Ι/Ο) των αρχείων σε ένα μέσο (πχ σκληρός δίσκος κτλ). Η διαχείριση είναι ένα επίπεδο επάνω από το Ι/Ο και είναι αυτή που δίνει εντολές σε αυτό, ώστε να ανοίξει αρχεία, να τα κλείσει, να δημιουργήσει νέα, να σβήσει, να μετακινήσει κτλ. Έτσι όταν το Ι/Ο λάβει κάποια εντολή από το σετ διαχείρισης, είναι αυτό που πρέπει να ξέρει πως θα έχει πρόσβαση στο μέσο, για το οποίο προορίζονται οι εντολές αυτές, άρα να ξέρει πως πρέπει να μιλήσει σε έναν σκληρό δίσκο, σε μια δισκέττα κτλ. Το σημαντικότερο ίσως, είναι το σετ εντολών διαχείρισης, από το οποίο εξαρτάται η αξιοπιστία, η ταχύτητα, η ευελιξία και οι δυνατότητες του file system, άρα όσο πιο σύνθετο είναι ένα file system τόσες περισσότερες δυνατότητες έχει. Για ευκολία, θα πρέπει να δείτε το file system σαν μια βάση δεδομένων, όπως αυτή του forum στην οποία καταχωρούνται όλα τα δεδομένα, όπως οι λογαριασμοί μας, τα μηνύματά μας κτλ. Οπότε σε αναλογία το Ι/Ο είναι αυτό το οποίο ξέρει πως θα αποθηκεύει/διαβάζει τα δεδομένα μέσα στην/από την βάση και το σετ εντολών είναι αυτό, το οποίο αναλαμβάνει την πρόσβαση σε αυτά. Επομένως όταν θέλουμε να δημιουργήσουμε ένα νέο θέμα, να το κάνουμε edit, να το σβήσουμε ή να το διαβάσουμε, όλα αυτά είναι εντολές που υποστηρίζει το σετ εντολών του "file system" του forum. Τώρα στο σετ εντολών μπορούμε να προσθέσουμε και τον "μηχανισμό" του file system που είναι πίσω από αυτό, το οποίο δεν είναι άλλο από το "με ποιο τρόπο γίνονται όλα αυτά", για να εξηγηθώ... στον μηχανισμό ανήκει πχ η δυνατότητα του file system να γράφει κάθε φορά που μετατρέπει ένα αρχείο, την ημερομηνία και την ώρα που έγινε η μετατροπή. Επίσης μπορεί κρατάει κάποια "αρχεία" με άλλες πληροφορίες οι οποίες βελτιστοποιούν την απόδοσή του file system, για παράδειγμα για γρηγορότερη εύρεση κάποιου άλλου αρχείου (το γνωστό indexing των windows), ή κάποιες στατιστικές πληροφορίες για την συχνότητα χρήσης των αρχείων. Επίσης μπορεί να βάζει «ταμπέλες» στα αρχεία που να περιγράφουν το τι αρχείο είναι, ποιοι έχουν πρόσβαση σε αυτό και πολλά άλλα. Το σετ εντολών σε συνδυασμό με τον μηχανισμό αυτόν, μπορεί να ανοίγει αρχεία, να τα κάνει edit, να τα σβήνει, να τα μεταφέρει ή να κάνει αναζητήσεις...

Το network file system τώρα, είναι ένα επίπεδο πάνω από το κανονικό file system και ο ρόλος του είναι να γνωρίζει το σετ εντολών του file system και να τις αντιστοιχεί σε κάποιες δικές του. Το network file system δεν είναι τίποτα άλλο παρά ένα λογισμικό (service) το οποίο τρέχει πάνω στο λειτουργικό και μπορεί να έχει πρόσβαση στο file system του. Για παράδειγμα αν το file system έχει μια εντολή "open1", τότε το service του network file system την αντιστοιχεί σε μια δικιά του "n_open", οπότε αν κάποιο άλλο πρόγραμμα δώσει την εντολή "nfs_open" στο network file system, τότε αυτό με την σειρά του θα εκτελέσει την εντολή "open1" στο file system στο οποίο είναι εγκατεστημένο. Ποιος ο λόγος τώρα γι' αυτό, θα πει κάποιος. Ας υποθέσουμε λοιπόν, ότι υπάρχουν δυο υπολογιστές με διαφορετικά λειτουργικά συστήματα και συνεπώς με διαφορετικά file system το καθένα. Τότε για έχει πρόσβαση μια εφαρμογή σε ένα αρχείο του file system, θα πρέπει στο ένα λειτουργικό να ζητήσει να εκτελεστεί η εντολή "open1" και στο άλλο η εντολή "open2". Επομένως βλέπουμε ότι παρόλο που έχουν το ίδιο αποτέλεσμα, είναι δυο τελείως διαφορετικές εντολές μεταξύ τους, άρα αν το σύστημα 1 δώσει την εντολή "open1" στο σύστημα 2 που ξέρει την εντολή "open2", τότε το σύστημα 2 δεν μπορέσει να την εκτελέσει γιατί δεν μπορεί να την καταλάβει. Εδώ έρχεται λοιπόν το πρωτόκολλο του network file system. Αν και τα δυο συστήματα έχουν εγκατεστημένο το ίδιο service του network file system, τότε το σύστημα 1 μόλις δώσει την εντολή "open1", το service θα την μετατρέψει σε "nfs_open" και στην στείλει κρεμμυδοποιημένη με TCP/IP μέσω του δικτύου. Μόλις το κρεμμύδι φτάσει στο σύστημα 2 μέσω του δικτύου, με την σειρά του το δικό του service του network file system, θα ξεφλουδίσει το κρεμμύδι και θα αναγνωρίσει την εντολή "nfs_open", την οποία θα την μετατρέψει σε "open2" που την καταλαβαίνει το λειτουργικό του συστήματος 2 και το λειτουργικό θα την εκτελέσει. Επομένως με τον τρόπο αυτό επιτυγχάνεται η επικοινωνία δυο διαφορετικών λειτουργικών με διαφορετικά file systems, έχοντας σαν κοινή βάση το πρωτόκολλο ενός network file system το οποίο ουσιαστικά είναι ένας διερμηνέας ανάμεσα σε δυο ξένους.

Ίσως τώρα κάποιος αναρωτηθεί τώρα, μα καλά αφού τα windows έχουν το ίδιο file system γιατί χρειάζεται κάποιο πρωτόκολλο για να κάνει mount το ένα σύστημα έναν φάκελο από το άλλο? Η αλήθεια είναι κάπου στην μέση. Το network file system δεν είναι μόνο για να συνδέει δυο διαφορετικά συστήματα με διαφορετικά file systems, αλλά είναι αναγκαίο και σε περιπτώσεις που αυτά τα file systems είναι ίδια. Η εξήγηση είναι απλή. Οι λειτουργίες (εντολές) που αναλαμβάνουν να διαχειριστούν το file system μπορούν να τρέξουν μόνο τοπικά στο σύστημα, και όχι απομακρυσμένα, οπότε ο «διερμηνέας» δεν είναι μόνο ένας μεταφραστής, αλλά στην ουσία είναι αυτός που μπορεί να έχει πραγματική πρόσβαση τοπικά, στο άλλο σύστημα, άρα και ο μοναδικός που μπορεί να πει στο σύστημα να εκτελέσει την εντολή. Αυτό όμως, μην σας μπερδεύει και είναι προτιμότερο να σκέφτεστε με την λογική του προηγούμενου παραδείγματος, έτσι ώστε να είναι πιο απλό και ας είναι εν μέρει λάθος. Δηλαδή πρέπει να σκέφτεστε πως, ότι και file system να έχει το άλλο σύστημα, είναι "ξένο".

Επίσης σε αυτό το σημείο μπορεί κάποιος να έχει απορήσει πως γίνεται το service να ξέρει ότι τα δεδομένα που έρχονται από το δίκτυο είναι δικά του. Αυτό εξηγείται απλά αν σκεφτούμε ότι διαμένουμε σε ένα τεράστιο ξενοδοχείο και δίνουμε σε κάποιον που θέλει να μας επισκεφτεί την διεύθυνση του ξενοδοχείου και τον αριθμό του δωματίου μας. Επομένως ο επισκέπτης με την διεύθυνση που του δώσαμε θα έρθει στο ξενοδοχείο και μόλις μπει μέσα θα πάει στην ρεσεψιόν και θα ρωτήσει το "παιδί" ή "παλικάρι", που βρίσκεται το δωμάτιο με τον αριθμό που του έχουμε πει. Το "παιδί" τότε, θα του δώσει οδηγίες και θα τον κατευθύνει στο σωστό ασανσέρ και τον σωστό διάδρομο, οπότε μόλις φτάσει ο επισκέπτης στον όροφο θα αρχίσει να ψάχνει έναν-έναν τους αριθμούς επάνω στις πόρτες μέχρι να βρει αυτή που του έχουμε δώσει και να χτυπήσει να δει αν ανοίξει κάποιος. Αν τώρα ο δρόμος είναι το καλώδιο του δικτύου, η διεύθυνση είναι η IP, η ρεσεψιόν είναι ο router, και η πόρτα είναι η πόρτα του TCP/IP, τότε καταλαβαίνουμε ότι την πόρτα θα την ανοίξει το service του network file system. Επομένως τα services των network file systems επικοινωνούν μέσω TCP/IP σε συγκεκριμένες πόρτες οι οποίες πλέον καθορίζονται από standards.

Link to comment
Share on other sites

3. NAS/SAN και πρωτόκολλα

TCP/IP

Το TCP/IP είναι είναι πρωτόκολλο το οποίο αναλαμβάνει την μετάδοση δεδομένων σε ένα δίκτυο. Για να μεταφερθούν δεδομένα σε ένα δίκτυο, χρειάζεται απλά ένα καλώδιο και κάρτες δικτύου. Το καλώδιο είναι το μέσο στο οποίο θα κυκλοφορήσουν τα ηλεκτρικά σήματα (ηλεκτρικά διαφορικά σήματα) και οι κάρτες δικτύου θα τα μεταφέρουν και θα τα λαμβάνουν. Αναλογικά είναι σαν την ομιλία, ο αέρας είναι το μέσο μετάδοσης, το στόμα είναι η "συσκευή" η οποία παράγει τα ηχητικά κύματα, το αυτί είναι η "συσκευή" που τα λαμβάνει και ο εγκέφαλος είναι ο επεξεργαστής ο οποίος υλοποιεί τα πρωτόκολλα και δίνει/παίρνει εντολές στις/από τις συσκευές. Το TCP/IP σε αντιστοιχία, είναι η γραμματική και το συντακτικό που χρησιμοποιούμε ώστε να καταλάβει ο άλλος τι θέλουμε να του πούμε. Τώρα ας υποθέσουμε ότι θέλουμε να μεταφέρουμε μια εντολή, η οποία να λέει σε κάποιον να σηκώσει ένα αντικείμενο από ένα σημείο και να το μεταφέρει σε ένα άλλο. Αυτή η εντολή θα μπορούσε να ήταν ένα απλό "ουγκ", αν ήταν γενετικά ενσωματωμένη στον εγκέφαλο μας, το οποίο ο άλλος θα την καταλάβαινε και θα την εκτελούσε, φυσικά όμως δεν είναι έτσι. Το νόημα της εντολής αυτής για έναν άνθρωπο είναι στο κέντρο ενός κρεμμυδιού από φθόγγους που αποτελούν τις λέξεις και συνεπώς μια πρόταση και για να το αποκωδικοποιήσει κάποιος θα πρέπει να ξεφλουδίσει ένα-ένα τα επίπεδα του κρεμμυδιού μέχρι να φτάσει στο νόημα. Επομένως το "ουγκ" για μας γίνεται "Σε παρακαλώ, μπορείς να μεταφέρεις αυτό το αντικείμενο που είναι πάνω στο τραπέζι και να το πας στην ντουλάπα?". Ενώ το νόημα παραμένει ίδιο, η έκφρασή του είναι τελείως διαφορετική σε σχέση με το "ουγκ" το οποίο υποθέσαμε ότι έχει το ίδιο νόημα συμπυκνωμένο σε μια πολύ μικρή πληροφορία (2 φθόγγους). Δηλαδή στην δεύτερη περίπτωση είναι εμπλουτισμένο από γραμματική και συντακτικό και για να βγάλουμε νόημα θα πρέπει να ξεφλουδίσουμε το κρεμμύδι με τις γραμματικές μας γνώσεις μέχρι να αποκωδικοποιήσουμε το νόημα. Παρόμοιο είναι και το TCP/IP, δηλαδή είναι ένα πρωτόκολλο το οποίο παίρνει κάποια δεδομένα/εντολές και χτίζει ένα κρεμμύδι γύρω τους με κάποιες πληροφορίες. Το κρεμμύδι που έχει δημιουργηθεί, εν συνεχεία, δίδεται στην κάρτα δικτύου η οποία μετατρέπει τα bits, που αποτελούν το κρεμμύδι αυτό, σε ηλεκτρικά σήματα στο καλώδιο, με τον ίδιο τρόπο που το στόμα μετατρέπει σε ήχο τους φθόγγους που αποτελούν την πρόταση.

Το TCP/IP είναι η βάση πολλών πρωτοκόλλων και φυσικά η βάση των πρωτοκόλλων που χρησιμοποιούν τα NAS/SAN (FTP, CIFS/SMB, iSCSI κτλ). Σε αντιστοιχία με την πραγματικότητα θα χρησιμοποιήσουμε το παράδειγμα της συνομιλίας ατόμων διαφόρων ειδικοτήτων σε μια παρέα. Αν έχουμε μια παρέα με δυο προγραμματιστές, δυο αθλητές, δυο κομμώτριες και δυο νομικούς, τότε αν ο καθένας αρχίζει να μιλάει για το αντικείμενό του με τις ορολογίες που το απαρτίζουν, τότε μόνο αυτός που έχει την ανάλογη γνώση θα καταλάβει το νόημα, παρόλο που όλοι θα τον ακούν. Επομένως το κάθε ζευγάρι κοινού ενδιαφέροντος έχει ένα κοινό πρωτόκολλο επικοινωνίας, επειδή όμως όλοι μαζί χρησιμοποιούν το ίδιο "πρωτόκολλο" της γραμματικής και του συντακτικού, τότε όλοι ακούνε όλους, αλλά μόνο αυτοί που έχουν την ίδια ιδιότητα, καταλαβαίνουν ο ένας τον άλλο. Έτσι και τα πρωτόκολλα επικοινωνίας και διασύνδεσης, παρόλο που είναι διαφορετικά, έχουν τον ίδιο σκοπό που είναι η μεταφορά πληροφορίας και χρησιμοποιούν ως βάση το πρωτόκολλο του TCP/IP (το κοινό συντακτικό και η γραμματική που λέγαμε). Διαφορετικά, θα έπρεπε πχ το κάθε άτομο ανάλογα με την ιδιότητα που έχει, να μιλάει με διαφορετική γλώσσα, με άλλη γραμματική και άλλο συντακτικό, πράγμα δύσκολο και το οποίο μπορεί να προκαλέσει σύγχυση, δυσκολίες, λάθη και ασυμβατότητες στην επικοινωνία αν κάποιος μπερδευτεί . Οπότε ο σκοπός του TCP/IP είναι αυτός, δηλαδή να αποτελεί την βάση όλων αυτών των πρωτοκόλλων, έτσι ώστε να απλοποιείται η διαδικασία και να μην χρειάζεται κάθε φορά να ανακαλύπτουμε τον τροχό ξανά από την αρχή. Επίσης είναι ο τελευταίος σύνδεσμος με το φυσικό μέσο, δηλαδή το κρεμμύδι αφού τυλιχτεί με τα επίπεδα του TCP/IP, θα ταξιδέψει αυτούσιο στο καλώδιο του δικτύου. Έτσι και το CIFS/SMB πχ, είναι ένα πρωτόκολλο από διαδικασίες το οποίο "κρεμμυδοποιείται" με το TCP/IP ώστε να μεταφερθεί μέσα σε ένα δίκτυο. Από εκεί και πέρα, ποια είναι τα επίπεδα του κρεμμυδιού, τι σκοπό έχει το καθένα, από τι αποτελείται κτλ, δεν μας ενδιαφέρει. Για όσους όμως τους ενδιαφέρει το internet είναι γεμάτο με εκ βάθους αναλύσεις του πρωτοκόλλου και λεπτομέρειες για όλα τα επίπεδα που το αποτελούν.

CIFS/SMB (Common Internet File System / Server Message Block)

To CIFS/SMB της Microsoft, είναι το πιο κοινό πρωτόκολλο network file system που χρησιμοποιείται σήμερα. Είναι το default network file system των windows και χρησιμοποιείται από το λειτουργικό όταν κάνουμε mount έναν δίσκο από ένα windows pc σε ένα άλλο. Για να το υποστηρίξουν τα υπόλοιπα λειτουργικά χρειάζονται ένα service, τον λεγόμενο samba server που έχουμε στο linux και με το service αυτό μπορούν να μεταφράσουν τις εντολές του CIFS Αυτό είναι ένα μείγμα διάφορων άλλων πρωτοκόλλων και είναι βασισμένο κυρίως στο NetBIOS API της IBM (σκεφτόμαστε την λάμπα) και όπως και τα υπόλοιπα πρωτόκολλα, χρησιμοποιεί το TCP/IP για την μεταφορά των πακέτων του (υπάρχει όμως και υλοποίηση χωρίς την ανάγκη του TCP/IP). Το CIFS/SMB τώρα όσων αφορά το κρεμμύδι είναι το πρώτο που καλύπτει τα δεδομένα, το επόμενο κρεμμυδο-επίπεδο είναι το NetBIOS και όλα μαζί τα καλύπτει το υπερ-κρεμμυδο-επίπεδο του TCP/IP. Το CIFS όπως και τα άλλα network file systems πρωτόκολλα, είναι ουσιαστικά ένας "διερμηνέας", ο οποίος αναλαμβάνει να μεταφράζει τις εντολές και τα δεδομένα από το file system του συστήματος, στο οποίο είναι εγκατεστημένο, στο δικό του και εν συνεχεία να τα αποστέλλει στο δίκτυο.

Το CIFS και το SMB ουσιαστικά δεν είναι το ίδιο πράγμα, αλλά το CIFS είναι μια από υλοποιήσεις (διαλέκτους τα λέει η κυρία MS) του SMB πρωτοκόλλου. Αυτό υποστηρίζει:

  • Αναζήτηση σε ένα δίκτυο για άλλους υπολογιστές που υποστηρίζουν το CIFS/SMB
  • Εκτύπωση μέσω δικτύου
  • Πιστοποίηση (authentication) σε επίπεδο αρχείων και φακέλων
  • Κλείδωμα αρχείων
  • κ.ά.

Γενικά ακολουθεί την φιλοσοφία του client/server και στέλνει εντολές για τις οποίες περιμένει απάντηση. Δηλαδή η επικοινωνία απαιτεί επιβεβαίωση του παραλήπτη υπολογιστή, ότι κατάλαβε και εκτέλεσε την εντολή που έλαβε από τον αποστολέα.

Όσων αφορά την ταχύτητα του πρωτοκόλλου, θεωρείται σε σύγκριση με τα FTP και iSCSI, το πιο αργό σε ταχύτητα.

NFS (Network File System)

Το NFS (το πρωτόκολλο και όχι η μέθοδος που αναλύσαμε πιο πριν) είναι ο παλιός της παρέας, υλοποιήθηκε το 1984 και έχει καταφέρει να επιβιώσει ακόμα μέχρι και σήμερα μέσα από 4 μεγάλες αναβαθμίσεις του. Σήμερα έχει φτάσει την v4, αλλά τώρα έχει αρχίσει σιγά-σιγά να περνάει στα περισσότερα λειτουργικά καθώς μέχρι πριν χρησιμοποιούνταν οι v2 και v3. To NFS γεννήθηκε στα unix συστήματα, αλλά έχει περάσει εδώ και χρόνια και στα υπόλοιπα λειτουργικά και φυσικά και στα windows. Ξανά κοινή βάση και αυτού, όπως και των υπόλοιπων πρωτοκόλλων είναι πως βασίζεται στο TCP/IP.

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

Γενικά για το NFS v3 αυτό που θα πρέπει να μας μείνει είναι πως είναι πιο αργό από τα υπόλοιπα.

Τέλος επέλεξα να μην το βάλω μέσα στις μετρήσεις, γιατί πέρα από αργό είναι πιο δύσκολο για έναν απλό χρήστη να το εγκαταστήσει σε ένα περιβάλλον windows. Γι’ αυτόν όμως που το επιθυμεί θα χρειαστεί απαραίτητα τον NFS client από τα "Windows Services for Unix" της Microsoft, οπότε με τα στοιχεία αυτά και μια αναζήτηση στο internet θα βρει περισσότερες πληροφορίες. Επίσης το NFS είναι το standard πρωτόκολλο network file system για το linux, οπότε αν ο client (δηλαδή το pc του χρήστη) έχει linux λειτουργικό, τότε είναι ο βασικός τρόπος τον οποίο θα χρησιμοποιήσει για μοιράσει τα δεδομένα του.

FTP (File Transfer Protocol)

Το FTP είναι λίγο πολύ γνωστό σε όλους μας και παρόλο που δεν είναι network file system, αλλά απλά ένα πρωτόκολλο επικοινωνίας, θα το περιγράψω, όχι αναλυτικά, γιατί το έχω προσθέσει στις δοκιμές μου. Το FTP λοιπόν για να λειτουργήσει χρειάζεται έναν client (πελάτη) και έναν server (διακομιστή) που να μιλάνε την ίδια γλώσσα, εν προκειμένου να υλοποιούν το ίδιο πρωτόκολλο. Στην περίπτωση μας ο server είναι το NAS, το οποίο τρέχει ένα service του οποίου η δουλειά είναι να ακούει σε μια συγκεκριμένη πόρτα (πόρτα 21 συνήθως) και όταν κάποιος client (άλλος υπολογιστής του δικτύου) συνδεθεί στο NAS στην πόρτα αυτή, τότε αν μιλάνε την ίδια γλώσσα, να του δώσει την επιλογή να μεταφέρει αμφίδρομα αρχεία και δεδομένα. Το FTP είναι απλό και γρήγορο πρωτόκολλο και χρησιμοποιείται πολύ συχνά όταν θέλουμε να ανεβάσουμε/κατεβάσουμε δεδομένα σε έναν υπολογιστή, ο οποίος βρίσκεται κάπου απομακρυσμένα. Δεν πρέπει όμως να το συγχέουμε με τα προηγούμενα file systems με το FTP, το οποίο γνωρίζουμε οι περισσότεροι, γιατί στην περίπτωση του FTP χρειάζεται ένα πρόγραμμα (client) ο οποίος συνδέεται στο service του FTP στο NAS.

Αν και ορισμένους μπορεί να τους μπερδέψει η συνέχεια, θα προσπαθήσω να είμαι αναλυτικός. Υπάρχει και FTP file system (FTPFS), αλλά η διαφορά του είναι ότι δεν υπάρχει κάποιο πρόγραμμα (client) το οποίο συνδέεται στον FTP server του NAS, αλλά στην ουσία είναι ένα service το οποίο αναλαμβάνει την ενσωμάτωση του FTP πρωτοκόλλου στο shell. Όπου shell για τα windows θεωρήστε τον explorer και κάποια άλλα services συγκεντρωμένα κάτω από ένα ενιαίο κέλυφος. Όπου explorer θεωρήστε τον file manager της Microsoft για το file system των windows (NTFS/FAT), δηλαδή το service το οποίο αναλαμβάνει να ζωγραφίζει τα παράθυρα στο λειτουργικό μας, όταν ανοίγουμε ένα δίσκο στο My Computer ή ένα φάκελο κτλ. Επομένως ο windows explorer είναι η εφαρμογή η οποία μας συνδέει με το file system του λειτουργικού μας, με έναν γραφικό τρόπο, που μέσω αυτού μπορούμε να έχουμε πρόσβαση τοπικά στα αρχεία και τα δεδομένα των τοπικών, εγκατεστημένων δίσκων. Οπότε όλα τα network file systems είναι ουσιαστικά εφαρμογές/services, οι οποίες ενσωματώνουν στον windows explorer την δυνατότητα να μπορεί να αναγνωρίσει απομακρυσμένα και ξένα ως προς αυτόν file systems και να τα διαχειρίζεται σα να είναι τοπικά. Όποιος έχει καταλάβει αυτό και το έχει ξεκαθαρίζει, τότε μπορεί πολύ εύκολα να αντιληφθεί τον τρόπο με τον οποίο λειτουργούν τα network file systems, όσο και trendy όνομα πρωτοκόλλου να έχουν. Αξίζει κανείς να αφιερώσει λίγο χρόνο στο να το αντιληφθεί, γιατί και σχετικά εύκολο είναι και χρήσιμο.

iSCSI (internet Small Computer System Interface)

Το iSCSI όπως αφήνει να εννοηθεί το όνομα του είναι το πρωτόκολλο επικοινωνίας το οποίο χρησιμοποιούν οι γνωστοί μας SCSI δίσκοι (πρόγονοι των SCA και SAS), με την διαφορά όμως ότι αυτό το πρωτόκολλο έχει μετατραπεί ώστε να δουλεύει σε διαφορετικό μέσο, αυτό δηλαδή του Ethernet και όχι το γνωστό μας παράλληλο καλώδιο με τα 34 ή 40 συνεστραμμένα ζεύγη. Πεζά θα έλεγε απλά κανείς ότι είναι το port (δηλαδή η μεταφορά) του SCSI στο Ethernet, πακετοποιώντας τις SCSI εντολές με το TCP/IP πρωτόκολλο. Το iSCSI χρησιμοποιεί δυο πόρτες, τις 860 και 3260. Όσων αφορά τώρα την λειτουργία του, όπως είναι φυσικό υπάρχουν δυο άκρα, δηλαδή ο client και ο server, αλλά στο iSCSI, ονομάζονται "initiator" και "target", οπότε αυτήν την ορολογία θα χρησιμοποιώ από εδώ και πέρα για το iSCSI (initiator=client, target=server).

O initiator συνδέεται στον target και αφού τα πουν μεταξύ τους και τα συμφωνήσουν, τότε ο πλέον ο initiator εμφανίζει τον target σαν έναν scsi controller εγκατεστημένο μέσα στο λειτουργικό. Αυτή είναι και η διαφορετικότητα του iSCSI, ότι δηλαδή δεν κάνουμε mount κάποιο partition του δικτύου, αλλά στην ουσία αποκτάμε άλλον έναν controller στο pc μας και το χρησιμοποιούμε σαν έναν κανονικό δίσκο. Το πρωτόκολλο αυτό αν και παλιό πλέον, τώρα βρίσκει εφαρμογή και προσφέρει την καλύτερη ταχύτητα απ’ όλα τα υπόλοιπα πρωτόκολλα. Ωστόσο συναντάται περισσότερο σε εταιρικά δίκτυα, αλλά πλέον και τα δυο NAS λειτουργικά που θα συζητήσουμε το έχουν διαθέσιμο προς χρήση, οπότε και θα το εξετάσουμε. Επίσης για τους τυχερούς που είχαν την ευκαιρία να κατέχουν και να παίξουν τους παλιούς Cheetah και τους controller της Adaptec, είναι ευκαιρία να πάρουν και γεύση από το μέλλον τους.

Link to comment
Share on other sites

4. Εξοπλισμός (για την ώρα)

Client 1

  • AMD Phenom-II 940
  • Asus M3A79T-Deluxe
  • 4GB Ram (εκ των οποίων 2GB Ramdrive)
  • 1Gbit – Marvell Yukon 88E8056 PCI-E (on board Ethernet controller)
  • Windows XP 32bit – SP3

Client 2

  • Intel E6600
  • Abit AW9D-MAX
  • 4GB Ram (εκ των οποίων 2GB Ramdrive)
  • 2x 1Gbit Realtek RTL8111B PCI-E (on board Ethernet controller)
  • Windows Vista 32bit – SP1

Client 3

  • AMD Phenom-II 940
  • DFI 790FX-M2R
  • 4GB Ram (εκ των οποίων 2GB Ramdrive)
  • 2x 1Gbit Marvell Yukon 88E8052 και 88E8053
  • (Προσεχώς) Intel PRO/1000 PT Dual Port Server Adapter

NAS1

  • Atom 230 @ 1600ΜΗz (D945GCLF)
  • Intel 945GC
  • ICH7 με δυο κανάλια SATA-II (όχι raid)
  • 1GB DDR2 / 667MHz
  • Intel PRO/1000GT PCI Ethernet card
  • 1x WD6400AAKS
  • 1x 2GB CF card 133x (για OS)
  • FreeNAS v0.69 – 32bit(FreeBSD λειτουργικό)

NAS2

  • C2D E5200 @ 2.5GHz
  • G31MX-K motherboard
  • 2GB DDR2 / 667MHz
  • 1000Mbps onboard LAN (RTL8111B)
  • (Προσεχώς) Intel PRO/1000 PT Desktop Adapter
  • 2x WD6400AAKS Raid-1 & Raid-0
  • OpenFiler v2.3 – 32bit (Linux λειτουργικό)

Gigabit Switch

Εφαρμογές

Τα προγράμματα τα οποία χρησιμοποιήθηκαν είναι κυρίως το AdvancedRM, το οποίο είναι ένα monitor utility για SNMP συσκευές. Το SNMP (Simple Network Management Protocol) είναι ένα πρωτόκολλο επικοινωνίας, το οποίο αναλαμβάνει να στέλνει διάφορες παραμέτρους που αφορούν την κατάσταση της συσκευής σε έναν client ο οποίος τις επεξεργάζεται και μας τις εμφανίζει. Με το AdvancedRM λοιπόν και λόγο του ότι το switch υποστηρίζει SNMP, διάβαζα την πραγματική ταχύτητα μεταφοράς των δεδομένων από το NAS στους clients και αντίστροφα.

Για FTP client χρησιμοποιήθηκε το FileZilla Portable, το οποίο είναι freeware.

Για remote management των Linux/FreeBSD λειτουργικών το Putty Portable.

Για iSCSI client στα Windows, το Microsoft iSCSI Initiator.

Για τα HTTP downloads, το IDM (Internet Download Manager).

Link to comment
Share on other sites

5. Openfiler v.2.3 (OF)

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

Το OpenFiler δεν τίποτα άλλο, από άλλη μια από τις χιλιάδες distributions του linux. Ο πυρήνας της έκδοσης 2.3 είναι ο 2.6.27.10 και είναι βασισμένο στην πλατφόρμα rPath, τo οποίο σημαίνει ότι κουβαλάει και μια κληρονομιά μαζί του από πολλές εφαρμογές οι οποίες είναι pre-compiled σε αυτήν. Με τον όρο pre-compiled εφαρμογής, θα πρέπει να σκέφτεται αντίστοιχα ένα setup.exe των windows, το οποίο τρέχει και εγκαθιστά αυτόματα μια εφαρμογή στο λειτουργικό. Το έργο της εύρεσης και της εγκατάστασης των εφαρμογών αυτών, αναλαμβάνει ο package manager του rPath, ο οποίος λέγεται conary και έχει εξ’ αρχής μέσα του τα repositories (links στο internet που περιέχουν την λίστα με τα περιεχόμενα των pre-compiled εφαρμογών του rPath) του rPath. Έτσι μπορεί κάποιος να εγκαταστήσει στον OF, οποιαδήποτε εφαρμογή, που υποστηρίζει το rPath αρκεί να υπάρχει σύνδεση στο internet γιατί όλα τα αρχεία κατεβαίνουν από εκεί. Φυσικά, αν δεν υποστηρίζεται κάποια εφαρμογή από το rPath, μπορεί κάποιος να την κάνει build καθώς στον OF μπορεί να εγκατασταθεί GCC μέσω του Conary. Γενικά το OF είναι μια κανονική διανομή Linux και μπορούμε να κάνουμε τα πάντα σε αυτή.

To OpenFiler υποστηρίζει τα εξής:

  • CIFS/SMB
  • NFS v3
  • FTP
  • HTTP
  • Rsync
  • iSCSI
  • NIS, LDAP
  • SSH
  • Modular user authentication
  • UPS Management
  • Conary package manager (με repositories από το rPath)

Θετικά:

  • Πολύ καλές επιδόσεις
  • Aπλό και εύχρηστο web interface
  • Ενσωματωμένο Package Manager (Conary)
  • Linux

Αρνητικά:

  • απαίτηση του για περισσότερους πόρους συστήματος
  • Οι πληροφορίες και η βοήθεια. Παρόλο που υπάρχει forum και αρκετά documentation, παρέχονται με το σταγονόμετρο και μάλλον αυτό οφείλεται στο γεγονός ότι administrator guide το πουλάνε 29€ και το subscription για support είναι στα 999€ για τον ιδιώτη και φτάνει στα 5999€ για το enterprise subscription. Λόγω αυτού από μένα παίρνει ένα τεράστιο μείον, γιατί σίγουρα δικαιούνται χρήματα για τον κόπο τους, αλλά κάπως μου έρχεται.
  • Ορισμένα links από το web interface δεν δουλεύουν σωστά ή δεν υπάρχει σαφής ένδειξη του τι γίνεται εκείνη την στιγμή στο σύστημα
  • Κάποιες φορές δεν θα αποφύγετε το terminal

Τώρα όσων αφορά το πρακτικό μέρος, αρχικά κατεβάζουμε την τελευταία έκδοση του OF (2.3 την ώρα που γράφεται ο οδηγός 26/1/2009)... Στην συνέχεια καίμε το ISO σε ένα cd και μπουτάρουμε με αυτό. Το παρακάτω video δείχνει πως δημιουργούμε raid partitions και logical volumes. Το μηχάνημα πάνω στο οποίο έστησα τον OF είναι το NAS2, το οποίο είχα περιγράψει νωρίτερα και αυτό λόγω του ότι έχει περισσότερες απαιτήσεις σε πόρους σε σχέση με το FreeNAS, το οποίο είναι καταλληλότερο για τον Atom και συνεπώς το NAS1 setup.

Αφού κάνει boot το OF θα μας βγάλει σε ένα γραφικό περιβάλλον, εκεί έχουμε την επιλογή να τσεκάρουμε το cd της εγκατάστασης, οπότε όποιος θέλει μπορεί να το κάνει ή να πατήσει Skip. Στο μενού πλέον της εγκατάστασης, το οποίο μου θύμισε πολύ την Fedora μέχρι που συνειδητοποίησα ότι χρησιμοποιεί τον ίδιο installer (anaconda), προχωράμε μέχρι να φτάσουμε στο σημείο που επιλέγουμε τα drives στα οποία θα γίνει εγκατάσταση. Εκεί επιλέγουμε να κάνουμε την εγκατάσταση manual και δεν αφήνουμε το OF να ετοιμάσει μόνο του τα partitions. To setup το δικό μου αποτελείται από 2x WD6400AAKS, οπότε βλέπω δυο σκληρούς δίσκους οι οποίοι έχουν αναγνωριστεί ως /dev/sda και /dev/sdb. Προσωπικά επέλεξα το παρακάτω partitioning:

2GB – Raid1 για το λειτουργικό (Mount point: /)

2GB – Raid0 για το swap

Τον υπόλοιπο χώρο – LVM Raid0 για τα data

Ο χώρος των data πρέπει να γίνει με τον LVM (Logic Volume Manager), γιατί έτσι τον διαχειρίζεται το OF. Αν δεν το κάνουμε αυτό θα έχουμε πρόβλημα στο μέλλον και ιδιαίτερα αν μας ενδιαφέρει το iSCSI.

Το LVM είναι ένα επίπεδο πάνω από τους φυσικούς δίσκους και σκοπός του είναι να ενοποιεί ότι δίσκους και να έχουμε, κάτω από ένα group το οποίο εμφανίζεται στο σύστημα σαν ένας δίσκος, δηλαδή είναι ένας εικονικός δίσκος ο οποίος μπορεί να αποτελείται από οποιονδήποτε αριθμό και είδος δίσκων. Αυτό είναι πολύ χρήσιμο όταν θέλουμε να επεκτείνουμε τον διαθέσιμο χώρο για τα δεδομένα μας, προσθέτοντας άλλον ένα δίσκο, ο οποίος όμως όταν προστίθεται δεν φαίνεται σαν ξεχωριστός, αλλά η χωρητικότητα του προστίθεται στο group. Επίσης μπορούμε πολύ εύκολα να δημιουργούμε partitions πάνω σε αυτόν τον εικονικό δίσκο και να τους αλλάζουμε το μέγεθος κατά βούληση, χωρίς κανένα περιορισμό. Γενικά οι δυνατότητές του LVM είναι πάρα πολλές και χρήζει προσοχής.

Προτίμησα την διαδικασία του partitioning να μην την περιγράψω αναλητικά, καθώς θέλει ώρα, οπότε έφτιαξα ένα avi βιντεάκι με τα βήματα ένα προς ένα. Η ποιότητα το ξέρω είναι super καταπληκτική, αλλά δυστυχώς με την κάμερα που έχω και πάλι καλά είναι, πάντως αυτά που πρέπει να φαίνονται, φαίνονται.

Video με την δημιουργία partitions κατά την εγκατάσταση του OpenFiler 2.3

Μόλις τελειώσει η εγκατάσταση και όλα πάνε καλά, τότε αφού κάνουμε restart το σύστημα μας θα πρέπει να φορτώσει το linux. Μόλις τελειώσει το boot τότε θα δούμε στην οθόνη μας το μαγικό:

Welcome to OpenFiler NAS/SAN Appliance, version 2.3
Web administration GUI: https://xxx.xxx.xxx.xxx:446/
localhost login:

Από εδώ και πέρα θα αναφέρομαι στον OF με την IP x.003.

Στο switch με την IP x.254

Στον router με την IP x.001

Στον Client1 με την IP .002

Στον Client με την IP x.003

Τώρα πλέον δεν χρειαζόμαστε την οθόνη και το πληκτρολόγιο, αλλά μπορούμε να συνεχίσουμε με έναν ssh client όπως το putty. O καθένας διαλέγει όποιον τρόπο θέλει και συνεχίζει, απλά με το putty δεν υπάρχει πλέον η ανάγκη οθόνης, πληκτρολογίου, ποντικιού στο μηχάνημα και τοπική μας παρουσία στον ίδιο χώρο με αυτό.

Κάνουμε login σαν root με το password το οποίο ορίσαμε στην εγκατάσταση και ΔΕΝ τρέχουμε καθόλου το web interface.

login as: root
root@192.168.1.36's password:

Στην συνέχεια κάνουμε update την βάση της locate


[root@localhost ~]# updatedb

Μετά βλέπουμε τι πουλιά πιάνει ο controller με το software raid για κάθε partition ξεχωριστά.


[root@localhost ~]# hdparm -tT /dev/md0

/dev/md0:
Timing cached reads: 4200 MB in 2.00 seconds = 2100.00 MB/sec
Timing buffered disk reads: 354 MB in 3.02 seconds = 117.40 MB/sec
[root@localhost ~]# hdparm -tT /dev/md1

/dev/md1:
Timing cached reads: 4244 MB in 2.00 seconds = 2122.32 MB/sec
Timing buffered disk reads: 346 MB in 3.02 seconds = 114.73 MB/sec
[root@localhost ~]# hdparm -tT /dev/md2

/dev/md2:
Timing cached reads: 4180 MB in 2.00 seconds = 2089.79 MB/sec
Timing buffered disk reads: 638 MB in 3.00 seconds = 212.32 MB/sec

Οπότε βλέπουμε ότι η ταχύτητα 2x WD6400AAKS σε software raid είναι υπερ-αρκετή για το NAS καθώς υπερκαλύπτουν στο διπλάσιο το μέγιστο bandwidth του Gigabit δικτύου μας.

Στην συνέχεια κάνουμε update τον package manager.


[root@localhost ~]# conary update conary
[root@localhost ~]# conary updateall

Είναι πολύ σημαντικό να κάνουμε update τον Conary πριν τρέξουμε το web interface, γιατί έτσι γλιτώνουμε ένα μικρό bug του OF με το update του samba server, το οποίο όμως ξεπερνιέται και με άλλο τρόπο, το οποίο τον αναφέρουν στο forum του OF, απλά με την πιο πάνω μέθοδο, παρόλο που δεν το αναφέρουν κάπου, ξεφεύγουμε του bug.

Εδώ για τον απλό χρήστη τελειώνει και η γνωριμία με το terminal, το οποίο θα το ξαναδεί μόνο όταν υπάρξει κάποιο πρόβλημα. Βέβαια για τους πιο μυημένους έχει ακόμα πολύ ψωμί, αλλά αυτοί ξέρουν τι να κάνουν. Στην συνέχεια πάμε στον browser του client και δίνουμε την IP την οποία έχει το NAS, αλλά ζητάμε την πόρτα 446, δηλαδή https://x.003:446/ (προσοχή HTTPS) και μαγικά εμφανίζεται μια προειδοποίηση. Δεν ανησυχούμε όμως γιατί οφείλεται σε ένα πρόβλημα με τα πιστοποιητικά του OF καθώς χρειάζεται να τρέχει κάποια scripts μέσα στον browser, οπότε συνεχίζουμε κανονικά και φτάνουμε στο σημείο που μας ζητάει το username και το password, τα οποία είναι openfiler και password αντίστοιχα.

Στην συνέχεια πάμε στο menu System -> Network Setup (τα υπομενού βρίσκονται σε μια λίστα δεξιά) και εκεί δίνουμε για hostname: NAS και στο πεδίο Network Access Configuration προσθέτουμε τον εξής κανόνα:


Name: Local
Network/Host: 192.168.1.0 (αν το sub network μας είναι 192.168.1.xxx)
Netmask: 255.255.255.0
Type: Share

Επίσης αν η κάρτα δικτύου μας υποστηρίζει "jumbo frames" τότε στο πεδίο "Netwok Interface Configuration" πατάμε "Configure" στο interface που έχει βρει ο OF (μπορεί να είναι και παραπάνω από ένα) και επιλέγουμε για MTU = 9000 ή 7000. Προσοχή αν δούμε ανωμαλίες στο δίκτυο ή την επικοινωνία το αλλάζουμε πάλι στο default το οποίο είναι 1500.

Κάθε φορά που κάνουμε μια αλλαγή πατάμε update στο πεδίο για να αποθηκευτεί η αλλαγή.

Το αποτέλεσμα θα πρέπει να δείχνει κάπως έτσι.

01System.png

Στην συνέχεια πάμε στο menu Services-> Manage Services και ενεργοποιούμε όσα services μας ενδιαφέρουν. Δεν θα μπω σε πολλές λεπτομέρειες για την ώρα, αλλά εν καιρώ θα εμπλουτίζω τον οδηγό για το κάθε service. Για την ώρα θα περιγράψω μόνο το service του CIFS/SMB.

02Services.png

Αφού κάνουμε Enable το CIFS/SMB πρέπει να πάμε και να ορίσουμε τι θα μπορεί να είναι κοινόχρηστο από το NAS στο δίκτυο μας. Επομένως πάμε στο menu Volumes->Add Volume και στο πεδίο “Create a volume in VolGroup00” (το VolGroup00 μπορεί να είναι διαφορετικά σε εσάς, ανάλογα με το τι ορίσατε κατά την εγκατάσταση) συμπληρώνουμε τα εξής:

03CreateVolume.png

Πατάμε Create και περιμένουμε τον OF να τελειώσει με την δημιουργία του partition, πράγμα που μπορεί να πάρει από μερικά δευτερόλεπτα μέχρι μερικά λεπτά, ανάλογα το μέγεθος, καθώς του κάνει και format στο file system που του δηλώσαμε. Πάντως μόλις τελειώσει (ακούγεται και ο δίσκος ας είμαστε δίπλα του) θα το καταλάβουμε από τον browser ο οποίος δεν θα περιμένει πλέον απάντηση από το NAS και μας δείξει το παρακάτω.

04CreateVolume2.png

Όσων αφορά την χρήση θέλει λίγο προσοχή και πρέπει να συνηθίσουμε στο γεγονός του ότι λόγω της απουσίας του terminal δεν μπορούμε να καταλάβουμε τι κάνει το σύστημα. Συνήθως ο browser μπαίνει σε ένα στάδιο αναμονής με μια κλεψύδρα ή κάποιο animation, οπότε καταλαβαίνουμε ότι το web interface δεν έχει λάβει ακόμα απάντηση.

05Shares_1.png

Στην συνέχεια στο menu Shares->Existing Shares, θα δούμε ότι έχει εμφανιστεί ένα Network Share με το όνομα που δώσαμε πριν. Κάνουμε κλικ στο shared folder που έχουμε δημιουργήσει και ανοίγει ένα νέο menu στο οποίο πρέπει να δημιουργήσουμε ένα sub-folder, το οποίο υποθέτουμε ότι το ονομάζουμε Movies.

05Shares_2.png

Έπειτα κάνουμε κλικ στον νέο φάκελο και εμφανίζεται ένα άλλο menu στο οποίο αν θέλουμε μπορούμε να δημιουργήσουμε έναν άλλο υπο-φάκελο μέσα σε αυτόν, αλλά για την ώρα πατάμε το κουμπί που λέει “Make Share”

05Shares_3.png

Στο πεδίο “Edit share /mnt/VolGroup00/public/Movies/” πρέπει υποχρεωτικά να δώσουμε στο “Override SMB/Rsync share name” ένα όνομα. Εκεί θα επιλέγουμε να είναι ίδιο με το όνομα του φακέλου, καθώς είναι η συντόμευση με την οποία θα κάνουμε mount τον κοινόχρηστο αυτό φάκελο. Τέλος πατάμε update

05Shares_4.png

Στην συνέχεια επιλέγουμε Public guest access από το πεδίο "Share Access Control Mode" καθώς δεν θέλουμε ακόμα να μπλέξουμε με πιστοποιήσεις χρηστών (και συνεπώς το LDAP) και πατάτε update. Μόλις το κάνετε αυτό, θα εξαφανιστούν κάποια πεδία τα οποία δεν χρειάζονται πια, οπότε στο τελευταίο πεδίο ορίζεται τα δικαιώματα όπως στην παρακάτω εικόνα, έτσι ώστε να μπορεί οποιοσδήποτε χρήστης του δικτύου να διαβάζει και να γράφει δεδομένα στον κοινόχρηστο φάκελο.

05Shares_5.png

Προσοχή να τσεκάρετε το "Restart services" έτσι ώστε να ενεργοποιηθούν οι αλλαγές.

Αυτό ήταν! Πλέον πάμε στο Desktop και κάνουμε δεξί κλικ στο "My Computer" και επιλέγουμε το "Map Network Drive" και στο παράθυρο που ανοίγει γράφουμε την IP διεύθυνση του NAS η οποία ακολουθείτε με την συντόμευση του ονόματος του φακέλου που δηλώσαμε πριν, δηλαδή στην περίπτωση μου:

06Mount.png

Και πατάμε "Finish"... La voila, ανοίγει ο φάκελος.

Θυμηθείτε εδώ αυτά που λέγαμε προηγουμένως. Δηλαδή ότι το CIFS/SMB network file system δούλεψε στο background για να δούμε αυτό το αποτέλεσμα, οπότε υπάρχει ένα service στο NAS το οποίο εκτελεί εντολές του client και μεταφέρει τα αποτελέσματα πίσω στον client, ο οποίος με την σειρά του έχει ενσωματωθεί στον windows explorer και τελικά έχει σαν αποτέλεσμα να μας εμφανίζει ένα partition του linux, το οποίο έχει ext3 file system, μέσα στα windows μας που έχουν NTFS. Δηλαδή από πίσω λειτουργεί το πρωτόκολλο του CIFS/SMB, το οποίο αναλαμβάνει τον διερμηνέα ανάμεσα στο file system του linux και το fs των windows. Φυσικά η διαδικασία αυτή παίρνει χρόνο με αποτέλεσμα να μειώνεται η ταχύτητα μεταφοράς των δεδομένων, ανάλογα με την ισχύ επεξεργασίας του client/server.

Οπότε πλέον έχουμε καταφέρει να εγκαταστήσουμε τον OpenFiler, να δώσουμε υποτυπώδη δικαιώματα πρόσβασης, να δημιουργήσουμε partitions με τον LVM, να ενεργοποιήσουμε το service του CIFS/SMB και τέλος να συνδεθούμε από τα windows στο NAS μας.

Όσων αφορά την ασφάλεια τώρα, το OF παρέχει ένα service το οποίο λέγεται LDAP. Το LDAP λοιπόν είναι που είναι στραβό να το κατανοήσει κανείς, στην περίπτωση του OF το έφαγε και ο γάιδαρος. Τέλος πάντων έχει κάποιο bug το οποίο όμως με μια συγκεκριμένη διαδικασία αντιμετωπίζεται, αλλά μέχρι να το βρω μου έσπασε τα νεύρα σε σημείο να το παρατήσω. Την λύση θα την δώσω κάποια άλλη στιγμή, καθώς σκοπός μου είναι να μεγαλώσω σιγά-σιγά τον οδηγό και να φτάσω και στο κεφάλαιο του user authentication.

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

Τέλος παραθέτω μερικές ακόμα εικόνες από το web interface του OpenFiler, για όποιον θέλει να πάρει μια πρόγευση από τα menu του.

th_OF_status.png

th_OF_system.png

th_OF_volumes.png

th_OF_accounts.png

th_OF_quotas.png

th_OF_services.png

th_OF_shares.png

Link to comment
Share on other sites

6. FreeNAS

Το FreeNAS είναι βασισμένο στο λειτουργικό FreeBSD και στον kernel 6.1. Η έκδοση που επιλέχθηκε είναι η τελευταία σταθερή, δηλαδή0.69.4276 , η οποία όμως δεν είναι συμβατή με την κάρτα δικτύου του NAS2 (D945GCLF). Σε αντίθεση με το OpenFiler, το λειτουργικό αυτό είναι πολύ μικρό σε χώρο και πολύ σβέλτο και παρόλ' αυτά έχει χωρέσει όλα τα απαραίτητα services για ένα υπερ-πλήρες NAS. Μάλιστα τρέχει περισσότερα NAS services απ' ότι το OF, ωστόσο είναι μικρότερο. Αυτό δεν οφείλεται σε μαγικά, απλά ο πυρήνας του (kernel) έχει μόνο τα τελείως απαραίτητα, οπότε είναι πολύ μικρός, το οποίο είναι καλό αν θέλουμε να το εγκαταστήσουμε πχ σε μια CF, αλλά έχει το κακό ότι του λείπουν πολύ βασικές εντολές, οπότε δύσκολα μπορούμε να παρέμβουμε στα σωθικά και την λειτουργία του. Επομένως, είναι το ιδανικό NAS για κάποιον αρχάριο ή για κάποιον που δεν θέλει να ασχοληθεί ή να σκάσει και πολύ. Φυσικά αυτό έχει και τα αρνητικά του, όπως για παράδειγμα αν γίνει μια “στραβή” με κάποιο raid τότε δύσκολα το γλιτώνουμε.

Όσων αφορά τώρα το setup που χρησιμοποιήθηκε, όπως είπα η έκδοση 0.69 δεν είναι συμβατή με την NIC του D945GCLF, η beta όμως έκδοση του FreeNAS (nightly build) την υποστηρίζει, αλλά λόγο του ότι είναι 10/100Mbps χρησιμοποίησα ούτως ή άλλως την Intel PRO/1000 GT στην ελεύθερη PCI του motherboard. Προσοχή όμως, όποιος έχει το D945GCLF και θέλει να του περάσει την έκδοση 0.69.4276 του FreeNAS, θα πρέπει να απενεργοποιήσει από το bios την onboard κάρτα δικτύου, διαφορετικά θα του χτυπάει συνεχώς kernel panic. Κόντεψε να με τρελάνει μέχρι να το βρω, αλλά τελικά φταίει κάποιος driver που πάει να φορτώσει και δεν θέλει με τίποτα να βλέπει την NIC. Η τελευταία beta όμως δεν έχει τέτοιο πρόβλημα.

To FreeNAS υποστηρίζει (μέσω του web interface του):

  • CIFS/SMB
  • FTP
  • NFS v3 & v4(beta)
  • AFP
  • Rsync
  • ZFS
  • iSCSI
  • Unison
  • UPnP
  • iTunes/DAAP
  • DDNS
  • SNMP
  • UPS Management
  • HTTP server
  • BitTorrent
  • LDAP
  • S.M.A.R.T.
  • Local user authentication
  • LAGG, VLAN
  • Disk Power Management
  • Backup/Restore
  • Factory Defaults (ΤΕΛΕΙΟ!!!)
  • Status graphs (LAN/CPU Load)
  • File editor
  • File Management
  • Command execution
  • Log Viewer
  • ARP Tables
  • Ping/TRaceroute
  • Reboot/Shutdown

Θετικά:

  • Ενσωματώνει πολύ όμορφο web-interface, το οποίο είναι εύκολο στην χρήση και δίνει πολλές δυνατότητες αλληλεπίδρασης του χρήστη μέσω του interface του
  • Πολύ μικρό σε όγκο (30ΜΒ) και δεν απαιτεί πολλούς πόρους από το σύστημα για να τρέξει, επομένως μπορεί να “αναστήσει” παλιά μηχανήματα όπως P-II, Athlon τα οποία μπορούν να βρουν χρήση σαν NAS
  • Το OS φορτώνει και τρέχει εξ’ ολοκλήρου από την RAM (αυτό βέβαια είναι και αρνητικό αν δεν υπάρχει ups και δεν γίνει sync), το οποίο το κάνει πολύ ευέλικτο και γρήγορο
  • Έχει Wiki στα ελληνικά
  • Υπάρχει επαρκές documentation*, το οποίο αν και είναι λίγο παλιό, περιέχει τις ουσιαστικές πληροφορίες που χρειάζεται κάποιος για να ξεκινήσει και να σετάρει ότι λειτουργίες του παρέχει το λειτουργικό

* Όσων αφορά το τελευταίο, δηλαδή το documentation, εδώ θα βρείτε το user guide του FreeNAS και εδώ είναι το πολύ καλό forum τους.

Αρνητικά:

  • Από την άλλη στα αρνητικά του συγκαταλέγονται ότι σε αρκετά πράγματα, ακόμα και για χρήστες που έχουν επαφή με το Linux, θα χρειαστούν κάποιο χρόνο εξοικείωσης με το λειτουργικό (FreeBSD)
  • Χρησιμοποιεί δικό του file system οπότε δεν είναι δυνατό το mount των δίσκων από κάποιο linux
  • η έκδοση αυτή δεν περιέχει κάποιο gcc compiler, επομένως οι παιχνιδιάρηδες θα πρέπει να έχουν κάποιο vm με FreeBSD που θα έχει compiler ώστε να κάνουν build τα λογισμικά που θέλουν να ενσωματώσουν και μετά να τα κάνουν install στο NAS τους

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

Εγκατάσταση.

Η εγκατάσταση του FreeNAS είναι πολύ απλή και χρειάζεται μόνο μια οθόνη και ένα πληκτρολόγιο. Στο δικό μου setup (NAS1) τελικά χρησιμοποίησα μόνο έναν WD6400AAKS. Αρχικά είχα φτιάξει ένα software raid 0, αλλά λόγο του ότι η ταχύτητα του στο δίκτυο δεν έπιανε την ταχύτητα ενός μονού δίσκου, έσπασα το raid και άφησα μόνο τον ένα. Η διαφορά στις επιδόσεις είναι ανύπαρκτη. Στο παρακάτω link μπορείτε δείτε την εγκατάσταση του FreeNAS, την οποία την έκανα σε ένα virtual machine για να την γράψω σε avi. Τα βήματα είναι απλά και ξεκάθαρα.

Video με την εγκατάσταση του FreeNAS

H ταχύτητα του δίσκου σε αυτό το setup με το FreeNAS είναι:

freenas:/# dd if=/dev/zero of=/mnt/storage/test.dat bs=1024 count=524288
524288+0 records in
524288+0 records out
536870912 bytes transferred in 7.816898 secs (68680812 bytes/sec)

~65.5MB/sec

και

freenas:/# dd if=/dev/zero of=/mnt/storage/test.dat bs=2048 count=524288
524288+0 records in
524288+0 records out
1073741824 bytes transferred in 10.781529 secs (99590868 bytes/sec)

~95ΜΒ/sec

και

freenas:/# dd if=/dev/zero of=/mnt/storage/test.dat bs=4096 count=524288
524288+0 records in
524288+0 records out
2147483648 bytes transferred in 20.159432 secs (106525008 bytes/sec)

~101.5MB/sec

και

freenas:/# dd if=/dev/zero of=/mnt/storage/test.dat bs=8192 count=524288
524288+0 records in
524288+0 records out
4294967296 bytes transferred in 40.169252 secs (106921765 bytes/sec)

~102ΜΒ/sec

Δηλαδή φτάνει και μέχρι και ~102MB/sec για μεγάλο bs, οπότε δεν θα είναι bottleneck για το δίκτυο.

Link to comment
Share on other sites

7. Linux / Windows NAS Servers

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

Link to comment
Share on other sites

8. Μετρήσεις με 1 NIC

Σε όλες τις μετρήσεις, ο client που συνδέεται στον NAS χρησιμοποιεί σαν partition στο οποίο γίνονται τα read/writes, το Ramdrive των 2GB και κάθε φορά ανταλλάσονται 2 ίδια αρχεία των 945,197,056 bytes, δηλαδή ~901ΜΒ, άρα σύνολο 1802ΜΒ και ονομασία data_test_0.dat και data_test_1.dat αντίστοιχα. Η χρήση του ramdrive στην πλευρά του client επιλέχθηκε έτσι ώστε να μην υπάρχει bottleneck από την πλευρά του, οπότε το NAS να αποδίδει το μέγιστο. Για τον λόγο αυτό και τα screenshots από το AdvancedRM δεν έχουν μεγάλο μήκος (στον χρόνο δηλαδή), καθώς τα ~2GB μεταφέρονται γρήγορα. Μόνο στο test του http χρησιμοποιήθηκαν περισσότερα αρχεία. Τέλος το βελάκι στις περιγραφές των εικόνων δείχνει την ροή των δεδομένων.

8.1 Μετρήσεις με τον OpenFiler

Εδώ ακολουθούν οι μετρήσεις με NAS τον OpenFiler, ο οποίος είναι εγκατεστημένος στο σύστημα NAS2 και τον Client1.

8.1.1 CIFS/SMB

CIFS/SMB: Openfiler -> Client

Ας δούμε τι γίνεται με το CIFS/SMB το οποίο είναι το βασικό δικτυακό πρωτόκολλο για τα windows τα οποία τα χρησιμοποιούμε και οι περισσότεροι.

01SMB_of_to_client.png

CIFS/SMB: Client -> Openfiler

02SMB_client_to_of.png

Εδώ παρατηρούμε ότι το CIFS/SMB δεν αποδίδει πολύ καλά σε ένα Gigabit δίκτυο. Αυτό ύστερα από τις επόμενες μετρήσεις, αποδείχτηκε ότι οφειλόταν στην "κακή" υλοποίηση του CIFS/SMB από τον Openfiler. Δυστυχώς, αυτό είναι λίγο πολύ αναμενόμενο, καθώς το samba service το οποίο υλοποιεί το CIFS/SMB στο linux, δεν είναι και ότι καλύτερο όσον αφορά την απόδοση και την ταχύτητα. Παρόλ' αυτά και τα ~50MB/sec δεν είναι αμελητέα ταχύτητα, αλλά σίγουρα δεν είναι ανάλογη με την ταχύτητα ανάμεσα από τα XP και τα Vista όταν μοιράζονται με το SMB τα δεδομένα τους. Αυτό φαίνεται παρακάτω με τους δυο clients (Client1[XP] και Client2[Vista]). Υπενθυμίζω ότι οι συνθέσεις του κάθε μηχανήματος αναγράφονται στο post #4.

CIFS/SMB: Client2[Vista] -> Client1[XP]

03SMB_vista_to_xpvista.png

CIFS/SMB: Client1[XP] -> Client2[Vista]

04SMB_xp_to_vistavista.png

Επομένως όσων αφορά το CIFS/SMB o OpenFiler δυστυχώς δεν τα καταφέρνει και πολύ καλά σε σχέση με τα windows, πράγμα λίγο-πολύ αναμενόμενο, καθότι πρωτόκολλο της Microsoft.

8.1.2 FTP

FTP: OpenFiler -> Client

04SMB_xp_to_vistavista.png

FTP: Client -> Openfiler

02FTP_client_to_nas.png

Στο FTP βλέπουμε ότι το εύρος (bandwidth) του Gigabit Ethernet πραγματικά αξιοποιείται και πιάνει την μέγιστή του ταχύτητα. Επομένως το FTP service του OF αποδεικνύει τελικά, πως το λειτουργικό μπορεί να αξιοποιήσει τα υποσυστήματά του σωστά και να "γεμίσει" το δίκτυο.

8.1.3 HTTP

Για τις μετρήσεις του HTTP, ενεργοποιήθηκε ο web server του OpenFiler και συνδέθηκε σε αυτόν ο Internet Download Manager και κατέβασε συνολικά 8 αρχεία με 4 ταυτόχρονες συνδέσεις και 5 threads ανά σύνδεση.

HTTP: OpenFiler -> Client

01nas_to_client.png

To HTTP σαν πρωτόκολλο φυσικά δεν διακρίνεται για την ταχύτητά του και άλλωστε δεν έχει φτιαχτεί γι' αυτό το σκοπό, καθώς είναι και text πρωτόκολλο και όχι binary. Δηλαδή τα δεδομένα του δεν επιδέχονται κάποια ιδιαίτερη μορφωποίηση ή κωδικοποίηση, αλλά "ταξιδεύουν" στο Ethernet δίκτυο ως ascii ή unicode χαρακτήρες. Παρόλ' αυτά τα 21MB/sec είναι ικανοποιητικά για ένα τέτοιο σύστημα.

8.1.4 iSCSI

To πρωτόκολλο του iSCSI, όπως αναφέραμε, το partition (logic volume) του NAS εμφανίζεται στον Client σαν ένας SCSI controller με την χρήση του Microsoft iSCSI initiator. Οπότε οι μετρήσεις έγιναν με το HDTune και χρησιμοποιήθηκε block size ίσο με 2MB, λόγο του ότι το default MTU, δηλαδή το μέγιστο μέγεθος του πακέτου (frame) του TCP/IP το οποίο θα κυκλοφορήσει στο δίκτυο, είναι 1500bits, οπότε ένα block size αποτελείται από 10 περίπου TCP/IP frames. Άρα δημιουργούμε μια ομοιόμορφη κατανομή πακέτων στο δίκτυο και μειώνουμε το latency από την πλευρά του NAS.

iSCSI: OpenFiler -> Client

iscsi_hdtune_read_2mb.png

iSCSI: Client -> OpenFiler

iscsi_hdtune_write_2mb.png

Όπως παρατηρούμε το iSCSI είναι πραγματικά γρήγορο πρωτόκολλο. Παρατηρείστε ότι το 100% του κάτω άξονα είναι η συνολική χωρητικότητα του δίσκου που έχει μορφοποιηθεί στον NAS σαν iSCSI, δηλαδή είναι 1273GB. Επομένως, βλέπουμε ότι διατηρεί την υψηλή του ταχύτητα κοντά στα 100ΜΒ/sec σε όλο το εύρος του, το οποίο τελικά ίσως είναι λογικό αν αναλογιστούμε ότι η εσωτερική ταχύτητα του raid0 array μέσα στο NAS είναι >200ΜΒ/sec. Παρόλ' αυτά είναι εντυπωσιακές οι επιδόσεις του πρωτοκόλλου iSCSI καθώς αυτό μην ξεχνάμε είναι βασισμένο και κρεμμυδοποιημένο σε μια στοίβα από πρωτόκολλα άλλα.

Επίσης η μικρή επίδραση στο Access time χρήζει προσοχής, αν και πάλι αναμενόμενης, λόγο του Gigabit Ethernet.

Τέλος το μόνο πράγμα που προδίδει ότι αυτό που βλέπουμε δεν είναι δίσκος, αλλά iSCSI είναι το Burst rate το οποίο είναι μικρό. Αυτό φυσικά είναι αποτέλεσμα του περιορισμού του TCP/IP και του MTU τα οποία σε καμιά περίπτωση δεν μπορούν να συγκριθούν με έναν φυσικό δίσκο.

Ευχάριστη έκπληξη επίσης και ο CPU usage, το οποίο κυμαίνεται κάτω από 10%. Μην ξεχνάτε ότι το iSCSI initiator είναι software πρωτόκολλο (service) το οποίο τρέχει στα Windows και είναι κάποιος πραγματικός raid controller.

iSCSI: HDTune Disk monitor (OpenFiler -> Client).

bench_hdtune_disk_monitor.png

iSCSI: HDTune Disk monitor (Client -> OpenFiler).

bench_hdtune_disk_monitor_write.png

iSCSI: ATTO (OpenFiler <-> Client)

bench_ATTO.png

iSCSI: HDTune File Benchmark 512MB (OpenFiler < -> Client).

bench_hdtune_file_512mb.png

iSCSI: IOmeter (OpenFiler -> Client)

bench_iometer_read.png

iSCSI: IOmeter (Client -> OpenFiler)

bench_iometer_write.png

iSCSI: IOmeter max writes (Client -> OpefFiler)

bench_iometer_write_max.png

8.1.4 Αποτελέσματα για τον OpenFiler

Results.png

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

8.2 Μετρήσεις με το FreeNAS

Εδώ ακολουθούν οι μετρήσεις με NAS τον OpenFiler, ο οποίος είναι εγκατεστημένος στο σύστημα NAS1 και τον Client2.

Σημείωση: Η κάρτα δικτύου που χρησιμοποιήθηκε στο setup του NAS1 με τον Atom είναι η Intel PRO/1000 GT, η οποία είναι PCI. Αυτό σημαίνει ότι το θεωρητικό της bandwidth είναι 127.2ΜΒ/sec, οπότε είναι ικανή για Gigabit Ethernet γιατί (127.2 x 1024 x 1024 x 8 = 1067030937,6 bps = ~ 1.016 Gbps). Το οποίο όμως είναι οριακό, οπότε επειδή ως γνωστών η θεωρία από την πράξη απέχουν αρκετά, εκ των πρωτέρων δεν περίμενα εντυπωσιακές επιδόσεις. Παρόλ' αυτά οι επιδόσεις ήταν εντυπωσιακές για αυτό το setup με τον Atom.

8.2.1 CIFS/SMB

CIFS/SMB: FreeNAS -> Client

smb_fn_to_client.png

CIFS/SMB: Client -> FreeNAS

client_to_fn.png

Εδώ πάλι είναι εμφανής η αδυναμία μεγάλης ταχύητας με CIFS/SMB λόγο της samba που τρέχει στο FreeBSD (το λειτουργικό του FreeNAS). Ωστόσο οι διαφορές με τον OpenFiler είναι σχεδόν αμελητέες και μάλιστα ενώ επιτυγχάνει μεγαλύτερη ταχύτητα στο write (Client -> FreeNAS) απ' ότι ο OpenFiler, χάνει στο read (FreeNAS -> Client). Γενικά είναι μια από τα ίδια.

8.2.2 FTP

FTP: FreeNAS -> Client

ftp_fn_to_client.png

FTP: Client -> FreeNAS

ftp_client_to_fn.png

Τελικά εδώ βλέπουμε τον περιορισμό του PCI bus, μάλλον κατά την γνώμη μου (αλλά ίσως και του ίδιου του NIC της intel), οπότε η μέγιστη ταχύτητα δεν ξεπερνά τα 80Mbps. Ωστόσο για το setup είναι πολύ ικανοποιητική ταχύτητα.

8.2.3 HTTP

HTTP: FreeNAS -> Client

http_fn_to_client.png

http_fn_to_client_2.png

Εδώ βλέπουμε καλύτερη ταχύτητα όσον αφορα το downloading από τον HTTP server του FreeNAS, σε σχέση με το OpenFiler. Αυτό έχει να κάνει φυσικά καθαρά με τον web server και όχι την σύσταση του μηχανήματος.

8.2.4 iSCSI

Δυστυχώς με ένα μόνο δίσκο στο FreeNAS, ο οποίος τρέχει και το λειτουργικό, δεν κατέστει δυνατό να εενεργοποιήσω το iSCSI. Θα το διερευνήσω περαιτέρω όμως το θέμα να δω αν υπάρχει κάποιο bug ή όντως χρειάζεται άλλον ένα δίσκο (τον οποίο δεν έχω, τους έχω χρησιμοποιήσει όλους). Οπότε υπομονη.

8.2.4 Αποτελέσματα για το FreeNAS

freenas_results.png

Εδώ βλέπουμε και τα αποτελέσματα από τις επιδόσεις του NAS2 με τον Atom και το σύστημα Client2. Πρωσοπικά έμεινα πολύ ευχαριστημένος από το αποτέλεσμα και μπορώ να πω ότι δεν περίμενα ότι θα κοντράρει τόσο καλά το σύστημα NAS1.

Link to comment
Share on other sites

9. Μετρήσεις με LAG/LACP

Η καλές μετρήσεις με LAG και LACP, θα καθυστερήσουν λίγο μέχρι να έρθει η κυρία και η άλλη κυρία, ωστόσο θα βάλω κάποιες απογοητευτικές όμως μετρήσεις με τις NICs της DFI 790FX-M2R (Marvell Yukon 88E8052 και 88E8053) οι οποίες υποστηρίζουν LAG και συνεργάζονται με το SRW2008. Δυστυχώς οι marvell αυτές είναι αρκετά παλιές (~2006-7) και δεν αποδίδουν πολύ καλά.

Ωστόσο κράτησα κάποιες καλές μετρήσεις με την προηγούμενη mobo (σύστημα Client1) με μονό NIC και ενεργοποιημένο το LAG στο NAS με τον OpenFiler. Η αλήθεια είναι ότι με εξέπληξε ευχάριστα η M3A79-T Deluxe και ειδικά ο ethernet controller της ο οποίος αποδίδει ανέλπιστα καλά.

To LAG έγινε στο NAS2 συνδυάζοντας τον onboard Ethernet controller της Foxconn G31MX-K (Realtek RTL8111B) με τον PCI controller Intel PRO/1000 GT. Το bind (ο συνδυασμός δηλαδή των controller) έγινε μέσα από το web interface του OpenFiler και το SRW2008 switch της Linksys, χρησιμοποιώντας το πρωτόκολλο 803.2ad.

LAG/FTP: OpenFiler -> Client

filezilla_lag_write_to_ramdisk_2.png

LAG/FTP: Client -> OpenFiler

filezilla_lag_write_from_ramdisk_2.png

Σύγκριση LAG και μονής NIC

resultsm3a79-tLAGonlyopenfiler.png

Βλέπουμε ότι η διαφορά στο read (το downloading δηλαδή από το NAS) είναι μεγάλη και έφτασε πραγματικά στα όρια του τον ethernet controller της M3A79-T (Marvell Yukon 88E8056), ο οποίος αποδίδει πολύ κοντά στις θεωρητικές προδιαγραφές του Gigabit Ethernet (~125MB/sec).

Link to comment
Share on other sites

10. Συμπεράσματα

Παρακάτω ακολουθεί ο πίνακας με τις μέχρι στιγμής* συγκρίσεις των δύο NAS συστημάτων NAS1 και NAS2 όπως αυτά περιγράφονται στο post #4.

*Ακόμα δεν έχω καταφέρει να κάνω μετρήσεις με το FreeNAS και το iSCSI.

compare_results.png

Επιδόσεις:

Όπως βλέπουμε το NAS2 με τον OpenFiler στις κρίσιμες μετρήσεις. όπως είναι το CIFS/SMB και το FTP. είναι σαφώς ανώτερος και επίσης μην ξεχνάμε την απόδοση και την ταχύτητα του με το iSCSI. Από την άλλη στο HTTP και το SMB write (για κάποιο λόγο) το NAS2 με το FreeNAS πήρε κεφάλι.

Κατανάλωση:

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

Κόστος:

Όσων αφορά το κόστος και τα δυο NAS συστήματα είναι φθηνά με το NAS1 να είναι φθηνότερο, αλλά χωρίς μεγάλη διαφορά, οπότε δεν θα το πρότεινα και σαν κριτήριο για κάποιον στην επιλογή του, εκτός και αν είναι αναγκαίο

Επεκτασιμότητα:

Το σύστημα NAS2 μπορεί να επεκταθεί και με άλλους δίσκους, controllers, μνήμη κτλ. To NAS1 από την άλλη δεν έχει πολλές επιλογές όσων αφορά την επεκτασιμότητα, καθώς μπορεί να δεχθεί μόνο 2x sata και 2x IDE δίσκους και η μοναδική PCI θύρα που έχει θα πρέπει να κατοχυρωθεί εξ' αρχής για μια Gigabit κάρτα δικτύου, μιας και η onboard του είναι 100Mbps.

Μέγεθος:

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

Λειτουργικό:

Επειδή δεν θέλω να αδικήσω κανένα από τα δυο λειτουργικό, πρέπει να πω ότι μου άρεσαν και τα δυο εξίσου πολύ. Μάλιστα η τελική γεύση που μου άφησαν είναι ότι κάποια πράγματα που έχει το ένα θα ήθελα να τα έχει το άλλο. Τελικά όμως αν έπρεπε να επιλέξω ανάμεσα από τα δυο τότε θα επέλεγα το OpenFiler. Όμως και πρέπει να σταθώ εδώ, θα το έκανα μόνο και μόνο επειδή θέλω να πειραματιστώ και με το linux στο οποίο είναι βασισμένο το openFiler, έτσι ώστε να εγκαταστήσω και άλλες εφαρμογές ή να γράψω δικές μου. Για έναν απλό χρήστη όμως ο οποίος θέλει ένα NAS, τότε θα του έλεγα με κλειστά μάτια το FreeNAS, γιατί είναι μακράν καλύτερο, όσων αφορά την απλότητα και τις υποστηριζόμενες εφαρμογές/υπηρεσίες μέσα από το web interface του. Το FreeNAS έχει όλο το πακέτο εφαρμογών, το οποίο μπορεί να χρειαστεί κάποιος από ένα NAS, όπως πχ το DDNS το οποίο λείπει από τον OpenFiler. Επίσης έχει το καλύτερο feature που μπορεί να υπάρχει σε ένα NAS και λείπει από τον OpenFiler και φυσικά μιλάω για το Reset to defaults, το οποίο επιστρέφει άμεσα το σύστημα στην αρχική του κατάσταση και σε γλυτώνει από χρονοβόρες εγκαταστάσεις. Επίσης είναι πιο ελαφρυά εφαρμογή και ζητάει μόνο 128ΜΒ από έναν δίσκο, αφήνοντας τον υπόλοιπο χώρο ελεύθερο για το NAS. Οι επιδόσεις ωστόσο του FreeNAS είναι λίγο χειρότερες από του OpenFiler, αλλά δεν είναι μεγάλη η διαφορά ώστε να είναι σημαντική.

Τέλος κάποιες επιπλέον παρατηρήσεις όσων αφορά συνολικά τα NAS:

  • Το NAS είναι κάτι το οποίο θα μας απασχολήσει τον επόμενο καιρό, καθώς φέρνει τις ταχύητες ενός desktop στο δίκτυο μας.
  • Πλέον το κόστος για να φτιάξει κάποιος ένα δίκτυο με Gigabit Ethernet και εξοπλισμό δεν είναι αστρονομικό
  • Ακόμα και το πιο μικρό και φθηνό μηχάνημα, όπως η σύνθεση NAS1 με τον Atom, είναι ικανό να δώσει μεγάλες ταχύτητες στο δίκτυο
  • Οι διανομές NAS λειτουργικών (εφαρμογών πιο σωστά προ-εγκατεστημένων σε free διανομές λειτουργικών), αυτή την στιγμή είναι αρκετά σταθερές, εύκολες στην χρήση και στην εγκατάσταση.
  • Είναι πολύ σημαντική η επιλογή ενός καλού ή έστω μέτριου προς καλό Gigabit Ethernet switch

**Tο πεδίο με τα συμπεράσματα θα ενημερώνεται συνεχώς, όσο προκύπτουν κάποιες αλλαγές ή θυμάμαι κάποια πράγματα. :p

Link to comment
Share on other sites

Πάρα πολύ καλό... και πάνω από όλα χρήσιμο για όλους!

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

Τέλος το ποστ με τα συμπεράσματα, θα αλλάζει συχνά ανάλογα με το τι προκύπτει ή αν θυμάμαι ή βλέπω κάποια πράγματα...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

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