5820e37e29b767f96c36f9884d08a0473908c063
Services/Proxmox.md
... | ... | @@ -17,6 +17,32 @@ Architecture montée par Alexandre Levavasseur FIP 2016 en février-mars 2015, p |
17 | 17 | >> Image de l'archi à ajouter. |
18 | 18 | https://sandstorm.resel.fr/shared/W65mdEUXHx9quIuNaWQckm1eCOPNcrqBKOmjT5nZfT9 |
19 | 19 | |
20 | +### Configuration Réseau |
|
21 | + |
|
22 | +La première chose à configurer, via l'interface graphique, c'est le réseau ( https://pve.proxmox.com/wiki/Open_vSwitch ). |
|
23 | +* désactiver `vmbr0` (par défaut) en décochant l'autoboot, retirant la passerelle (sinon conflit dans les étapes suivantes), mettant `eth0.997` au lieu de `eth0` |
|
24 | +* créer 2 OVS Bridge `vmbr1` et `vmbr2`, aucune option |
|
25 | +* créer 2 OVS Bond `bond1` (attention au nom !) prenant eth0 et eth1, puis bond2 prenant eth2 et eth3, les 2 en mode balance-tcp |
|
26 | +* Créer 2 OVS IntPort : |
|
27 | + * `mgr` portant l'adresse de management (reprendre les paramètres de l'install), dans le vlan 997 |
|
28 | + * `sto` portant une adresse dans le vlan stockage, seuls adresse et masque sont renseignés |
|
29 | + |
|
30 | +Un différentiel est disponible dans le cadre du bas. Lorsque vous avez bien tout configuré et vérifié, il faudra mettre en place les jumbo frames sur l'interface de stockage (possible avant le reboot de changement des interfaces en modifiant `interfaces.new`), en éditant `/etc/netwok/interfaces : |
|
31 | +``` |
|
32 | +iface sto inet static |
|
33 | +[..] |
|
34 | + mtu 9000 |
|
35 | + |
|
36 | +iface bond2 inet manual |
|
37 | +[..] |
|
38 | + pre-up ( ifconfig eth2 mtu 9000 && ifconfig eth3 mtu 9000 ) |
|
39 | + mtu 9000 |
|
40 | + |
|
41 | +iface vmbr2 inet manual |
|
42 | +[..] |
|
43 | + mtu 9000 |
|
44 | +``` |
|
45 | + |
|
20 | 46 | Les hyperviseurs sont connectés aux switch sur le VLAN 5 qui sert uniquement pour le stockage à l'aide de 2 liens LACP Gi. |
21 | 47 | Le Port Channel configuré par interface sur Laetitia: |
22 | 48 | * PC 5 : LACP SAN - Laetitia (eth2 : Gi0/35, eth3 : Gi0/34) |
... | ... | @@ -25,15 +51,175 @@ Le Port Channel configuré par interface sur Laetitia: |
25 | 51 | * PC 20 : LACP Core - Camillle (eth0 : Gi0/30, eth1 : Gi0/31) |
26 | 52 | * PC 21 : LACP Core - Nikita (eth0 : Gi0/26, eth1 : Gi0/27) |
27 | 53 | |
28 | -Attention, cette documentation peut évoluer (car les confs des sw c'est facile à changer), n'hésitez pas à aller [voir la configuration de Laetitia](https://git.resel.fr/confs/cisco) en cas de doute. |
|
29 | - |
|
30 | 54 | Le LACP est un protocole permettant d'agréger des liens sur un même switch afin d'avoir une résistance en cas de chute de lien, mais également plus de débit. [Documentation Cisco sur le LACP](https://www.cisco.com/c/en/us/td/docs/ios/12_2sb/feature/guide/gigeth.html). |
31 | 55 | |
32 | 56 | [Alternative au LACP iSCSI Multipath](https://pve.proxmox.com/wiki/ISCSI_Multipath) |
33 | 57 | |
34 | -### Configuration Réseau |
|
58 | +Il faut adapter la configuration des ports du switch en face ; un exemple : |
|
35 | 59 | |
36 | -TODO: https://redmine.resel.fr/projects/proxmox/wiki/MiseEnPlace#R%C3%A9seau |
|
60 | +Attention, cette documentation peut évoluer (car les confs des sw c'est facile à changer), n'hésitez pas à aller [voir la configuration de Laetitia](https://git.resel.fr/confs/cisco) en cas de doute. |
|
61 | + |
|
62 | +``` |
|
63 | +! |
|
64 | +interface GigabitEthernet0/26 |
|
65 | + description Nikita LACP CORE 1 |
|
66 | + switchport trunk encapsulation dot1q |
|
67 | + switchport mode trunk |
|
68 | + storm-control broadcast level pps 300 250 |
|
69 | + storm-control action trap |
|
70 | + channel-protocol lacp |
|
71 | + channel-group 21 mode passive |
|
72 | +! |
|
73 | +interface GigabitEthernet0/27 |
|
74 | + description Nikita LACP CORE 2 |
|
75 | + switchport trunk encapsulation dot1q |
|
76 | + switchport mode trunk |
|
77 | + ip access-group 101 in |
|
78 | + mls qos trust dscp |
|
79 | + snmp trap mac-notification change added |
|
80 | + snmp trap mac-notification change removed |
|
81 | + storm-control broadcast level pps 300 250 |
|
82 | + storm-control action trap |
|
83 | + channel-protocol lacp |
|
84 | + channel-group 21 mode passive |
|
85 | + spanning-tree portfast |
|
86 | + spanning-tree bpdufilter enable |
|
87 | + ip dhcp snooping trust |
|
88 | +! |
|
89 | +interface GigabitEthernet0/28 |
|
90 | + description Nikita LACP SAN 1 |
|
91 | + switchport access vlan 5 |
|
92 | + storm-control broadcast level pps 200 5 |
|
93 | + storm-control action trap |
|
94 | + channel-protocol lacp |
|
95 | + channel-group 11 mode passive |
|
96 | + spanning-tree portfast |
|
97 | + spanning-tree bpdufilter enable |
|
98 | +! |
|
99 | +interface GigabitEthernet0/29 |
|
100 | + description Nikita LACP SAN 2 |
|
101 | + switchport access vlan 5 |
|
102 | + storm-control broadcast level pps 200 5 |
|
103 | + storm-control action trap |
|
104 | + channel-protocol lacp |
|
105 | + channel-group 11 mode passive |
|
106 | + spanning-tree portfast |
|
107 | + spanning-tree bpdufilter enable |
|
108 | +! |
|
109 | +interface GigabitEthernet0/30 |
|
110 | + description Camille LACP CORE 1 |
|
111 | + switchport trunk encapsulation dot1q |
|
112 | + switchport mode trunk |
|
113 | + ip access-group 101 in |
|
114 | + mls qos trust dscp |
|
115 | + storm-control broadcast level pps 300 250 |
|
116 | + storm-control action trap |
|
117 | + channel-protocol lacp |
|
118 | + channel-group 20 mode passive |
|
119 | + spanning-tree portfast |
|
120 | + spanning-tree bpdufilter enable |
|
121 | + ip dhcp snooping trust |
|
122 | +! |
|
123 | +interface GigabitEthernet0/31 |
|
124 | + description Camille LACP CORE 2 |
|
125 | + switchport trunk encapsulation dot1q |
|
126 | + switchport mode trunk |
|
127 | + ip access-group 101 in |
|
128 | + mls qos trust dscp |
|
129 | + snmp trap mac-notification change added |
|
130 | + snmp trap mac-notification change removed |
|
131 | + storm-control broadcast level pps 300 250 |
|
132 | + storm-control action trap |
|
133 | + channel-protocol lacp |
|
134 | + channel-group 20 mode passive |
|
135 | + spanning-tree portfast |
|
136 | + spanning-tree bpdufilter enable |
|
137 | + ip dhcp snooping trust |
|
138 | +! |
|
139 | +interface GigabitEthernet0/32 |
|
140 | + description Camille LACP SAN 1 |
|
141 | + switchport access vlan 5 |
|
142 | + storm-control broadcast level pps 200 5 |
|
143 | + storm-control action trap |
|
144 | + channel-protocol lacp |
|
145 | + channel-group 10 mode passive |
|
146 | + spanning-tree portfast |
|
147 | + spanning-tree bpdufilter enable |
|
148 | +! |
|
149 | +interface GigabitEthernet0/33 |
|
150 | + description Camille LACP SAN 2 |
|
151 | + switchport access vlan 5 |
|
152 | + storm-control broadcast level pps 200 5 |
|
153 | + storm-control action trap |
|
154 | + channel-protocol lacp |
|
155 | + channel-group 10 mode passive |
|
156 | + spanning-tree portfast |
|
157 | + spanning-tree bpdufilter enable |
|
158 | +! |
|
159 | +interface GigabitEthernet0/34 |
|
160 | + description Sanizator LACP 2 |
|
161 | + switchport access vlan 5 |
|
162 | + storm-control broadcast level pps 200 5 |
|
163 | + storm-control action trap |
|
164 | + channel-protocol lacp |
|
165 | + channel-group 5 mode passive |
|
166 | + spanning-tree portfast |
|
167 | + spanning-tree bpdufilter enable |
|
168 | +! |
|
169 | +interface GigabitEthernet0/35 |
|
170 | + description Sanizator LACP |
|
171 | + switchport access vlan 5 |
|
172 | + storm-control broadcast level pps 200 5 |
|
173 | + storm-control action trap |
|
174 | + channel-protocol lacp |
|
175 | + channel-group 5 mode passive |
|
176 | + spanning-tree portfast |
|
177 | + spanning-tree bpdufilter enable |
|
178 | +``` |
|
179 | + |
|
180 | +**Uniquement pour promox 3** : |
|
181 | +Enfin, pour la partie réseau, il reste un détail (à mettre en place au bon moment de l'installation mais décrit ici) : le passage dans un état réellement fonctionnel des interfaces tels que sw semble pouvoir mettre beaucoup de temps au boot, or entre l'initialisation du réseau et la tentative de formation du cluster il ne s'écoule que quelques secondes au plus, ce qui peut poser des problèmes (notamment, le problème a été diagnostiqué parce que le noeud tente de s'unfencer -> fail -> pas de join du domain de fence -> pas de rmanager). Il faut donc attendre que le réseau soit bien prêt avant de continuer, j'ai pour cela créé un petit script qui va vérifier que les adresses fournies (et choisie pour permettre de vérifier l'état de l'interface) sont bien opérationnelles avant de continuer : |
|
182 | + |
|
183 | +``` |
|
184 | +echo > /etc/network/if-up.d/z-boot-wait <<EOF |
|
185 | +#!/usr/bin/env sh |
|
186 | +# |
|
187 | +# Script d'attente au boot par Alexandre Levavasseur, FIP16 |
|
188 | +# -- |
|
189 | +# Attend que les réseaux nécessaires, ici lien avec laetitia et avec le san, soient |
|
190 | +# prêts avant de continuer le boot ; si délai > 5 minutes le script laisse quand |
|
191 | +# même le système booter (pour éviter les erreurs humaines). |
|
192 | + |
|
193 | +log() { |
|
194 | + echo "[boot-wait] $*" |
|
195 | +} |
|
196 | + |
|
197 | +NEEDED="172.22.5.5 172.22.0.115" |
|
198 | +MAX_WAIT=300 |
|
199 | + |
|
200 | +t=0 |
|
201 | +if [ "$IFACE" = "--all" ] && [ "$PHASE" = "post-up" ]; then |
|
202 | + for addr in $NEEDED; do |
|
203 | + echo -n "[boot-wait] Waiting for $addr .. " |
|
204 | + until [ $t -gt $MAX_WAIT ] || ping -c1 -W1 $addr > /dev/null; do |
|
205 | + t=$((t+1)) |
|
206 | + done |
|
207 | + echo "exited at t=$t" |
|
208 | + done |
|
209 | + |
|
210 | + if [ $t -gt $MAX_WAIT ]; then |
|
211 | + log "Failed, deadline expired" |
|
212 | + exit 1 |
|
213 | + else |
|
214 | + log "Ok :)" |
|
215 | + fi |
|
216 | +fi |
|
217 | +EOF |
|
218 | + |
|
219 | +puis |
|
220 | + |
|
221 | +chmod +x /etc/network/if-up.d/z-boot-wait |
|
222 | +``` |
|
37 | 223 | |
38 | 224 | ### Reverse proxy |
39 | 225 |