Artikel top billede

(Foto: Computerworld)

Så skal vi op i skyerne - del 2

Sådan går du i lag med Google og Amazon ved at lave din egen Linux-baserede cloud med Eucalyptus.

Af Rasmus Elm Rasmussen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Fremtiden for skalerbar, distribueret computerarbejde hedder cloud og Ubuntu 9.10 omfatter en applikation, der hedder Eucalyptus, et open source-værktøj, der genererer private clouds, som kan forbindes dynamisk til Amazon EC2.

Eucalyptus er et akronym for »Elastic Utility Computing Architecture Linking Your Programs To Useful Systems«. Sidste gang kiggede vi på, hvordan du satte computerne op og opretter noderne. I dette nummer går vi videre i trin-for-trin gennemgangen.

Konfiguration

3Log ind på hver maskine og skriv ’apt-get upgrade’ for at downloade og installere de seneste pakkeopdateringer til systemet. Du er sikkert også nødt til at genstarte.

Når du har gjort det, skal du fortælle backend’en, at der eksisterer en enkelt node. Log ind på backend-maskinen og skriv ’sudo euca_conf--no-rsync--discover-nodes’. Så bør der komme en tekst, der ser nogenlunde sådan ud: »New node found on 192.168.1.62; add it? [Yn]«. Tryk [Enter].

Nu kan du se to maskiner forbinder og synkroniserer et sæt nøgler. De bliver brugt til at verificere kommende forbindelser. Start nu en browser fra en anden maskine på lan’et og gå til https://backend_ip:8443.

Du modtager en sikkerhedsadvarsel om, at det certifikat, du bruger til forbindelsen, ikke er verificeret. Det problem løser du ved at klikke på knappen »Add an exception for this site« nederst i dialogboksen. Firefox fører dig automatisk gennem denne proces.

Når det er gjort, og du har forbindelse til sitet, får du logon-skærmbilledet »Eucalyptus Enterprise Cloud«. Skriv ’admin’ som brugernavn og kodeord – så bliver du bedt om at skrive et nyt administratorkodeord og tjekke serverens ip-adresse, så et nyt certifikat kan blive oprettet.

Efter at du har klikket »Submit«, befinder du dig ved Eucalyptus’ styringskonsol. Før vi kan gå i detaljer, skal vi downloade noget, der hedder en credentials-fil. Den kan vi bruge til at verificere vores eget roderi med serveren og med andre cloud-tjenester, som du har lyst til at bruge til at udvide din installation.

Credentials

4 Klik på knappen Credentials efterfulgt af knappen »Download Credentials«. Så får du en zip-fil, som du skal overføre til din brugerkonto på backend-maskinen.

Det er nemmest at gøre det fra komandolinjen ved simpelthen at skrive ’sftp backend_ip’ for at få forbindelse til maskinen, efterfulgt af denne kommando (med navnet på den zip-fil, du skal flytte, naturligvis): ’put with by the path to the zip file, put euca2-admin-x509.zip’.

På backend’en skal du pakke filen ud i en skjult mappe i din hjemmemappe ved at skrive ’unzip-d~/.euca2-admin-x509.zip’. Dernæst skal du køre dette script: ’.~/.euca/eucarc.’ Det konfigurerer forskellige miljøvariabler og nøgler til at styre cloud’en, og du skal køre det, hver gang du kobler på dit backend-system.

Se efter, at alt virker, som det skal, ved at skrive ’euca-describe-availability-zones verbose’. Outputtet bør se omtrent sådan ud:

AVAILABILITYZONE pcp_cloud
192.168.1.48

AVAILABILITYZONE |- vm types
free / max cpu ram disk

AVAILABILITYZONE |- m1.small
0002 / 0002 1 128 2

AVAILABILITYZONE |-c1.medium
1 256 5 0002 / 0002

Det er vigtig information. De kritiske data finder du bag spalterne Free og Max. Det viser, hvilke cpu-kerner der er til rådighed på din cloud til øjeblikkelig brug. Jo flere noder du har på netværket, desto højere er det tal, du ser her.

Hvis du kun ser nuller, har der været et problem med den node, der starter den pågældende controller, og du er nødt til at se i dens /var/log/Eucalyptus-mappe efter filerne.

Kør et image

5 Nu er tiden inde til at oprette et virtuelt eksempel på en maskine, der kører på vores node. Det er meget nemt med Eucalyptus, fordi man kan downloade færdiglavede pakker.

Gå tilbage til browseren, klik på knappen ’Store’ i styringskonsollen og vælg er færdiglavet image, der skal downloades. Vi valgte Karmic Koala (i386), der er en download på 174MB.

Du skal også vente et par minutter på, at dette image bliver installeret, efter at downloadet er overstået. Men inden længe bør du se meddelelsen »How to run?«.

Når du ser den, er du klar. Vi havde problemer med vores backend-maskine her, men så snart vi havde tilføjet noget mere hukommelse til systemet, virkede det gnidningsløst.

Før vi går tilbage til kommandolinjen, skal du klikke på »How to run«-linket ved siden af downloadet og notere »emi«-værdien, der står i slutningen af kommandoen. Det er den unikke identifikator for dette image.

Gå til kommandolinjen skriver du ’touch~/.euca/mykey.priv; chmod 0600~/.euca/mykey.priv; euca-add-keypair mykey > ~/.euca/mykey.priv’ for at oprette et nøglepar, der verificerer forbindelsen med dit kørende image.

Derefter skriver du ’euca-describe-groups’ efterfulgt af ’euca-authorize default -P tvp -p 22 -s 0.0.0.0/0’ for at opnå SSH-adgang til den virtualiserede maskine.

Til sidst skriver du det følgende for at starte den: ’euca-run-instances -k mykey -t c1 . medium emi’, idet du erstatter emi-værdien med den identifikator, som du tog fra webgrænsefladen for lidt siden.

Bemærk, at vi har specificeret »c1.medium« som imagetypen, og det er forud indstillet for den mængde ressourcer, som dette image får. Dem kan man se og ændre ved hjælp af Configuration-siden på webstyringens grænseflade.

Det kan tage lidt tid at initialisere, men du kan tjekke dens status med kommandoen ’euca-describe-instances’ og vente på, at dens tilstand skifter til »running«. Det tog omkring 20 minutter for os.

Du kan også se det nye eksempels ip-adresse, og du kan koble dig på din nye cloudserver ved at skrive ’ssh -i ~/.euca/mykey.priv ubuntu@ip_address’. Nu er du klar til at installere din storslåede web 2.0-applikation!

På trods af, at Ubuntu-installation er den nemmeste vej til et anvendeligt cloudsystem, er det stadig langtfra let. Eucalyptus-projektet er stadig kun i sin vorden, og Ubuntu 9.10 er den første distribution, der rummer pakker som standard. Det betyder, at der ikke er ret meget support, navnlig hvis du er ny i cloudverdenen.

Der er imidlertid flere ting, der kan hjælpe med at løse dine problemer. For det første skal du køre ’euca-describe-availability-zones verbose’ for at tjekke, om din nodemaskine er blevet registreret og føjet til cloud’en.

Hvis dine tilgængelige ressourcer er nul, er den ikke blevet det. Det hyppigste grund er, at synkroniseringen af nøglerne fra backend til node har svigtet, hvilket forhindrer noden i at registrere sig selv. Tjek ’/var/eucalyptus/keys’ på begge maskiner for at sikre dig, at nøglerne er til rådighed.

Hvis nøglerne på backend’en mangler, skal du prøve at køre ’/etc/init.d/eucalyptus-cc-registration restart’ for at regenerere nøglerne, og derefter prøve at tilføje noden igen ved hjælp af ’euca_conf_ --no-rsync –discover-nodes’.

Hvis alt andet svigter, så prøv ’sudo /etc/init.d/eucalyptus-es-registration restart’. Vi havde også problemer med at opdatere systemet med nye pakker. Løsningen på det er enten at tilføje noder til cluster’en, før du opdaterer nogen pakker, eller lade installationen være med de pakker, der fulgte med som standard. Det bør ikke betyde noget for en eksperimentel installation.

En sidste udvej er at gennempløje filerne i mappen /var/log/eucalyptus på begge maskiner. Det burde give dig en forestilling om, hvor problemerne er.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Det skal du bruge…

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Stilhed, tak

[/themepacific_accordion_section]
[/themepacific_accordion]