Architecture cible
Le multipath iSCSI utilise deux chemins réseau indépendants entre les hôtes Proxmox et le NAS. En cas de défaillance d’un switch ou d’une carte réseau, le trafic bascule automatiquement sans interruption des VMs.
- Réseau iSCSI-A :
192.168.10.0/24— Interfaceens18(TrueNAS) /vmbr10(Proxmox) - Réseau iSCSI-B :
192.168.20.0/24— Interfaceens19(TrueNAS) /vmbr20(Proxmox) - Politique : round-robin avec failback immédiat
Prerequis
TrueNAS SCALE 23.10+, Proxmox VE 8.x, deux interfaces réseau dédiées stockage par noeud (10 GbE recommandé), réseau de stockage isolé du réseau de gestion.
1. Préparation du pool ZFS
Création du pool
Créez un pool ZFS dédié iSCSI. Utilisez RAID-Z2 minimum en production (tolérance 2 disques).
# Lister les disques disponibles
lsblk -d -o NAME,SIZE,TYPE,MODEL
zpool status
# Créer le pool RAIDZ2 (adapter les identifiants disques)
zpool create -o ashift=12 \
iscsi-pool raidz2 \
/dev/disk/by-id/ata-DISK_001 \
/dev/disk/by-id/ata-DISK_002 \
/dev/disk/by-id/ata-DISK_003 \
/dev/disk/by-id/ata-DISK_004
# Vérifier la création du pool
zpool status iscsi-pool
zpool list iscsi-pool
Création du zvol iSCSI
# Créer un zvol de 500 Go pour Proxmox
zfs create -V 500G \
-o volblocksize=16K \
-o compression=lz4 \
-o dedup=off \
-o sync=always \
iscsi-pool/proxmox-vm-store
# Vérifier
zfs list iscsi-pool/proxmox-vm-store
ls -la /dev/zvol/iscsi-pool/
Attention
sync=always garantit l’intégrité des données mais réduit les performances en écriture. Sur du matériel avec cache BBU ou NVRAM, vous pouvez utiliser sync=standard.2. Configuration iSCSI sur TrueNAS
Via l’interface web TrueNAS : Services > iSCSI. Configurez les quatre composants dans l’ordre :
1
**Portals
Interfaces d’écoute**
2
**Initiators
Autorisation des hôtes**
3
**Extents
Association du zvol**
4
**Associated Targets
Liaison complète**
3. Multipath sur Proxmox
defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry 12
polling_interval 5
checker_timeout 60
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^sd[a-z]$"
}
multipaths {
multipath {
wwid VOTRE_WWID
alias iscsi-proxmox-store
path_grouping_policy multibus
path_checker tur
path_selector "round-robin 0"
rr_min_io 100
failback immediate
}
}
# Installer les paquets nécessaires
apt install -y multipath-tools open-iscsi
# Découverte iSCSI sur les deux chemins
iscsiadm -m discovery -t sendtargets -p 192.168.10.10:3260
iscsiadm -m discovery -t sendtargets -p 192.168.20.10:3260
# Connexion aux targets
iscsiadm -m node --login
# Activer et démarrer multipathd
systemctl enable --now multipathd
# Récupérer le WWID du device multipath
multipath -ll
4. Intégration dans Proxmox
# Créer le VG LVM sur le device multipath
pvcreate /dev/mapper/iscsi-proxmox-store
vgcreate iscsi-vg /dev/mapper/iscsi-proxmox-store
# Créer le thin pool
lvcreate -L 450G -T iscsi-vg/data
# Ajouter dans Proxmox
pvesm add lvmthin iscsi-storage \
--vgname iscsi-vg \
--thinpool data \
--content images,rootdir \
--nodes pve1,pve2,pve3
5. Test du failover
# Surveiller l'état multipath en temps réel
watch -n 1 multipath -ll
# Simuler une panne de chemin
ip link set ens18 down
# Observer le basculement automatique
# Restaurer le chemin
ip link set ens18 up
# Vérifier les logs multipathd
journalctl -u multipathd -f
Resultat attendu
Avec un chemin désactivé, les VMs continuent de fonctionner sans interruption. Le multipath bascule en moins de 10 secondes selon votre configuration
polling_interval.