Programmering

Flocker pakker Docker-containere og data for enkel transport

Når Docker-containere brukes i større grad, blir manglene deres også tydeligere. Hvordan migrerer du for eksempel en container som kjører sammen med dataene til en annen server, og bevarer dataene i prosessen? Vanligvis gjør du det ikke.

ClusterHQ, en oppstart som delvis ble grunnlagt av kjernebidragsytere til Python Twisted-nettverksmotoren, har en foreslått løsning. Flocker, en åpen kildekode (Apache) datavolumebehandler for Dockerized-applikasjoner som nå er i 1.0-utgivelsen, gjør at datamengder (aka datasett) kan knyttes til containere og flyttes med dem.

Holde det hele sammen

Flocker pakker containere og datasett, og sørger for at de beveger seg hver gang et Dockerized-program blir skutt mellom verter i en gitt klynge. Den ene begrensningen er at lagring av dataene må leveres av en delt lagringsbakside som er tilgjengelig for alle nodene i klyngen.

Bare noen få typer lagringsbakgrunner, for det meste skyorienterte, støttes akkurat nå: Amazon EBS, Rackspace Cloud Block Storage og EMC ScaleIO. ZFS-basert lagring støttes også, om enn bare via en backend som er eksperimentell.

"Alt du vil bruke VMware vMotion til," sa Mark Davis, administrerende direktør i ClusterHQ, "er de samme grunnene til at du kanskje vil flytte en container. Og hvis en container har data i seg, trenger du noe sånt som Flocker."

Når det er sagt, er en hevdet funksjon av vMotion - live migrering av kjørende apper - ikke helt der ennå i Flocker. Migrasjonene er "minimal nedetid", snarere enn null nedetid, noe som betyr at det er et lite vindu med utilgjengelighet under migreringsprosessen. Luke Marsden, CTO og medstifter av ClusterHQ, uttalte i en telefonsamtale at nedetiden "avhenger av hastigheten som bakenden kan ha et volum løsrevet fra en VM og festet til en annen VM. Men vi er veldig interessert i minimere nedetid. "

ClusterHQ har allerede eksperimentelle funksjoner i verk for å øke hastigheten på prosessen ved hjelp av volum øyeblikksbilder, selv om bakenden trenger å støtte øyeblikksbilder for at den skal være levedyktig.

Dockers manglende brikker

Docker har tradisjonelt jobbet med data i form av datavolum, men de har sine egne begrensninger. Manuell kopiering av data mellom containere er fremdeles ikke enkelt (angivelig løst i Docker 1.7), men den største veggen er fortsatt dårlig administrasjon for data som deles av Docker-containere som kjører på forskjellige steder.

Et nåværende forslag til Docker innebærer å gjøre tilgjengelig en ny type lagring til containere, der tredjeparter kan tilby enhetsdrivere for sine egne lagringstyper. Hvis en slik funksjon ble implementert, ville det ikke vært vanskelig for ClusterHQ å omarbeide støtten gjennom datasettet back-end plug-in-arkitektur - og holde et skritt foran funksjonalitet som ruller inn i Dockers egen kjerne over tid.

$config[zx-auto] not found$config[zx-overlay] not found