Σελίδα 1 από 1

Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 20 Σεπ 2009, 16:25
από kkalop
1. Εισαγωγή

Όλα τα παρακάτω αποτελούν απλές συνταγές για το στήσιμο και την αντιμετώπιση διάφορων προβλημάτων ενός φτηνού Linux File Server (LFS). Σε καμία περίπτωση δεν αποτελούν πανάκεια. Η γνώση και η εμπειρία κάποιου που ασχολείται με το Linux, servers και software raid είναι απαραίτητη. Όπως είχε πει κάποτε ένας γιατρός «Μπορώ να σου δείξω σε μια ώρα πως να κάνεις μια εγχείρηση σκωληκοειδίτιδας, αλλά θα μου πάρει 7 χρόνια να σου πω τι θα κάνεις σε περίπτωση που κάτι πάει στραβά».

2. Επιλογή υλικού (Hardware)

Η σωστή επιλογή και αγορά του υλικού ενός server είναι ίσως το πιο σημαντικό κομμάτι της διαδικασίας καθώς διάφορες ασυμβατότητες υλικού και οδηγών μπορεί να κάνουν το στήσιμο του server αδύνατο.

1.Επεξεργαστής
Ο επεξεργαστή δεν μας απασχολεί ιδιαίτερα καθώς οι επεξεργαστικές ανάγκες ενός file server είναι πολύ περιορισμένες. Γενικά είναι καλύτερα να πάμε σε όσο το δυνατό περισσότερους πυρήνες και χαμηλή συχνότητα.

2.Μνήμη
Γενικά ένας LFS δεν χρειάζεται περισσότερο από 512ΜΒ RAM για να λειτουργήσει. Παρόλα αυτά λόγω της χαμηλής τιμής της μνήμης σήμερα καλό είναι να έχει αρκετή μνήμη (2GB). Το Linux χρησιμοποιεί την επιπλέον μνήμη σαν File System Cache, δηλαδή σαν προσωρινή μνήμη αποθήκευσης έτσι αν 2 άτομα τραβάνε το ίδιο αρχείο από το server ο δεύτερος θα το πάρει από τη μνήμη και όχι από το δίσκο. Αυτό βοηθάει και στην ταχύτητα αλλά και στη μακροζωία του δίσκου.

3.Μητρική
Η Μητρική είναι το σημαντικότερο κομμάτι του υλικού γιατί πάνω βρίσκονται τα περισσότερα υποσυστήματα του server (SATA controller, NIC, GPU). Το πρώτο πράγμα που κοιτάμε είναι να έχει συμβατότητα με το Linux. Πρέπει να έχει αρκετά SATA για τον File Server που χρειαζόμαστε on board κάρτα δικτύου και γραφικών.

4.Τροφοδοτικό
Η ανάγκες ενός LFS σε ενέργεια δεν είναι μεγάλες, ένα 420W τροφοδοτικό για ένα server με 7 σκληρούς, core duo στα 2500GHz, 2GB RAM είναι αρκετό. Σημασία πρέπει να δώσουμε στην ποιότητα του τροφοδοτικού μας. Χονδρικά τα κριτήρια για το πόσο καλό είναι ένα τροφοδοτικό με σειρά σημαντικότητας είναι:
a. Η τιμή του (να είναι τουλάχιστον 40€)
b. Τα χρόνια εγγύησης που δίνει ό κατασκευαστής
c. Η μάρκα του.
d. Το βάρος του. (Όσο πιο βαρύ τόσο πιο καλό.)
Επιπλέον για server κάλο είναι να έχει δύο ανεμιστήρες για αξιοπιστία. Τα τροφοδοτικά με ένα 12άρη ανεμιστήρα είναι επίσης αξιόπιστα. Τα τροφοδοτικά με έναν 8άρη απαγορεύονται δια ροπάλου!

5.Κουτί
Το κουτί του Server δεν χρειάζεται να είναι ακριβό. Το μόνο που πρέπει να μεριμνήσουμε είναι να έχει αρκετές θέσης σκληρών δίσκων, 12άρια ανεμιστήρα μπροστά πίσω και αρκετό χώρο.

6.Κάρτα Δικτύου
Η κάρτα Δικτύου ΠΡΕΠΕΙ να είναι on board GBit. Οι PCI GBit κάρτες μπορούν να δώσουν μέχρι 700 MBit/s λόγω του περιορισμού του PCI BUS. Γενικά λόγω αξιοπιστίας και συμβατότητας προτιμούμε
a. Intel
b. Marvel
c. Realtec

7.Κάρτα Γραφικών
Ο Server δεν έχει ανάγκη από καλή κάρτα γραφικών. Προτιμούμε πάντα τις on board κάρτες γραφικών και σε περίπτωση επιλογής μητρικής που δεν έχει επιλέγουμε την πιο μικρή και οπωσδήποτε παθητική (χωρίς ανεμιστήρα) κάρτα.

8.SATA Controller
Γενικά προτιμούμε τους onboard controller της μητρικής, σημαντικό είναι να είναι ενιαίος ο controller δηλαδή πολλές μητρικές έχουν 8 SATA τα οποία είναι 2 controllers 6 + 2. Δεν μπερδεύουμε τους Controllers χρησιμοποιούμε δηλαδή τα 6 για μία συστοιχία RAID και τα άλλα για άλλη.
Προτεινόμενοι Controllers – Chipset είναι τα ICH9R και ICH10R της INTEL (Chipset P35,Q35,Q45,P43,P45,G45)
PCI SATA Controllers πρέπει να αποφεύγονται καθώς το PCI BUS είναι περιοριστικός παράγοντας (bottleneck). Συγκριτικά 4 δίσκοι σε συστοιχία σε on board ICH9R controller έχουν Throughput 200 Mbytes/s ενώ σε PCI controller έχουν 80.

9.Σκληροί Δίσκοι
Η επιλογή των δίσκων γίνεται με βάση της ανάγκες μας. Γενικά για ένα φθηνό LFS όπου κυρίως μας ενδιαφέρει ο συνολικός χώρος πρώτος γνώμονας είναι η τιμή προς απόδοση, δηλαδή η τιμή προς Gigabyte. Καλό είναι να επιλέγουμε μεγάλης χωρητικότητας δίσκους έστω και αν είναι λιγότερο αποδοτικοί ως προς την τιμή λόγω του περιορισμένου αριθμού των θέσεων SATA. Δίσκοι server (raid edition) με 5 χρόνια εγγύηση είναι γενικά μια καλή επιλογή αλλά είναι πολύ ακριβότεροι και δεν προτείνονται για φτηνή λύση.

3. Στήσιμο Server

Το πρώτο πράγμα που κάνουμε, φυσικά, είναι το στήσιμο του υλικού. Το στήσιμο γίνεται όπως σε ένα απλό PC. Ιδιαίτερη σημασία πρέπει να δώσουμε στον καλό εξαερισμό του κουτιού και των δίσκων, κανένας δίσκος και ειδικά της συστοιχίας δεν πρέπει να μείνει χωρίς ανεμιστήρα.
Προτεινόμενη Τοπολογία
o Ένας σχετικά μικρός (320 GB) δίσκος ATA ή SATA για λειτουργικό
o Έξι μεγάλοι (π.χ. 1TB) δίσκοι για τη RAID Συστοιχία

Λειτουργικό Σύστημα
Για λειτουργικό σύστημα του LFS έχουμε επιλέξει το Ubuntu Server για τους παρακάτω λόγους
• Ευχρηστία

Κώδικας: Επιλογή όλων
apt-get install «τα πάντα»


• Hardware Compatibility
Λόγω του συχνού κύκλου εκδόσεων του Ubuntu (ανά 6 μήνες) παρέχεται υποστήριξη για τα περισσότερα καινούργια Hardware.

• Κοινότητα
Λόγω της ευρείας χρήσης του Ubuntu είναι πιο εύκολη η αντιμετώπιση προβλημάτων
Κατά την εγκατάσταση του Ubuntu πέρα απ’ τα βασικά επιλέγουμε ανάλογα με τις ανάγκες μας και την εγκατάσταση (για Ubuntu 8.04 και νεότερο)

• LAMP Webserver (Apache) Database (Mysql)

• Samba Υπηρεσία Κοινοχρήστων Δικτύου

• Open SSH για την απομακρυσμένη διαχείριση μέσω κονσόλας.
Μετά την εγκατάσταση

Κώδικας: Επιλογή όλων
apt-get install mdadm htop iftop mc lftp vsftpd


Mdadm : Το πρόγραμμα για την διαχείριση του Software Raid
Htop: Πρόγραμμα για να βλέπεις τις διεργασίες του server (task manager)
Iftop: Για να βλέπουμε την κίνηση του δικτύου
Mc: File Manager σαν τον παλιό Norton Commander
Lftp: Πολύ καλός FTP Client
Vsftpd: Ο πιο εύχρηστος FTP Server

4. Software RAID

Για να μπορούμε να χειριστούμε σωστά το software RAID θα πρέπει αρχικά να έχουμε βασικές γνώσεις για το τι είναι RAID :
http://en.wikipedia.org/wiki/RAID
http://www.acnc.com/04_01_05.html
και τι είναι το software raid του Linux
http://tldp.org/HOWTO/Software-RAID-HOWTO.html
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch26_:_Linux_Software_RAID
http://linux.yyz.us/why-software-raid.html
http://linux-raid.osdl.org/index.php/Main_Page

Δημιουργία συστοιχίας

5. Από τη θεωρία στην πράξη

A. Επιλέξαμε με βάση τις τωρινές τιμές του υλικού καθώς και τις αντίστοιχες ανάγκες-απαιτήσεις μας και καταλήξαμε στο εξής υλικό :
- Τροφοδοτικό : Heroichi 550Watt
- Μητρική : ASUS P5Q-EM DO
- Επεξεργαστής : Intel Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
- Μνήμη : 2*2 GB @ 800ΜHz
- Κάρτα γραφικών : Onboard Intel 4 Series Chipset Integrated Graphics Controller
- Κάρτα δικτύου : Onboard Intel 82567LM-3 Gigabit Network Ethernet interface
- Sata Controller : Intel ICH10 Family
- Δίσκος λειτουργικού : Western Digital WDC WD5000AAKB @ 500GB
- Δίσκοι συστοιχίας : Seagate ST31500341AS @ 1.5TB

Συνολικό Κόστος : 1200€

B. Στήσαμε το υλικό σε ένα κουτάκι Thermaltake Soprano το οποίο φάνηκε τελικά αρκετά ευρύχωρο για το μέγεθός του.

C. Κατεβάσαμε όπως αναφέρεται πιο πάνω το τελευταίο stable ubuntu server http://www.ubuntu.com/getubuntu/download-server και το εγκαταστήσαμε χωρίς ιδιαίτερα προβλήματα.(Aκολουθούν screenshots)

D. Μετά το πρώτο reboot λοιπόν είμαστε έτοιμοι να διαχειριστούμε το νέο μας server, να φτιάξουμε τη συστοιχία με τους δίσκους και να παραμετροποιήσουμε το σύστημα στα μέτρα μας.

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα

Εικόνα


6. Αναλυτικές οδηγίες και έλεγχοι συστήματος

1.Ελέγχουμε γενικά το σύστημά μας στην εκκίνησή του καθώς και τις υπηρεσίες που ξεκινάνε.

Κώδικας: Επιλογή όλων
cat /var/log/messages | more
dmesg


2.Ξεκινάμε με το απαραίτητο update του sources.list και την εγκατάσταση μερικών βασικών προγραμμάτων :

Κώδικας: Επιλογή όλων
vi /etc/apt/sources.list
apt-get install vim htop iftop mdadm mc lftp vsftpd figlet hdparm hddtemp lm-sensors
htop
vi /etc/vim/vimrc


και βγάζουμε τα σχόλια στα σημεία που λέει για :

“syntax on”
“set ignorecase”
“set smartcase”


Κώδικας: Επιλογή όλων
sensors-detect
(για να βρει θερμοκρασίες πυρήνα – δίσκων κλπ)

3.Ρυθμίζουμε το locales για ελληνικά

Κώδικας: Επιλογή όλων
/usr/share/locales/install-language-pack el_GR
dpkg-reconfigure locales
export LC_CTYPE="el_GR"
vi /etc/profile
και προσθέτουμε την από πάνω γραμμή για να ξεκινά κάθε φορά στην κονσόλα

Επίσης προσθέτουμε τις εξής γραμμές στο /etc/profile

echo
figlet ONOMA_SERVER
echo
/my_scripts/katastasi (κάποιο πιθανό scriptaki που μας λέει διάφορα πράγματα για το σύστημα κάθε φορά που κάνουμε login,όπως π.χ. θερμοκρασίες δίσκων, κατάσταση συστοιχίας κλπ)
alias 'll'='ls -lah'
alias 'df'='df -h'
alias 'tailms'='tail -f /var/log/messages'


4.Ελέγχουμε αν το σύστημα είδε όλους τους σκληρούς

Κώδικας: Επιλογή όλων
cat /proc/partitions


5.Δημιουργούμε τη συστοιχία

Κώδικας: Επιλογή όλων
mdadm --create /dev/md0 --level=5 --chunk=256 --raid-devices=6 /dev/sd[a-f]


6.Ελέγχουμε τη συστοιχία

Κώδικας: Επιλογή όλων
mdadm -D /dev/md0
cat /proc/mdstat


7.Βάζουμε τη συστοιχία (το UUID της) στο mdadm.conf ώστε να τη βλέπει το σύστημα μετά από reboot μέσω του προγράμματος mdadm

Κώδικας: Επιλογή όλων
mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm/mdadm.conf


8.Benchmark για τη συστοιχία και ενδεικτική σύγκριση με έναν από τους δίσκους της (1.5TB Seagate)

Κώδικας: Επιλογή όλων
hdparm -Tt /dev/md0


/dev/md0:
Timing cached reads: 2722 MB in 2.00 seconds = 1360.85 MB/sec
Timing buffered disk reads: 1126 MB in 3.01 seconds = 374.50 MB/sec


Κώδικας: Επιλογή όλων
hdparm -Tt /dev/sda


/dev/sda:
Timing cached reads: 2698 MB in 2.00 seconds = 1349.30 MB/sec
Timing buffered disk reads: 366 MB in 3.01 seconds = 121.77 MB/sec


9.Κάνουμε format τη συστοιχία σε xfs filesystem

Κώδικας: Επιλογή όλων
apt-get install xfsprogs
mkfs.xfs /dev/md0


10.Τέλος χρειάζεται να κάνουμε και mount το /dev/md0 ώστε να είμαστε έτοιμοι να εκμεταλλευτούμε το χώρο

Κώδικας: Επιλογή όλων
mount /dev/md0 /disks
vi /etc/fstab


Προσθήκη της γραμμής αυτής για να αυτόματο mount :

Κώδικας: Επιλογή όλων
/dev/md0        /disks/         xfs     defaults        0       0


11.Φυσικά δεν ξεχνάμε να ρυθμίσουμε τα network interfaces καθώς και το smb.conf του samba έτσι ώστε να έχουμε κοινόχρηστη πρόσβαση από υπολογιστές με windows

Κώδικας: Επιλογή όλων
vi /etc/samba/smb.conf


Κώδικας: Επιλογή όλων
workgroup = MY_SERVERS
netbios name = MY_SERVER
server string = New File Server
security = share
unix charset = iso8859-7   (για ελληνικά)
unix password sync = yes   (για συγχρονισμό  unix - samba password)

#####  Παράδειγμα Κοινόχρηστων  #####
[disks]
        path = /disks/
        browsable = no
        read only = no

[Kati]
        comment = Ena tyxaio koinoxristo
        path = /disks/kati
        read only = yes
        guest ok = yes


7. Τελευταίες χρήσιμες παρατηρήσεις

1. Χρήσιμο θα είναι να ελέγξουμε τα δικαιώματα που έχουν οι χρήστες μας στο «μεγάλο» φάκελο /disks

2. Χρήσιμα επίσης , όταν μιλάμε για fileserver, είναι scriptakia για αυτοματοποιημένες δουλειές όπως μπορεί να είναι μια συγκεκριμένη μετονομασία, ο υπολογισμός του χώρου που καταλαμβάνουν τα δεδομένα μας, η καθημερινή αλλαγή και εφαρμογή των επιθυμητών permissions

Κώδικας: Επιλογή όλων
vi /etc/crontab


Κώδικας: Επιλογή όλων
Π.χ. 00 7 * * *      root    /my_scripts/ola


:ugeek:

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 20 Σεπ 2009, 19:38
από ftso
:clap: :clap:

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 20 Σεπ 2009, 22:52
από c7p
Μπράβο και από μένα :clap: :clap: , και κάλως ήρθες στην κοινότητα :thumbup:

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 20 Σεπ 2009, 23:03
από pros
kkalop έγραψε:«Μπορώ να σου δείξω σε μια ώρα πως να κάνεις μια εγχείρηση σκωληκοειδίτιδας, αλλά θα μου πάρει 7 χρόνια να σου πω τι θα κάνεις σε περίπτωση που κάτι πάει στραβά».

Η πιο σοφή προειδοποίηση που έχω διαβάσει...
Παρ' όλα αυτά με τις οδηγίες που έγραψες το κάνεις να φαίνεται εύκολο!
Τα σέβη μου!

Καλώς ήλθες.

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 03 Οκτ 2009, 16:24
από kkalop
Thnx guys, ελπίζω σε λίγο καιρό να βρω περισσότερο χρόνο ώστε να είμαι και πιο ενεργός στο φορουμ. 8-)

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 07 Οκτ 2009, 16:32
από pros
CodemaN έγραψε:re paidia den exw katalabi omws pws bazhs to domain pou thes ston srever pou eftiaxes exw kanh toi leeei alla pws bazo to domain mou?


Ελληνικά, παρακαλώ!

(http://forum.ubuntu-gr.org/viewtopic.php?f=2&t=279)

Καλώς ήλθες!

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 07 Οκτ 2009, 16:37
από CodemaN
ρε παιδιά δεν έχω καταλάβει όμως πως βάζεις το domain που θες στον server που έφτιαξες έχω κάννη τη λέει αλλα πως βάζο το domain μου?

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 07 Οκτ 2009, 17:10
από simosx
@kkalop: You Sir, are a scholar.

Re: Ubuntu File Server

ΔημοσίευσηΔημοσιεύτηκε: 07 Οκτ 2009, 20:56
από sokoban4ever
@kkalop
Όπως είχε πει κάποτε ένας γιατρός «Μπορώ να σου δείξω σε μια ώρα πως να κάνεις μια εγχείρηση σκωληκοειδίτιδας, αλλά θα μου πάρει 7 χρόνια να σου πω τι θα κάνεις σε περίπτωση που κάτι πάει στραβά».


Αν και στα μηχανήματα επειδή δεν είναι άνθρωποι μπορείς πιο εύκολα να πετάξεις ή να αντικαταστήσεις ένα εξάρτημα ,πρόγραμμα,λειτουργικό ,kernel ,bios κλπ κλπ
μπορώ να πω ότι το βρίσκω αρκετά σωστό το ρητό :D

Μπράβο για τον οδηγό και από μένα :thumbup: