Dag 25 & 26: Samstemt provisjonering av ceph maskiner

Fra forrige gang fant jeg ut at et Ceph kluster ikke kan provisjoneres node for node. Dette ble også bekreftet av en av utviklerne fra Stackforge. På bakgrunn av dette laget jeg et script som tar opp alle nodene samtidig. I tillegg ble det lagt inn en 10 sekunders forsinkelse mellom hver av maskinene slik at vi får korrekt IP adresse på dem. Scriptet er et veldig enkelt script som kan sees i sin helhet på Github.

Nå vil ikke timeout feilen fra forrige innlegg skje. Når den kommer til punktet der nøklene skal sendes over til de andre maskinene i ceph klusteret vil de andre nodene også ha kommet til dette steget. På denne måten klarer nøklene å spres over til de andre maskinene og provisjoneringen med puppet går gjennom uten feil.

Videre arbeid blir nå å integrere ceph med resten av OpenStack slik at instansene vi oppretter bruker ceph som lagringsområde. I tillegg skal jeg skrive en del dokumentasjon om winch og hvordan man tar det bedre i bruk. Foreløpig dokumentasjon kan sees på http://winch.readthedocs.org/en/latest/

Dag 24: Feil med opprettelse av første monitoreringsnode

Ved opprettelse av første monitoreringsnode, ceph01 feiler kjøringen av puppet modulene. Fra det manuelle oppsettet lærte vi at den første noden setter inn nøkler og passord på de andre nodene i klusteret.

Error: /Stage[main]/Ceph::Profile::Mon/Ceph::Key[client.bootstrap-osd]/Exec[ceph-injectkey-client.bootstrap-osd]/

Når de to andre nodene ceph02 og ceph03 blir provisjonert så skjer ikke denne feilen. Ting kan tyde på at nodene er svært avhenige av hverandre når de skal provisjoneres. Ceph01 kan deretter provisjoneres på nytt etter at andre og tredje node er kommet på. Da fungerer det uten problemer og vi kan se utifra ceph -status at vi har et aktivt og kjørende kluster.

cluster 4b5c8c0a-ff60-454b-a1b4-9747aa737d19
health HEALTH_WARN clock skew detected on mon.ceph02, mon.ceph03
monmap e2: 3 mons at {ceph01=172.16.33.13:6789/0,ceph02=172.16.33.14:6789/0,ceph03=172.16.33.15:6789/0}, election epoch 6, quorum 0,1,2 ceph01,ceph02,ceph03
osdmap e17: 6 osds: 6 up, 6 in
pgmap v24: 192 pgs, 3 pools, 0 bytes data, 0 objects
68720 MB used, 149 GB / 227 GB avail
192 active+clean

 

 

Dag 22: Installering av Ceph kluster

Agenda i dag var å få lest litt mer om filsystemet Ceph. Ceph er et objekt basert filsystem som replikerer sine data over et lagringskluster. Det tar vekk behovet for et tradisjonelt SAN. Filsystemet ble utviklet i 2007, og ble i Mai i år kjøpt opp av RedHat.

I prosjektet har vi lyst å deployere Ceph ved bruk av Puppet moduler. For å få en så knirkefri installasjon som overhodet mulig kommer vi til å bruke samme utviklere som laget OpenStack puppet modulene vi benyttet tidligere. Stackforge utviklerne har mye spennende GitHub prosjekter innenfor OpenStack og dens komponenter. For de som er interessert i å sjekke ut Ceph repositoriet kan ta en kikk her.

I første omgang har vi deployert et Ceph kluster manuelt for å få et innblikk i hvordan dette fungerer bit for bit før vi begynner å bruke puppet modulene. Det er mye god dokumentasjon som ligger ute på hjemmesidene til Ceph, vi begynte med følgende «quick-start-preflight».  Deretter ble klusteret installert ved å følge «quick-start-deploy».

Et kjørende kluster can for eksempel se slik ut:

ceph-cluster