Wrap Up

Après concertation et modification de certaines architectures de services. La combination de tout les services Ocean décrits dans les blueprint, donne le découpage en VM suivant:

infra[1-2]

VMs hebergeant les services DHCP, TFTP et la partie exposée aux clients du service NTP.

Localisation: top ou worker

monitor1

VM hebergeant l’unique service de monitoring prometheus.

Localisation: top

batch[1-2]

VMs hebergeant les services Slurm (slurmd er slurmdbd).

Localisation: top ou worker

db1

VM hebergeant la base de données utilisée par plusieurs services (bmgr, slurmdbd, etc…) et le service auks.

Localisation: top

i[0,10-N]conf[1-2]

VMs hebergeant les serveurs HTTP et Puppet.

Localisation: (top ou worker) + ilôt

webrelay[1-2]

VMs hebergeant les serveur HTTP proxy permettant l’accès aux depôts YUM externes entre autres.

Localisation: top

i[0,10-N]log1

VMs herbegant les serveurs rsyslog et conman.

Localisation: (top ou worker) + ilôt

ns[1-3]

VMs hebergeant les serveur DNS et LDAP du calculateur.

Localisation: top

nsrelay1

VM hebergeant le serveur LDAP de synchronisation (aka. serveur fusible).

Localisation: top

lb[1-2]

VM hebergeant les serveurs HAProxy utilisés par plusieurs autres services.

Localisation: top ou worker

i[10-N]dkless[1-2]

VMs hebergeant les services dediés à l’infrastructure diskless du centre de calcul.

Localisation: ilôt

admin[1-2]

VMs servant de point d’accès au administrateurs

Localisation: top

auto1

VM herbgeant les services d’automate de centre de calcul (StackStorm)

Localisation: top

Ce qui donne, pour une machine de 2 ilôts, 3 top et 3 worker la répartition suivante (quand tout est nomimal)

digraph "arch" {
compound=true;
ranksep="1.2 equally";
rankdir="TB";
newrank="false";
sep="+1";
subgraph cluster_top1{
  graph[nodesep=0]
  label="top1";
  monitor1
  webrelay2
  ns3
  admin2
}
subgraph cluster_top2{
  label="top2";
  graph[nodesep=0]
  db1
  ns1
  nsrelay1
  auto1
}
subgraph cluster_top3{
  label="top3";
  webrelay1
  ns2
  admin1
}
subgraph cluster_worker1{
  label="worker1";
  infra1
  batch2
  lb2
}
subgraph cluster_worker2{
  label="worker2";
  infra2
  i0conf1
  i0log1
}
subgraph cluster_worker3{
  label="worker3";
  batch1
  i0conf2
  lb1
}
"monitor1" -> "topswitch1"[ltail=cluster_top1]
"db1" -> "topswitch2"[ltail=cluster_top2]
"admin1" -> "topswitch1"[ltail=cluster_top3]
"infra1" -> "topswitch2"[ltail=cluster_worker1]
"infra2" -> "topswitch1"[ltail=cluster_worker2]
"lb1" -> "topswitch2"[ltail=cluster_worker3]
"topswitch1" -> "topswitch2"[constraint=false]
"topswitch2" -> "topswitch1"[constraint=false]

subgraph cluster20 {
  subgraph clustersw20{
  "islet 20 switch 1";  "islet 20 switch 2";
  "islet 20 switch 1" -> "islet 20 switch 2"[constraint=false];
  "islet 20 switch 2" -> "islet 20 switch 1"[constraint=false];
  }
  subgraph cluster_islet20{
  label=islet20
  "islet 20 switch 1" -> "i20conf1"[lhead=cluster_islet20];
  "islet 20 switch 1" -> "i20log1"[style=invis,lhead=cluster_islet20];
  "islet 20 switch 1" -> "i20dkless1"[style=invis,lhead=cluster_islet20];
  i20conf1
  i20log1
  i20dkless1
  }
  subgraph cluster_islet21{
  label=islet21
  "islet 20 switch 2" -> "i20conf2"[lhead=cluster_islet21];
  "islet 20 switch 2" -> "i20dkless2"[style=invis,lhead=cluster_islet21];
  i20conf2
  i20dkless2
  }
}
"topswitch1" -> "islet 20 switch 1"[];
"topswitch2" -> "islet 20 switch 1"[];
"topswitch1" -> "islet 20 switch 2"[];
"topswitch2" -> "islet 20 switch 2"[];

subgraph cluster22 {
  subgraph clustersw22{
  "islet 22 switch 1";  "islet 22 switch 2";
  "islet 22 switch 1" -> "islet 22 switch 2"[constraint=false];
  "islet 22 switch 2" -> "islet 22 switch 1"[constraint=false];
  }
  subgraph cluster_islet22{
  label=islet22
  "islet 22 switch 1" -> "i22conf1"[lhead=cluster_islet22];
  "islet 22 switch 1" -> "i22log1"[style=invis,lhead=cluster_islet22];
  "islet 22 switch 1" -> "i22dkless1"[style=invis,lhead=cluster_islet22];
  i22conf1
  i22log1
  i22dkless1
  }
  subgraph cluster_islet23{
  label=islet23
  "islet 22 switch 2" -> "i22conf2"[lhead=cluster_islet23];
  "islet 22 switch 2" -> "i22dkless2"[style=invis,lhead=cluster_islet23];
  i22conf2
  i22dkless2
  }
}
"topswitch1" -> "islet 22 switch 1"[];
"topswitch2" -> "islet 22 switch 1"[];
"topswitch1" -> "islet 22 switch 2"[];
"topswitch2" -> "islet 22 switch 2"[];
}