Sheepdog software | |
---|---|
Genere | Storage Distribuito (non in lista) |
Sviluppatore | Chris Webb, Christoph Hellwig, Fujita Tomonori, Hitoshi Mitake, Jens Weber, Kai Zhang, Levin Li, Morita Kazutaka, Robin Dong, Ruoyu, Steven Dake, Yuan Liu |
Data prima versione | 2010 |
Ultima versione | 0.9.5 (1º marzo 2017) |
Sistema operativo | GNU/Linux |
Linguaggio | C |
Licenza | GPL v2 (licenza libera) |
Lingua | Inglese |
Sito web | github.com/sheepdog/sheepdog |
Sheepdog è uno storage distribuito nato per QEMU/KVM.
I dischi delle macchine virtuali sono distribuiti sui nodi.
In base al livello di ridondanza scelto è possibile perdere uno o più nodi e rilanciare le macchine virtuali sui nodi attivi (Reliability).
Per aumentare le dimensioni dello storage o per eseguire più macchine virtuali basta aggiungere nodi (Scalability).
La sua configurazione ed i comandi per interagire hanno una sintassi chiara, semplice e ben documentata (Manageability).
Infine offre molte funzionalità avanzate, snapshot, cloning, iSCSI, cluster wide backup etc.
Storia
[modifica | modifica wikitesto]Il progetto sheepdog è stato fondato da Kazutaka Morita, programmatore della NTT Cyber Space Labs (Giappone). I motivi per cui ha dato vita a sheepdog sono:
“IaaS basate su OSS erano ai loro albori nel 2010. Anche OpenStack non era stato rilasciato. Non esisteva uno storage distribuito per fornire volumi a livello di blocchi a molte macchine virtuali e a noi serviva.
Il nome Sheepodog (cane pastore) è stato scelto come metafora: sheep (pecora) rappresenta un pc/server. Per amministrare un gregge formato da molti server (pecore), ci serviva uno cane pastore (sheepdog)".
Anche Tomonori Fujita, sempre della NTT Cyber Space Labs, era coinvolto agli inizi del progetto ed è l'attuale maintainer di (STGT).
Il contributo di un piccolo gruppo di sviluppatori di Taobao capitanato da Yuan Liu ha segnato un'importante svolta del progetto come testimoniato da Yuan stesso:
"Ad agosto 2011 un piccolo gruppo di sviluppatori di Taobao ha iniziato a realizzare un servizio di cloud computing. All'epoca sheepdog era molto instabile ma straordinariamente semplice e con un codice di base molto ridotto, paragonato ad esempio a Ceph. La semplicità e la possibilità di evolverlo a nostro piacimento, sono le ragioni per cui abbiamo scelto Sheepdog come soluzione di storage. Abbiamo contribuito sia allo sviluppo che alla ristrutturazione interna e migliorato la sua stabilità.".
Caratteristiche Principali
[modifica | modifica wikitesto]- Semplice implementazione (solo 2 servizi) ed una CLI intuitiva.
- Importazione ed esportazione di dischi virtuali esistenti (tutti i tipi supportati da qemu).
- Esportazione dei vdi in formato file (tutti i tipi supportati da qemu).
- Possibilità di scegliere il livello di ridondanza (Full Replica o Erasure Code), per l'intero cluster o per singolo vdi.
- Vdi
- snapshot
- clonazione
- ridmensionamento
- preallocazione
- blocco
- cambio ridondanza
- backup incrementali
- Cluster snapshot (con deduplica).
- Interfaccia di rete dedicata al traffico di sincronizzazione dei nodi.
- Supporto per la migrazione live (senza spegnimento) delle macchine virtuali tra i nodi del cluster.
- Amministra un numero illimitato di dischi e di diverse dimensioni.
- Integrato con OpenStack
Struttura del programma
[modifica | modifica wikitesto]- Un cluster manager (zookeeper or corosync)
- Controlla quali nodi si aggiungono o lasciano il cluster
- Il demone sheep
- Gestisce la scrittura, lettura e replica dei dati
- Il comando dog
- Serve per amministrare il cluster
Tutti questi componenti, in particolare il demone sheep, girano in user space.
A differenza di altri storage distribuiti, sheepdog non fa uso di server di metadati.
Sheepdog fa uso di un qualsiasi file system supportato da linux (Ext3, Ext4, Xfs...) che abbia l'opzione per gli attributi estesi (user_xattr).
Versioni Stabili
[modifica | modifica wikitesto]- 0.9.5, su github.com.
- 0.9.4, su github.com.
- 0.9.3, su github.com.
- 0.8.3, su github.com.
- 0.7.8, su github.com.
Collegamenti esterni
[modifica | modifica wikitesto]- Sito web del programma Sheepdog, su sheepdog.github.io.
- Wiki su Sheepdog, su github.com.
- Futuro sito web del programma Sheepdog(ancora in costruzione)
- Documentazione e manuale di gestione del programma Sheepdog, su sheepdog-project.org. URL consultato il 18 settembre 2014 (archiviato dall'url originale il 13 ottobre 2014).
- Taobao story, su lists.wpkg.org.
- IRC meeting summary, su lists.wpkg.org.