![]() |
Το λήμμα δεν περιέχει πηγές ή αυτές που περιέχει δεν επαρκούν. |
![]() | |
Γενικά | |
---|---|
Ημερ. Δημιουργίας | Μαΐου 1998 |
Είδος | ελεύθερο και ανοιχτού κώδικα λογισμικό, εξισορροπητής φορτίου |
Διανομή | |
Λειτουργικά | Linux |
Ανάπτυξη | |
Γραμμένο σε | C |
Άδεια χρήσης | GPLv2 |
Σύνδεσμοι | |
Επίσημος ιστότοπος | |
http://www.LinuxVirtualServer.org/ |
Ο εικονικός διακομιστής Linux (Linux Virtual Server (LVS)) είναι λογισμικό εξισορροπητή φορτίου, βασισμένο σε λειτουργικά συστήματα Linux.
Το LVS είναι ένα δωρεάν και ανοιχτού κώδικα έργο που ξεκίνησε από τον Wensong Zhang τον Μάιο του 1998, σύμφωνα με τις απαιτήσεις της GNU General Public License (GPL), έκδοση 2. Ο σκοπός του έργου αυτού είναι να δημιουργήσει έναν υψηλής απόδοσης και διαθεσιμότητας (High availability) server για Linux χρησιμοποιώντας τεχνολογία συμπλέγματος (clustering), ο οποίος παρέχει καλή επεκτασιμότητα, αξιοπιστία και λειτουργικότητα.
Το κύριο έργο μιας LVS εργασίας είναι η ανάπτυξη ενός προηγμένου λογισμικού εξισορρόπησης φορτίων IP (IPVS), σε επίπεδο εφαρμογής (KTCPVS) και στοιχείων διαχείρισης συμπλέγματος.
Το LVS μπορεί να χρησιμοποιηθεί για τη δημιουργία επεκτάσιμων και γρήγορων (highly available) υπηρεσιών δικτύου, όπως υπηρεσίες ιστού, email, πολυμέσων και VoIP υπηρεσίες και για την ενσωμάτωση κλιμακούμενων υπηρεσιών δικτύου σε αξιόπιστες εφαρμογές ηλεκτρονικού εμπορίου ή ηλεκτρονικής διακυβέρνησης μεγάλης κλίμακας. Οι λύσεις που βασίζονται σε LVS έχουν ήδη χρησιμοποιηθεί σε πολλές εφαρμογές σε όλο τον κόσμο, συμπεριλαμβανομένης και της Wikipedia .
Τα στοιχεία LVS εξαρτώνται από το πλαίσιο Linux Netfilter και ο πηγαίος κώδικας του είναι διαθέσιμος στον υποκατάλογο αρχείων net/netfilter/ipvs
εντός του πυρήνα Linux. Το LVS είναι ικανό να χειριστεί πρωτόκολλα UDP, TCP layer-4 καθώς και την παθητική σύνδεση (passive connection) FTP ελέγχοντας πακέτα layer-7. Επίσης παρέχει μια ιεραρχία από μετρητές στον κατάλογο /proc
Το πρόγραμμα βοηθητικών προγραμμάτων userland που χρησιμοποιείται για τη διαμόρφωση του LVS ονομάζεται ipvsadm, το οποίο απαιτεί τα δικαιώματα ενός superuser για να εκτελεστεί.
Το LVS εφαρμόζει διάφορους προγραμματιστές εξισορρόπησης, που αναφέρονται παρακάτω με τα σχετικά αρχεία προέλευσης: [3]
ip_vs_rr.c
)ip_vs_wrr.c
)ip_vs_lc.c
)ip_vs_wlc.c
)ip_vs_lblc.c
)ip_vs_lblcr.c
)ip_vs_dh.c
)ip_vs_sh.c
)ip_vs_sed.c
)ip_vs_nq.c
)ip_vs_mh.c
)Οι όροι που χρησιμοποιούνται συνήθως περιλαμβάνουν τα ακόλουθα: [4]
Στήσιμο ενός εικονικού διακομιστή HTTP με δύο πραγματικούς(real) server:
ipvsadm -A -t 192.168.0.1:80 -s rr
ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.1:80 -m
ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.2:80 -m
Η πρώτη εντολή εκχωρεί τη θύρα TCP 80 στη διεύθυνση IP 192.168.0.1 στον εικονικό server. Ο αλγόριθμος προγραμματισμού που επιλέχθηκε για την εξισορρόπηση φορτίου είναι ο round-robin ( -s rr
). Η δεύτερη και η τρίτη εντολή προσθέτουν διευθύνσεις IP πραγματικών server στη ρύθμιση ενός LVS. Τα προωθημένα πακέτα δικτύου καλύπτονται(masked) ( -m
).
Η κατάστασης της παραπάνω ρύθμισης του LVS:
# ipvsadm -L -n
IP Virtual Server version 1.0.8 (size=65536)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.1:80 rr
-> 172.16.0.2:80 Masq 1 3 1
-> 172.16.0.1:80 Masq 1 4 0