Inleiding
4/3 Novell Clustering Services 4/3.1
Inleiding
Met de komst van de Open Enterprise Server, heeft Novell de clustering-services ook geschikt gemaakt voor OES – Linux. Vanuit de iManager-interface is er niet bijzonder veel veranderd: als u wist hoe u clustering-services op NetWare moest instellen, dan gaat u dat ook op Linux lukken. Wel zult u merken dat de syntaxis van de cluster load-scripts is bijgewerkt: alle oude commando’s die werden gebruikt in NetWare zijn nog steeds beschikbaar onder Linux, maar de commando’s zijn nu ingevoerd in een meer algemene bash-syntaxis. In feite komt het er dus op neer dat u voor de load-scripts een bash-script schrijft in plaats van een specifiek script dat voor NetWare is bedoeld. Het laatste belangrijke verschil is de wijze waarop NCS op Linux wordt geladen: in plaats van LDNCS en ULDNCS gebruikt u nu rcnovell-ncs start en rcnovell-ncs stop. In dit hoofdstuk leest u in een voorbeeld wat u zoal met NCS op Linux kunt doen.
Novell Netwerkoplossingen, aanvulling 17
4/3.1-1
Novell Clustering Services
4/3.1-2
Novell Netwerkoplossingen, aanvulling 17
Networking Services
4/3.2
Novell Clustering Services op Linux
Met het verschijnen van Novells Open Enterprise Server is Novell Clustering Services (NCS) nu ook beschikbaar voor Linux-toepassingen. Als NCS namelijk op de Linux-versie van Open Enterprise Server wordt ingezet, betekent dat dat het mogelijk is om elke willekeurige Linux-toepassing te clusteren. In dit hoofdstuk leest u hoe de Linux-proxy-server Squid door middel van NCS op OES – Linux wordt geclusterd. 4/3.2.1 De casus De procedure in dit hoofdstuk is ontleend aan een praktische casus waarin een grote scholengemeenschap de toegang tot internet geclusterd wilde hebben. De klant had de volgende wens: • Internettoegang moet worden verzorgd door twee Squid-proxy’s. Deze proxy’s moeten niet alleen redundant in een fail-over-cluster worden uitgevoerd, maar het is ook nodig dat ze aan load-balancing doen. • De DHCP-server en de DNS-server moeten ook worden geclusterd, zodat er een maximaal fouttolerante oplossing ontstaat. Bij de clustering van DNS/DHCP is load-balancing geen noodzaak. 4/3.2.2 Het voorstel In de wens van de klant worden twee verzoeken gedaan die niet met elkaar kunnen worden verenigd. De klant wil namelijk dat er twee proxy-servers gelijktijdig actief zijn. Daarbij moet de werklast evenredig over beide proxy-servers worden verdeeld bij normaal functioneren. Als echter een van beide proxy-servers uitvalt, moet de ander het volledige werk kunnen overnemen. Deze mogelijkheid wordt niet geboden door NCS. Met NCS is het mogelijk te werken met fail-over, niet met load-balancing. Om die reden is
Novell Netwerkoplossingen, aanvulling 16
4/3.2-1
Novell Clustering Services
DNS
voorgesteld om de load-balancing te regelen door middel van DNS. Met het oog op fouttolerantie bestaat het voorstel erin dat twee DNS-servers worden ingericht. Een van beide DNS-servers is master, de ander is slave. In de DNSdatabase bestaan A resource records die verwijzen naar beide proxy-servers. Hierbij echter worden beide proxy-servers aangeduid onder de naam Squid, maar wordt wel verwezen naar verschillende IP-adressen. De relevante entries in DNS worden dus: squid
in
A
10.0.0.10
squid
in
A
10.0.0.20
Het voordeel van deze werkwijze is dat DNS automatisch round robin zal toepassen: pakketjes worden daarbij automatisch evenredig over de verschillende proxy-servers verdeeld. Voor fouttolerantie is het niet nodig de DNS-servers te clusteren – fouttolerantie zit in DNS namelijk al standaard ingebakken doordat gebruik wordt gemaakt van een master- en een slave-server. Het is wel van belang dat op de werkstations van eindgebruikers naar beide servers wordt verwezen: als de eerste-keus DNS-server dan namelijk uitvalt, kan de tweede-keus DNS-server het werk overnemen. Ook is het niet nodig dat de DNS-servers gebruikmaken van gedeelde opslag; de databases van beide servers worden immers gerepliceerd en zijn op die manier op beide servers aanwezig. De bovenvermelde oplossing biedt load-balancing voor de proxy-servers, maar geen fail-over clustering waarbij de taken van een node kunnen worden overgenomen als een van beide nodes uitvalt. Om dit toch te kunnen doen, kiest de klant er vanwege het grote belang van beide proxy-servers voor om achter elk van de twee proxy-servers een back-upserver neer te zetten, die er in een twee node
4/3.2-2
Novell Netwerkoplossingen, aanvulling 16
Networking Services
NCS-cluster voor zorgt dat de proxy gewoon doordraait als de primaire node uitvalt. Tot slot is er DHCP: ook deze service moet worden geclusterd. Voor deze clustering wordt gebruikgemaakt van een van beide bestaande Squid-clusters. Behalve de clustering van de services op zich, is hier dus geen extra hardware voor nodig.
iSCSI
Tot slot is er het punt van de gedeelde opslag. De klant vindt het niet belangrijk als de cache van de Squid-proxy opnieuw moet worden opgebouwd wanneer de masternode in het cluster uitvalt; dus gedeelde opslag is primair niet nodig. Daarnaast is er de wens het aanwezige SAN te ontzien: het SAN is er voor de opslag van gegevens van eindgebruikers en niet voor de opslag van gegevens die door de verschillende netwerkservers worden aangemaakt. De DHCP-servers en proxy-servers die binnen een cluster voorkomen, moeten echter wel configuratiebestanden met elkaar delen. Deze configuratiebestanden moeten voor beide servers toegankelijk zijn. Omdat dit het geval is, is gekozen voor een goedkope shared storage-oplossing in de vorm van iSCSI. Voor dit doel wordt een bestaande NetWare-server ingericht als iSCSI-target. Hier wordt gekozen voor NetWare omdat er op het moment dat dit werd geschreven, nog geen betrouwbare iSCSI-target-software voor OES – Linux beschikbaar was. De fouttolerantie van deze server wordt niet door middel van clustering, maar door middel van fouttolerantie-uitrusting van de server zelf opgelost (dubbele voeding, RAID 5, enz.).
Novell Netwerkoplossingen, aanvulling 16
4/3.2-3
Novell Clustering Services
Ontwerpvoorstel.
4/3.2.3 De uitwerking De implementatie van dit project bestaat uit verschillende onderdelen: 1. Configuratie van NetWare als iSCSI-target. 2. Configuratie van Linux als iSCSI-initiator. 3. Installatie van NCS op OES – Linux om twee clusters te creëren van twee nodes elk. 4. Aanmaken van cluster-resources voor de Squid-proxy in beide clusters en aanmaken van een clusterresource voor de DHCP-server op OES – Linux. 5. Installatie en configuratie van DNS.
4/3.2-4
Novell Netwerkoplossingen, aanvulling 16
Networking Services
Configuratie van NetWare als iSCSI-target De eerste stap die moet worden uitgevoerd om tot de bovenstaande configuratie te komen, is dat een NetWareserver wordt ingericht als iSCSI-target. Voor dit doel wordt gebruikgemaakt van OES – NetWare. De OES – NetWare-server is samen met alle OES – Linux-servers in eenzelfde tree geïnstalleerd. De namen van de servers kunnen worden achterhaald vanuit de afbeelding op de voorgaande pagina. Alle servers zijn geïnstalleerd in de container o=squid. Er wordt geen gebruikgemaakt van relevante organizational units. Om de iSCSI-target-software op OES – NetWare te installeren en te configureren, kan de volgende procedure worden uitgevoerd: 1. Start met behulp van de opdracht startx op de console van de OES – NetWare-server de grafische gebruikersomgeving en selecteer uit het menu Novell de optie Install. Het grafische installatieprogramma wordt nu geladen. 2. Kijk in het venster Installed Products of de iSCSI-target-software al is geïnstalleerd. Als dit niet het geval is, klik Add om de software toe te voegen en voltooi de installatieprocedure.
De iSCSI-target-software moet apart worden geïnstalleerd voordat u met installatie kunt beginnen.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-5
Novell Clustering Services
3.
4.
Tip
Start nu vanaf een werkstation een browser en ga naar de remote manager-pagina op http://uwserver:8008. Log vervolgens in op Remote manager. U moet nu op de NetWare-server een iSCSI-partitie aanmaken. Selecteer hiervoor de optie Manage Server, Partition Disks (zie afbeelding). U ziet nu een overzicht van alle storage adapters die op uw server aanwezig zijn en de partities, pools en volumes die al op die media aanwezig zijn. Selecteer nu het storagedevice waarop u de iSCSI-partitie wilt aanmaken en klik op Create.
Ziet u geen Create-optie maar alleen een optie Initialize Partition Table op het device dat u als iSCSI-partitie wilt configureren? Klik dan eerst op Initialize Partition Table. Wanneer een partitietabel voor het betreffende apparaat is aangemaakt, kunt u er in de volgende stap een iSCSI-partitie op aanmaken.
In Remote Manager kunt u een iSCSI-partitie aanmaken.
4/3.2-6
Novell Netwerkoplossingen, aanvulling 16
Networking Services
5.
Selecteer nu in de uitschuiflijst achter de optie Partition Type de optie Novell iSCSI om aan te geven dat u een iSCSI-partitie wilt maken. Klik dan op Create a New partition om de partitie ook daadwerkelijk aan te maken. Geef nu de gewenste grootte voor deze partitie aan en klik dan op Create om hem aan te maken. De partitie wordt nu onmiddellijk toegevoegd aan het overzicht van storage devices en partities in Remote Manager.
U hebt nu een iSCSI-partitie aangemaakt. Deze partitie moet door de iSCSI-software op de NetWare-server op het netwerk worden aangeboden. Voor dit doel is tijdens de installatie van de iSCSI-target-software een regel toegevoegd in AUTOEXEC.NCF waardoor TON.NCF wordt aangeroepen. Deze NCF zorgt ervoor dat alle software wordt geladen die nodig is voor de iSCSI-target. De meest belangrijke component die door TON.NCF wordt geladen, is ISCSITAR.NCF. Deze NCF zorgt er namelijk voor dat het contact met de LDAP-server tot stand wordt gebracht en, zoals u later zult lezen, dat is essentieel om de iSCSI-initiators die u straks gaat installeren gebruik te laten maken van deze iSCSI-target. Naast TON.NCF, waarmee u de iSCSI-targetsoftware kunt laden, is er ook TOFF.NCF. Zoals u al kunt raden, wordt deze gebruikt om de iSCSI-software weer uit het geheugen van uw computer te verwijderen.
Remote Manager
Om de iSCSI-target- en iSCSI-initiator-software (die u nog wel eerst moet installeren) te kunnen beheren, maakt u ook gebruik van Remote Manager. Selecteer hiervoor de optie Storage Services, iSCSI Services die door de installatieprocedure van de iSCSI-target-software automatisch op de OES – Netware-server is toegevoegd. Voordat u hier iets zinnigs kunt doen, klikt u eerst op Properties en zorgt u ervoor dat alle opties die u nu ziet, zijn geselecteerd.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-7
Novell Clustering Services
Hiermee vergroot u namelijk de beheermogelijkheden die vanuit Remote Manager worden getoond.
Vink eerst alle beschikbare properties van de iSCSI-target aan om ervoor te zorgen dat u de nodige opties te zien krijgt.
Configuratie van OES – Linux als iSCSI-initiator U bent nu voorlopig even klaar op de NetWare-server die als iSCSI-target moet functioneren. De volgende stap voor deze specifieke set-up bestaat erin dat u de OES – Linuxserver als iSCSI-initiator moet configureren; de iSCSI-initiator-software zorgt er namelijk voor dat u de gedeelde iSCSI-schijf op de iSCSI-target-server kunt gebruiken. Voer hiervoor op alle Linux-servers die van de shared storage op de iSCSI-target gebruik moeten maken, de onderstaande procedure uit: 1. Start op de OES–Linux-server het configuratieprogramma YaST en log in als root. Kies nu Software, Install and Remove software. Selecteer nu uit de drop-down list achter Filter de optie Search. 4/3.2-8
Novell Netwerkoplossingen, aanvulling 16
Networking Services
2.
Voer nu de zoekterm ‘iscsi’ in en druk op Search. Het software-package linux-iscsi wordt nu gevonden. Klik op Accept om het te installeren. Voer vervolgens de cd-rom in waar het installatieprogramma om vraagt.
Op Linux moet u de iSCSI-initiator-software eerst installeren voordat u hem kunt gebruiken.
3.
Voordat u verder gaat, moet u in ConsoleOne nu de iSCSI-initiator-objecten aanmaken; dit gebeurt namelijk niet automatisch. Maak deze objecten in dezelfde container als de iSCSI-target. Let er even op dat er geen snap-in is om deze objecten aan te maken, u kunt ze dus alleen als unmanageable objecten maken maar dat maakt niet uit. Wel moet u ervoor zorgen dat u het objecttype iSCSI-initiator selecteert bij het aanmaken van het object. Het is verder niet nodig om ook nog bepaalde eigenschappen in te stellen voor deze objecten.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-9
Novell Clustering Services
Om iSCSI te configureren, moet u handmatig de initiator-objecten aanmaken.
4.
5.
4/3.2-10
Nadat u beide initiator-objecten hebt aangemaakt, moet u ze wederom in ConsoleOne trustee maken van het iSCSI-target-object. Dit object is automatisch aangemaakt en heeft een naam als iscsi-0022e6c7bbd9-d911-88ae-oooc29fb0d37. Selecteer dit object, klik erop met de rechtermuisknop en selecteer uit het snelmenu de optie Trustees. Selecteer nu beide iSCSI-initiator-objecten en klik op OK. U hoeft geen speciale rechten in te stellen, de standaardpermissies zijn voldoende. Nu moet u de OES – Linux-servers aanpassen zodat daar lokaal de juiste naam van de iSCSI-initiator-software bekend is. Dit is de naam van het object dat u hebt aangemaakt in eDirectory. Als de naam van dit object bijvoorbeeld iscsi-initiator-squidcluster1 is, verandert u de laatste regel in /etc/initiatorname.iscsi Novell Netwerkoplossingen, aanvulling 16
Networking Services
6.
7.
naar InitiatorName=iqn.1987-04.com.cisco:cn=iscsiinitiator-squidcluster1,o=squid. (Let op: de punt achter de naam van de organization die u hier ziet, moet u niet in het bestand opnemen!) De naam van de initiator begint altijd met iqn.1987-04.com.cisco: daarachter volgt de LDAP-naam van het initiator-object dat u hebt aangemaakt in eDirectory. Nadat u op beide initiator-servers /etc/initiatorname.iscsi hebt aangepast, moet u nu het configuratiebestand /etc/iscsi.conf aanpassen. Hierin geeft u aan waar de iSCSI-target kan worden bereikt. U vindt een behoorlijk aantal opties in dit bestand; er is er echter maar één die u nu hoeft te wijzigen en dat is de optie DiscoveryAddress. Hierachter geeft u het IP-adres van de iSCSI-target. Nu moet u de iSCSI-software opnieuw opstarten. Gebruik hiervoor het commando /etc/init.d/iscsi restart. Als alles goed is gegaan (en dat is het als u de hiervoor beschreven stappen letterlijk hebt uitgevoerd), ziet u nu een venster van het SuSE Hardware Detection-programma dat er melding van maakt dat een nieuwe vaste schijf is gevonden. U doet voorlopig niets met deze schijf; dat komt pas wanneer we het cluster gaan installeren. Denk er nog wel even aan ervoor te zorgen dat de iSCSI-software voortaan automatisch wordt gestart als u uw computer aanzet. Gebruik hiervoor de opdracht insserv iscsi.
Als de configuratie op de juiste wijze is uitgevoerd, krijgt u nu een melding dat een nieuwe vaste schijf is gedetecteerd.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-11
Novell Clustering Services
De NCS-software installeren Nu het gedeelde schijfsysteem is klaargezet, is het tijd voor de volgende fase: de Novell Clustering Software moet op beide Linux-servers worden geïnstalleerd. Let even op als u met NCS aan het werk wilt: in OES wordt een tweenodelicentie voor NCS meegeleverd. Als u meer dan twee nodes in het cluster wilt opnemen, hebt u daar extra licenties voor nodig. 1. Start YaST op uw OES – Linux-server en voer het wachtwoord van de gebruiker root in. Selecteer vervolgens Software, Install and Remove Software. Zorg dat u uit de uitschuiflijst achter de optie Filter de optie Selections hebt geselecteerd en kies de optie Novell Cluster Services. U zult zien dat hierdoor ook de optie Novell NSS automatisch wordt geselecteerd. Klik nu op Accept om verder te gaan en klik in het scherm dat nu verschijnt op Continue. Voer de cd’s in waarom wordt gevraagd en wacht totdat alle software naar uw server is gekopieerd. 2. Activeer na succesvolle installatie van de NCS-software in YaST de optie System, Novell Cluster Services (NCS). Als u een foutmelding krijgt dat NSS eerst moet worden geïnstalleerd, klikt u op OK om verder te gaan, want NSS is geïnstalleerd dus u kunt deze foutmelding gewoon negeren. Vervolgens komt u in een venster waarin u aangeeft van welke LDAP-directory-server gebruik moet worden gemaakt. Als er een eDirectory-replica op uw server staat, selecteert u hier de optie Local system. Hebt u op deze server geen replica, selecteer dan remote system en verwijs naar de server waarop wel replica’s staan. Voer nu de admin-naam en het wachtwoord in en druk op Next om verder te gaan.
4/3.2-12
Novell Netwerkoplossingen, aanvulling 16
Networking Services
Tip
Voor een betere performance is het sterk aan te bevelen lokale replica’s te hebben op elke server die is geïnstalleerd in het cluster. NCS schrijft en leest veel informatie in eDirectory en u kunt hier de prestaties aanzienlijk mee verbeteren. Onder ideale omstandigheden maakt u een speciale partitie aan waarin alle clusterobjecten staan en repliceert u deze partitie over de verschillende servers in het cluster.
Zorg ervoor dat u een lokale replica hebt op elke server in het cluster.
3.
4.
Aangezien de installatie van NCS vereist dat NSS ook is geconfigureerd, moet u in het volgende venster een unieke objectnaam voor het NSS_admin volume opgeven. Accepteer de standaardinstelling en klik op Next om verder te gaan. Voer daarna nogmaals uw gegevens in om in te loggen op de LDAP-server. Nu moet u aangeven of u een nieuw of bestaand cluster wilt installeren. Op de eerste server in het cluster selecteert u de optie New Cluster. Vervolgens moet u de noodzakelijke informatie invoeren om het cluster te configureren. Dit is in elk geval de
Novell Netwerkoplossingen, aanvulling 16
4/3.2-13
Novell Clustering Services
eDirectory-naam die u aan het cluster wilt geven, het cluster IP-adres en de naam van het gedeelde device waarop u de Split Brain Detection- (SBD-) partitie wilt aanmaken. Hiervoor maakt u gebruik van het iSCSI-device dat u in het voorgaande hebt geconfigureerd. Gebruik eventueel de YaST-device-manager om te achterhalen wat de naam is van het gedeelde device. Let erop dat het niet nodig is om een SBDpartitie aan te maken. Ook zonder SBD-partitie kunnen de nodes in het cluster elkaar gewoon via eDirectory in de gaten houden.
Bij het aanmaken van een cluster geeft u een unieke eDirectorynaam en een IP-adres aan het cluster.
5.
4/3.2-14
In het volgende venster ziet u wat de naam en het IP-adres is van de node waarop u NCS installeert. Zorg ervoor dat de optie Start Clustering Services nu is geselecteerd en klik op Next om verder te gaan. De NCS-objecten worden nu aangemaakt en het cluster wordt geconfigureerd.
Novell Netwerkoplossingen, aanvulling 16
Networking Services
6.
Ga nu naar de volgende node die u aan het cluster wilt toevoegen en herhaal de voorgaande procedure.
Wilt u zich ervan overtuigen dat de cluster-software inderdaad met succes is geïnstalleerd? Gebruik dan de opdracht Cluster status vanuit een Console-venster om de huidige status van het cluster te achterhalen. De gedeelde opslag configureren Nu dat alle software is geïnstalleerd, wordt het tijd voor de volgende stap. De gedeelde opslag moet worden geconfigureerd. NCS heeft hiervoor een voorkeur voor NSS-volumes, al zijn ook andere volumetypes mogelijk. In dit voorbeeld bespreken we hoe u een NSS-volume als shared storage configureert. Let even op dat het niet altijd nodig is dat u gedeelde opslag gebruikt in uw cluster. Als bijvoorbeeld alleen configuratiebestanden moeten worden opgeslagen en verder geen gegevens moeten worden gedeeld, kunt u dit net zo goed lokaal regelen. In de case die hier wordt besproken, kan uitstekend zonder gedeelde opslag worden gewerkt. Wij laten u echter voor de volledigheid toch zien hoe u gedeelde opslag kunt configureren. 1. Open een Console-venster op een van beide OES – Linux-servers. Gebruik dan de opdracht nssmu om de NSS Management-utility te starten. 2. Selecteer uit het hoofdmenu van de NSS Management-utility de optie Devices en druk op Enter. Selecteer nu het device waarop u het cluster-enabled NSS-volume wilt aanmaken en druk op F6 om dit device shareable voor clustering te maken. Waarschuwing
Zorg ervoor dat u er zeker van bent dat u het juiste device selecteert. Als u het verkeerde apparaat selecteert, kan dat als gevolg hebben dat alle gegevens van dit device worden verwijderd. Zorg er ook voor dat alleen nodes in een cluster dit device kunnen benaderen.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-15
Novell Clustering Services
Het device waarop u het geclusterde volume wilt aanmaken, moet worden gemarkeerd als shareable for clustering.
3.
4/3.2-16
Druk nu op Escape om terug te gaan naar het hoofdvenster van de NSS Management-utility. Selecteer nu de optie Pools. Druk op Insert en voer de naam in van een nieuwe pool die u wilt aanmaken. Selecteer het device dat u zojuist als shareable for clustering hebt aangemerkt en specificeer vervolgens de grootte voor de pool die u wilt aanmaken. Aangezien het hier om een gedeelde pool gaat, moet u een aantal gegevens specificeren voordat u verder kunt. • Activate on Creation: zorgt ervoor dat de pool nadat hij is aangemaakt ook direct bruikbaar wordt gemaakt. • Cluster Enable on Creation: regelt dat de pool wordt gemarkeerd als bruikbaar in een cluster. • Virtual Server name: aangezien het hier een gedeelde pool betreft die niet echt aan één node in het netwerk is gekoppeld, heeft de pool zijn eigen virtuele server-object nodig.
Novell Netwerkoplossingen, aanvulling 16
Networking Services
Specificeer een naam die duidelijk is (of accepteer gewoon de standaardnaam van de pool). • CIFS Server Name: indien nodig kunt u hier een CIFS-naam specificeren voor de pool. • IP-address: voer hier het unieke IP-adres in waarop de pool kan worden bereikt. • Advertising Protocols: maak hier een keuze uit NCP, CIFS en AFP als file access-protocollen die kunnen worden gebruikt om de pool te benaderen. Standaard staat alleen NCP aan en als gebruikers niet in staat hoeven te zijn rechtstreeks vanaf een Windows werkstation zonder Novell-client naar de gedeelde pool gegevens weg te schrijven, is dat ook genoeg. Druk, nadat u een waarde hebt gegeven voor al deze opties, op Apply om verder te gaan. Controleer dat de pool ook is geactiveerd voordat u verdergaat met de volgende stap.
Bij het aanmaken van een NSS-pool die u met NCS wilt delen, is wat meer nodig dan bij het aanmaken van een gewone NSS-pool.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-17
Novell Clustering Services
4.
Ga nu terug naar het hoofdmenu van de NSS Management-utility en selecteer de optie Volumes. Maak nu het volume aan op de pool die u zojuist hebt gecreëerd.
U hebt nu het gedeelde volume aangemaakt en kunt verdergaan met de configuratie van de geclusterde resources.
Procedure
4/3.2-18
Squid als cluster-resource aanmaken Nu al het voorbereidende werk is voltooid, wordt het tijd over te gaan tot het echte werk: er moet nu een clusterresource worden aangemaakt voor de Squid-proxy-server. Dit betekent dat de Squid-software op beide servers in het cluster moet worden geïnstalleerd. Vervolgens moet deze service als cluster-service worden gestart: u moet er dus voor zorgen dat hij niet automatisch als stand-alone daemon vanuit de opstartscripts wordt gestart, maar dat hij wordt geladen door middel van een cluster-load-script. Tot slot kent u een apart IP-adres aan deze cluster-resource toe. Als dat is gebeurd, is de geclusterde Squid-server klaar voor gebruik. In de nu volgende procedure leest u hoe u te werk moet gaan om dit te regelen. 1. Om te beginnen moet u op beide servers Squid installeren. Start hiervoor YaST, log in als root en selecteer de optie Install and Remove software. Selecteer achter de optie Filter uit de uitschuiflijst de optie Search en voer in de zoekbalk de tekst Squid in. Selecteer alleen de optie Squid en klik dan op Accept om verder te gaan en de software te installeren. 2. Nu moet u ervoor zorgen dat de Squid-proxy niet automatisch wordt gestart als u de server aanzet: dit moet immers door het cluster-resource-object worden geregeld. Selecteer hiervoor in YaST de optie System en kies dan de runlevel editor. Zoek hier de Squid-service en zorg ervoor dat deze uitstaat.
Novell Netwerkoplossingen, aanvulling 16
Networking Services
3.
Start nu iManager en meld u aan als de admin-gebruiker. Selecteer Cluster, cluster options. Gebruik nu het vergrootglas om het cluster-object te lokaliseren waarvoor u de opties wilt zien en selecteer dit object. U ziet nu een overzicht van alle objecten die momenteel in het cluster voorkomen.
Na installatie van NCS vindt u onder uw cluster-container direct al een aantal clusterobjecten.
4.
5.
Klik nu onder Cluster Objects op New om een nieuw cluster-object aan te maken. Er verschijnt nu een venster waarin u aangeeft welk type cluster-resource u wilt maken. Selecteer hier het algemene type “Resource” en klik op Next om verder te gaan. Voer nu een naam in voor het resource. In het veld Inherit From Template kunt u een template selecteren waar deze geclusterde resource zijn eigenschap-
Novell Netwerkoplossingen, aanvulling 16
4/3.2-19
Novell Clustering Services
pen van erft. In dit geval is er niet echt een template die heel erg veel lijkt op wat nodig is voor de Squidproxy, dus is het handig gebruik te maken van de algemene template Generic IP Service. Selecteer deze en klik dan op Next om verder te gaan.
Wat voor resource u ook maakt, het is altijd aan te raden gebruik te maken van een template.
6.
Nu ziet u een venster waarin het voorbeeldscript staat. U kunt dit voorbeeldscript aanpassen zodat het uw service opstart; het voorbeeldscript is ontleend aan de template die u hebt gekozen – dus als u er niets aan wijzigt, kunt u er niet veel mee. De inhoud van het voorbeeldscript is als volgt: #!/bin/bash . /opt/novell/ncs/lib/ncsfuncs # mount the file system exit_on_error mount -t reiserfs
4/3.2-20
Novell Netwerkoplossingen, aanvulling 16
Networking Services
/dev/evms/vol /mnt/generic # add the IP address exit_on_error add_secondary_ipaddress a.b.c.d # start the service exit_on_error /etc/init.d/myservice start # return status exit 0
Eigenlijk gebeurt er in dit voorbeeldscript niet bijzonder veel. Om te beginnen wordt met ./opt/novell.ncs/lib/ncsfuncs een aantal functies geladen waarvan de clustersoftware gebruik kan maken. Deze functies zorgen ervoor dat specifieke functionaliteit wordt toegevoegd. NCS-load-scripts zijn namelijk gewoon ordinaire bash-shell-scripts. Om er echter voor te zorgen dat op een eenvoudige wijze bijvoorbeeld een secondair IP-adres wordt toegevoegd, worden deze functies geladen. Deze functies zijn standaard, u hoeft er dus niets aan te wijzigen. In het tweede blokje code wordt het bestandssysteem geladen dat door deze service moet worden gebruikt. Deze regel verwijst naar het gedeelde bestandssysteem dat u soms nodig zult hebben. In dit geval echter zijn de diensten van een gedeeld bestandssysteem niet nodig. U kunt er dus een commentaarteken voor zetten. Als derde wordt een IP-adres gedefinieerd dat door de geclusterde resource moet worden gebruikt. Dit is een belangrijk onderdeel: elke resource heeft namelijk een eigen IPadres nodig. Kies hier een uniek IP-adres dat valt binnen hetzelfde netwerk als de IP-adressen die door
Novell Netwerkoplossingen, aanvulling 16
4/3.2-21
Novell Clustering Services
de nodes in het cluster worden gebruikt. Het op één na laatste blokje code zorgt ervoor dat de service wordt gestart. U ziet dat dit in het voorbeeldscript verwijst naar een heel algemene service, namelijk /etc/init.d/myservice; u moet er natuurlijk voor zorgen dat hier de service wordt gestart waar het om gaat. In dit geval is dat dus de Squid-service. Tot slot wordt aan het einde van het cluster-load-script een exit-status meegegeven aan het besturingssysteem zodat kan worden gelogd of het script met succes is uitgevoerd of niet. Let tot slot ook even op de aanduiding “exit_on_error”. Dit zorgt ervoor dat als in enig deel van het script een fout optreedt, het script meteen wordt afgebroken. Op basis van het voorgaande moet duidelijk zijn wat nodig is om een load-script te maken voor de Squidservice. In het onderstaande vindt u hier een voorbeeld van: #!/bin/bash . /opt/novell/ncs/lib/ncsfuncs # add the IP address exit_on_error add_secondary_ipaddress 10.0.0.31 # start the service exit_on_error /etc/init.d/squid start # return status exit 0
De time-outwaarde voor het script is de tijd dat het
4/3.2-22
Novell Netwerkoplossingen, aanvulling 16
Networking Services
mag duren voordat de service volledig is geladen. Standaard staat dit op één minuut. Kan de service niet binnen een minuut worden geladen? Dan verandert de status van de service in comatose en is de service dus gewoon niet beschikbaar. Wij raden u aan deze waarde op te hogen tot een minuut of vijf en dan op Next te drukken om verder te gaan. 7.
Met behulp van het load-script zorgt u ervoor dat de service in kwestie op de juiste wijze wordt geladen; daarnaast hebt u ook een unload-script nodig dat ervoor zorgt dat de service op een nette manier weer uit het geheugen kan worden verwijderd. De relevante code die u in dit geval nodig hebt, is als volgt: #!/bin/bash . /opt/novell/ncs/lib/ncsfuncs ignore_error /etc/init.d/squid stop ignore_error del_secondary_ipaddress 10.0.0.31 exit 0
Let erop dat ook het unload-script van groot belang is: zonder goed unload-script zou het namelijk kunnen voorkomen dat bij het overzetten van de service van de ene naar de andere node, de service niet goed uit het geheugen wordt verwijderd. Dat zou een probleem opleveren bij het opnieuw laden van de service op de andere node, dus zorg ook hier dat u uw zaken goed regelt. Klik vervolgens op Next om verder te gaan.
Novell Netwerkoplossingen, aanvulling 16
4/3.2-23
Novell Clustering Services
Om de cluster-resource goed te kunnen beheren, hebt u een loadscript en een unload-script nodig.
8.
4/3.2-24
Nu moet u aangeven hoe de service moet worden gestart en hoe fail-over en fail-back moeten plaatsvinden. Als eerste geeft u met de optie Start Mode aan of de service automatisch of handmatig moet worden gestart. In de meeste gevallen zult u hier Auto willen kiezen: de service wordt dan geactiveerd als het cluster up komt. Vervolgens geeft u aan hoe fail-over en fail-back moeten plaatsvinden. In vrijwel alle gevallen zet u de fail-over-mode op Auto. Dit zorgt ervoor dat de service automatisch op de andere node wordt geactiveerd als de node waarop hij draait, onderuitgaat. De fail-back-mode bepaalt wat er moet gebeuren als de node waarop een service oorspronkelijk draaide na een crash weer terugkomt. Standaard staat deze op Disable, wat ervoor zorgt dat er gewoon helemaal niets gebeurt. Dat lijkt weliswaar onhandig, maar is in de meeste gevallen juist slim. U wilt in elk geval niet dat de resource automatisch
Novell Netwerkoplossingen, aanvulling 16
Networking Services
weer op de oorspronkelijke node wordt teruggezet, want voordat dat gebeurt, wilt u waarschijnlijk eerst weten waarom deze node is gecrasht. Als alternatief kunt u Manual selecteren om ervoor te zorgen dat de node handmatig weer kan worden teruggezet. Tot slot zijn er nog twee opties. Met behulp van de optie Resource Follows Master zorgt u ervoor dat de resource altijd op de master-node in het cluster draait. Kies Ignore Quorum als u wilt dat de node direct wordt gestart bij het opkomen van het cluster, zonder dat eerst de tijd die is gedefinieerd in het quorum wordt gewacht. Klik dan op Next om verder te gaan.
Met behulp van de resource policies bepaalt u exact hoe de resource zich op het cluster moet gedragen.
9.
Nu de resource helemaal is gedefinieerd, geeft u in het volgende scherm aan op welke nodes de resource moet draaien. In een twee-node-cluster is dat niet
Novell Netwerkoplossingen, aanvulling 16
4/3.2-25
Novell Clustering Services
spannend: beide resources zullen hier automatisch als assigned worden weergegeven. Let ook even op de volgorde: de eerste node in het lijstje zal namelijk de node zijn waarop de resource automatisch wordt geactiveerd. Uiteraard kunt u dit aanpassen. Tevreden met de instellingen? Klik dan nu op Finish. Dit zorgt ervoor dat de instellingen worden opgeslagen, de resource wordt aangemaakt en automatisch wordt gestart – als u alles tenminste goed hebt gedaan.
In een twee-node-cluster is de resource automatisch aan alle nodes toegekend.
Nu de cluster resource is aangemaakt, wordt het tijd om te kijken of hij het ook goed doet. Hiervoor maakt u gebruik van de cluster-manager: deze toont een overzicht van alle resources in het cluster en zal ook laten zien wat de status is van de resource in kwestie. Grote kans dat uw Squidresource niet direct on line wordt gebracht, maar dat u hem even moet selecteren en hem in dit venster on line te brengen. De status verandert dan automatisch in running.
4/3.2-26
Novell Netwerkoplossingen, aanvulling 16
Networking Services
Als alles goed is, wordt de cluster resource als “running” weergegeven in het cluster-managerscherm.
Voordat u nu met de armen over elkaar gaat zitten, wilt u natuurlijk ook weten of het overzetten van de service van de ene naar de andere node in het cluster goed gaat. Dit is eenvoudig te testen: selecteer de service in kwestie en klik op de link Migrate. Selecteer dan de server waarop u de service wilt laten werken en hij wordt automatisch overgezet. Lukt dit niet? Dan hebt u waarschijnlijk wat troubleshooting te doen in de cluster-load- en cluster-unloadscripts. Gaat het wel goed? Dan is het tijd voor de ultieme test: trek de stekker eruit van de node waarop de service draait en kijk of hij inderdaad automatisch wordt overgezet naar de andere node.
Novell Netwerkoplossingen, aanvulling 17
4/3.2-27
Novell Clustering Services
Configuratie van DNS en DHCP In het voorgaande hebt u gelezen hoe Squid als geclusterde resource kan worden geconfigureerd. Nu moeten er nog twee stappen worden uitgevoerd: om te beginnen moet DHCP voor fail-over worden geconfigureerd en daarnaast moet DNS worden geconfigureerd voor load-balancing. De eerste gedachte was om voor DHCP een aparte geclusterde resource aan te maken onder NCS. Aangezien in DHCP een speciale optie zit om de fail-over te regelen, is dit echter helemaal niet nodig. In dit stuk leest u hoe DHCP voor failover kan worden geconfigureerd. Voor de configuratie van DHCP en DNS maken we gebruik van SuSE Linux Enterprise Server versie 9, zonder OES. Voor deze functionaliteit is er immers niets nodig dat met OES wordt geleverd. Initialisatie van DHCP Om op SuSE Linux Enterprise Server (SLES) gebruik te maken van DHCP, gebruikt u YaST. De volgende procedure zet uiteen hoe u een initiële DHCP-server op SLES in de lucht kunt helpen. 1. Start YaST en geef indien nodig het wachtwoord van de gebruiker root. 2. Selecteer Network Services > DHCP. U krijgt nu waarschijnlijk de melding dat de DHCP-software nog moet worden geïnstalleerd. Klik op OK en voer achtereenvolgens alle cd’s in waar om gevraagd wordt. 3. Na installatie van de software wordt automatisch de DHCP-serverwizard gestart. Deze detecteert alle netwerkkaarten die in uw systeem aanwezig zijn en vraagt aan welke kaart DHCP moet worden verbonden. Selecteer een of meerdere netwerkkaarten en klik dan op Next om verder te gaan.
4/3.2-28
Novell Netwerkoplossingen, aanvulling 17
Networking Services
De DHCP-installatiewizard vraagt u op welke netwerkkaarten DHCP moet worden geactiveerd.
4.
Vul nu de algemene settings in voor de DHCP-server. De volgende instellingen zijn beschikbaar: • Domain Name: naam van het DNS-domein. • Primary Name Server IP: het IP-adres van de primaire nameserver. • Secondary Name Server IP: het IP-adres van de secondaire nameserver. • Default gateway: het adres van de router die u nodig hebt om contact te maken met de rest van de wereld. • Time server: het IP-adres van een NTP-tijdserver die door clients kan worden gebruikt. • Print server: het IP-adres van een printserver die u automatisch aan clients mee wilt geven. • WINS Server: het adres van een WINS-server.
Novell Netwerkoplossingen, aanvulling 17
4/3.2-29
Novell Clustering Services
• Default Lease Time: de standaardtijd die kan worden gebruikt zonder dat de lease van een IP-adres hoeft te worden vernieuwd. Klik wanneer u klaar bent met invullen van de instellingen op Next om verder te gaan.
De installatiewizard geeft u gelegenheid om wat algemene instellingen op te geven.
5.
4/3.2-30
Voer nu de reeks IP-adressen in die u wilt uitdelen. Ook kunt u voor deze reeks een specifieke leaseperiode opgeven. Deze leaseperiode mag afwijkend zijn van de default lease time die u onder de algemene instellingen hebt opgegeven.
Novell Netwerkoplossingen, aanvulling 17
Networking Services
Een van de meest belangrijke instellingen is de reeks van IP-adressen die u wilt uitdelen.
6.
Selecteer nu On om ervoor te zorgen dat de DHCPserver na een herstart van uw server automatisch wordt geactiveerd. Klik vervolgens op Finish om de instellingen weg te schrijven en de DHCP-server te starten.
U hebt nu de DHCP-server draaien op een server. Herhaal deze procedure om met exact dezelfde parameters de DHCP-server op uw andere server te configureren. Let op dat u ook gebruikmaakt van dezelfde instellingen voor de lease: u moet dus op de tweede server exact dezelfde adressen uitdelen. Wanneer beide servers zijn geïnstalleerd en geconfigureerd, gebruikt u het DHCP fail-over-protocol om de twee
Novell Netwerkoplossingen, aanvulling 17
4/3.2-31
Novell Clustering Services
servers een gedeelde adrespool te laten bedienen. Elke server zal dan op elk willekeurig moment de helft van de adressen hebben uitgedeeld. Als een van beide servers uitvalt, neemt de andere server het volledig over. Peer-declaratie
Om fail-over te configureren, moet u een peer-declaratie opnemen in het DHCP-configuratiebestand /etc/ dhcpd.conf. Door middel van deze peer-declaratie wordt het fail-overprotocol geactiveerd. Daarnaast moet u specifieke instellingen opnemen in elke pool waarvoor u failover wilt aanzetten. In de configuratie moet u er rekening mee houden dat een server de rol van primary speelt en de andere de rol van secondary. De configuratie in de primary server zou er als volgt uit kunnen komen te zien: failover peer “dhcp” { primary; address 192.168.0.10; port 519; peer address 192.168.0.20; peer port 520; max-response-delay 60; max-unacked-upadres 10; mclt 3600; split 128; load balance max seconds 3; } include “/etc/dhcpd.master”;
De meeste parameters uit dit voorbeeld zullen duidelijk zijn. Toch zijn er een paar die toelichting behoeven. Als eerste is dat de parameter “address”. Met behulp van deze optie definieert u op welk IP-adres de server moet luisteren naar connecties van de fail-over peer. Het adres of de
4/3.2-32
Novell Netwerkoplossingen, aanvulling 17
Networking Services
naam die u hier gebruikt, is dus het adres van de lokale server. Het adres van de andere server daarentegen wordt aangegeven met behulp van de parameter “peer address”. Vervolgens is belangrijk dat wordt aangegeven op welke poorten beide hosts naar elkaar luisteren. In dit voorbeeld is ervoor gekozen gebruik te maken van twee verschillende poorten, namelijk 519 en 520. Hiervoor mag ook gebruik worden gemaakt van dezelfde poort. Wel is het belangrijk dat deze parameter wordt gedefinieerd omdat er momenteel nog geen standaardpoort voor DHCP-fail-over beschikbaar is. De volgende parameter die van groot belang is, is de optie “max-responze-delay”. U gebruikt deze optie om aan te geven wat de maximale tijd is dat twee hosts niet van elkaar gehoord hebben. De waarde staat in dit voorbeeld ingesteld op 60; dit betekent dat het maximaal 60 seconden wordt getolereerd als twee hosts niets van elkaar gehoord hebben. Als het langer duurt dan 60 seconden, betekent dit dat de peer-host onbereikbaar is en wordt de configuratie van de peer-host overgenomen. De mclt-parameter vervolgens staat voor de Maximum Client Lead Time. Deze parameter wordt alleen op de server gedefinieerd die primary is. Met deze parameter wordt aangegeven gedurende hoe lang een lease mag worden vernieuwd door een van beide peers zonder dat ze contact met elkaar opnemen. Hoe hoger deze waarde wordt gezet, hoe langer het kan duren voordat alle IP-adressen door een server worden overgenomen zonder dat de peer-partner is benaderd. Korter is dus beter, maar zorgt ook voor een hogere belasting van de servers. De waarde 3600 werkt in de meeste gevallen goed, maar kan in specifieke situaties een aanpassing nodig hebben.
Novell Netwerkoplossingen, aanvulling 17
4/3.2-33
Novell Clustering Services
Vervolgens is er de splitwaarde. Met behulp van deze waarde wordt aangegeven wanneer een client-request door de primary en wanneer door de secondary moet worden afgehandeld. De enige zinnige waarde die hiervoor momenteel kan worden gebruikt, is de waarde 128. Deze waarde wordt ingesteld op de primary server en niet op de secondary. Met de load balance max seconds-waarde tot slot wordt aangegeven hoe lang het mag duren dat een client geen antwoord krijgt op een verzoek voordat de andere DHCP-server het verzoek gaat afhandelen. De standaardwaarde is drie seconden en die doet het in de meeste gevallen heel goed. Naast de configuratie op de primary server heeft ook de secondary server in het fail-overpaar een eigen configuratie nodig. Deze configuratie lijkt in grote lijnen op die van de primary, maar er zijn een paar punten waarop hij afwijkt. Hieronder ziet u de configuratie zoals deze op de secondary kan worden gebruikt: failover peer “dhcp” { secondary; address 192.168.0.20; port 520; peer address 192.168.0.10; peer port 519; max-response-delay 60; max-unacked-updates 10; } include “/etc/dhcpd.master”;
Op basis van de beschrijving van het configuratiebestand van de primary moet deze configuratie duidelijk zijn. Het volgende dat moet worden geregeld, is de gedeelde configuratie die zowel op de primary als de secondary voorkomt.
4/3.2-34
Novell Netwerkoplossingen, aanvulling 17
Networking Services
U hebt gezien dat hiervoor in beide configuratiebestanden wordt verwezen naar een bestand met de naam /etc/dhcpd.master. Dit bestand is belangrijk; het bevat namelijk de definitie van het gedeelde subnet die op beide hosts wordt gebruikt. De inhoud van dit bestand kan er als volgt uitzien: subnet 192.168.0.0 netmask 255.255.255.0 { pool { failover peer “dhcp”; range 192.168.0.100 192.168.0.200; deny dynamic bootp clients; } option routers 192.168.0.1; }
Ook dit bestand spreekt verder voor zich. De enige optie die wellicht toelichting nodig heeft, is de optie “deny dynamic bootp clients”. De reden dat deze optie hier voorkomt, is dat er momenteel geen ondersteuning is voor bootp-clients. Deze clients versturen namelijk een ander type request dan een standaard DHCP-client en dit type verzoek wordt momenteel nog niet ondersteund. Beperkingen De DHCP fail-overconfiguratie zoals hier beschreven is, werkt uitstekend voor de behoefte die de klant in dit geval had. Er zijn echter een paar beperkingen waarmee u mogelijkerwijze kunt worden geconfronteerd. Als eerste is dat de beperking dat het DHCP fail-overprotocol een vrij nieuwe ontwikkeling is. Dit betekent dat nog niet alle opties een definitieve status hebben en dat er nog niet bijzonder veel gebruikerservaring is met dit protocol. Het kan dus goed zijn dat over een jaar de parameters die moeten worden gebruikt er heel anders uitzien. Een tweede
Novell Netwerkoplossingen, aanvulling 17
4/3.2-35
Novell Clustering Services
beperking is dat er ondersteuning is voor maximaal twee DHCP-servers en niet meer. Er is echter ook een voordeel in vergelijking met de mogelijkheid waarin de DHCP-server in een NCS-cluster wordt gebruikt: deze configuratie staat namelijk wel load balancing toe en dat is voor een NCScluster niet het geval.
Round-robinoptie
Configuratie van DNS De configuratie van alle geclusterde resources is bij deze voltooid. De klant had echter ook nog een andere wens: er moest ook worden voorzien in een load-balancing-oplossing. Deze oplossing is echter niet standaard aanwezig in Novell Clustering Services. Gelukkig zijn er alternatieven die ook heel goed zijn. De meest voor de handliggende van deze alternatieven is gebruik te maken van DNS. DNS bevat namelijk standaard een round-robin-optie die ervoor zorgt dat de werklast evenredig wordt verdeeld over nodes met dezelfde naam. In dit geval betekent dat dat we twee Aresource records definiëren met dezelfde naam, maar met een afwijkend IP-adres. Omdat één dezelfde naam dus tweemaal voorkomt in de DNS-configuratie, zorgt DNS er automatisch voor dat de werklast evenredig over beide nodes wordt verdeeld. In de volgende procedure leest u hoe u DNS configureert op SuSE Linux en er daarbij ook voor zorgt dat de betreffende resource records worden aangemaakt. 1. 2.
3.
4/3.2-36
Start YaST en voer het wachtwoord van de beheerder in indien nodig. Selecteer Network Services > DNS Server. Als de DNSserver nog niet eerder geïnstalleerd is, krijgt u nu de melding dat het bind package geïnstalleerd moet worden. Klik om Continue om hiermee te beginnen. Voer nu achter elkaar de cd’s in waar om wordt gevraagd en rond de installatieprocedure af. Nadat
Novell Netwerkoplossingen, aanvulling 17
Networking Services
alle softwarecomponenten naar uw computer zijn gekopieerd, wordt automatisch de DNS-configuratiewizard gestart. Als eerste stap hierin moet u aangeven hoe u wilt omgaan met forwarders. Door middel van een forwarder zorgt u ervoor dat DNS-verzoeken die niet door de naamserver zelf kunnen worden opgelost, eerst worden doorgestuurd naar een andere naamserver. Dit is zinnig als u achter een langzame internetverbinding zit, in de meeste gevallen echter hebt u deze optie niet nodig en kunt u gewoon op Next drukken om verder te gaan.
In de meeste gevallen is het niet nodig gebruik te maken van een forwarder.
4.
Geef nu de naam op voor de zone die u wilt configureren en specificeer het type naamserver. Aangezien dit de eerste naamserver is, selecteert u het zone-
Novell Netwerkoplossingen, aanvulling 17
4/3.2-37
Novell Clustering Services
type “master”. Klik dan op Add om de zone toe te voegen.
In YaST is het heel eenvoudig een nieuwe zone toe te voegen.
5.
4/3.2-38
Klik nu op edit zone om de eigenschappen van de DNS-zone te definiëren. Drie tabbladen zijn met name de moeite waard. Om te beginnen is dat het tabblad NS Records. Hier definieert u alle servers die naamserver worden voor het domein. Aangezien in dit scenario fouttolerantie hoog in het vaandel staat, is het van belang hier zowel de master als de slave DNS-naamserver te specificeren. Doe dit door van beide de volledige DNS-naam op te nemen.
Novell Netwerkoplossingen, aanvulling 17
Networking Services
Zorg ervoor dat zowel de master- als de slave-DNS-server in het veld met NS Records worden genoemd.
6.
Het volgende tabblad dat de moeite waard is, is het tabblad SOA. Hier specificeert u de eigenschappen waarmee moet worden gesynchroniseerd tussen master en slave. De standaardinstellingen doen het goed voor de meeste situaties; u kunt ze dus gewoon laten staan, tenzij u een goede reden hebt om andere dan de standaardinstellingen te gebruiken.
Novell Netwerkoplossingen, aanvulling 17
4/3.2-39
Novell Clustering Services
Op het tabblad SOA regelt u hoe er moet worden gesynchroniseerd tussen master en slaves.
7.
4/3.2-40
Het belangrijkste tabblad is het tabblad Records. Hier voert u alle records in die in de DNS-database moeten voorkomen. Om te beginnen moet u er hier voor zorgen dat alle servers waarnaar u verwijst op het tabblad NS Records met een address-record worden gedefinieerd. Daarnaast zorgt u er hier ook voor dat een verwijzing wordt opgenomen naar de Squidproxy. In dit geval doet u dat door tweemaal een volledige verwijzing op te nemen naar de naam squid, de eerste verwijzing naar het IP-adres van de eerste geclusterde Squid-resource en de tweede naar het IPadres van de tweede geclusterde Squid-resource. Voer vervolgens naar wens alle andere resource records in die u nodig hebt om de DNS-configuratie te voltooien en klik op OK.
Novell Netwerkoplossingen, aanvulling 17
Networking Services
Voor load balancing door middel van DNS round robin maakt u twee resource records aan met dezelfde naam maar met een ander IP-adres.
8. 9.
Klik nu in het hoofdscherm van de DNS-configuratiewizard op Next om verder te gaan. Nu ziet u het laatste scherm van de DNS-configuratiewizard. Klik hier op On om de DNS-server nu te starten en er tevens voor te zorgen dat hij automatisch wordt gestart wanneer u de computer opnieuw opstart. Klik dan op Finish om de installatie van de DNS-server af te ronden.
Novell Netwerkoplossingen, aanvulling 17
4/3.2-41
Novell Clustering Services
Zorg er tot besluit voor dat de DNS-server automatisch wordt gestart wanneer u de server opnieuw aanzet.
U hebt nu de master DNS-server geconfigureerd. Om voor een optimale fouttolerantie te zorgen, moet u er nu nog voor zorgen dat de slave-server ook op de juiste wijze wordt ingericht. In de volgende procedure leest u hoe u hiervoor zorgt. 1. Log in op de SLES-server die u als slave wilt inrichten en start daar YaST. Geef het wachtwoord van de beheerder indien nodig. 2. Selecteer in YaST Network Services > DNS Server. Installeer alle DNS-software als dat nog nodig is. 3. Klik in het scherm met forwarder-settings op Next om geen gebruik te maken van de DNS forwarder-optie. 4. Voer nu dezelfde zonenaam in als u hebt ingevoerd op de master-server en selecteer het zonetype slave.
4/3.2-42
Novell Netwerkoplossingen, aanvulling 17
Networking Services
5.
Klik dan op Add om de zone toe te voegen aan de lijst met geconfigureerde DNS-zones. Selecteer nu de zone en klik op Edit zone. U komt nu in de zone-editor waarin slechts één optie beschikbaar is, namelijk de optie Master DNS Server. Voer hier de naam in van de master-server en klik dan op OK om de instellingen te bewaren.
De configuratie van de slave DNS-server bestaat erin dat u de naam van de master DNS server invoert.
6. 7.
Klik nu in het hoofdscherm van de DNS-configuratie op Next om verder te gaan. Selecteer nu in het scherm Finish de optie On om ervoor te zorgen dat ook de slave-server automatisch wordt gestart en klik tot slot op Finish. Dit zorgt
Novell Netwerkoplossingen, aanvulling 17
4/3.2-43
Novell Clustering Services
ervoor dat de configuratie wordt weggeschreven en de slave-server automatisch wordt gestart. Tot slot: Configuratie van de clients Alle servers zijn nu naar behoren geconfigureerd. Er moet nu nog één ding worden geregeld: de clients moeten ook worden voorzien van de juiste instellingen om met de configuratie aan het werk te gaan. Deze configuratie behelst twee onderdelen. Als eerste moet u ervoor zorgen dat de IP-adressen van beide DNS-servers worden opgenomen in de DNS-resolver-configuratie op de client. Vervolgens zorgt u ervoor dat bij de proxy-instellingen in de browser wordt verwezen naar de naam van de proxy. Dit is de naam zoals deze ook via DNS kan worden achterhaald. Als dit is gebeurd, is de configuratie klaar voor gebruik. 4/3.2.4 Tot slot In deze paragraaf hebt u kunnen lezen hoe de behoefte van een klant is omgezet in een concrete oplossing die is gebaseerd op Novell Clustering-services. We zullen niet beweren dat dit de enige denkbare oplossing is; we denken echter wel dat het een heel praktische oplossing is en wellicht ook de meest voor de hand liggende. We hopen dat u er de nodige inspiratie hebt kunnen uithalen voor uw eigen omgeving.
4/3.2-44
Novell Netwerkoplossingen, aanvulling 17
Networking Srevices
4/3.3
Beschikbaarheid voor iFolder
Novell heeft natuurlijk al jaren een uitgekiende set van producten om netwerken gemakkelijk en veilig te maken. Met elke versie van (bijvoorbeeld) ZENworks werden en worden de opties uitgebreid en verbeterd. Een van de echt nieuwe producten van de laatste tijd is iFolder. iFolder is een hit! Gebruikers van laptops en mensen die thuis werken zijn (terecht) zeer enthousiast over dit product. De slogan van iFolder is ‘Access anywhere, anytime’ en dit schept wel verplichtingen voor de beschikbaarheid, zeker omdat gebleken is dat mensen die thuis werken soms op de vreemdste momenten hun data willen kunnen benaderen. Bij beschikbaarheid denken we natuurlijk aan clustering. In dit hoofdstuk zal worden uitgelegd hoe iFolder op een cluster kan worden geïnstalleerd, waardoor we de beschikbaarheid kunnen garanderen die mensen verwachten. 4/3.3.1 Wat is iFolder? Om zeker te weten dat iedereen begrijpt wat dit product doet, beginnen we met een korte uitleg over iFolder.
Novell Netwerkoplossingen, aanvulling 16
4/3.3-1
Novell Clustering Services
Novell iFolder is een ‘in-the-net information storage space’ die door gebruikers vanaf vrijwel elk internet enabled systeem kan worden benaderd. De manier van toegang kan op twee manieren gebeuren: • Browser access Toegang via de browser zorgt ervoor dat we daadwerkelijk vanaf elke pc met internettoegang en een browser bij onze bestanden kunnen. Dit is met name handig als we bijvoorbeeld op vakantie zijn en via een internetcafé of een pc in de lobby van een hotel toch even bij onze bestanden willen. • iFolder-client Op computers waar we normaal gesproken op werken, kunnen we echter ook de iFolder-client installeren. Dit is een programma dat automatisch opstart en de synchronisatie uitvoert zodra er een internetverbinding is, rekening houdend met de instellingen die door de gebruiker (of beheerder) zijn gedaan:
4/3.3-2
Novell Netwerkoplossingen, aanvulling 16
Networking Srevices
Extra beveiligingslaag
Een van de meest belangrijke punten bij een tool als iFolder is dat we ervan uit kunnen gaan dat de gegevens ook veilig zijn opgeslagen en veilig worden verzonden. iFolder voldoet hier ruimschoots aan. Zoals we in de schermafdruk kunnen zien, gebruikt iFolder zowel een password als een pass phrase. Het wachtwoord is afkomstig van de LDAP-server die in de configuratie van de i-Folder server is gedefinieerd. In veel gevallen zal dit een eDirectory zijn, maar het is ook mogelijk om bijvoorbeeld een Active Directory te gebruiken. Dit wachtwoord wordt zowel voor authenticatie als voor encryptie gebruikt. De pass phrase is een extra beveiligingslaag die door de gebruiker wordt ingesteld tijdens het activeren van het iFolder-account. Bestanden die worden geüpload naar iFolder worden eerst geëncrypt met de pass phrase. Hierdoor wordt een dubbele encryptie gebruikt tijdens het verzenden en ontvangen van data. De pass phrase heeft echter ook een ander doel. De verzonden bestanden worden namelijk op de iFolder-server opgeslagen zónder eerste de pass phrase beveiliging te verwijderen. Hierdoor zijn de bestanden ook voor iemand die lokale toegang heeft, niet te lezen. Dit lost voor ons een langdurig probleem op. Directie en personeelszaken hebben van oudsher namelijk reserves om gegevens op te slaan op netwerken, omdat dan de beheerder de mogelijkheid heeft om in de bestanden te kijken. Of het opslaan van belangrijke gegevens op een lokale HDD een betere oplossing is, valt te bezien (hoe zit het met backups? Is de pc fysiek goed beveiligd?), maar met de komst van iFolder hebben we de mogelijkheid om deze gegevens wél op ons netwerk te hebben zónder dat we de data kunnen inzien.
Novell Netwerkoplossingen, aanvulling 16
4/3.3-3
Novell Clustering Services
Omdat iFolder is gemaakt om over internetverbindingen te werken, is er veel aandacht besteed aan de manier waarop de synchronisatie plaatsvindt. Niet alleen over de encryptie is goed nagedacht, maar ook over de updates zelf. Het updaten van iFolder gebeurt namelijk via wat DELTA-synchronisatie wordt genoemd: alleen de wijzigingen worden daadwerkelijk verzonden. Dat betekent dat als we midden in een Word-document van 7 Mb een ander document van 2 Mb invoegen, iFolder uiteindelijk maar iets meer dan 2 Mb zal synchroniseren en niet het gehele document. Die wijzigingen worden per 4 Kb verzonden, waardoor er vrijwel geen data hoeft te worden hersynced als tijdens een synchronisatie de verbinding wordt verloren (het is tenslotte synchronisatie over internet – dingen kunnen misgaan). Deze feature gebruiken we overigens ook tijdens een fail-over in het cluster. 4/3.3.2 De installatie In dit voorbeeld zullen we gebruikmaken van de volgende waarden; deze zullen tijdens een installatie uiteraard dienen te worden aangepast aan de omgeving waarin we installeren. Shared Storage Poolnaam: ifpool Volume: ifvol (grow to poolsize) IP-adres: 10.1.1.158 De grootte van de pool hangt af van de grootte van de iFolders die we gaan aanbieden en van de hoeveelheid mensen die van iFolder gebruik gaan maken. Authenticatie Voor authenticatie zullen we in dit voorbeeld gebruikmaken van de LDAP-server die toch al actief is op onze cluster-nodes. Dit werkt goed als alle cluster-nodes een
4/3.3-4
Novell Netwerkoplossingen, aanvulling 16
Networking Srevices
replica hebben waar de gebruikers in staan die iFolder gaan gebruiken. Als dit niet het geval is (bijvoorbeeld omdat wordt gewerkt met dedicated eDirectory / LDAPservers), kan beter een van die machines als LDAP-bron worden opgegeven. Aanmaken volume De eerste stap tijdens de installatie is om een shared storage aan te maken. De meest eenvoudige manier om dit te doen is om de NSSMU.NLM te gebruiken op een van de cluster-nodes. Selecteer de optie pools | insert om een nieuwe pool aan te maken. Selecteer als bron shared storage (dit is te zien aan de rechterkant van het scherm) en geef de juiste grootte op:
Configureer ook de naam van de virtuele server direct goed. CIFS wordt niet gebruikt en kan dus worden disabled (net als AFP). Maak nu het ifvol aan in de net gecreëerde pool. Dit volume mag groeien tot de maximale poolsize. Qua opties hoeft maar weinig te worden aangezet. De meeste features veroorzaken namelijk een verminderde performance en features als user space limits en disk space limits, salvage hebben op een database-systeem als iFolder toch geen zin.
Novell Netwerkoplossingen, aanvulling 16
4/3.3-5
Novell Clustering Services
Maak in de root van het gemaakte volume een directory \ifdata aan. Pas de settings in de iFolder-files aan Waarschijnlijk zijn de configuratie-files van iFolder al gevuld tijdens de installatie van iFolder (tijdens de installatie van de server) en zullen dus verkeerd staan. De settings moeten worden aangepast op álle nodes waar iFolder zou kunnen komen te draaien. • Open de file sys:\apache2\iFolder\Server\httpd.conf zoek desetting “ServerName”. Achter deze setting dient het resource-IP-adres te worden ingevoerd: 10.1.1.58. Sla de wijzingen op.
4/3.3-6
Novell Netwerkoplossingen, aanvulling 16
Networking Srevices
•
Open de file sys:\apache2\iFolder\Server\httpd_ ifolder_nw.conf Pas de volgende settings aan (let op: ze kunnen tweemaal voor komen!): LdapHost 10.1.1.58 iFolderServerRoot ifvol:\ifdata iFolderUserRoot ifvol:\ifdata iFolderServerDNSorIP 10.1.1.58 iFolderUserServerDNSorIP 10.1.1.58 Sla de wijzigingen op.
Pas de load-script voor de cluster-resource aan Omdat iFolder vanuit het cluster-script zal worden gestart, dienen we te controleren dat het in elk geval niet meer wordt gestart vanuit de autoexec.ncf-file. Als in de autoexec.ncf het commando startifolder.ncf staat, dienen we dit te verwijderen of uit te markeren. Als startifolder.ncf in de autoexec.ncf stond, zal iFolder ook nog zijn geladen en dient te worden afgesloten voordat de scriptfile wordt aangepast en de resource opnieuw wordt gestart (om te voorkomen dat de resource in een “comatose state” komt). Stoppen van iFolder kan worden gedaan via de stopifolder.ncf. Selecteer de resource ifpool_server in de cluster-container en ga naar Properties. In het load-scriptscherm dient het volgende script te worden geplaatst:
Novell Netwerkoplossingen, aanvulling 16
4/3.3-7
Novell Clustering Services
Let erop dat ook de Timeout (secs) is aangepast. Standaard staat die namelijk op 600 seconden (10 minuten) en dat is natuurlijk veel langer dan het uitvoeren zou mogen duren. Het unload-script maakt (zoals gebruikelijk) de acties uit het load-script weer ongedaan:
4/3.3-8
Novell Netwerkoplossingen, aanvulling 16
Networking Srevices
Breng de resource een keer off line en start hem weer voordat u test of iFolder werkt. Na de restart zou u zonder problemen zowel via de client als via de webinterface moeten kunnen werken:
Tijdens een fail-over raken we uiteraard de connectie (even) kwijt. De iFolder-client herstelt hier automatisch weer van. De webinterface verliest de connectie ook en zal in de meeste gevallen automatisch herstellen. Dit hangt er met name van af of gebruik wordt gemaakt van een SSLverbinding of niet.
Novell Netwerkoplossingen, aanvulling 16
4/3.3-9
Novell Clustering Services
4/3.3-10
Novell Netwerkoplossingen, aanvulling 16
Networking Services
4/3.4
Heartbeat-clustering, een alternatief voor NCS
4/3.4.1 Inleiding Als u in een Novell-omgeving een cluster in wilt richten, denkt u daarbij waarschijnlijk in eerste instantie aan Novell Clustering Services. Terecht, want deze robuuste oplossing zorgt ervoor dat u toepassingen fouttolerant kunt maken in een cluster dat uit maximaal 32 nodes bestaat. Daarnaast is Novell Clustering Services in eDirectory geïntegreerd, wat het beheer aanzienlijk vereenvoudigt. NCS is echter niet de enige oplossing in een Novell-omgeving. Als u namelijk SuSE Linux gebruikt, kan heartbeat-clustering als eenvoudig en efficiënt alternatief dienen voor omgevingen waarin twee nodes de fouttolerantie van een toepassing moeten regelen.
DRBD
Om een tweenode heartbeat-cluster te maken, hebt u naast de twee nodes die de service dragen, ook gedeelde opslag nodig. Juist op dit punt blijkt heartbeat erg efficiënt. U hebt namelijk helemaal geen SAN of iSCSI-target nodig, maar kunt de gedeelde opslag gewoon op de twee nodes in het cluster zelf regelen door met DRBD (Distributed Replicated Block Device) een gedeeld opslagmedium te maken. In deze paragraaf leest u eerst hoe u een DRBD-device aanmaakt. Vervolgens leert u hoe u dit device in een heartbeat-cluster gebruikt. 4/3.4.2 Een DRBD-device aanmaken Om de beschikbaarheid van gegevens te optimaliseren kan gebruikgemaakt worden van RAID 1. Hierbij wordt mirroring toegepast. Gegevens die op een schijf worden weggeschreven, worden bij RAID 1 gelijktijdig ook op een schaduwschijf weggeschreven. Het voordeel is dat als een
Novell Netwerkoplossingen, aanvulling 18
4/3.4-1
Novell Clustering Services
van beide schijven wegvalt, de gegevens via de andere schijf gewoon nog beschikbaar zijn. RAID 1
Het is gebruikelijk dat RAID 1 mirroring toegepast wordt binnen een lokale machine. Als echter die machine afbrandt, is het beveiligingseffect van RAID 1 alsnog nihil. Niet alleen de hoofdschijf maar ook de gemirrorde schijf zullen hiermee verloren gaan. Een oplossing hiervoor is de mirroring over het netwerk toe te passen. Onder Linux kan hiervoor gebruikgemaakt worden van het Distributed Replicated Block Device (DRBD). Het voordeel van gebruik van DRBD is niet alleen dat hiermee gegevens in een netwerk veiliggesteld kunnen worden door middel van RAID 1-technologie, maar ook dat het gebruikt kan worden in combinatie met high availability(HA-)clustering. Dit is een van de meest gangbare typen van clustering die op Linux gebruikt wordt. In een HAcluster is het de bedoeling dat een bepaalde service altijd beschikbaar is. Welk type service dat is, maakt niet bijzonder veel uit. Het zou bijvoorbeeld een NFS-server kunnen zijn, een Samba-server of welke willekeurige server dan ook waarvan het voor uw bedrijf van belang is dat hij nooit onbereikbaar is. Deze service werkt in de meeste gevallen met configuratiebestanden. Vaak ook heeft de service in kwestie schijfruimte nodig om gegevens weg te kunnen schrijven. In zo’n geclusterde omgeving zijn hiervoor verschillende mogelijkheden. Shared storage-oplossingen De eerste optie om gegevens centraal weg te schrijven naar een locatie waar elke clusternode de gegevens kan bereiken, is gebruik te maken van een fibrechannel SAN. Dit is een dure oplossing, die voorziet in gecentraliseerde opslag van gegevens. Voor deze oplossing is speciale hard-
4/3.4-2
Novell Netwerkoplossingen, aanvulling 18
Networking Services
iSCSI
ware nodig – een investering die in de meeste gevallen zeker vele tienduizenden euro’s kost. Een goedkoper alternatief is gebruik te maken van iSCSI. Hierbij kunt u werken met speciale storage routers, of gewoon met een server waarop een iSCSI-target actief is. Deze iSCSI-target zorgt ervoor dat meerdere nodes gelijktijdig toegang krijgen tot de schijfruimte die door de iSCSI-target aangeboden wordt. Op zich een prima oplossing, maar er moet wel altijd een aparte node beschikbaar zijn die als opslag fungeert. Dit betekent in een twee-nodecluster dat er een derde node is die de gedeelde storage aanbiedt. Deze derde node wordt op zijn beurt weer een single point of failure. Als namelijk de node waarop de iSCSI-target draait uitvalt, wordt hiermee de gedeelde opslag ontoegankelijk en zal de service in het high available-cluster nog wel doordraaien, maar feitelijk geen nut meer hebben. Juist voor een cluster dat uit twee nodes bestaat, is DRBD een ideale oplossing. De DRBD-driver zorgt er in samenwerking met de clusteringsoftware voor dat de node waarop de geclusterde service actief is, op dat moment mag schrijven in de DRBD-partitie. Valt een node uit, dan detecteert de clustersoftware dat en zorgt deze ervoor dat de andere node in het cluster schrijftoegang krijgt tot het DRBD-device. Het grote voordeel van deze werkwijze is dat in feite de storage hiermee ook fouttolerant is opgelost en er geen speciaal apparaat in het netwerk meer nodig is om de opslag van gegevens te regelen. Hiermee wordt DRBD voor twee-nodeclusters misschien wel de meest efficiënte wijze om gedeelde opslag te regelen. Configuratie van DRBD De DRBD-software wordt standaard met SuSE Linux mee geleverd. U kunt het via een standaard YaST-installatieroutine installeren. In deze paragraaf gaan we ervan uit dat u
Novell Netwerkoplossingen, aanvulling 18
4/3.4-3
Novell Clustering Services
de software niet meer hoeft te installeren, maar dat deze gewoon aanwezig is op de server. Als het DRBD-device is aangemaakt, zijn er in theorie twee mogelijkheden om het te laden. De eerste mogelijkheid is het vanuit het algemene configuratiebestand /etc/fstab te laden, zodat het bij het starten van een machine geactiveerd wordt. Deze oplossing is wenselijk als u DRBD puur wilt inzetten als RAID 1 over het netwerk. Als u het echter gebruikt in combinatie met heartbeat-clustering, is dit geen optie. In een geclusterde omgeving moet namelijk niet de lokale machine zelf, maar het cluster bepalen wanneer en waar het DRBD-device geactiveerd wordt. Anders zou het immers onmogelijk zijn de controle over het device automatisch over te zetten naar een andere node als de primaire node in het cluster down gaat.
Belangrijkste opties
4/3.4-4
De beste manier om te beginnen met de configuratie van het DRBD-device is door gebruik te maken van het voorbeeldconfiguratiebestand. Dit bestand wordt mee geleverd met de tarball. Als u gebruikmaakt van SuSE Linux Enterprise Server, vindt u dit voorbeeldbestand in /usr/share/doc/packages/drbd/drbd.conf. Dit bestand is zeer goed voorzien van commentaar: u kunt dus de 309 regels die er standaard in voorkomen doorlezen en zelf bepalen hoe de configuratie eruit komt te zien (al zal niet alles meteen duidelijk zijn omdat een zeker niveau van voorkennis verondersteld wordt). Om het u toch iets gemakkelijker te maken bespreken we hier de belangrijkste opties. Maak om te beginnen een kopie van het configuratiebestand, zodat u altijd het originele voorbeeldbestand nog voorhanden hebt. Bewerk dat en kopieer het bewerkte bestand vervolgens naar /etc/drbd.conf. Dit doet u overigens op beide nodes die u toegang wilt geven tot het
Novell Netwerkoplossingen, aanvulling 18
Networking Services
DRBD-device, anders zou het device maar op een van beide toegankelijk zijn.
De configuratie van DRBD regelt u in /etc/drbd.conf.
Aangezien zelfs met de documentatie in het bestand het DRBD-configuratiebestand nog behoorlijk overweldigend kan zijn, geven we hieronder een voorbeeld van hoe een eenvoudig bestand eruit zou kunnen zien. resource drbd0 { protocol C; startup { wfc-timeout 0;
Novell Netwerkoplossingen, aanvulling 18
4/3.4-5
Novell Clustering Services
degr-wfc-timeout 120; } disk { on-io-error
detach;
} syncer { rate 100M; group 1; al-extents 257; } on drbd1 { device
/dev/drbd0;
disk
/dev/sdb1;
address
192.168.0.201:7788;
meta-disk
internal;
} on drbd2 { device
/dev/drbd0;
disk
/dev/sdb1;
address 192.168.0.202:7788; meta-disk
internal;
} }
Dit configuratiebestand bestaat uit twee onderdelen. Ten eerste ziet u protocolinstellingen die bepalen hoe er gecommuniceerd moet worden en wat er moet gebeuren als een van beide nodes down gaat. Neem deze gewoon over zoals ze hier staan: deze instellingen doen het op de meeste machines uitstekend. Na de algemene protocol-
4/3.4-6
Novell Netwerkoplossingen, aanvulling 18
Networking Services
instellingen komt in de secties ‘on drbd1’ en ‘on drbd2’ de definitie van de configuratie zoals deze gebruikt moet worden. Voor alle duidelijkheid: drbd1 en drbd2 zijn de namen van de nodes die voor deze test gebruikt worden. Op beide nodes moet u verwijzen naar het DRBD-device dat u wilt aanmaken. Daarbij geeft u aan welk lokaal device gebruikt wordt. In dit voorbeeld gebruiken beide nodes dezelfde lokale device-naam. Dat is handig, maar geen absolute vereiste. Wel een absolute vereiste is dat beide ook even groot zijn. Vervolgens geeft u aan wat de adressen van de nodes zijn en welke poort DRBD mag gebruiken om de communicatie tussen de nodes tot stand te brengen. Als laatste parameter geeft u aan waar zich de meta-disk bevindt. Door deze waarde op ‘internal’ te zetten zorgt u ervoor dat de administratieve gegevens weggeschreven worden op het device dat door DRBD gebruikt wordt. Nu de configuratie op beide nodes is weggeschreven, wordt het tijd ermee aan het werk te gaan. Om dit te doen moet u echter eerst het DRBD-device aanmaken. Als u dit verzuimt, krijgt u namelijk een foutmelding en gaat het niet werken. Het devicebestand /dev/drbd0 bestaat namelijk standaard niet. Maak het DRBD-device met de volgende opdracht: for i in $(seq 0 15) ; do mknod /dev/drbd$i b 147 $i; done
Voer dit commando uit op beide nodes waarop het DRBDdevice gebruikt moet worden. Zo zorgt u ervoor dat een totaal van zestien DRBD-device-bestanden aangemaakt wordt. Zodra dat gebeurd is, gebruikt u op beide nodes het commando rcdrbd start om de DRBD-services te starten. Als dit zonder foutmeldingen gebeurd is, geeft u nu de opdracht cat /proc/drbd op beide nodes om te kijken of de
Novell Netwerkoplossingen, aanvulling 18
4/3.4-7
Novell Clustering Services
service op de juiste wijze geactiveerd is. De status van de devices op beide nodes moet u in dit bestand aangeven als Secondary en Inconsistent, maar dat is geen probleem. De oorzaak hiervan is dat de devices nog niet weten wat de primaire node wordt, want daarvoor hebt u de benodigde stappen nog niet uitgevoerd.
In /proc/drbd ziet u of de DRBD-service met succes geactiveerd is.
Nu de service met succes gestart is, wordt het tijd ervoor te zorgen dat het DRBD-device elke keer dat u beide nodes start, ook wordt geactiveerd. Doe dit door op beide nodes de opdracht insserv drbd te geven. Daarna kunt u de primaire node opzetten. We doen dat hier handmatig; houd er rekening mee dat dit ook de volgende keer na het starten van uw systeem handmatig moet gebeuren. Gebruik hiervoor de volgende opdracht:
4/3.4-8
Novell Netwerkoplossingen, aanvulling 18
Networking Services
drbdsetup /dev/drbd0 primary —do-what-I-say
Let op de hoofdletter I in de opdracht: als u het met een kleine letter probeert, zegt het commando vriendelijk dat het de optie niet herkent. Nu de primaire node is toegewezen, kunt u in het bestand /proc/drbd kijken of er synchronisatie tot stand gebracht wordt. Een handige manier om dit periodiek te doen is door gebruik te maken van de opdracht watch. Deze opdracht is ideaal als u bijvoorbeeld elke twee seconden de inhoud van een configuratiebestand opnieuw wilt bekijken. Het volgende commando zorgt ervoor dat periodiek de inhoud van /proc/drbd getoond wordt, zodat u ziet of er synchronisatie tussen de primaire en secondaire node tot stand gebracht wordt: watch cat /proc/drbd
Als de synchronisatie tussen de primary en secondary node succesvol tot stand gebracht is, ziet u dat in /proc/drbd.
Novell Netwerkoplossingen, aanvulling 18
4/3.4-9
Novell Clustering Services
Als alles goed gaat, ziet u nu dat er een primaire en secondaire node bekend zijn en dat de status veranderd is tot consistent. Kijk net zo lang als nodig is en stop de weergave van het configuratiebestand door gebruik te maken van de toetsencombinatie Ctrl+C. Zodra de synchronisatie tot stand gebracht is, kunt u een bestandssysteem aanmaken op het DRBD-device. Gebruik hiervoor de volgende opdracht: mkfs.reiserfs /dev/drbd0
Als het DRBD-device met succes is aangemaakt, maakt u er een bestandssysteem op aan vanaf de primaire node.
Nu u het DRBD-device werkend hebt, moet u tot slot bepalen wat u ermee wilt doen. Gaat het er om mirroring toe te passen over het LAN? Maak dan op de primaire node
4/3.4-10
Novell Netwerkoplossingen, aanvulling 18
Networking Services
een mountpunt aan in /etc/fstab, zodat automatisch verbinding gemaakt wordt met het device als de primaire node start. Houdt de primaire node er een keer mee op? Voer dan op de secondaire node de opdracht drbdsetup /dev/drbd0 primary —do-what-I-say uit. U hebt dan toegang tot de gegevens op het gemirrorde device vanaf de secondaire node, die op dat moment primair geworden is. Uiteraard moet u het DRBD-device wel eerst even mounten. Op deze wijze toegepast zorgt u voor een extra stukje beveiliging op het netwerk. Maar eigenlijk hebt u daar geen DRBD voor nodig en kunt u met rsync hetzelfde doen – zelfs nog uitgebreider. DRBD bewijst pas echt zijn kracht als u het gebruikt in een geclusterde omgeving. De standaard heartbeat-clustering die met SuSE Linux Enteprise Server (en andere distributies) wordt mee geleverd, leent zich hier uitstekend voor. Als u echter DRBD gaat gebruiken in een geclusterde omgeving, moet u er voor zorgen dat het DRBD-device juist niet gemount wordt in /etc/fstab. In dit geval moet namelijk juist de clusteringsoftware de toegang tot het device regelen. In het vervolg van deze paragraaf leest u hoe u zo’n cluster kunt inrichten.
Eenvoud
4/3.4.3 Heartbeat-clustering Heartbeat-clustering, alias Linux-HA-clustering, is een van de vele manieren waarop u Linux in kunt zetten als platform voor een geclusterd netwerk. Kenmerkend voor HAclustering is de eenvoud ervan. Deze nodes in het heartbeat-cluster zenden elkaar heartbeat-pakketjes toe om van elkaar te controleren of ze nog wel beschikbaar zijn. Deze pakketjes worden typisch eens per twee seconden verstuurd. Is er een pakketje dat niet aankomt? Dan besluit de heartbeat-software dat de geclusterde resource gemigreerd moet worden naar de andere node.
Novell Netwerkoplossingen, aanvulling 18
4/3.4-11
Novell Clustering Services
Aangezien het missen van een pakketje dramatische gevolgen heeft (de betreffende resource wordt namelijk overgezet en als dank voor bewezen moeite wordt de primaire node ook nog eens onderuit geschopt), is het zinnig al vóór de installatie van de software rekening te houden met de juiste setup. Wij bevelen in elk geval aan een aparte netwerkverbinding te gebruiken waarover het heartbeat-verkeer verstuurd wordt, los van de netwerkverbinding waarover het normale verkeer verstuurd wordt. Als er immers een pakketje mist, wordt de resource direct gemigreerd, en dat is niet het enige. Om een situatie te vermijden waarin er twee nodes zijn die allebei denken dat ze de primaire node zijn voor een bepaalde resource en ook beide willen schrijven op het gedeelde storage device, wordt in de regel gebruikgemaakt van STONITH (Shoot The Other Node In The Head). Deze techniek zorgt ervoor dat de node waarop de resource na een migratie komt te draaien, de primaire node ‘afschiet’. Het gevolg daarvan is dat deze node opnieuw opstart en dat op deze wijze gegarandeerd wordt dat er daadwerkelijk ook maar één node beschikbaar is. Stonith is echter een optionele techniek en komt dus niet in elk heartbeat-cluster voor. In de configuratie van een HA-Linux-cluster heeft elke resource zijn eigen IP-adres. Dit IP-adres wordt als secondair IP-adres aangeboden door de node waarop de betreffende service op dat moment draait. U moet er in de setup rekening mee houden dat dit altijd een IP-adres moet zijn dat beschikbaar is binnen het netwerk waarin de nodes in het cluster zich ook bevinden.
Vijf stappen
4/3.4-12
Installatie en configuratie van een heartbeat-cluster De installatie en configuratie van een heartbeat-cluster bestaan grofweg uit vijf verschillende stappen. We zetten
Novell Netwerkoplossingen, aanvulling 18
Networking Services
eerste de betreffende stappen uiteen; deze worden vervolgens uitgewerkt. 1. Kopieer de configuratiebestanden uit de directory met voorbeelden naar de juiste locatie. 2. Stel de authenticatie-keys in zodat beide nodes zich veilig bij elkaar kunnen aanmelden (of laat dit achterwege als uw netwerkverbinding sowieso al veilig is). 3. Configureer het hoofdconfiguratiebestand ha.conf op beide nodes. 4. Configureer de resources in het heartbeat-netwerk. Maak hiervoor gebruik van het configuratiebestand haresources. 5. Start de heartbeat-software op beide nodes. Op basis van dit stappenplan zullen wij een voorbeeld uitwerken. In dit voorbeeld wordt een NFS-server high available gemaakt. Voor de opslag van gegevens door deze NFS-server maken we gebruik van het Distributed Replicated Block Device dat u aan de hand van de informatie eerder in deze paragraaf aan hebt kunnen maken. Kopiëren van de voorbeeldbestanden U kunt natuurlijk helemaal van nul af aan beginnen, maar dat raden wij niet aan. Veel eenvoudiger is het de voorbeeldbestanden die met de heartbeat-software mee geleverd worden te kopiëren naar de directory /etc/ha.d. Het gaat hierbij om de volgende bestanden: • authkeys: in dit bestand worden de authenticatiesleutels geplaatst die nodig zijn voor de wederzijdse authenticatie van nodes in het heartbeat-cluster; • ha.cf: dit is het hoofdconfiguratiebestand waarin in algemene zin het gedrag van de heartbeat-software gedefinieerd wordt;
Novell Netwerkoplossingen, aanvulling 18
4/3.4-13
Novell Clustering Services
•
haresources: in dit bestand geeft u aan welke resources u in het heartbeat-cluster beschikbaar wilt stellen.
De drie voorbeeldbestanden bevinden zich na installatie van de heartbeat-software in de directory /usr/share/ doc/packages/heartbeat. Kopieer ze hieruit naar de directory /etc/ha.d. Instellen van de authenticatiesleutels Om ervoor te zorgen dat de resources niet op de verkeerde node geactiveerd worden, kunt u gebruikmaken van authenticatiesleutels. Deze sleutels bevinden zich in het bestand /etc/ha.d/authkeys. De opbouw van dit bestand is werkelijk eenvoudig: u hebt er maar twee regels configuratie voor nodig. In de eerste regel geeft u aan welk type authenticatie u wilt gebruiken. Hierbij hebt u de keuze uit crc, sha1 en md5. Crc biedt geen echte beveiliging en mag daarom alleen gebruikt worden op een netwerk dat werkelijk veilig is. De andere twee authenticatiemethoden zijn allebei goed; het maakt dus niet veel uit welke u gebruikt. In het bestand authkeys geeft u aan welke authenticatiemethode u wilt gebruiken en vervolgens specificeert u de sleutel die u aan de authenticatiemethode wilt koppelen. De relevante regels komen er dan als volgt uit te zien: ... # auth 3 #1 crc #2 sha1 hallo 3 md5 geheim
4/3.4-14
Novell Netwerkoplossingen, aanvulling 18
Networking Services
Als u op de eerste node de authenticatiemethode hebt ingesteld, moet u hem naar de tweede node kopiëren. De handigste manier om dat te doen is door gebruik te maken van scp, zoals u ziet in het volgende voorbeeld: scp /etc/ha.d/authkeys andere-node:/etc/ha.d
Nadat u het bestand met sleutels zo gekopieerd hebt, zorgt u ervoor dat de permissies juist ingesteld worden. Op beide nodes moet u de permissiemodus 600 gebruiken. Dit regelt u door op beide nodes de volgende opdracht te geven: chmod 600 /etc/ha.d/authkeys
Logging
Configuratie van heartbeat Nu de geheime sleutels aan beide kanten bekend zijn, wordt het tijd heartbeat zelf te configureren. Hiervoor bewerkt u het bestand ha.cf op beide nodes. Aangezien er maar één instelling is die afwijkt, is het heel goed mogelijk het op een van beide nodes te bewerken en het daarna naar de andere node te kopiëren. Om te beginnen zet u logging aan. Als u niets doet, vindt logging plaats naar syslog door gebruik te maken van log facility local0. Door de opties debugfile en logfile aan te zetten kunt u zelf extra sturing geven aan de richting waarin logging moet plaatsvinden. Vooral als dit de eerste keer is dat u met heartbeat werkt, raden wij dat van harte aan. De volgende drie regels zijn hiervoor standaard aanwezig; van deze regels is alleen de logfacility-regel standaard actief. Verwijder het commentaarteken als u ook de opties debugfile en logfile wilt gebruiken: debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0
Novell Netwerkoplossingen, aanvulling 18
4/3.4-15
Novell Clustering Services
De tweede belangrijke instelling die u in ha.cf moet doen, is regelen hoe vaak de heartbeats verstuurd worden. Standaard gebeurt dat eens per twee seconden, maar dat kunt u hoger instellen. De volgende vier parameters kunnen hiervoor worden ingezet: keepalive 2 deadtime 30 warntime 10 initdead 120
Met de eerste van deze parameters wordt geregeld dat elke twee seconden een heartbeat-pakketje verstuurd wordt. Vindt u dat niet genoeg? Dan kan deze parameter zowel hoger als lager ingesteld worden. Gebruik bijvoorbeeld keepalive 500ms om elke halve seconde een heartbeat te versturen. De deadtime geeft vervolgens aan hoelang het duurt voordat een andere host doodverklaard wordt. Volgens de instelling hierboven is dat dertig seconden. Dit betekent dus dat bij het falen van een service er minimaal dertig seconden verstrijken voordat de andere host de service over kan nemen! Als het een zeer belangrijke service betreft, is het wellicht de moeite waard deze optie (veel) korter in te stellen, omdat de service gedurende de tijd die nodig is om over te schakelen naar de andere host, niet bereikbaar is. Daarna wordt de warntime ingesteld. Dit is de tijd die het duurt voordat de eerste waarschuwing verstuurd wordt. Tot slot is er de initdead-parameter. Met deze parameter wordt de deadtime ingesteld die geldt als de nodes net zijn opgestart. Om beide nodes wel de kans te geven om te starten is het van belang dat deze tijd veel langer is dan wanneer ze normaal operationeel zijn. De laatste optie die u instelt in ha.cf is de naam van de nodes in het cluster. Deze naam moet exact gelijk zijn aan
4/3.4-16
Novell Netwerkoplossingen, aanvulling 18
Networking Services
het resultaat van de opdracht uname -n. Dit ziet er bijvoorbeeld als volgt uit: node drbd1 node drbd2
We hebben nu alle verplichte opties gehad. Naast deze opties is één andere optie zeker ook nog de moeite waard, namelijk de optie waarmee de naam van de interface bepaald wordt waarover de heartbeat-pakketjes verstuurd worden. Deze optie is vooral van belang als u – zoals aangeraden – gebruikmaakt van een aparte interface voor het versturen van heartbeat-pakketjes. U regelt dit bijvoorbeeld met behulp van de bcast-parameter. Gebruik bijvoorbeeld bcast eth1
om aan te geven dat alle heartbeat-pakketjes over Ethernet-interface eth1 verstuurd moeten worden. Hebt u het niet zo op broadcasts? Gebruik dan als alternatief de mcast- of ucast-parameters om multicast of unicast te versturen. Configureren van de resources Tot slot moet u aangeven welke resources op het heartbeat-cluster beschikbaar gesteld moeten worden. Dit doet u door het bestand /etc/ha.d/haresources te bewerken. In dit bestand wordt door middel van een cryptische regel aangegeven wat er precies moet gebeuren. Op deze regel geeft u voor elke resource aan wat de primaire node is waarop de resource draait, het IP-adres waarop de resource bereikbaar is en op welke wijze de shared storage gebruikt moet worden. Dit betekent dat u er hier bijvoorbeeld voor zorgt dat het DRBD-device gebruikt wordt om gegevens op
Novell Netwerkoplossingen, aanvulling 18
4/3.4-17
Novell Clustering Services
te slaan. Ook dit bestand moet weer op alle nodes in het cluster gelijk zijn. De opbouw van de regels waarin resources geladen worden lijkt op het eerste gezicht complex, maar dat valt eigenlijk best mee. Op elke regel worden resources geladen in een vorm als: node-name resource1 resource2 resource3.
De resource-regels worden bij het laden van voor naar achter gelezen; bij het ontladen juist van achteren naar voren. In de resource-regel zelf kunt u gebruikmaken van de constructie ::. Als u dit doet, bevindt zich achter de :: een argument dat bij het laden van de resource meegegeven moet worden. Voordat u hiermee aan het werk gaat, is het handig eerst wat eenvoudige voorbeelden te bespreken zodat u begrijpt wat er precies gebeurt. Ten eerste zou u bijvoorbeeld het volgende kunnen doen in haresources: drbd1
192.168.0.203
Dit is een zeer eenvoudige resource waarmee alleen een IP-adres op een bepaalde node geactiveerd wordt. Op zich is dat niet bijzonder nuttig; het wordt pas echt zinnig als er ook een service aan de betreffende resource wordt verbonden. Dat gebeurt in het volgende voorbeeld: drbd1 192.168.0.203 http
Maar misschien moet de betreffende resource wel via één enkele interface benaderd worden en bevindt die interface zich ook nog eens op een subnet waarop een ander dan het
4/3.4-18
Novell Netwerkoplossingen, aanvulling 18
Networking Services
standaard subnetmasker gebruikt wordt. In dat geval komt de regel er bijvoorbeeld uit te zien als: drbd1 192.168.0.203/27/eth0 hhtpd
Tot nu toe hebben we het nog niet echt gehad over resources waarbij ook gedeelde bestandssystemen ingezet worden. Als dat het geval is, komt de regel waarmee de resource geladen wordt er bijvoorbeeld als volgt uit te zien: drbd1 192.168.0.203 datadisk::drbd0 Filesystem::/dev/drbd0::/data/::reiserfs httpd
In dit voorbeeld gebeurt bij het activeren van het bestandssysteem gelijk wel heel veel. Eerst wordt er verwezen naar de naam van het device waarop het bestandssysteem voorkomt. Daarna wordt aangegeven op welke map en op welk device dit bestandssysteem geactiveerd moet worden en dan wordt als derde argument weergegeven welk type bestandssysteem op het device gebruikt wordt. Om ervoor te zorgen dat bijvoorbeeld de NFS-server als resource geconfigureerd wordt, waarbij het DRBD device als ReiserFS bestandssysteem gemount moet worden op de directory /data, doet u het volgende: drbd1 192.168.0.203 datadisk::drbd0 Filesystem::/dev/drbd0::/data::reiserfs nfsserver
De setup heeft overigens nog een onvolkomenheid op dit moment: u zult er namelijk nog steeds voor moeten zorgen dat de NFS-configuratiebestanden tussen beide nodes handmatig gelijk gehouden worden. Het zou veel handiger zijn om dat automatisch te laten doen door ze ook op het
Novell Netwerkoplossingen, aanvulling 18
4/3.4-19
Novell Clustering Services
gedeelde device neer te zetten. De package DRBDlinks kan hier een oplossing voor zijn, maar aangezien deze software voor SuSE niet standaard mee geleverd wordt, laten wij deze hier verder buiten beschouwing en zult u er dus zelf voor moeten zorgen dat de configuratiebestanden aan beide kanten gelijk zijn. Locatie van resource scripts Iets wat in het bijzonder van belang is als u probeert een gedeelde resource te configureren, is dat u gebruikmaakt van de juiste resource. Want wat gebeurt er nu eigenlijk als u in haresources verwijst naar een service met bijvoorbeeld de naam NFS? Heartbeat zoekt achtereenvolgens in /etc/init.d en /etc/ha.d/resource.d of er een script met die naam bestaat. Aan de naam van dit script wordt automatisch de startparameter meegegeven. Als u dus verwijst naar nfsserver, wordt door heartbeat gekeken of er iets bestaat dat /etc/init.d/nfsserver heet en dat wordt vervolgens gestart met de startparameter. Is dat niet het geval? Dan zoekt heartbeat of er iets soortgelijks gestart kan worden vanuit /etc/ha.d/resource.d. Als u in deze directory kijkt, ziet u dat daar ook standaard enkele scripts mee geleverd worden, zoals het script filesystem, dat ervoor zorgt dat de gedeelde storage gebruikt kan worden. Als u haresources met succes hebt aangemaakt, wordt het tijd voor de laatste stap. De heartbeat-services kunnen nu gestart worden. Doe dit door op beide nodes het commando rcheartbeat te geven. Als alles goed gaat, wordt het cluster nu gestart en bent u er vervolgens van verzekerd dat de geclusterde service altijd beschikbaar zal zijn.
4/3.4-20
Novell Netwerkoplossingen, aanvulling 18
Networking Services
Als u geen syntax-fouten hebt gemaakt, kan heartbeat nu met succes gestart worden.
Helaas gaat het bij een eerste test niet altijd goed. Hebt u problemen om het een en ander gestart te krijgen? Kijk dan in de logbestanden die zijn aangemaakt in /var/log naar aanwijzingen wat er verkeerd is gegaan. Eigenaardigheden van NFS Tot nu toe hebben we in algemene zin besproken wat er moet gebeuren om het heartbeat-cluster in de lucht te krijgen. Daarbij is echter nog geen aandacht besteed aan zaken die specifiek zijn voor NFS. Een daarvan is de locatie waarop de NFS-configuratiebestanden opgeslagen worden. NFS gebruikt bijvoorbeeld standaard de directory /var/lib/nfs voor locking van bestanden. Als u hier niets aan doet, zal bij een fail-over van de NFS-server de lockinformatie niet meegaan, met als gevolg dat de eindgebruiker ineens niet meer bij bestanden op het gedeelde
Novell Netwerkoplossingen, aanvulling 18
4/3.4-21
Novell Clustering Services
device kan komen. Dit lost u op door een symbolic link te maken op beide machines. Zorg er eerst voor dat de inhoud van /var/lib/nfs op het gedeelde device komt te staan door de bestanden uit /var/lib/nfs ernaartoe te kopiëren. Als het gedeelde device gemount is op de directory /data, zou u hiervoor bijvoorbeeld gebruik kunnen maken van de directory /data/nfslock. Maak dan op beide machines een link aan met behulp van de opdracht ln -sf /data/nfslock /var/lib/nfs. Vergeet niet het gedeelde device te dismounten voordat u heartbeat start: het heartbeat-proces moet zelf immers zeggenschap krijgen over wie op dit device schrijft. Zodra dit gebeurd is, kunt u de NFS-server-directories op het /data-volume laten exporteren. Testen Het nadeel van het werken met de heartbeat-package in vergelijking met andere clusteringsoftware is dat het geen fraaie grafische hulpmiddelen heeft om in de gaten te houden of alles wel goed gaat. Toch is het ook bij heartbeat heel goed mogelijk te kijken wat er gebeurt, als u de juiste opdrachten maar kent. In het voorgaande voorbeeld hebben we een NFS-server geconfigureerd voor high availability. Maar hoe testen we nu of het werkt? Om te beginnen is het aan te raden /var/log/messages in de gaten te houden. Hieraan ziet u namelijk precies wat er gebeurt als de heartbeat-service gestart wordt. Zo ziet u in de afbeelding dat het gedeelde IP-adres met succes gestart is en dat ook de NFS-server succesvol in de lucht gebracht is.
4/3.4-22
Novell Netwerkoplossingen, aanvulling 18
Networking Services
In /var/log/messages ziet u of de geclusterde resource met succes gestart is.
Een tweede test is om eens te kijken op de lokale machine of alles ook daadwerkelijk actief is. In het voorbeeld van de NFS-server moet een aantal zaken waarneembaar zijn op de server waarop de resource draait. Ten eerste moet het NFS-proces actief zijn. Dit achterhaalt u met de opdracht ps aux | grep nfs. Daarnaast moet het IP-adres van de geclusterde resource geactiveerd zijn. Dit bekijkt u met de opdracht ifconfig. Tot slot moet het gedeelde device gemount zijn. Gebruik hiervoor de opdracht mount.
Novell Netwerkoplossingen, aanvulling 18
4/3.4-23
Novell Clustering Services
Op de primaire node in het cluster moet u de aanwezigheid van het geclusterde proces kunnen zien.
Argumenten
4/3.4-24
Een andere manier om te kijken of alles in orde is, is door gebruik te maken van de opdracht cl_status. Dit is een statusmonitor waarmee u informatie over het heartbeat-cluster op kunt vragen. Bij deze opdracht gebruikt u een aantal argumenten om aan te geven wat u precies wilt zien. Een opsomming van de belangrijkste argumenten wordt hieronder gegeven: • hbstatus: geeft aan of de heartbeat-software actief is op de lokale computer; • listnodes: toont welke nodes er in het cluster aanwezig zijn; • listhblinks nodenaam: geeft aan welke netwerkinterface op een bepaalde node gebruikt wordt om heartbeat-pakketjes te versturen;
Novell Netwerkoplossingen, aanvulling 18
Networking Services
•
rscstatus: laat zien wat de status is van een geclusterde resource. Deze kan ingesteld zijn op local, foreign, all of none.
De ultieme test is natuurlijk te kijken of het allemaal werkt. Dit is vrij eenvoudig te realiseren. Als u op de primaire node de heartbeat-service stopt, moet de andere node zich daar na een tijdje bewust van worden. Volgens de standaardinstelling gaat daar ongeveer dertig seconden overheen, maar dat kan langer duren als u de standaardoptie hebt aangepast. Na deze periode wordt de resource in kwestie automatisch op de andere node gestart en kunt u er gewoon weer gebruik van maken. 4/3.4.4 Tot slot In deze paragraaf hebt u gelezen hoe u met behulp van heartbeat een resource kunt clusteren. Daarbij is gebruikgemaakt van DRBD als shared storage. Juist dit laatste is een groot voordeel, omdat het in een DRBDomgeving niet nodig is een externe node in te zetten voor shared storage, wat bijvoorbeeld in een iSCSI-omgeving wel het geval is. Juist deze eenvoud maakt heartbeat een aantrekkelijk alternatief voor Novell Clustering Services.
Novell Netwerkoplossingen, aanvulling 18
4/3.4-25
Novell Clustering Services
4/3.4-26
Novell Netwerkoplossingen, aanvulling 18
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 1
Networking Services
4/3.5
Clustering in Open Enterprise Server 2
4/3.5.1 Inleiding Bij het werken met Open Enterprise Server moet u soms een keuze maken. Dit komt omdat bepaalde oplossingen beschikbaar zijn in hun Linux-variant, maar daarnaast ook in een Novell-variant. Dit is onder andere het geval bij clustering. U kunt in Open Enterprise Server 2 namelijk werken met Heartbeat Clustering, dat afkomstig is uit de Linux-wereld, en daarnaast is het mogelijk te werken met Novell Cluster Services. In deze paragraaf leest u hoe u werkt met deze laatste service. We clusteren een eenvoudige resource en volgen de procedure voor het aanmaken daarvan van begin tot eind. Daarbij leggen we de nadruk op zaken die nieuw zijn in Open Enterprise Server versie 2. Een van de zaken die noodzakelijk is als u een cluster wilt maken, is gedeelde opslag. In de meeste gevallen zult u hiervoor gebruikmaken van een SAN dat al binnen uw organisatie aanwezig is. Mocht een SAN niet voorhanden zijn, dan is het alternatief om een gedeelde storage-oplossing te implementeren op basis van iSCSI. Om te beginnen leest u hoe u dit met de iSCSI-oplossing in SuSE Linux Enterprise Server doet. Voordat u begint In een omgeving waar gebruikgemaakt wordt van Novell Cluster Services, is de kans groot dat u de EVMS-volumemanager nodig hebt. Deze volumemanager is onder andere nodig om NSS-volumes te kunnen gebruiken. De EVMSvolumemanager kan alleen geïnstalleerd worden op een device dat totaal beschikbaar is en waar helemaal niets anders op geïnstalleerd is. Het is handig hier al tijdens de voorbereiding rekening mee te houden, op het moment dat
Novell Netwerkoplossingen, aanvulling 26
4/3.5-1
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 2
Clustering in Open Enterprise Server 2
u uw SAN inricht. Zorg er daarbij voor dat u een aparte LUN aanmaakt voor alles wat met opslag te maken heeft. Daarnaast hebt u een LUN nodig voor de SBD-partitie die door het cluster gebruikt wordt om falende nodes down te brengen. 4/3.5.2 iSCSI-configuratie Het idee achter iSCSI is eenvoudig. U zorgt ervoor dat een opslagmedium gedeeld wordt over het netwerk. Elk opslagmedium kan voor dit doel gebruikt worden. Dat betekent dat u een volledige schijf, een partitie, een logisch volume en zelfs een disk-imagebestand kunt delen. We bespreken hier hoe u een volledige harde schijf beschikbaar stelt door middel van een iSCSI-target. Dit is een softwarecomponent die over het netwerk bereikt kan worden om de gedeelde harde schijf te benaderen. Op de servers die gebruik willen maken van deze gedeelde schijf, moet vervolgens de iSCSIinitiator geconfigureerd worden. Deze initiator maakt een SCSI-verbinding over IP en zorgt ervoor dat het gedeelde medium als extra opslagmedium beschikbaar gemaakt wordt op de nodes in het cluster. In de volgende afbeelding ziet u een schematische weergave van deze oplossing.
4/3.5-2
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 3
Networking Services
Een iSCSI-oplossing zorgt ervoor dat een opslagmedium over het netwerk gedeeld kan worden.
Om iSCSI te configureren zijn twee servers nodig. Om te beginnen is dat de iSCSI-targetserver. Dit is een server die een schijf heeft die gedeeld moet worden. Daarnaast is er de iSCSI-initiator. Dit is een component die meerdere malen in het netwerk voor kan komen. De iSCSI-initiator maakt gebruik van een schijf die door een iSCSI-target aangeboden wordt en zorgt ervoor dat er op die manier een extra schijf beschikbaar is, zoals ook is weergegeven in bovenstaande afbeelding. In onderstaande procedures leest u hoe u op basis van SLES 10 sp 1 een iSCSI-targetserver inricht. Vervolgens leert u hoe u vanaf een iSCSI-initiator contact maakt met deze targetserver.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-3
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 4
Clustering in Open Enterprise Server 2
Tip
Om een labopstelling te bouwen is het uitstekend mogelijk om een server in te richten met de iSCSI-target- en iSCSIinitiatorsoftware tegelijk. De initiator maakt dan contact met de target op dezelfde server. Qua redundantie levert dit niet echt een ideale oplossing (u kunt de iSCSI-targetserver immers nooit uitzetten), maar als u een testcluster wilt bouwen, werkt deze oplossing uitstekend. De iSCSI-targetserver inrichten: 1. Zorg ervoor dat u op de iSCSI-targetserver iets te delen hebt. Dit mag een schijf zijn, maar ook een partitie, een logisch volume of een disk-imagebestand dat u met de opdracht dd aangemaakt hebt. 2. Start YaST op de iSCSI-targetserver en kies Miscellaneous > iSCSI Target. Volg zo nodig de aanwijzingen om de iSCSI-targetsoftware nu eerst te installeren. U komt vervolgens terecht in het iSCSItarget configuratievenster, zoals u het ziet in onderstaande afbeelding.
Het iSCSI-targetconfiguratievenster bestaat uit drie tabbladen.
4/3.5-4
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 5
Networking Services
3.
4.
Selecteer nu het tabblad Service en kies hier onder Service Start de optie When Booting om ervoor te zorgen dat de iSCSI-service automatisch gestart wordt als uw server aangezet wordt. Klik nu op het tabblad Targets. Hier regelt u welk diskdevice u over het netwerk wilt delen. U vindt hier een voorbeeldschijf; die mag u meteen verwijderen. Doe dit door hem te selecteren en vervolgens op Delete te klikken. Klik dan op Add om een nieuw iSCSI-targetdevice toe te voegen. U ziet nu de interface uit de afbeelding.
Maak vanuit deze interface een nieuw iSCSI-device aan.
5.
Geef om te beginnen een naam aan het iSCSI-targetdevice. Deze naam wordt door verschillende utilities getoond, dus is het handig hier een naam te kiezen die een beetje voor de hand ligt. Standaard wordt automatisch een naam samengesteld die bestaat uit de aanduiding iqn., gevolgd door een aanduiding van het huidige jaar en de huidige maand en afgesloten met uw DNS-domein. U mag dit gewoon accepteren, maar u kunt deze naam ook vervangen door een naam
Novell Netwerkoplossingen, aanvulling 26
4/3.5-5
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 6
Clustering in Open Enterprise Server 2
die meer duidelijkheid biedt. Hetzelfde geldt voor de identifier. Standaard is dit een degelijk hexadecimaal getal, maar ook dit kunt u veranderen door een beschrijving te gebruiken. Klik dan op Add om het device toe te voegen dat u met iSCSI wilt delen. U ziet nu het volgende venster.
Vanuit deze interface geeft u aan wat u precies wilt delen met iSCSI.
6.
4/3.5-6
U moet nu verschillende eigenschappen opgeven van het te delen device. • LUN: dit is de LUN (vergelijk het maar met een partitienummer) dat het device gebruikt. • Type=fileio: gebruik dit type om een diskdevice te delen. • Path: gebruik hier de devicenaam op Linux waarmee u het device aanspreekt. • Scsiid: als u een SCSI-device wilt aanspreken door rechtstreeks te verwijzen naar de SCSI-ID van het device, vul dan hier de SCSI-ID in. • Type=nullio: dit is een minder vaak gebruikt devicetype waarmee rechtstreeks verwezen kan wor-
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 7
Networking Services
den naar een aantal sectoren die u op een gespecificeerd device wilt delen door middel van iSCSI. Om een eenvoudige iSCSI-target te configureren volstaat het om het standaard LUN-nummer 0 te gebruiken en vervolgens aan te geven dat u dit LUN-nummer wilt toewijzen aan het fileio-device /dev/sdb.
/dev/sdb gedeeld als iSCSI device.
7.
8.
Klik nu op Next om verder te gaan. U komt dan in het Authentication-venster. In een vertrouwd netwerk is het niet nodig authenticatie in te stellen, dus klik hier op Next zonder iets te configureren. Klik nu op Finish om de configuratie op te slaan. Als daarom gevraagd wordt, geef dan aan dat u de iSCSItargetservice opnieuw wilt starten. Zodra dat gebeurd is, is de iSCSI-targetservice klaar voor gebruik.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-7
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 8
Clustering in Open Enterprise Server 2
4/3.5.3 Configuratie van de iSCSI-initiator Nu de iSCSI-targetservice geconfigureerd is, moet u op alle nodes die u in het cluster wilt opnemen de iSCSI-initiatorservice configureren. De hiervoor te volgen procedure is voor elke node gelijk. 1. Selecteer in YaST de optie Miscellaneous > iSCSI Initiator. Als aangegeven wordt dat hiervoor eerst nog software geïnstalleerd moet worden, doe dat dan. 2. Op het tabblad Service accepteert u de standaardnaam die u wilt gebruiken (of pas hem desgewenst aan). Daarnaast geeft u aan dat de service start uitgevoerd moet worden tijdens het opstarten door de optie When Booting te selecteren.
Geef aan dat de service tijdens het opstarten geactiveerd moet worden.
3.
4/3.5-8
Activeer het tabblad Discovered Targets en klik hier op de knop Discovery. Voer nu het IP-adres in van de server waarop de iSCSI-targetservice wordt aangeboden en klik op Next. U ziet dan een venster waarin de naam van de iSCSI-targetservice getoond wordt.
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 9
Networking Services
Daarnaast wordt in de kolom Connected aangegeven dat u op dit moment niet verbonden bent. Klik op de knop Log in onder in beeld om een verbinding tot stand te brengen.
Klik op Log in om een iSCSI-verbinding tot stand te brengen.
4.
Activeer het tabblad Connected Targets. Hier ziet u de iSCSI-verbinding staan. Let op de kolom Start-Up: hier wordt namelijk aangegeven dat de verbinding na opstarten handmatig tot stand gebracht moet worden! Dat is niet handig, klik daarom op Toggle StartUp om de verbinding automatisch tot stand te brengen.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-9
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 10
Clustering in Open Enterprise Server 2
Klik op Toggle Start-Up om aan te geven dat de iSCSI-verbinding tijdens het opstarten automatisch gemaakt moet worden.
5. 6.
Klik op Finish om de instellingen op te slaan en de iSCSI-verbinding tot stand te brengen. Herhaal deze procedure op elke server die u met het iSCSI SAN wilt verbinden.
Nu de iSCSI-verbinding tot stand gebracht is, is het handig eerst te controleren of alles inderdaad naar behoren werkt. Open hiervoor een terminalvenster en typ de opdracht lsscsi. Als alles goed is, ziet u dat hier een schijf van het type IET genoemd wordt. Dit is de iSCSI-schijf.
4/3.5-10
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 11
Networking Services
De iSCSI-schijf wordt door lsscsi als schijf van het type IET weergegeven.
Nu kan het voorkomen dat tijdens het opstarten de iSCSIservice té snel gestart wordt. Zeker als de netwerkkaart nog niet helemaal op is, kan dat tot gevolg hebben dat de iSCSI-verbinding uiteindelijk helemaal niet gemaakt wordt. Om problemen te voorkomen is het daarom handig een vertraging van een aantal seconden in te bouwen in het opstarten van iSCSI; 5 seconden voldoet meestal goed. Het kan echter zijn dat u er voor uw omgeving meer nodig is. Open met een editor het script /etc/init.d/open-iscsi. Voeg vervolgens onder de regel ### END INIT INFO de volgende regel toe: sleep 5
Schrijf de wijzigingen naar het script weg en start de server opnieuw op om te controleren of de verbinding tijdens het opstarten inderdaad gemaakt kan worden. Gebruik hiervoor zodra de server helemaal is opgestart de opdracht lsscsi, zoals hierboven beschreven.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-11
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 12
Clustering in Open Enterprise Server 2
4/3.5.4 Installatie van het cluster Nu de gedeelde opslag beschikbaar is, wordt het tijd het cluster zelf te installeren. Hiervoor moet u eerst op elke node die deel gaat uitmaken van het cluster, de clustersoftware installeren vanuit YaST. In onderstaande procedure leest u hoe u daartoe te werk gaat. We gaan ervan uit dat de installatie wordt uitgevoerd op nodes waarop Open Enterprise Server zelf al geïnstalleerd is. Dat wil zeggen dat ze deel moeten uitmaken van een eDirectory-omgeving en dat iManager beschikbaar moet zijn. Nog iets om op te letten: elke node waarop u Novell Cluster Services wilt installeren, heeft een replica nodig van de container waarin de Cluster Services-objecten aangemaakt worden. Houd hiermee al bij het ontwerpen van uw eDirectoryomgeving rekening. 1. Start YaST en kies Open Enterprise Server > OES Install and Configuration. 2. Kies vervolgens in het software-installatiemenu de optie Novell Cluster Services. Installeer meteen de NCP- en NSS-services, anders krijgt u later tijdens de inrichting van het cluster problemen.
In de YaST-software-installatiemodule geeft u aan dat u Novell Cluster Services wilt installeren.
4/3.5-12
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 13
Networking Services
3.
Nadat de software geïnstalleerd is, ziet u in het Open Enterprise Server Configuration-overzicht dat YaST toont dat de Novell Cluster Services-configuratie uit staat (Configure is Disabled). Klik op deze link om de configuratieopties voor NCS te tonen.
Pas nadat u op Configure is Disabled geklikt hebt, verschijnen de opties waarmee u Novell Cluster Services configureert.
4.
Klik nu op de link Novell Cluster Services om de configuratiemodule te openen. U moet om te beginnen het admin-wachtwoord invoeren om in te loggen op eDirectory. Voer vervolgens in het eerste scherm (zie de volgende afbeelding) de eigenschappen in van het cluster dat u wilt aanmaken. Het betreft hier de volgende gegevens: • New Cluster: gebruik deze optie om een nieuw cluster aan te maken. • Directory Server Address: dit moet het adres van uw eigen server zijn. • Cluster FDN: dit is de eDirectory-naam van het cluster. Standaard wordt gebruikgemaakt van de naam cn=cluster,o=uw-o. Pas dit desgewenst aan.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-13
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 14
Clustering in Open Enterprise Server 2
• Cluster IP address: dit is het master IP-adres waarop het cluster zelf bereikbaar moet zijn; een nieuw, uniek adres dat nog niet door een node in het cluster gebruikt wordt. Het IP-adres moet voorkomen in dezelfde reeks als de nodes in het cluster. • Select the storage with shared media: hier selecteert u de SAN-schijf die u voor uw cluster wilt gebruiken.
Uw cluster krijgt een eigen IP-adres.
5.
6.
4/3.5-14
Klik na het invoeren van de gegevens van het cluster op Next. Dit zorgt ervoor dat de clusterconfiguratie naar eDirectory wordt weggeschreven. In het volgende venster geeft u vervolgens aan wat het IPadres is van uw node en selecteert u de optie Start Clustering Services now. Klik dan op Finish om het cluster te starten. U bent nu terug in het Open Enterprise Server Configuration-hoofdvenster. Configureer eventueel nog andere services en klik dan op Next om verder te
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 15
Networking Services
7.
gaan. Alle informatie wordt nu naar uw server weggeschreven. Herhaal de hierboven beschreven procedure voor alle andere nodes die deel uit moeten gaan maken van het cluster.
4/3.5.5 De configuratie vanuit iManager Nadat het cluster geïnstalleerd is, configureert u de rest van het cluster vanuit iManager. Hierin maakt u eenvoudige resources aan en monitort u het gedrag van bestaande resources. Om u met een concreet voorbeeld aan het werk te zetten, leest u hieronder hoe u in iManager een resource aanmaakt voor een Apache-webserver. Daarbij maken we ook gebruik van een gedeelde opslag op het SAN. 1. Start iManager en activeer de optie Cluster Options. U ziet nu een venster waarin u het cluster selecteert dat u wilt configureren. Gebruik het vergrootglas om het cluster te lokaliseren. U krijgt vervolgens een overzicht van uw cluster en alle objecten die daarin standaard aangemaakt zijn.
Het Cluster Options-venster geeft een overzicht van alle clusterobjecten die bestaan.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-15
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 16
Clustering in Open Enterprise Server 2
2.
LVM
4/3.5-16
We gaan nu om te beginnen een object aanmaken voor shared storage. Omdat het hier om een Apachewebserver gaat, is het niet nodig gebruik te maken van NSS, maar maken we een gewoon ext3-bestandssysteem aan als clusterresource. Bij het aanmaken van de clusterresource die de toegang tot dit bestandssysteem gaat regelen, moet u een aantal zaken opgeven: • de naam van het device waarop het bestandssysteem zich bevindt; • het bestandssysteem dat u gebruikt; • de directory waarop het betreffende bestandssysteem gemount moet worden; • het IP-adres dat aan het geclusterde volume verbonden moet worden.
Omdat het configureren van een volume nogal een aparte procedure is, laten we het clusterconfiguratiescherm nu even voor wat het is om eerst aandacht te besteden aan de inrichting van volumes. In een clusteromgeving kunt u werken met twee soorten volumemanagers: LVM en EVMS. EVMS werkt in principe beter in een geclusterde omgeving, maar in de huidige Linux-versies werkt LVM ook goed genoeg. 1. Gebruik fdisk om op het gedeelde SAN-device een partitie aan te maken van het type 0x8e (Linux LVM). We gaan er in dit voorbeeld van uit dat u voor dit doel de partitie met de devicenaam /dev/sdc2 wilt gebruiken. 2. Gebruik de opdracht pvcreate /dev/sdc2 om de nieuwe partitie ter beschikking te stellen van LVM. 3. Wijs de partitie toe aan een LVM volume group. Om bijvoorbeeld een volume group te maken die de naam SAN krijgt, gebruikt u de opdracht vgcreate SAN /dev/sdc2.
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 17
Networking Services
4.
5.
6.
EVMS
Nu maakt u op basis van de volume group SAN die u zojuist aangemaakt hebt een logisch volume aan. Dit volume krijgt de naam httpdata. Om dit te doen gebruikt u de opdracht lvcreate -L 1 G -n httpdata /dev/SAN. U hebt nu een logisch volume aangemaakt. Maak tot slot een bestandssysteem aan op dit volume zodat u het kunt gebruiken. Om bijvoorbeeld uw volume als ext3-volume te formatteren, gebruikt u de opdracht mkfs.ext3 /dev/SAN/httpdata. Maak tot slot op alle servers een mountpunt aan waarop u het nieuw aangemaakte volume via het clusterobject gaat mounten. In principe mag dat overal zijn. U zou bijvoorbeeld een directory kunnen aanmaken met de naam /httpdata waarop het volume gemount wordt.
In plaats van LVM kunt u ook EVMS als volumemanager gebruiken, maar dat is wel een stuk moeilijker. Dit komt doordat EVMS met verschillende lagen werkt en elk van deze lagen moet afzonderlijk geconfigureerd worden. Daarnaast kunt u op een harde schijf geen EVMS gebruiken als er al een andere volumemanager is. Aangezien dit altijd het geval is als u al iets op een schijf gedaan hebt, betekent dat in de praktijk dat u een volledig nieuwe schijf moet nemen. U zult merken dat het gebruik van EVMS vaak alleen lukt nadat u de partitietabel van een bestaande schijf compleet gewist hebt. Dat is dan ook precies waarmee de volgende procedure, die gaat over het aanmaken van een EVMS-volume, begint. 1. We gaan ervan uit dat u een device met de naam /dev/sde beschikbaar wilt stellen voor gebruik van EVMS. Zorg er met het volgende commando voor dat alle administratieve gegevens van deze schijf gewist worden:
Novell Netwerkoplossingen, aanvulling 26
4/3.5-17
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 18
Clustering in Open Enterprise Server 2
dd if=/dev/zero of=/dev/sde bs=1024 count=1000
2.
Start nu vanaf een opdrachtregel de EVMS grafische interface door de opdracht evmsgui te typen. De EVMS GUI opent nu, met op het tabblad Volumes een overzicht van alle volumes die op dit moment al door EVMS beheerd worden.
De EVMS GUI opent met een overzicht van volumes die al onder het beheer van EVMS vallen.
3.
4/3.5-18
U moet er nu eerst voor zorgen dat de te gebruiken schijf ook beschikbaar gesteld wordt voor EVMS. Dit doet u door de huidige segmentmanager, die sowieso aan die schijf is toegekend, te verwijderen. Klik hiervoor op het tabblad Disks en klik vervolgens met de rechtermuisknop op de schijf die u wilt gebruiken. Kies dan uit het snelmenu de optie Remove segment manager from object. U zult zien dat als gevolg het plusteken dat voor het device stond, verwijderd wordt. Klik dan op Save om de wijzigingen op te slaan.
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 19
Networking Services
Als de segmentmanager met succes verwijderd is, staat er geen plus-teken voor de betreffende schijf.
4.
Kies uit het menu Actions de optie Create > Container. U krijgt dan het venster uit de volgende afbeelding te zien. Controleer of u inderdaad de Cluster Segment Manager ziet. Dit is alleen het geval als Novell Cluster Services gestart is. Als u geen Cluster Segment Manager kunt vinden, controleer dan of Novell Cluster Services inderdaad gestart is voordat u verdergaat. Ziet u de Cluster Segment Manager? Klik dan op Next om verder te gaan.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-19
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 20
Clustering in Open Enterprise Server 2
Het is van groot belang dat u in de lijst beschikbare segmentmanagers de Cluster Segment Manager ziet staan.
5.
U krijgt een overzicht van alle schijven die voor EVMS beschikbaar zijn. Als het goed is, is dat alleen de schijf die u in stap 1 van deze procedure volledig gewist hebt. Selecteer deze schijf en klik dan op Next om verder te gaan.
U ziet nu een overzicht van alle schijven die beschikbaar zijn voor gebruik in EVMS.
6.
4/3.5-20
In het venster Configuration Options moet u de eigenschappen van de container opgeven. Bij de
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 21
Networking Services
optie Node ziet u de clusternode staan waarop u het volume aanmaakt, en dat is goed. Achter Type kiest u de optie Private en tot slot geeft u een unieke naam aan de container. Klik dan op Create om de container aan te maken.
De opties om een container aan te maken die communiceert met de Cluster Segment Manager, zijn nogal specifiek.
7.
8.
Nu ziet u een overzicht waarin uw nieuwe container getoond wordt. Klik in dit overzicht op OK om de container aan te maken. Klik op het tabblad Containers. U ziet hier onder de aanduiding CSM (Cluster Segment Manager) het containerobject dat u zojuist hebt aangemaakt. Klik hier met de rechtermuisknop op en kies dan de optie Modify Properties.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-21
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 22
Clustering in Open Enterprise Server 2
Op het tabblad Containers ziet u de container die u zojuist hebt aangemaakt.
9.
U ziet het eerste venster van de Modify Storage Container Properties wizard. Verzeker u ervan dat uw container geselecteerd is en klik op Next om verder te gaan. Selecteer vervolgens weer uw container en klik op Modify. Klik dan op Save. Dit heeft tot gevolg dat de container de status Active krijgt.
Verzeker u ervan dat uw container de status Active heeft.
4/3.5-22
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 23
Networking Services
10. Nu de container actief is, kunt u er een volume op aanmaken. Klik hiervoor in het menu Actions de optie Create > EVMS Volume aan. U krijgt dan een overzicht van alle storage-objecten die eventueel in aanmerking zouden kunnen komen voor dit volume. Naast de EVMS-container die u zojuist aangemaakt hebt, ziet u hier ook de SBD-partitie die door het cluster gebruikt wordt. Selecteer de container die u zojuist aangemaakt hebt, geef een naam aan het volume en klik op Create om het aan te maken.
Selecteer de container die u zojuist aangemaakt hebt om het nieuwe volume aan te maken.
11. Klik voordat u verdergaat op de Save-knop in de knoppenbalk om de wijzigingen weg te schrijven. Waarschuwing
De EVMS GUI slaat niet automatisch wijzigingen op. Toch is het – om een volgende stap succesvol uit te kunnen voeren – vaak noodzakelijk om wijzigingen wel eerst op te slaan. Om er zeker van te zijn dat dit gebeurt, is het aan te raden regelmatig op de Save-knop te klikken.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-23
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 24
Clustering in Open Enterprise Server 2
12. Ga naar het tabblad Volumes. U ziet hier het volume dat zojuist is aangemaakt met zijn volledige devicenaam. Noteer deze devicenaam: u hebt hem later namelijk nodig als u in Novell Cluster Services het volumeobject aanmaakt! Klik nu met de rechtermuisknop op dit volumeobject en kies uit het snelmenu de optie Make File System. U ziet dan een interface waarin alle bestandssystemen getoond worden waarmee EVMS overweg kan. Kies er een uit (gebruik Ext2/ext3 als u niet weet wat u moet kiezen) en klik op Next om verder te gaan.
Weet u niet welk bestandssysteem u moet kiezen, gebruik dan Ext2/3.
13. Voer alle eigenschappen in die u voor het nieuwe bestandssysteem wilt gebruiken en klik op Make.
4/3.5-24
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 25
Networking Services
Vanuit de EVMS GUI geeft u tijdens het formatteren op welke eigenschappen u wilt gebruiken.
14. Klik in het hoofdvenster van EVMS GUI op Save om de wijzigingen weg te schrijven. Dit zorgt ervoor dat het bestandssysteem geformatteerd wordt en klaar is voor gebruik. U kunt dit ook zien doordat de status van het bestandssysteem naar Active verandert op het moment dat u het geformatteerd hebt.
Als het volume met succes geformatteerd is, verandert de status naar Active.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-25
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 26
Clustering in Open Enterprise Server 2
4/3.5.6 De clusterresource aanmaken Nu u een volume beschikbaar hebt, kunt u op basis van dit volume eenvoudig een clusterresource aanmaken. Hieronder leest u hoe daarvoor u te werk gaat: 1. Open iManager en activeer de link Clusters. 2. Selecteer Cluster Options, browse naar uw cluster en klik op New om een nieuwe clusterresource aan te maken. 3. In het overzicht met beschikbare resourcetypes kiest u het type Resource. Het Pool-type wordt namelijk alleen gebruikt bij het aanmaken van NSS-resources. Druk vervolgens op Next.
Kies het type Resource en niet Pool om een resource aan te maken voor uw volume.
4.
4/3.5-26
Geef nu een naam aan de resource en gebruik het vergrootglas naast de optie Inherit From Template om het Generic_FS_Template te selecteren. Hierin vindt u algemene opties die voor Linux-bestandssystemen gebruikt kunnen worden. Selecteer de optie Online Resource after Create niet en klik dan op Next om verder te gaan.
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 27
Networking Services
Om het aanmaken van de resource enigszins te vereenvoudigen maakt u gebruik van de algemene Linux File System Template.
5.
U ziet nu het cluster load-script. In dit script moet u de juiste parameters instellen om het bestandssysteem te laden. In elk geval moeten de volgende parameters een waarde krijgen: • RESOURCE_IP: dit is het IP-adres dat door de resource gebruikt zal worden. Dit IP-adres moet uniek zijn en is niet gerelateerd aan het IP-adres van een van uw servers. • MOUNT_FS: geef hier aan welk bestandssysteem op uw volume gebruikt wordt. Even opletten: de standaardwaarde staat ingesteld op reiserfs, terwijl de kans vrij groot is dat u daar geen gebruik meer van maakt. • container_name: als u gebruikmaakt van EVMScontainers, geeft u hier aan wat de naam is van de EVMS-container. Dit is een ‘eenvoudige’ objectnaam, bijvoorbeeld webdata. Als u geen EVMS gebruikt, plaatst u een #-teken voor deze optie. • MOUNT_DEV: gebruik hier de devicenaam van het volume dat u wilt mounten. Bij gebruik van EVMS kunt u de variabele $container_name letterlijk
Novell Netwerkoplossingen, aanvulling 26
4/3.5-27
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 28
Clustering in Open Enterprise Server 2
laten staan; bij gebruik van andere volumetypen vult u hier de normale devicenaam van het volume in. • MOUNT_POINT: dit is de naam van de directory waarop het volume gemount moet worden. Zorg ervoor dat deze directory bestaat op alle nodes in het cluster waarop u dit volume mogelijkerwijs ooit zult willen mounten. Klik na het invullen van al deze waarden op Next om verder te gaan.
Het load-script bevat alle waarden die nodig zijn om de resources met succes te kunnen laden.
6.
7.
4/3.5-28
In het volgende scherm configureert u het unloadscript voor uw resource. Hier gebruikt u dezelfde variabelen als in het load-script. Door middel van deze variabelen zorgt u ervoor dat de resource met succes ontladen kan worden als dat om welke reden dan ook nodig is. Nu komt u in een venster dat nieuw is in Open Enterprise Server 2, namelijk het venster waarin u het monitor-script configureert. Voor OES2 was het alleen mogelijk om nodes te monitoren en geen indi-
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 29
Networking Services
viduele resources. Dit betekende dat het cluster niet in staat was waar te nemen dat een resource gecrasht was terwijl de node zelf nog actief was. Dit is in OES2 veranderd. Geef daarom wederom de te gebruiken parameters op in het resource monitor-script.
Het resource monitor-script zorgt ervoor dat u nu ook individuele resources kunt monitoren.
8.
Nadat alle scripts zijn aangemaakt, worden de algemene opties van de clusterresource gespecificeerd. De volgende opties zijn beschikbaar: • Resource Follows Master: selecteer deze optie om aan te geven dat de resource altijd de masternode in het cluster volgt. Dit is de node die het cluster-IP-adres heeft. Het voordeel hiervan is dat dit de meest stabiele node in het cluster is; op het moment namelijk dat er een node uitvalt en er een stemming zou moeten plaatsvinden welke nodes in het cluster doordraaien, wint de master het altijd (zolang deze node tenminste de verbinding met het netwerk nog niet verloren is). • Ignore Quorum: het quorum is het minimale aantal nodes dat in het cluster beschikbaar moet
Novell Netwerkoplossingen, aanvulling 26
4/3.5-29
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 30
Clustering in Open Enterprise Server 2
zijn. Met deze optie geeft u aan dat deze resource ook up mag komen als dit quorum nog niet gehaald is. • Start Mode: hiermee geeft u aan of de resource automatisch of handmatig gestart moet worden. Alleen bij onderhoud op een resource heeft het zin de Start Mode op handmatig te zetten; in alle andere gevallen hoort deze optie op automatisch te staan. • Failover Mode: met deze optie geeft u aan wat er moet gebeuren als er een probleem is met de resource. De standaardoptie Auto zorgt ervoor dat de resource dan automatisch op een andere node in het cluster gestart wordt. • Failback Mode: hiermee geeft u aan of, en zo ja hoe, een resource terug moet migreren naar zijn oorspronkelijke node als deze na een waargenomen probleem weer beschikbaar is in het cluster. Standaard staat de Failback Mode uit en dat is helemaal niet slecht: waarschijnlijk zult u namelijk eerst willen weten wat er precies aan de hand was voordat een resource terug migreert naar een node die is uitgevallen. Het risico is immers aanwezig dat het probleem nog niet opgelost is en daardoor de node binnen de kortste keren weer uitvalt!
4/3.5-30
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 31
Networking Services
Met de resource-policies bepaalt u hoe een resource zich in het cluster moet gedragen.
9.
Vervolgens geeft u aan op welke nodes de resource geladen mag worden. Bij een tweenodecluster mag de resource automatisch op alle nodes geladen worden; als er meerdere nodes in het cluster beschikbaar zijn, moet u handmatig bepalen op welke nodes de resource geladen mag worden.
In een tweenodecluster wordt een resource automatisch aan beide nodes toegewezen.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-31
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 32
Clustering in Open Enterprise Server 2
10. Klik nu op Finish om de nieuwe resource in het cluster aan te maken. U ziet dat hij meteen toegevoegd wordt aan de lijst met beschikbare resources in het Cluster Options-venster.
De nieuwe resource wordt meteen toegevoegd aan de lijst met beschikbare resources in het Cluster Options-venster.
Uiteindelijk moet de resource gestart worden. Voordat we dit gaan doen, gaan we echter eerst even verder. Het was immers de bedoeling dat een resource wordt aangemaakt voor een Apache-webserver. Daarom leest u in de volgende procedure hoe u te werk gaat om dit resourcetype aan te maken. Voordat we echt aan het werk gaan, is het handig te begrijpen hoe een resource in elkaar zit. U kunt er bijvoorbeeld bij het starten van een Apache-server voor kiezen alles onder te brengen in één resource; zowel het mounten van het volume als het starten van de service worden dan vanuit de resource geregeld. Daar is niets op tegen als de webserver ook de enige service is die de betreffende resource gebruikt. Als er echter andere resources zijn die ook naar dat volume moeten schrijven, is het juist handiger om het volume en de resources van elkaar los te koppellen. In dat geval echter hebt u er ook geen
4/3.5-32
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 33
Networking Services
controle over als u vanuit het cluster wilt regelen dat eerst de ene en dan de andere resource geladen wordt, tenzij u in de resource zelf regelt dat er een check gedaan wordt om te kijken of het volume al op is. Omdat we in deze paragraaf graag wilden laten zien dat het aanmaken van een file system-object in Open Enterprise Server 2 plaatsvindt via een algemeen resourceobject, hebben we in het voorgaande apart gesproken over de wijze waarop u deze resource aanmaakt. In het echte leven zult u dat waarschijnlijk niet willen doen en wilt u er juist voor zorgen dat in de serviceresource óók de toegang tot de shared storage geregeld wordt. In onderstaand voorbeeld laten we zien hoe in het resourcescript beide zaken geregeld worden: 1. Klik in iManager onder Cluster > Cluster Options op New om een nieuwe resource aan te maken. Selecteer vervolgens het type Resource en klik op Next. 2. Geef de resource een naam, bijvoorbeeld Apache, en selecteer een template. Zonder template te gebruiken moet u alle parameters voor de resource handmatig invoeren. Dat wilt u waarschijnlijk niet, dus gebruik een template om het aanmaken van de resource te vereenvoudigen. De Samba-resource doet het vrij aardig als algemene resource. Klik dan op Next om verder te gaan. 3. U ziet in het load-script voor de Samba-resource dat veel opties gebruikt worden die we in het voorgaande in een apart script geplaatst hebben. Hieronder laten we een volledig script zien waarmee u een Apacheresource kunt laden: #!/bin/bash RESOURCE_IP=10.0.0.102 MOUNT_FS=ext3
Novell Netwerkoplossingen, aanvulling 26
4/3.5-33
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 34
Clustering in Open Enterprise Server 2
MOUNT_DEV=/dev/san/apache MOUNT_POINT=/apachedata exit_on_error mount_fs $MOUNT_DEV $MOUNT_POINT $MOUNT_FS exit_on_error add_secondary_ipaddress $RESOURCE_IP exit_on_error /usr/sbin/apachectl start exit 0
4.
Op basis van bovenstaande gegevens is het ook niet moeilijk om in de volgende fase het unload-script aan te maken. Zorg er in dit script voor dat de variabelen RESOURCE_IP, MOUNT_FS, MOUNT_DEV en MOUNT_POINT de juiste waarde krijgen en gebruik de volgende regels om ervoor te zorgen dat de Apacheservice en het bijbehorende bestandssysteem beide gedeactiveerd worden: ignore_error killproc -p /var/run/httpd.pid /usr/sbin/httpd2 ignore_error del_secondary_ipaddress $RESOURCE_IP exit_on_error umount_fs $MOUNT_DEV $MOUNT_POINT $MOUNT_FS exit 0
5.
6.
4/3.5-34
Nu u begrijpt hoe het load-script en het unloadscript werken, kunt u op basis van dezelfde gegevens een monitor-script aanmaken in de volgende stap. Voltooi vervolgens het aanmaken van de resource totdat alle opties gespecificeerd zijn. Selecteer in iManager de optie Clusters > Cluster Manager. Kies hier de resources die u hebt aangemaakt en klik op Online. Dit zorgt ervoor dat de
Novell Netwerkoplossingen, aanvulling 26
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 35
Networking Services
resources geactiveerd worden en dat u vervolgens met een high available-webserver kunt werken.
Als de resources aangemaakt zijn, zorgt u er in Cluster Manager voor dat ze online gebracht worden.
4/3.5.7 Tot slot Novell Cluster Services is in Open Enterprise Server 2 nog in grote mate gelijk aan Open Enterprise Server 1. Een van de grootste vernieuwingen is dat er nu een mogelijkheid is individuele resources te monitoren. In deze paragraaf hebt u gelezen hoe u hiervoor te werk gaat. Voor de rest kunt u al uw OESv1-kennis nog in het dagelijkse beheer van uw cluster gebruiken.
Novell Netwerkoplossingen, aanvulling 26
4/3.5-35
deel 4_3_5_AV26.qxp:deel 4_4_1_AV19.qxd
07-01-2008
09:55
Pagina 36
Clustering in Open Enterprise Server 2
4/3.5-36
Novell Netwerkoplossingen, aanvulling 26