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