Gluster """"""" Schéma de base '''''''''''''' .. graphviz:: digraph "arch" { rankdir="TD" nodesep=0.01; ranksep=1.7; splines=ortho; subgraph gluster { subgraph cluster_ag_1 { rankdir="LR" label="Availability group #1" subgraph cluster_top1 { label = "Top Hypervisor #1"; "s1b1"[label="brick",style=filled,fillcolor="darkgreen:white",shape=rect] "s1b2"[label="brick",shape=rect,style=filled,fillcolor="darkgoldenrod:white"] "s1b3"[label="brick",shape=rect] "s1b4"[label="arbiter",shape=rect] } subgraph cluster_top3 { label = "Top Hypervisor #3"; "s3b1"[label="brick",style=filled,fillcolor="darkgreen:white"shape=rect] "s3b2"[label="brick",shape=rect,style=filled,fillcolor="darkgoldenrod:white"] "s3b3"[label="arbiter",shape=rect] "s3b4"[label="brick",shape=rect] } subgraph cluster_work1 { label = "Worker Hypervisor #1"; "s4b1"[label="brick",style=filled,fillcolor="darkgreen:white",shape=rect] "s4b2"[label="arbiter",shape=rect,style=filled,fillcolor="darkgoldenrod:white"] "s4b3"[label="brick",shape=rect] "s4b4"[label="brick",shape=rect] } } subgraph cluster_ag_2 { label="Availability group #1" subgraph cluster_top2 { label = "Top Hypervisor #2"; "s2b1"[label="brick",style=filled,fillcolor="blue4:white",shape=rect] "s2b2"[label="brick",shape=rect,style=filled,fillcolor="darkorange2:white"] "s2b3"[label="brick",shape=rect] "s2b4"[label="arbiter",shape=rect] } subgraph cluster_work2 { label = "Worker Hypervisor #2"; "s5b1"[label="brick",style=filled,fillcolor="blue4:white",shape=rect] "s5b2"[label="brick",shape=rect,style=filled,fillcolor="darkorange2:white"] "s5b3"[label="arbiter",shape=rect] "s5b4"[label="brick",shape=rect] } subgraph cluster_work3 { label = "Worker Hypervisor #3"; "s6b1"[label="brick",style=filled,fillcolor="blue4:white",shape=rect] "s6b2"[label="arbiter",shape=rect,style=filled,fillcolor="darkorange2:white"] "s6b3"[label="brick",shape=rect] "s6b4"[label="brick",shape=rect] } } } subgraph cluster_bf { label="Big file" "bf1"[shape=note,label="shard 1"]; "bf2"[shape=note,label="shard 2"]; } "sf1"[label="small_file 1",shape=note]; "sf2"[label="small_file 2",shape=note]; s1b1 -> sf1[color=darkgreen,dir=back] s3b1 -> sf1[color=darkgreen,dir=back] s4b1 -> sf1[color=darkgreen,dir=back] s2b1 -> sf2[color=blue4,dir=back] s5b1 -> sf2[color=blue4,dir=back] s6b1 -> sf2[color=blue4,dir=back] s1b2 -> bf1:w[color=darkgoldenrod,dir=back] s3b2 -> bf1:w[color=darkgoldenrod,dir=back] s4b2 -> bf1:w[color=darkgoldenrod,dir=back] s2b2 -> bf2:e[color=darkorange2,dir=back,samehead=a] s5b2 -> bf2:e[color=darkorange2,dir=back,samehead=a] s6b2 -> bf2:e[color=darkorange2,dir=back,samehead=a] { rank = sink; Legend [shape=none, margin=0, label=<
Legend
Small file, 3 replicas
Small file, 3 replicas
Big file, first shard, 2 replicas
Big file, second shard, 2 replicas
>]; } } Gluster FS: Fichiers de configuration +++++++++++++++++++++++++++++++++++++ Modèle à 3 serveurs et 3 briques standard : ==== ==== ==== Srv1 Srv2 Srv3 ==== ==== ==== D D D ==== ==== ==== * D: Brique data Gluster FS: Images systèmes +++++++++++++++++++++++++++ Modèle à 3 serveurs et 9 briques avec arbiter : ==== ==== ==== Srv1 Srv2 Srv3 ==== ==== ==== D D A D A D A D D ==== ==== ==== * D: Brique data * A: Brique Arbiter Description ''''''''''' L'architecture Gluster dans Ocean comprendra une configuration par groupes de 3 serveurs utilisant un modèle à 4 briques par serveur. Pour le volume hébergeant les fichiers de configuration, logs et fichiers de petite taille : * 1 briques de données par serveur, 3 replicas Pour le volume hébergeant les images systèmes et les gros fichiers : * 2 briques de données par serveur * 1 brique arbiter par serveur * Activation du sharding [#]_ pour permettre une restauration plus rapide des FS Gluster. Les 2 volumes nécessaires sont hébergés sur les top hyperviseurs. En complément, des groupes de 3 workers seront utilisés pour augmenter la taille des systèmes de fichiers. Les workers de proximité seront clients des différents volumes Gluster. .. [#] Attention au sharding qui peut augmenter la probabilité d'indisponibilité d'un fichier. Le sharding correspond au stripe lustre avec les inconvénients inhérents à ce genre de découpage de gros fichiers. .. raw:: latex \clearpage