SheepDog is een open source project voor KVM dat onlangs werd aangekondigd. Het project zorgt voor high-availability voor KVM-gastsystemen door aan de virtuele machines storage volumes aan te bieden op blokniveau. De gegevens van die virtuele schijven worden verdeeld over meerdere computers, ongeveer zoals wat RAID doet met meerdere schijven in dezelfde computer. SheepDog is ontworpen om op te schalen tot honderden computers en wordt verspreid onder GPLv2.

De architectuur van SheepDog bestaat uit drie componenten: een disk I/O manager ("sheep"), de cluster manager ("dog") en een client. Die laatste bestaat uit een gepatchte versie van KVM met een blokdriver voor de gedistribueerde storage. De client verdeelt het image van een virtuele machine in stukken van 4 MB die op een redundante manier over de storage nodes verdeeld worden. SheepDog werkt volledig symmetrisch en zonder centrale server. Als één computer uitvalt, zijn de gegevens daarom nog altijd beschikbaar, en wanneer een machine toegevoegd wordt, wordt die automatisch gedetecteerd en aan de cluster toegevoegd.

Vereisten

SheepDog vereist wel dat elke deelnemende computer het bestandssysteem Btrfs gebruikt, dat nog experimenteel is. Je hebt minstens drie x86_64 Linux-machines nodig voor het uitrollen van een SheepDog-installatie. De software voor het clusterbeheer vereist Sun JDK 6, libssl en een aantal Java-bibliotheken. Instructies zijn te vinden op de website van het project.

In ontwikkeling

SheepDog is nog in de ontwikkelingsfase, maar biedt de basisfunctionaliteit al aan. Live migratie van gastsystemen is nog niet mogelijk, al staat dit wel op de planning. Ondersteuning van de Amazon EBS (Elastic Block Storage) API, dat storage volumes op blokniveau aanbiedt in Amazons cloud en in Eucalyptus, staat ook nog op de agenda. Andere geplande functies zijn autonome load balancing, tolerantie voor het falen van het netwerk en andere architecturen dan x86_64.

Bron: Techworld