Stockage vSAN¶
Rôle¶
VMware vSAN agrège les disques locaux des deux hôtes esxi-node01/esxi-node02 (voir
vcenter-esxi.md) en un unique datastore partagé, vsanDatastore — sans
baie SAN/NAS dédiée. C'est la fondation de stockage sur laquelle repose toute la plateforme
Indio : c'est ce datastore que consomme le module Terraform /root/vmware pour placer chaque VM
de la flotte, et c'est lui qui rend possibles HA/vMotion entre les deux hôtes malgré une topologie
à seulement 2 nœuds de calcul. Il porte également le vSAN File Service,
extension NFS traitée dans une page dédiée.
Architecture¶
vsanDatastore¶
| Propriété | Valeur (vérifié le 2026-07-19) |
|---|---|
| Nom | vsanDatastore |
| Type | vsan |
| Chemin | ds:///vmfs/volumes/vsan:52c4d561f46f6333-471978455c475b73/ |
| Capacité totale | 16 990,9 Go (~16,6 To) |
| Libre | 13 899,2 Go (~13,5 To, ~82 %) |
Configuration du cluster vSAN¶
Constaté via govc vsan.info (API VsanClusterConfigInfo) :
| Paramètre | Valeur | Signification |
|---|---|---|
enabled |
true |
vSAN actif sur le cluster |
vsanEsaEnabled |
false |
Architecture OSA (Original Storage Architecture, disk groups cache+capacity) — pas la nouvelle Express Storage Architecture |
DataEfficiencyConfig.CompressionEnabled |
true |
Compression activée |
DataEfficiencyConfig.DedupEnabled |
false |
Déduplication désactivée |
DataEncryptionConfig.EncryptionEnabled |
false |
Chiffrement au repos désactivé |
UnmapConfig.Enable |
false |
Espace mort (TRIM/UNMAP) non réclamé automatiquement |
PerfsvcConfig.Enabled |
true |
Service de performance vSAN actif (métriques historiques) |
Topologie 2 nœuds + witness¶
Un cluster vSAN classique (3 nœuds ou plus) répartit les composants de données ET le quorum sur
les mêmes hôtes. Avec seulement 2 nœuds de données, un troisième arbitre est indispensable pour
trancher en cas de coupure réseau entre les deux — c'est le rôle du witness
(witness.infra.indio) : il ne stocke aucune donnée applicative, uniquement les composants
"witness" (métadonnées de quorum) de chaque objet vSAN. Voir
vcenter-esxi.md pour le détail de l'appliance.
flowchart TD
subgraph Cluster["Cluster vSAN (2 nœuds)"]
N1["esxi-node01<br/>disk groups (cache + capacity)"]
N2["esxi-node02<br/>disk groups (cache + capacity)"]
end
N1 -->|composants de données| DS[("vsanDatastore<br/>16,6 To / 13,5 To libres")]
N2 -->|composants de données| DS
WIT["witness.infra.indio<br/>(hors cluster de calcul)"] -.composants witness<br/>(quorum uniquement).-> DS
DS --> FS["vSAN File Service<br/>(voir page dédiée)"]
DS --> VMS["VM de la flotte<br/>(placées par /root/vmware)"]
style WIT stroke-dasharray: 5 5
Politiques de stockage (SPBM)¶
Le catalogue de politiques de stockage basées sur les profils (SPBM) du vCenter contient, entre
autres, vSAN Default Storage Policy (politique par défaut vSAN, RAID-1/FTT=1 typique pour une
topologie non stretched) et FSVM_Profile_DO_NOT_MODIFY — cette dernière est la politique interne
réservée aux VM système du vSAN File Service (voir vsan-file-service.md),
son nom est explicite : ne pas y toucher. Le catalogue contient aussi plusieurs politiques
Stretched/ESA propres à des topologies non utilisées ici (pas de cluster stretched,
vsanEsaEnabled = false) — présentes par défaut dans tout vCenter 8.x, pas spécifiques à un choix
Indio.
Non vérifié
L'assignation précise d'une politique de stockage custom (plutôt que la politique par défaut)
aux VM de la flotte n'a pas été confirmée dans cette session — aucune ressource Terraform ne
pilote ce point dans /root/vmware (le module ne référence aucune politique SPBM), donc
l'assignation, si elle diffère du défaut, serait nécessairement manuelle.
Provisioning Terraform¶
Non applicable. Aucun projet dans /root ne crée ou ne configure le cluster vSAN lui-même — le
seul rapport avec Terraform est indirect et à sens unique : le module /root/vmware consomme
vsanDatastore via une data source (vsphere_datastore) pour y placer des VM (voir
vcenter-esxi.md), sans jamais le créer ni le modifier.
Configuration Ansible¶
Non applicable. vSAN est une fonctionnalité du noyau ESXi (couche hyperviseur), sans surface OS/ agent sur laquelle un rôle Ansible pourrait agir.
Procédure manuelle¶
Comme pour le cluster ESXi lui-même, la construction initiale de vSAN n'a pas de journal détaillé conservé. La séquence ci-dessous est la procédure standard VMware, reproductible en cas de reconstruction, cohérente avec la configuration observée dans cette page :
- Depuis Cluster > Configure > vSAN > Services, activer vSAN sur le cluster en topologie 2 nœuds (pas "stretched cluster", pas de fault domains custom).
- Désigner l'appliance witness déjà déployée (voir vcenter-esxi.md) comme arbitre du cluster.
- Sur chaque hôte, réclamer les disques locaux en disk groups (au moins un tier cache + un tier capacity par groupe).
- Dans vSAN > Services, régler la déduplication/compression (compression seule activée ici, dédup désactivée) et le chiffrement au repos (désactivé ici).
- Assigner (ou laisser par défaut) une politique de stockage SPBM aux VM du cluster.
- Vérifier Skyline Health avant de considérer le datastore prêt à recevoir des charges de travail.
Piège déjà rencontré : cache Skyline Health trompeur
Lors du diagnostic de la panne du vSAN File Service (2026-07-05, voir vsan-file-service.md), des erreurs "Échec DNS/gateway" affichées par l'assistant vSAN se sont révélées être des résultats mis en cache d'une session de configuration précédente, pas un état live. Toujours forcer un nouveau run de Skyline Health (pas se fier au dernier résultat affiché) avant de diagnostiquer un problème de stockage.
Procédure de déploiement¶
Non applicable — aucun code ne permet de redéployer ce cluster depuis zéro ; seule la procédure manuelle ci-dessus permet de le (re)construire à la main.
Contrôle de santé / Vérification¶
export GOVC_URL=https://vcenter.infra.indio GOVC_USERNAME=administrator@infra.indio \
GOVC_PASSWORD='...' GOVC_INSECURE=1
govc datastore.info vsanDatastore # capacité / espace libre
govc vsan.info /Datacenter/host/Cluster # config cluster (dedup/compression/chiffrement/FileService)
Complément UI : Cluster > Monitor > vSAN > Skyline Health pour un contrôle de santé complet
(réseau, disques, objets, capacité) — non reproductible en ligne de commande via govc.
Au moment de la vérification (2026-07-19) : vsanDatastore à 13 899,2 Go libres sur 16 990,9 Go
(~82 % libre), aucune alerte de capacité.
Points d'attention¶
- Aucun Terraform, aucune trace de version pour la configuration du cluster vSAN elle-même — toute dérive (dédup/compression/chiffrement modifiés à la main) ne laisserait aucune trace Git, contrairement au reste de l'IaC Indio.
- Chiffrement au repos désactivé (
DataEncryptionConfig.EncryptionEnabled = false) : les données stockées survsanDatastorene sont pas chiffrées au niveau du datastore — à mettre en regard de la posture de sécurité appliquée ailleurs dans l'infra (Vault PKI, durcissement AD, etc.). Dette technique potentielle si une exigence de chiffrement au repos existe. - Le witness est un point de défaillance de quorum : la perte simultanée du witness et d'un des deux hôtes de données ferait perdre le quorum du cluster (accès aux données interrompu même si l'hôte restant est parfaitement sain) — limitation structurelle de toute topologie vSAN à 2 nœuds, pas un défaut de configuration.
- Déduplication désactivée, compression activée : compromis assumé plutôt qu'un oubli (compression moins coûteuse en CPU que dédup) — à revalider si la pression sur l'espace libre augmente significativement.
- Toute maintenance d'un des deux hôtes (mode maintenance complet) peut avoir des effets de bord sur des services dépendants d'agents VM système (vu en pratique sur le vSAN File Service, voir vsan-file-service.md) — vSAN lui-même tolère la perte d'un nœud, mais les VM/agents qui y tournaient doivent être réévacués proprement.