Aktuelles Thema: Ressourcen, Zonen, Cluster
Ressourcennutzung durch mehrere Applikationen auf einem Rechner
Unix ist ein Multiuser- und Multitasking-Betriebssystem. Insbesondere SVR4 (auch Solaris) implementiert
über den Scheduler automatisch eine Zuteilung der CPU-Ressourcen in der Weise, dass einerseits
Anwendungen mit maximaler Geschwindigkeit ablaufen können und dass andererseits beim gleichzeitigen
Ablauf von Anwendungen die CPU sinnvoll aufgeteilt wird. Prozesse, die über Gebühr CPU-Zeit
beanspruchen, werden benachteiligt. Andere Prozesse, die weniger CPU beanspruchen oder die mit dem Anwender
interagieren, werden bevorzugt. Ohne weiteres Zutun ist so ein ausgewogenes Antwortzeitverhalten die
Regel.
Eine Ausnahme bilden Client-Server-Anwendungen (auch Datenbanken), die sich mit langlaufenden und
ressourcenhungrigen Serverprozessen auf eine "monokulturelle" Nutzung des Unix-Servers
beschränken. Da diese Prozesse aus Sicht des Betriebssystems standardisiert behandelt werden, sind die
Anwendungen dann selbst für einen sinnvollen Umgang mit den bereitgestellten Ressourcen verantwortlich
(sowohl intern als auch untereinander), nehmen diese Verantwortung jedoch i. d. R. nicht oder nur unzureichend
wahr. Daraus kann die Situation entstehen, dass eine starke Beanspruchung von Ressourcen (CPU, Memory, aber
auch IO-Bandbreite) durch eine Anwendung übermäßige Performancenachteile für andere
Anwendungen nach sich zieht.
Steuerungsmöglichkeiten für Ressourcen
Mangels eigener Mechanismen kann also für einige Applikationen eine weitere Steuerungsmöglichkeit über das Betriebssystem sinnvoll sein. Insbesondere Solaris 10 bietet gute Möglichkeiten, die tatsächliche Ressourcennutzung über geeignete Modelle zu beeinflussen:
- Begrenzung von Ressourcenverbrauch
- Scheduling-Mechanismen
- Partitionierung- bzw. Binding-Mechanismen
Abhängig von den jeweiligen Möglichkeiten sind diese Mechanismen auf Projekte, Tasks, Prozesse oder Zonen anwendbar.
Solaris Zonen und Resourcemanagement
Zonen erlauben es Anwendungen, bei gemeinsamer Nutzung ein und derselben Betriebssysteminstanz (logisch) isoliert
voneinander abzulaufen. Daraus ergibt sich automatisch ein Sharing von Systemressourcen. Dieses kann über
das Resourcemanagement von Solaris 10 gesteuert werden und zwar insbesondere für CPU-Anteile und
Hauptspeicherverbrauch.
Zonen stellen sich aus Sicht der Applikation wie ein eigenes Betriebssystem dar. Damit lassen sich auch
Applikationen, die (unsinnigerweise) von einer Exklusivnutzung des Systems ausgehen, gemeinsam ausführen
(jede in einer eigenen Zone). Zonen sind insofern ein mächtiges Werkzeug. Der Preis dafür ist eine
erhebliche Zunahme der Komplexität in der Systemverwaltung, da jede Zone u. a. eigene Netzwerkadressen,
Benutzer, Gruppen, Passwörter, Startprozeduren, Dateisysteme, Softwarepakete usw. hat. Da auch die
Beziehungen zur globalen Zone und untereinander definiert werden müssen, übertrifft die
Komplexität die einzelner Rechner. Zu beachten ist insbesondere die spätere Systempflege über
Patches, Updates usw.
Eine sauber implementierte und in mehreren Instanzen ablauffähige Applikation erscheint damit aus Sicht des
Systemmanagements als die überlegene, weil wesentlich weniger aufwendige, Variante. Das vor allem deshalb,
weil das Resourcemanagement von Solaris 10 nicht nur für Zonen, sondern (wesentlich schlanker) auch für
Projekte und Tasks (ähnlich Prozessgruppen) genutzt werden kann.
Da jedoch eine Vielzahl von Applikationen existieren, die diesen Anforderungen nicht genügen (leider sind es
oft insbesondere die Marktführer), bieten Zonen eine brauchbare Möglichkeit, die vorhandene Hardware
für mehrere solcher Applikationen zu nutzen. Daneben ist es vor allem die Isolierung der Zonen, die dieses
Konzept unter dem Aspekt der Systemsicherheit attraktiv macht (Webservices ...).
OSL Storage Cluster und Solaris Zonen
Die Application Control Option des OSL Storage Clusters bindet Zonen wie gewöhnliche Applikationen in ihr
Bedienkonzept ein. Sowohl das Aufsetzen von Zonen als auch Start, Stopp und Failover auf andere Rechner lassen
sich über das Menüsystem bzw. CLI durchführen. Da auch das Handling der SC-Volumes, der
Dateisysteme und Netzwerkadressen integriert ist, vereinfacht sich die Handhabung der Zonen deutlich. Wichtig
dabei: bei Ausfall eines Rechners können Zonen problemlos auf ein geeignetes Zielsystem migrieren.
Bereits heute lassen sich Zonen (wie andere Applikationen auch) bestimmte Ressourcen (RIP, MEM) zuordnen, die
dann bei der Verteilung der Applikationen im Cluster berücksichtigt werden (ressourcenbasiertes
Selbstmanagement). In der zweiten Aprilhälfte 2006 wird dies dahingehend erweitert, dass die
Ressourcennutzung aktiv gesteuert wird. Mit dem Start einer Zone wird die Aufteilung der CPU-Ressourcen so
geändert, daß jeder Zone mindestens die über RIP definierte CPU-Leistung zur Verfügung
steht. Über den Standardmechanismus hinaus werden automatisch die für das jeweilige System notwendigen
Anpassungen vorgenommen. Egal, auf was für einem System die Anwendung läuft (4 oder 16 CPU), wird so
z. B. für eine Anwendung, der 8 RIP* zugeordnet worden sind, sichergestellt, dass diese mdst. 8 RIP
Rechenleistung erhält, bei nicht ausgelastetem System auch mehr.
Alle erforderlichen Änderungen am System werden automatisch beim Start der Zone über OSL Storage
Cluster vorgenommen, so daß also nicht nur eine hohe Verfügbarkeit, sondern auch ein einfaches
Handling erreicht wird (und das über Rechnergrenzen hinweg).
*RIP - Relative Integer-Performance
Die relative Integer-Performance wird von OSL Storage Cluster in einem eigenen Pseudo-Benchmark ermittelt und
ermöglicht so eine Vergleichbarkeit unterschiedlicher CPU in Clustern mit unterschiedlichen CPU-Typen. 5 RIP
entsprechen etwa der Integer-Performance eines Intel Pentium mit 500 MHz Taktung.