Objectif#
Mettre en place le stockage iSCSI pour un cluster Proxmox VE (PVE) avec VLAN dédiés, jumbo frames, authentification CHAP et multipathing (ALUA) sur une baie HPE MSA 2070.
Prérequis#
- VLAN iSCSI créés (4000, 4001) → Un VLAN par contrôleur.
- MTU 9000 (jumbo frames) de bout en bout : ports PVE + switch + baie
- Adressage IP iSCSI défini (une IP par port/chemin)
- Pool/volumes iSCSI déjà créés (ou à créer) sur la baie
1) Réseau (VLAN + ports)#
- Créer les VLAN fabric sur les switches.
- Configurer les ports :
- Côté Proxmox : ports/tagged sur le(s) VLAN fabric
- Côté baie : ports/untagged sur le VLAN fabric
- Configurer les interfaces sur PVE :
nic4.4000en MTU 9000nic5.4001en MTU 9000
Point de contrôle : vérifier le ping entre chaque IP fabric PVE ↔ baie (sur chaque VLAN/chemin).
2) Architecture de redondance (Fabrics, Switchs, Contrôleurs, Multipathing)#
Objectif#
Assurer qu’une panne d’un élément (lien, port, switch, VLAN, contrôleur MSA) n’interrompt pas l’accès aux LUN :
- 2 chemins réseau totalement indépendants (Fabric A / Fabric B)
- 2 contrôleurs sur la baie (CTRL A et CTRL B)
- 2 switches en stack côté réseau (vu comme un seul switch logique, mais avec redondance matérielle)
- Multipathing côté Proxmox (DM-Multipath) + ALUA côté MSA (chemins optimisés/non-optimisés)
Architecture recommandée (principe A/B)#
On sépare deux “fabrics” iSCSI :
- VLAN 4000 = Fabric A
- Proxmox :
nic4.4000(MTU 9000) - Switch stack : ports iSCSI (tagged côté PVE, untagged ou access côté baie)
- Baie MSA : ports iSCSI du contrôleur A dans le VLAN 4000
- Proxmox :
- VLAN 4001 = Fabric B
- Proxmox :
nic5.4001(MTU 9000) - Switch stack : ports iSCSI (mêmes règles)
- Baie MSA : ports iSCSI du contrôleur B dans le VLAN 4001
- Proxmox :
Une interface iSCSI PVE = un VLAN = un chemin réseau, et chaque VLAN « mène » prioritairement à un contrôleur.
Câblage / switches (stack de 2)#
- PVE : une patte iSCSI sur un membre du stack, l’autre iSCSI sur l’autre membre
- ex :
nic4→ Switch-1,nic5→ Switch-2
- ex :
- MSA : ports iSCSI de chaque contrôleur répartis sur les 2 switches
Bonnes pratiques :
- Éviter LACP/bond sur iSCSI.
- 1 NIC = 1 IP = 1 chemin (la redondance/agrégation se fait par Multipath, niveau bloc).
Chemins attendus (exemple)#
Pour une LUN présentée par la MSA sur un nœud PVE, vous devez voir plusieurs chemins (ex : 2 ports par contrôleur → 4 chemins).
Rôle d’ALUA (MSA) + DM-Multipath (PVE)#
- ALUA : annonce chemins Optimized/Active (chemins préférés – contrôleur propriétaire du LUN) et Non-optimized (secours)
- PVE : multipathd regroupe tous les chemins d’un même LUN en un seul device (
/dev/mapper/mpathX), bascule automatiquement en cas de coupure, maintient l’I/O
Scénarios de panne couverts#
- Perte d’un câble ou d’un port NIC côté PVE → chemins restants OK
- Perte d’un port iSCSI sur la MSA → chemins restants OK
- Perte d’un VLAN, d’un switch, ou d’un contrôleur → chemins restants OK (failover automatique)
Points de contrôle avant mise en prod#
- Les deux VLAN (4000/4001) pingent correctement PVE <-> MSA (MTU 9000 validé)
- Les sessions iSCSI sont établies sur les deux fabrics (A et B)
multipath -llprésente :- plusieurs chemins
- des groupes d’accès par priorité (ALUA)
- Test de coupure :
- débrancher
nic4puisnic5et observer la continuité I/O à chaque fois - test failover contrôleur sur la baie et vérifier la bascule automatique
- débrancher
3) Baie MSA : stockage + CHAP#
- Créer le pool de stockage sur la baie.
- Créer les volumes/LUN iSCSI.
- Activer/configurer l’authentification CHAP (même compte CHAP pour tous les nœuds PVE).
- Récupérer/configurer l’IQN (target) côté baie (MSA).
4) Proxmox : config IQN (initiator)#
Sur chaque nœud PVE, modifier l’IQN (exemple) :
iqn.2026-04.local.domain:pve01-data
Fichier à modifier : /etc/iscsi/initiatorname.iscsi
5) Proxmox : installation iSCSI + multipath#
Sur chaque nœud PVE :
apt update && apt install open-iscsi multipath-tools -y
systemctl enable --now iscsid
systemctl enable --now multipathd6) Proxmox : activer CHAP (iscsid.conf)#
Éditer /etc/iscsi/iscsid.conf :
node.session.auth.authmethod = CHAP
node.session.auth.username = pve
node.session.auth.password = StrongPassword1237) Proxmox : configuration multipath (MSA 2070 / ALUA)#
Éditer /etc/multipath.conf (exemple) :
defaults {
user_friendly_names no
find_multipaths yes
path_grouping_policy group_by_prio
path_selector "round-robin 0"
rr_min_io 1
rr_weight uniform
failback immediate
no_path_retry queue
fast_io_fail_tmo 5
dev_loss_tmo 600
}
devices {
device {
vendor "HP"
product "MSA 2070 iSCSI"
path_grouping_policy group_by_prio
path_checker tur
hardware_handler "1 alua"
prio alua
rr_weight uniform
rr_min_io 50
no_path_retry queue
failback immediate
}
}8) Découverte des targets + login + autologin#
# Découverte des targets
iscsiadm -m discovery -t sendtargets -p <IP_ISCSI_MSA>
# Login (avec CHAP défini dans iscsid.conf)
iscsiadm -m node --login
# Activer l'auto-login au démarrage
iscsiadm -m node --op update -n node.startup -v automatic
# Redémarrage des services
systemctl restart open-iscsi
systemctl restart multipathd9) Vérifications#
# (Optionnel) Forcer une (re)découverte multipath
multipath -v2
# Vérifier les chemins / mapping
multipath -ll10) Côté stockage PVE (LVM) + HA (à faire)#
- Créer le DATASTORE sur proxmox
- Tester la HA (migration, reprise, etc.)
