NOP0501•p30-35•Focus•ESX.qxd
26-01-2005
20:24
Pagina 30
NetOpus: Februari 2005 Thema: Directories Rubriek: Focus Titel: MS Clustering Service op VMware Auteur: Bram Dons Pagina’s: 30, 31, 32, 33 en 35
Microsoft Clustering Service op VMware Clusteren in een virtuele omgeving Microsoft Clustering Service (MSCS), Novell Cluster Service (NCS) en Veritas Clustering Service (VCS) zijn bekende clustersystemen voor Windows NT. Op dit moment wordt alleen MSCS door VMware ondersteund en slechts in een tweenode clusterconfiguratie. Ondanks deze (hopelijk tijdelijke) beperking vonden we het interessant genoeg om MSCS te implementeren op een twee-node VMware ESX Server 2.1 configuratie. Bram Dons
lusteringtechnologie is via een aantal leveranciers op Windows NT-systemen beschikbaar. Eenvoudig gezegd biedt het een service waarmee in totaliteit een hogere beschikbaarheid, schaalbaarheid, of beide, van de ITomgeving wordt verkregen. Als eerste
C
30
bespreken we in het kort de ESX Server 2, die de basis vormt van een op VMware gebaseerd clustersysteem.
VMware ESX Server 2 De ESX Server 2 bestaat uit drie hoofdcomponenten: de VM Kernel, de
VMkernel-modules en de Service Console. De kern van de ESX Server 2 wordt gevormd door een micro-kernel (VMkernel), die als host fungeert voor de Virtual Machines (VM’s). De kernel beheert de systeemhardware, alle VM’s die op de fysieke server draaien (en de
NOP0501•p30-35•Focus•ESX.qxd
26-01-2005
20:24
Pagina 31
MS Clustering Service op VMware
Focus
Afbeelding 1 Overzicht van de VM-clusterarchitecturen
daarin aanwezige besturingssystemen) en de service-console. De proprietary micro-kernel wordt door een Console OS beheerd (Red Hat Linux 7.2), die zelf ook binnen een VM draait. De gebruikers communiceren met de VMkernel via de Service Console. VMware heeft voor de ESX Server een speciaal bestandsysteem gecreëerd, /vmfs genaamd, dat voor ‘virtual machine file system’ staat. Het is in feite geen echt bestandssysteem, maar een eenvoudig systeem voor partitie-segmentering van SCSI hard-drives. Het gebruik van SCSIdisks is een absolute voorwaarde bij de toepassing van een ESX Server, omdat de verschillende VM’s toegang moeten hebben tot dezelfde disk, de zogenaamde SCSI disk-sharing (iets wat met de ATAtechnologie niet mogelijk is).
Verschillen Andere VM-serverproducten (Microsoft Virtual Server 2005 en VMware GSX), maken gebruik van een Windows OS die VM’s draaien op een standaard pc. Deze techniek heeft als voordeel dat alle device-drivers te gebruiken zijn die er nu bestaan voor het Windows pc-platform.
VMware ESX maakt gebruik van een proprietary kernel, en daarom moet voor elk hardware-device een aparte driver worden ontwikkeld. Vandaar ook het beperkte aantal ondersteunde SCSI-, ethernet-, en Fibre Channel interfacekaarten. Aan de andere kant heeft deze methode ook weer zijn voordelen. Bij Virtual Server 2005 en GSX worden de prestaties namelijk gedrukt, doordat de VM-applicatie en het Guest Operating System als applicaties onder beheer van het host operating system draaien. Om die reden lopen die het risico om op een ongewenst tijdstip uit het geheugen te worden “geswapt”. De ESX Server volgt een iets andere benadering met betrekking tot disk- en netwerkadapters. Door de Linuxdrivers aan te passen is men in staat om het in- en uitgaande dataverkeer van het besturingssysteem te beïnvloeden en direct naar de adapterdriver te leiden. Er kunnen meerdere adapters per hostsysteem aanwezig zijn, waardoor iedere VM zijn eigen ethernet- en SCSI-adapter
kan hebben. Deze methode verhoogt de VM-prestaties aanzienlijk. Ondanks de extra complexiteit is de ESX Server toch steeds vaker de eerste keus bij de toepassing voor server-consolidatieprojecten op basis van hoogpresterende multiprocessor Intel-gebaseerde serversystemen. Net zoals bij de toepassing van Intel-servers in de mid-range en highend servermarkt, bestaat bij de toepassing van VM’s de behoefte aan een hogere beschikbaarheid van de serveromgeving. Daartoe ondersteunt de VMware ESX Server 2 zowel ‘in’- als ‘out the box’-clustering. Hierna bekijken we op welke manier clustering binnen de ESX Server 2 te implementeren is. h
Afbeelding 2 Twee actieve VM-clusternodes
31
NOP0501•p30-35•Focus•ESX.qxd
26-01-2005
20:24
Pagina 32
NetOpus: Februari 2005 Thema: Directories Rubriek: Focus Titel: MS Clustering Service op VMware Auteur: Bram Dons Pagina’s: 30, 31, 32, 33 en 35
In en out the box
Afbeelding 3 De configuratie van Cluster in a Box
High Availability Clustering Clustering is eenvoudig te omschrijven als een service die aan een groep servers wordt geboden, waarmee een betere beschikbaarheid en/of schaalbaarheid is te bereiken. Alle nodes in een clusteromgeving kunnen bijvoorbeeld de statische content van een website ondersteunen, waarbij de requests, al naar gelang de belasting, over alle nodes kunnen worden verdeeld. Een andere clustertoepassing is een database die op een clusternode draait en bij het crashen van deze node de clustersoftware overschakelt naar een database op een andere clusternode. ESX Server 2 van VMware ondersteunt clustering met commercieel verkrijgbare Cluster Servers van bijvoorbeeld Microsoft en Veritas. Daarmee kunnen gebruikers een hoogbeschikbare, prijseffectieve en zeer schaalbare oplossing creëren, waarmee aanzienlijke besparingen op de infrastructurele kosten te bereiken zijn. Met ESX Server 2 zijn de kosten aan hardware tot wel 80 procent te reduceren door meerdere ‘hot standby’systemen te combineren in een enkele fysieke hardware-server. Een op ESX Server gebaseerd clustersysteem kan dienen als prototype bij de softwareontwikkeling voor clusteromgevingen en het testen van systemen waarbij minder hardware nodig is. Tenslotte kan een op ESX gebaseerde clusteromgeving tegemoet komen aan een toenemende vraag naar meer capaciteit door extra systemen toe te voegen.
32
ESX-clustering is op verschillende manieren te configureren: ‘Cluster in a Box’, ‘Cluster Across Boxes’, ‘Consolidating Clusters’ en ‘Standby Host’. Clustering in dezelfde box biedt een clustermodel dat beschermt tegen softwarecrashes of administratieve fouten. De cluster bestaat uit meerdere VM’s, die op een enkele fysieke server draaien. Het ondersteunt shared disks, zonder dat er fysieke shared SCSI-hardware aanwezig is en een ‘heartbeat’-netwerk zonder dat er extra netwerkadapters nodig zijn. Cluster Across Boxes bestaat ook uit meerdere VM’s, waarbij de virtuele schijven op een echte fysieke gedeelde schijf zijn geïnstalleerd, zodat alle VM’s daartoe gelijktijdig toegang hebben. Dit clustermodel beschermt tegen een crash op een fysiek systeem. Tenslotte is ook nog een combinatie mogelijk van fysieke- en virtuele clustering. Dit type model combineert de eigenschappen van de vorige twee clustertypes en beschermt tegen zowel hardware- als softwarecrashes. In het vervolg van dit artikel bespreken we het Cluster in a Box en Across Boxes.
Cluster in a Box Voor de configuratie van een cluster moet elke VM worden uitgerust met een primaire virtuele SCSI host-adapter en disk. Er zijn tenminste twee virtuele netwerkadapters nodig. Voor een clusteromgeving is een ‘public’ adapter nodig, die is verbonden met vmnicx. Een vmnicx is een virtueel device dat door een netwerkadapter wordt gebruikt die speciaal voor VM’s bestemd is. Daarnaast is voor de clusteringservice en de ‘heartbeat’-clusterfunctie nog een tweede ‘private’ netwerkadapter nodig. Verder is voor de installatie van de Windows clustersoftware vanaf cd-rom ook nog een virtuele cd-rom en floppydiskdrive nodig. Zoals gezegd is voor het gebruik van een ‘shared’ opslagsysteem nog een tweede virtuele SCSI host-adapter nodig, met daaraan verbonden een of meerdere shared virtual disks. Daarmee is in eerste instantie de configuratie van de eerste virtuele clusternode klaar. In tweede
instantie moet additionele hardwaredevices worden toegevoegd, waaronder de shared SCSI-controller/disk en een extra virtuele netwerkadapter.
Installatie eerste clusternode Vervolgens beschrijven we de procedure voor de creatie van een twee-node cluster met de Microsoft Cluster Service op een enkele fysiek host. Via https://
/ openen we de VMware Management Interface op de host en loggen in. Als eerste maken we een VM aan met Add Virtual Machine en kiezen als het te installeren OS Windows 2003 Advanced Server. Op de nieuw gecreëerde virtuele disk-image, met bijvoorbeeld als naam cluster1.dsk, wordt het OS geïnstalleerd en vervolgens verbonden aan de virtuele SCSI-node. Daarmee is de VM gecreëerd voor de eerste clusternode. Voor een clustersysteem zijn een of meer gedeelde schijven nodig (toegankelijk voor alle clusternodes). Voor de clusterdata creëren we een shared.dsk en voor de quorum-data een quorum.dsk. Beide disks moeten worden verbonden met aparte SCSI-controllers. Daartoe klikken we achtereenvolgens de Hardware-tab, Add Device, Hard Disk en Blank aan in de zojuiste gecreëerde VM. We kiezen een VMFS-volume, waarop de virtuele disk wordt gecreëerd, en geven deze een unieke naam en SCSI-aansluiting (respectievelijk SCSI 1:1 en SCSI 1:2). Daarna zijn de nieuwe virtuele disks en SCSIcontrollers zichtbaar in de Hardwaretab. Beide SCSI-controllers in ‘bus sharing’-vallijst moeten nog worden veranderd in ‘virtual’. Vervolgens moet er nog een extra virtuele netwerkadapter worden gecreëerd voor de heartbeat van de Microsoft Cluster Service. Daartoe klikt men in de Hardware-tab Add Device en Network Adapter aan. Nadat aan alle voorwaarden is voldaan voor de creatie van de eerste clusternode, kan worden begonnen met de installatie van het Guest Operating System op de eerste VM. Voor de Windows 2000 Advanced Server plaats je de cd in de cd-romspeler van de ESX
NOP0501•p30-35•Focus•ESX.qxd
26-01-2005
20:24
Pagina 33
MS Clustering Service op VMware
Focus
Server en klik je in het tabblad ‘Status Monitor’ van de VMware Management Interface het blauwe icoontje aan. Daarmee wordt de remote-console opgestart waar vanaf Windows Server wordt geïnstalleerd. Tijdens de installatie worden alle default opties geaccepteerd. Clustering Service wordt op dit moment nog niet geïnstalleerd. Na afloop van de installatie worden de Vmtools in het Guest Operating System geïnstalleerd.
Virtual Machine klonen Je bent vrij om op dezelfde manier een tweede node te installeren, maar dat gaat sneller door een kloon te maken van de zojuist gecreëerde VM. Daartoe draaien we de bekende sysprep.exe (beschikbaar op de Windows cd-rom in \support\tools \deploy.cab). Dit hulpprogramma verwijdert alle beveiligings-ID’s die aan het Guest OS zijn toegewezen. Daarnaast worden de systeeminformatie en TCP/IPconfiguratie ge-reset. Het Guest OS wordt uitgeschakeld en met ‘power off’ wordt virtueel de stroom van de VM uitgeschakeld. In de Management Overviewpagina klik je ‘Manage Files…’ en in het volgende menu open je de vmfs-folder en kopieer je het cluster.dsk-bestand (het bestand waarop de VM van de eerste node staat) naar bijvoorbeeld cluster1.dsk. Daarmee is het kloonproces voltooid en kan worden begonnen met creatie van de tweede clusternode.
Afbeelding 4 Hardware-instellingen VM-clusternode
Op enkele verschillen na verloopt dit proces identiek aan de creatie van de eerste VM. Alleen kies je bij Add Virtual Machine ‘existing’ dus de net gekloonde ‘cluster1.dsk’ als Virtual Disk Image. Voor clustering is verder nog een shared SCSI-controller en shared SCSI-disk nodig. Dit zijn de quorum.dsk en shared.dsk, die we hiervoor gecreëerd hebben. Nu moeten alleen nog de shared disk op de tweede clusternode worden verbonden met een aparte SCSI-controllers (respectievelijk SCSI 1:1 en SCSI 1:2). Veder moeten de ‘Bus Sharing’ van beide virtuele SCSI-controllers op ‘Virtual’ gezet worden. Tenslotte is nog een tweede virtuele netwerkadapter nodig voor de cluster-heartbeat. Daarmee is de creatie van de tweede clusternode VM klaar en kan worden begonnen met de installatie van de Microsoft Cluster Service.
Installatie MSCS We beginnen met de installatie van clusteringservice op de eerste node (de tweede node moet zijn afgeschakeld). Eigenlijk verschilt de installatie van clustering op een VMware ESX Server nauwelijks van een reguliere clusterinstallatie op een SAN (Fibre Channel- of iSCSI-gebaseerd). Voor de ‘public’ netwerkadapter van de cluster moet een IP-adres worden ingevoerd dat bij een fysiek netwerk hoort. Voor ‘private’ is dat een adres als 192.168.x.x met een class C subnetmasker van 255.255.255.0. In de Windows Disk Administrator worden beide shared disks als ‘basic’ geconfigureerd en met NTFS geformatteerd. De quorumdisk krijgt bijvoorbeeld de drive letter ‘Q’ en de data-disk ‘R’. Standaard moet natuurlijk Active Directory Service en DNS voor clustering worden geïnstalleerd en er moet een user account ‘cluster’ voor de Cluster Service aangemaakt worden. Het wachtwoord van deze account mag overigens niet verlopen. Vervolgens installeren we de Cluster Service vanuit de ‘Add/Remove Windows Com-
ponents’, waarbij we voor de eerste node kiezen voor de ‘Form a New Cluster’. Na specificatie van de cluster IP-adressen en shared disks wordt de Cluster Service verder automatisch geïnstalleerd. Vervolgens controleren we of de service goed wordt opgestart, waarna we deze weer stoppen om de shared disks vrij te geven voor de installatie van de tweede node. De installatie op node is vrijwel identiek aan de eerste node, met het verschil dat bij het begin ‘Join a Cluster’ wordt gespecificeerd.
VMFS Locking en SCSI reservation Zoals we zagen, kunnen twee clusternodes op aparte ESX Servers ook een VMcluster vormen. Daarvoor is wel een fysiek gedeeld SCSI- of SAN-gebaseerd opslagsysteem nodig. Bovendien is een extra fysieke netwerkadapter nodig die aan een VM wordt toegekend. Deze dient als fysiek ‘private’ netwerk voor de cluster-heartbeat. De private netwerkadapter moet uiteraard een andere zijn dan die wordt gebruikt voor het ‘public’ netwerk. Voor een gedeelde SCSI-disk, die toegankelijk moet zijn voor meerdere ESXservers, zijn twee locking-systemen in gebruik. Beide systemen zijn min of meer onafhankelijk van elkaar. De gedeelde SCSI-disk kan zich op een gedeelde SCSI-bus bevinden, maar meest waarschijnlijk is een SAN. Het eerste type locking is ‘VMFS file system locking’. De ESX Server vergrendelt het VMFS bestandssysteem op serverniveau als het als een public- of shared file system is geconfigureerd. Deze locking is nodig om er zeker van te zijn dat er geen datacorruptie optreedt bij de toegang van meerdere hosts tot hetzelfde bestandsssyteem. De tweede manier van locking gebeurt op SCSI-diskniveau, op basis van het zogenoemde ‘SCSI disk reservation’. Elk met een SCSI-disk verbonden systeem kan een SCSI-commando uitvaardigen voor het ‘reserveren’ van een SCSI-disk. Zolang de reservering geldt, heeft geen enkele andere server nog toegang tot de disk. Alle naar de disk verzonden SCSI-commando’s resulteren in een teruggezonden error-code. f
33
NOP0501•p30-35•Focus•ESX.qxd
26-01-2005
20:24
Pagina 35
MS Clustering Service op VMware
Focus
Dat geldt ook voor een VM die toegang probeert te verkrijgen tot een fysieke disk die op dat moment al door een andere host is gereserveerd. De meeste applicaties maken bij SCSI-disks nooit van dergelijke ‘reserved’ SCSI-commando’s gebruik. Echter, bij failover clusteringsoftware wordt wel degelijk van SCSI-reservecommando’s gebruikgemaakt. Dit wordt gedaan om er zeker van te zijn dat de actieve node altijd exclusieve toegang heeft tot de gedeelde SCSI-disk. In een fysieke clustering setup mag je aannemen dat er van SCSI-reserve gebruik wordt gemaakt. Datzelfde geldt ook bij een VM-clusteromgeving op basis van Clustering Across Boxes. Wanneer men toch onverwachts tegen een probleem aanloopt, als bijvoorbeeld de clustering-software op een node de disk niet vrijgeeft, dan zijn de volgende commando’s te proberen: •
vmkfstools –L release vmhba0:1:0:0 Dit gebruik je voor het vrijgeven van de SCSI-reservering.
•
Een meer drastische SCSI-bus reset bereik je met vmkfstools –L reset vmhba0:1:0:0.
Uiteraard moet in beide commando’s de naam van de betreffende disk of VMFS worden aangepast.
Installatie ‘Cluster Across Boxes’ De creatie van de eerste node is identiek aan de hiervoor beschreven ‘Installatie eerste clusternode’. Er zijn een paar verschillen: • •
•
Bij de SCSI-controller wordt in plaats van ‘virtual’ op ‘physical’ ingesteld. Beide aanduidingen voor de gedeelde SCSI-disks moeten volgens de strikte vmhba-naam worden aangeduid, bijvoorbeeld vmhba1:0:0:1: clusterdata.dsk en vmhba1:0: 1:1:quorum.dsk. Zie afbeelding 4. Het disk volume die de VMFS-partitie bevat, moet op ‘shared’ worden ingesteld.
Hierbij is de installatie van de eerste clusternode voltooid en kan worden begonnen met de installatie van het Guest Operating System.
Klonen VM met Sysprep Na de installatie van Windows Server Advanced Server 2003 op de eerste clusternode kan Afbeelding 5 met klonen een kopie van de Overzicht SQL 2000 Cluster op ESX Server 2.1 eerste VM worden gemaakt. Daartoe maken van sysprep.exe gebruik disk of LUN. Verder is het noodzakelijk (te vinden op de Windows cd in dat de swap-bestanden van beide ESX\support\tools\deploy.cab). Sysprep ver- servers niet op een gedeelde disk worwijdert de Security ID die aan het Guest den geïnstalleerd. OS is toegekend en reset de systeemin- Ten slotte installeren we als proef de formatie en TCP/IP-netwerkconfiguratie. SQL Server 2000 op de VM clusteromDaarna wordt het Guest OS uitgeschakeld geving en testen met succes de failen een ‘power off’ gedaan van de VM. over-functie. Vanaf de console op de tweede ESX Populairder Server wordt een kopie van de virtuele disk gemaakt waarop de zojuist gekloon- De toepassing van virtualisatie van serde eerste clusternode staat. In het menu versystemen wordt steeds populairder. ‘Managed Files’ is deze disk in de direc- Een eerste toepassing daarvan vond al tory /vmfs/vms te vinden. Met comman- enkele jaren geleden plaats in ontwikdo ftp <server1-hostname> wordt de kelomgevingen waarbij naast het provirtuele disk in ‘binary transfer mode’ ductiesysteem, een testomgeving in een opgehaald en daarna krijgt hij een ande- virtuele machine kon worden gecreëerd re naam. Daarmee is het kloonproces op dezelfde server-hardware. Sinds voltooid en kan worden begonnen met de kort wordt deze vorm van virtualisatie steeds vaker ingezet voor consolidatie creatie van de tweede VM-clusternode. Dit proces verloopt identiek aan de crea- van serversystemen binnen de enterpritie van de eerste VM-node (zie ‘Installatie se-omgeving. Beschikbaarheid en betrouwbaarheid zijn primaire eisen die eerste clusternode’) met dit verschil: gesteld worden aan omgevingen die • In de Virtual Disk Configuratie wordt altijd beschikbaar moeten zijn. bij SCSI Controller de bus-sharing Clustering is daarvoor een van de meest gebruikte technieken en kan ook worvan ‘virtual’ veranderd in ‘physical’. • In de Network Device Configuration- den gecombineerd met serverconsolisectie worde de tweede ethernet- datie. VMware biedt op de ESX Server 2 adapter aan de tweede fysieke adap- zowel ‘binnen’ als ‘buiten’ de box serter verbonden. Deze wordt voor het verclustering aan. Het voordeel van ‘in the box’ clustering is dat daarvoor geen ‘private’ netwerk gebruikt. • Verandering van de specificaties van gedeeld opslagsysteem nodig is (SAN). Op die manier kan op eenvoudige wijze scsi1:1.1.name en scsi1:2.name. toch een hogere beschikbaarheid van Voor een maximale flexibiliteit verdient applicaties worden geboden. Clustering het aanbeveling om elke gedeelde virtu- ‘out of the box’ is mogelijk door twee ele disk op een aparte VMFS- of SCSI- fysieke servers te koppelen aan een disk (of LUN) te installeren. De reden SAN. Voor een ultieme beschikbaarheid, daarvoor is dat SCSI-reservation alleen tot slot, zijn beide clustermethoden ook rekening houdt met een complete SCSI- te combineren. Y
35