„Linux Virtual Server“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
YMS (Diskussion | Beiträge) K Von allgemeiner QS (nicht eingetragen) in QS Freie Software überstellt |
Keine Bearbeitungszusammenfassung |
||
(24 dazwischenliegende Versionen von 20 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Linux Virtual Server''' ('''LVS''') ist eine [[Software]] zur [[Lastverteilung (Informatik)|Lastverteilung]]. Sie erweitert den [[Linux (Kernel)|Linux-Kernel]] um Methoden zur transparenten Zuweisung von Anfragen aus dem Netzwerk an mehrere [[Server]]. Dies erlaubt die Realisierung von [[Hochverfügbarkeit|hochverfügbaren]] [[Serverfarm]]en mit [[Freie Software|freier Software]]. |
|||
{{Portal:Freie Software/Vorlage:QS}} |
|||
== Beschreibung == |
|||
'''Linux Virtual Server''' ist eine [[Lastverteilung]]ssoftware. Sie erweitert [[Linux]] um die Aspekte ''Skalierbarkeit'' und ''[[Hochverfügbarkeit]]''. |
|||
⚫ | |||
''Serverfarmen'' bestehen aus mehreren Rechnern, die Anfragen über ein [[Rechnernetz]] erhalten und bearbeiten, und einem oder mehrerer Lastverteiler ({{enS|''load balancer''}}), die die Anfragen auf die zur Verfügung stehenden Rechner aufteilen (engl. {{lang|en|''scheduling''}}). Da Rechner dynamisch zu diesem Verbund hinzugefügt und entfernt werden können, lassen sich so [[Skalierbarkeit]] und Verfügbarkeit erhöhen. ''LVS'' übernimmt in einer solchen Installation die Rolle des Lastverteilers. |
|||
== Verwendungszweck == |
|||
⚫ | |||
''LVS'' stellt vier Strategien zur Verfügung, um Anfragen aufzuteilen: |
|||
Mit dem explosivem Wachstum des [[Internet]] und seiner ständig wichtigeren Rollen in unserem Leben nimmt auch der Datenverkehr drastisch zu. Ebenso nimmt auch die Arbeitslast der [[Server]] entsprechend stark zu, insbesondere auf populären Webservern. Um diesem Überlastungsproblem der Server entgegenzuwirken, gibt es zwei Lösungsansätze. |
|||
* [[Round Robin (Informatik)|Round-Robin]]-Verteilung |
|||
* gewichtete Round-Robin-Verteilung |
|||
* Verteilung nach bestehenden Verbindungen ({{enS|least-connection scheduling}}) |
|||
* gewichtete Verteilung nach bestehenden Verbindungen |
|||
Für die Rückantwort der Server an den anfragenden Rechner gibt es ebenfalls verschiedene Möglichkeiten. ''LVS'' implementiert die folgenden Techniken: |
|||
; Single Server: In diesem Ansatz wird ein einzelner Server entsprechend den Leistungsanforderungen ausgebaut. Steigen die Anforderungen wird entsprechend nachgerüstet. Der Prozess des Nachrüstens ist komplex, kosteninstensiv und auch mit Ausfallzeiten behaftet (zum Beispiel wenn [[Hardware]] betroffen ist). Weiterhin sind dem Hardwareausbau Grenzen gesetzt. Angeschaffte Hardware (Beispielsweise [[Hauptplatine]]) kann nur eine bestimmte Anzahl [[Prozessor (Hardware)|Prozessoren]], [[Arbeitsspeicher]] und Erweiterungskarten aufnehmen. |
|||
* LVS/NAT (entspricht ''[[Lastverteilung (Informatik)#NAT based SLB|NAT based SLB]]'') |
|||
; Multiple Server: Der Lösungsansatz ''Multiple Server'' gruppiert mehrere reale Server in einen [[Computercluster]] und bildet einen skalierbaren virtuellen Server. Wenn die Belastung dieses Systems ansteigt können einfach ein oder mehrere Server der Gruppe hinzugefügt werden um den veränderten Anforderungen gerecht zu werden. Die angebotenen Dienste dieses virtuellen Servers werden sowohl dediziert als auch dynamisch durch die realen Server bereitgestellt werden. Diese Zuweisung (Dienst zu Server) kann zur Laufzeit festgelegt und verändert werden. |
|||
* LVS/TUN |
|||
* LVS/DR (entspricht ''[[Lastverteilung (Informatik)#Flat based SLB|Flat based SLB]]'') |
|||
Für eine ''hochverfügbare'' Installation werden noch weitere Komponenten benötigt, für die es ebenfalls Freie-Software-Projekte gibt. |
|||
* Zweiter Rechner mit ''LVS'', der bei Versagen des ersten Rechners einspringt (engl. {{lang|en|''cold standby''}}). Infrage kommt beispielsweise die Software [[Heartbeat (Software)|Heartbeat]] des ''High Availability Linux''-Projekts (engl. für „hochverfügbares Linux“, siehe Weblinks). |
|||
* [[Netzwerk-Monitoring]]-Software, die das Versagen eines Servers erkennt und ihn automatisch aus dem Verbund entfernen (und ggf. wieder einbinden) kann. |
|||
== Beispiele == |
== Beispiele == |
||
Administratives Werkzeug zur Konfiguration von LVS ist <code>ipvsadm</code>. Dieses kann nur |
Administratives Werkzeug zur Konfiguration von LVS ist <code>ipvsadm</code>. Dieses kann nur mit dem [[Root-Konto]] benutzt werden. |
||
* Einrichtung eines LVS ([[Hypertext Transfer Protocol|HTTP]]) mit 2 realen Servern |
* Einrichtung eines LVS ([[Hypertext Transfer Protocol|HTTP]]) mit 2 realen Servern |
||
ipvsadm -A -t 192.168.0.1:80 -s rr |
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.1:80 -m |
||
ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.2:80 -m |
ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.2:80 -m |
||
Erste Zeile fügt auf der [[IP-Adresse]] [[Private IP-Adresse|192.168.0.1]] den [[Transmission Control Protocol|TCP]]-Port 80 zum LVS hinzu. Anzuwendende Strategie der [[ |
Erste Zeile fügt auf der [[IP-Adresse]] [[Private IP-Adresse|192.168.0.1]] den [[Transmission Control Protocol|TCP]]-Port 80 zum LVS hinzu. Anzuwendende Strategie der [[Lastverteilung (Informatik)|Lastverteilung]] ist hierbei [[Round Robin (Informatik)|Round-Robin]] (-s rr). |
||
Die folgenden zwei Zeilen fügen jeweils einen realen Server dieser virtuellen Adresse (192.168.0.1:80) hinzu. Hierbei sollen die weitergeleiteten Pakete maskiert werden (-m). |
Die folgenden zwei Zeilen fügen jeweils einen realen Server dieser virtuellen Adresse (192.168.0.1:80) hinzu. Hierbei sollen die weitergeleiteten Pakete maskiert werden (-m). |
||
* Statusabfrage des oben eingerichteten LVS |
* Statusabfrage des oben eingerichteten LVS |
||
<pre> |
|||
ipvsadm -L -n |
ipvsadm -L -n |
||
IP Virtual Server version 1.0.8 (size=65536) |
IP Virtual Server version 1.0.8 (size=65536) |
||
Zeile 32: | Zeile 42: | ||
-> 172.16.0.2:80 Masq 1 3 1 |
-> 172.16.0.2:80 Masq 1 3 1 |
||
-> 172.16.0.1:80 Masq 1 4 0 |
-> 172.16.0.1:80 Masq 1 4 0 |
||
</pre> |
|||
== |
== Literatur == |
||
* {{Literatur |
|||
* [[SME Server]] |
|||
|Autor=Wensong Zhang |
|||
* [[eisfair]] |
|||
|Titel=Linux Virtual Server for Scalable Network Services |
|||
* [[EisXen]] |
|||
|Ort=Changsha <!-- Hunan 410073 --> (China) |
|||
|Datum=2000 |
|||
|Sprache=en |
|||
|Online=http://www.linuxvirtualserver.org/ols/lvs.pdf |
|||
|Format=PDF |
|||
|KBytes=235 |
|||
|Abruf=2009-04-16}} |
|||
== Weblinks == |
== Weblinks == |
||
* [http://www.linuxvirtualserver.org/ Linux Virtual Server Project] (englisch) |
* [http://www.linuxvirtualserver.org/ Linux Virtual Server Project] (englisch) |
||
* [http://www.keepalived.org/ LVS facility and framework] (englisch) |
* [http://www.keepalived.org/ LVS facility and framework] (englisch) |
||
* [http://www.linux-ha.org/Heartbeat Software ''Heartbeat''] des Projekts ''High Availability Linux'' |
|||
[[Kategorie:Freie |
[[Kategorie:Freie Server-Software]] |
||
[[Kategorie:Linux]] |
[[Kategorie:Linux-Software|Virtual Server]] |
||
[[en:Linux Virtual Server]] |
|||
[[es:Linux Virtual Server]] |
|||
[[fr:Linux Virtual Server]] |
|||
[[ja:Linux Virtual Server]] |
|||
[[pt:LVS]] |
|||
[[ro:LVS]] |
|||
[[ru:Linux Virtual Server]] |
|||
[[zh:LVS]] |
Aktuelle Version vom 14. Januar 2021, 11:22 Uhr
Linux Virtual Server (LVS) ist eine Software zur Lastverteilung. Sie erweitert den Linux-Kernel um Methoden zur transparenten Zuweisung von Anfragen aus dem Netzwerk an mehrere Server. Dies erlaubt die Realisierung von hochverfügbaren Serverfarmen mit freier Software.
Beschreibung
[Bearbeiten | Quelltext bearbeiten]
Serverfarmen bestehen aus mehreren Rechnern, die Anfragen über ein Rechnernetz erhalten und bearbeiten, und einem oder mehrerer Lastverteiler (englisch load balancer), die die Anfragen auf die zur Verfügung stehenden Rechner aufteilen (engl. scheduling). Da Rechner dynamisch zu diesem Verbund hinzugefügt und entfernt werden können, lassen sich so Skalierbarkeit und Verfügbarkeit erhöhen. LVS übernimmt in einer solchen Installation die Rolle des Lastverteilers.
LVS stellt vier Strategien zur Verfügung, um Anfragen aufzuteilen:
- Round-Robin-Verteilung
- gewichtete Round-Robin-Verteilung
- Verteilung nach bestehenden Verbindungen (englisch least-connection scheduling)
- gewichtete Verteilung nach bestehenden Verbindungen
Für die Rückantwort der Server an den anfragenden Rechner gibt es ebenfalls verschiedene Möglichkeiten. LVS implementiert die folgenden Techniken:
- LVS/NAT (entspricht NAT based SLB)
- LVS/TUN
- LVS/DR (entspricht Flat based SLB)
Für eine hochverfügbare Installation werden noch weitere Komponenten benötigt, für die es ebenfalls Freie-Software-Projekte gibt.
- Zweiter Rechner mit LVS, der bei Versagen des ersten Rechners einspringt (engl. cold standby). Infrage kommt beispielsweise die Software Heartbeat des High Availability Linux-Projekts (engl. für „hochverfügbares Linux“, siehe Weblinks).
- Netzwerk-Monitoring-Software, die das Versagen eines Servers erkennt und ihn automatisch aus dem Verbund entfernen (und ggf. wieder einbinden) kann.
Beispiele
[Bearbeiten | Quelltext bearbeiten]Administratives Werkzeug zur Konfiguration von LVS ist ipvsadm
. Dieses kann nur mit dem Root-Konto benutzt werden.
- Einrichtung eines LVS (HTTP) mit 2 realen Servern
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
Erste Zeile fügt auf der IP-Adresse 192.168.0.1 den TCP-Port 80 zum LVS hinzu. Anzuwendende Strategie der Lastverteilung ist hierbei Round-Robin (-s rr). Die folgenden zwei Zeilen fügen jeweils einen realen Server dieser virtuellen Adresse (192.168.0.1:80) hinzu. Hierbei sollen die weitergeleiteten Pakete maskiert werden (-m).
- Statusabfrage des oben eingerichteten 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
Literatur
[Bearbeiten | Quelltext bearbeiten]- Wensong Zhang: Linux Virtual Server for Scalable Network Services. Changsha (China) 2000 (englisch, linuxvirtualserver.org [PDF; 235 kB; abgerufen am 16. April 2009]).
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Linux Virtual Server Project (englisch)
- LVS facility and framework (englisch)
- Software Heartbeat des Projekts High Availability Linux