GWIP """" Schéma de base '''''''''''''' .. graphviz:: digraph "arch" { rankdir="TD"; ranksep=1.5; nodesep=0.5; subgraph cluster_machine1 { label="HPC Cluster #1" rankdir="LR"; subgraph cluster_machine1_islet1 { label="Islet #1" "c1m1i1"[label="node"] "c2m1i1"[label="node"] "gwip1m1i1"[label="gwip"] "gwip2m1i1"[label="gwip"] } subgraph cluster_machine1_islet2 { label="Islet #2" "c1m1i2"[label="node"] "c2m1i2"[label="node"] "gwip1m1i2"[label="gwip"] "gwip2m1i2"[label="gwip"] } } subgraph cluster_machine2 { label="HPC Cluster #2" rankdir="LR" subgraph cluster_machine2_islet1 { label="Islet #1" "c1m2i1"[label="node"] "c2m2i1"[label="node"] "gwip1m2i1"[label="gwip"] "gwip2m2i1"[label="gwip"] } subgraph cluster_machine2_islet2 { label="Islet #2" "c1m2i2"[label="node"] "c2m2i2"[label="node"] "gwip1m2i2"[label="gwip"] "gwip2m2i2"[label="gwip"] } } c1m1i1 -> gwip1m1i1 c1m1i1 -> gwip2m1i1 c2m1i1 -> gwip1m1i1 c2m1i1 -> gwip2m1i1 c1m1i2 -> gwip1m1i2 c1m1i2 -> gwip2m1i2 c2m1i2 -> gwip1m1i2 c2m1i2 -> gwip2m1i2 c1m2i1 -> gwip1m2i1 c1m2i1 -> gwip2m2i1 c2m2i1 -> gwip1m2i1 c2m2i1 -> gwip2m2i1 c1m2i2 -> gwip1m2i2 c1m2i2 -> gwip2m2i2 c2m2i2 -> gwip1m2i2 c2m2i2 -> gwip2m2i2 "Ethernet BBONE"[label="Ethernet router"] subgraph cluster_RTHP { label=RTHP "RTHP"[label="Ethernet\nPKEYs"] "RTHP2"[label="PKEY#2"] "RTHP3"[label="PKEY#3"] "RTHP4"[label="PKEY#4"] } gwip1m1i1 -> RTHP -> "Ethernet BBONE"[color="red",dir=both] gwip2m1i1 -> RTHP[color="red",dir=both] gwip1m1i2 -> RTHP[color="red",dir=both] gwip2m1i2 -> RTHP[color="red",dir=both] gwip1m2i1 -> RTHP[color="red",dir=both] gwip2m2i1 -> RTHP[color="red",dir=both] gwip1m2i2 -> RTHP[color="red",dir=both] gwip2m2i2 -> RTHP[color="red",dir=both] gwip1m1i1 -> RTHP2[color=blue,dir=both] gwip1m1i2 -> RTHP2[color=blue,dir=both] gwip2m1i1 -> RTHP2[color=blue,dir=both] gwip2m1i2 -> RTHP2[color=blue,dir=both] gwip1m2i1 -> RTHP3[color=blue,dir=both] gwip1m2i2 -> RTHP3[color=blue,dir=both] gwip2m2i1 -> RTHP3[color=blue,dir=both] gwip2m2i2 -> RTHP3[color=blue,dir=both] gwip1m1i1 -> RTHP4[color=darkorange,dir=both] gwip1m1i2 -> RTHP4[color=darkorange,dir=both] gwip2m1i1 -> RTHP4[color=darkorange,dir=both] gwip2m1i2 -> RTHP4[color=darkorange,dir=both] gwip1m2i1 -> RTHP4[color=darkorange,dir=both] gwip1m2i2 -> RTHP4[color=darkorange,dir=both] gwip2m2i1 -> RTHP4[color=darkorange,dir=both] gwip2m2i2 -> RTHP4[color=darkorange,dir=both] { rank = sink; Legend [shape=none, margin=0, label=<
Legend
Egress/Ingress IP traffic, BBONE BGP announces
Intra cluster IP traffic
Inter cluster IP traffic, BGP/RIP announces
2 Machines, 2 islets per machine, 2 GWIP per islet
>]; } } Description ''''''''''' 2 cas de figure se présentent en fonction des fonctionnalités proposées par Lustre: * Si Lustre permet le multirail, l'architecture reste basée sur N GWIPs physiques dialoguant en RIP/BGP/OSPF avec les autres ilôts et autres machines. * Si Lustre ne permet pas le multirail, l'architecture sera basée sur N GWIP virtuelles par couple de carte interconnect/RTHP. Chaque VM est indissociable de son hyperviseur et des HCA associées. Les routeurs LNET et IP seront colocalisés et tous deux configurés via Puppet. Les GWIP se partageront les IP de passerelle par défaut via Keepalived (VRRP) dialoguant sur le RTHP. Les GWIP partageront leur route entres elle via un Bird dialoguant sur le RTHP et en utilisant un protocole à déterminer (RIP/BGP/OSPF). N IPs de passerelles par défaut seront à configurer sur les clients IP. Il est souhaitable d'avoir en vue une optimisation des performances de routage IP via des protocoles de routage performants (ECMP par exemple). Au vu des difficultés et des besoins prévisionnels (passerelles MPI), il apparait comme nécéssaire d'avoir des partitions réseau (PKEY) du backbone Infiniband dédiées au routage IP. Ces dernières permettront un dialogue aisé entre les calculateurs et entre les ilôts d'un calculateur. De même, toutes les GWIP accèderont directement aux PKEY de routage vers le backbone Ethernet ie. plus de multihop. .. raw:: latex \clearpage