sheepdogのアーキテクチャは完全なSymmetric,つまり左右対称です.
メタサーバのような中心ノードが存在しません.
このようなシステム構成は次のような特徴と持ちます.
Sheepdogは,Sheepdogクライアント(qemuブロックドライバ)に簡単なKeyValueInterface?を提供するストレージシステムです.
Sheepdogは複数のノードから構成されます.
絵が入ります.
Sheepdogは1ノード(collieと呼ばれる)とパッチを適用したQEMU/KVMから構成されます.
絵が入ります.
SheepdogクライアントはVMイメージを固定サイズオブジェクトに分割します.(デフォルトで4MB).
そして、分配されたストレージシステムにオブジェクトを保存します.
各オブジェクトは、グローバルにユニークな64bit IDによって決定されて,複数のノードにコピーされます.
絵が入ります.
Sheepdogオブジェクトは2つのタイプに分類されます.
Sheepdogは,オブジェクトがどこに保存されるかを決定するのにconsistent hashを使用します.
consistent hashは,ハッシュ表の機能性を提供するスキーマです.
そして,ノードの参加か離脱がオブジェクトに関するマッピングをあまり変えません.
入出力負荷はノードの向こう側にハッシュ表を用いることでバランスをとっています.
手当たりしだいに分配するのではなく,インテリジェントにデータを分配するメカニズムは今後の活動です.
各ノードはリングそれ自身のIDに基づいているconsistent hashによって配置されます.
どこにオブジェクトを保存するかを決定するために,SheepdogクライアントはオブジェクトIDを得て,リングに適合するポイントを発見し,時計回りにターゲットノードを決定します.
絵が入ります.