🏢 Storage Systems — Chapitres 9 & 10 : SAN et Stockage Objet
Page double ultra-densifiée : d'abord le SAN, cœur historique du stockage bloc partagé haute performance pour VMware, Oracle, SQL Server, SAP et ERP ; ensuite le stockage objet, socle cloud-native des buckets, APIs S3, data lakes, backups immutables, archives et CDN origins. Deux mondes opposés mais complémentaires : block storage transactionnel et object storage massif.
Chapitre 9 — SAN : Storage Area Network
Stockage bloc partagé haute performanceDéfinition du SAN
Stockage bloc partagé à haute performance : LUN, initiators, targets, fabric, multipathing, baies et hyperviseurs.
BlockFabricLUNProtocoles SAN
Fibre Channel, iSCSI, FCoE, NVMe/FC : différences, topologies, latence, coût, sécurité et cas d’usage.
FCiSCSINVMe/FCLUN, zoning, masking
Concepts fondamentaux : présenter un volume bloc uniquement aux bons serveurs via zoning fabric et LUN masking.
ZoningMaskingWWPNMultipathing
MPIO, chemins redondants, actif/actif, actif/passif, ALUA, failover, path policy, erreurs classiques.
MPIOALUAFailoverUsages SAN
VMware, Oracle, SQL Server, SAP, grosses bases de données, ERP, clusters Windows/Linux, workloads critiques.
VMwareOracleSAPActeurs SAN
Dell EMC PowerMax/PowerStore, HPE Alletra/Primera, IBM FlashSystem, NetApp AFF, Hitachi Vantara, Pure Storage.
Dell EMCHPEPureArchitecture SAN
Baie, contrôleurs, front-end ports, back-end, switches FC, fabrics A/B, hosts, HBAs et réseau management.
Fabric A/BHBAArrayPerformance SAN
IOPS, latence, queue depth, cache baie, front-end saturation, backend disks/flash, host tuning, p99.
IOPSLatencyQueueSécurité SAN
Isolation fabric, zoning strict, CHAP iSCSI, segmentation, RBAC baie, audit, chiffrement et secure erase.
CHAPRBACIsolationExploitation SAN
Provisioning LUN, extension, snapshots, clones, réplication, firmware, capacity planning et runbooks incident.
ProvisioningSnapshotsOpsMatrice SAN vs DAS/NAS/Object
Quand choisir SAN : block partagé, faible latence, HA hyperviseur, DB enterprise, contraintes et coûts.
DecisionBlockHAChecklist production SAN
Préprod SAN : double fabric, zoning, MPIO, tests failover, monitoring, sauvegarde, documentation WWPN/LUN.
Prod-readyWWPNAuditChapitre 10 — Stockage Objet
Buckets, objets, metadata, API, lifecycleDéfinition du stockage objet
Stockage par objets : buckets, objects, keys, metadata, API HTTP, durabilité, namespace plat et scale-out.
BucketObjectAPIModèle S3
Buckets, objects, keys, versioning, lifecycle policies, storage classes, IAM policies, replication, events.
S3VersioningLifecycleFichier / bloc / objet
Différences entre NAS, SAN et Object Storage : API, sémantique, performance, cas d’usage et limites.
FileBlockObjectAvantages
Scalabilité massive, coût, durabilité, cloud-native, metadata, lifecycle, réplication géographique, API standardisée.
ScaleCostDurabilityLimites
Pas adapté aux workloads transactionnels classiques, POSIX incomplet, latence API, consistency, petits objets, coûts cachés.
LimitsLatencyCostSolutions
AWS S3, Azure Blob, Google Cloud Storage, OVH Object Storage, Scaleway, MinIO, Ceph RGW, Scality.
AWS S3MinIOCeph RGWUsages
Data lake, backup, archives, images, vidéos, logs, IA, CDN origin, datasets, analytics et immutable storage.
Data lakeBackupCDNSécurité objet
IAM, bucket policies, ACL legacy, encryption, Object Lock, WORM, audit, presigned URLs, segmentation tenant.
IAMObject LockWORMPerformance objet
Multipart upload, prefixes, parallélisme, petits objets, débit, latence, CDN, cache, gateway, tuning SDK.
MultipartParallelCDNLifecycle & coûts
Classes chaud/froid/archive, expiration, transitions, versioning bloat, egress, requests, replication cost.
LifecycleArchiveCostArchitecture objet
Cluster scale-out, erasure coding, replication, metadata service, gateways S3, load balancers, failure domains.
ECMetadataScale-outChecklist production objet
Préprod objet : naming, IAM, versioning, lifecycle, immutabilité, monitoring, budget, restore drill.
Prod-readyIAMBudgetDéfinition opérationnelle
Un SAN est une infrastructure de stockage bloc partagée. La baie présente des volumes logiques appelés LUN ou namespaces à des serveurs. Les serveurs voient ces volumes comme des disques locaux, mais les blocs transitent sur un réseau spécialisé : Fibre Channel, iSCSI, FCoE ou NVMe/FC.
Chaîne SAN
| Terme | Rôle |
|---|---|
| LUN | Volume bloc présenté à un ou plusieurs hôtes autorisés. |
| Initiator | Hôte qui demande l'accès stockage. |
| Target | Port ou service côté baie qui expose le stockage. |
| WWPN/IQN | Identifiant d'un port FC ou initiateur iSCSI. |
| Fabric | Réseau SAN, souvent doublé A/B. |
| MPIO | Multipathing côté host pour chemins redondants. |
- Centraliser du stockage bloc hautement disponible.
- Fournir datastores partagés aux hyperviseurs.
- Servir bases de données enterprise à faible latence.
- Permettre snapshots/clones/réplication baie.
- Découpler capacité stockage et serveurs compute.
| Protocole | Transport | Force | Limite | Usage |
|---|---|---|---|---|
| Fibre Channel | Fabric FC dédiée | Faible latence, mature, isolé. | Coût et compétences. | Datacenter enterprise. |
| iSCSI | TCP/IP Ethernet | Économique, flexible. | Dépend qualité réseau. | PME, virtualisation, lab. |
| FCoE | FC sur Ethernet lossless | Convergence LAN/SAN. | Complexité DCB. | Environnements spécifiques. |
| NVMe/FC | NVMe sur Fibre Channel | Très faible latence flash. | Écosystème compatible requis. | All-flash arrays. |
FC est historiquement le cœur du SAN enterprise. Il utilise des HBAs, switches FC, zoning par WWPN et fabrics généralement séparés A/B. La stabilité vient de l'isolation et du contrôle strict des chemins.
iSCSI encapsule SCSI dans TCP/IP. Il peut fonctionner sur Ethernet standard mais demande une discipline réseau : VLAN dédié, MTU cohérent, flow control si nécessaire, multipath, CHAP, séparation du trafic production.
# Linux discovery/login examples iscsiadm -m discovery -t sendtargets -p 10.10.10.10 iscsiadm -m node --login multipath -ll
NVMe/FC réduit l'héritage SCSI et exploite mieux les files NVMe. Il est pertinent avec baies all-flash et hosts récents. Le gain réel dépend du chemin complet : application, kernel, HBA, fabric, baie.
| Enterprise critique | FC ou NVMe/FC. |
| Budget maîtrisé | iSCSI avec réseau propre. |
| All-flash très faible latence | NVMe/FC ou NVMe/TCP selon stratégie. |
| Convergence complexe | FCoE seulement si expertise DCB réelle. |
Une LUN est une unité logique de stockage bloc. Elle peut contenir un filesystem, un datastore VMFS, un volume ASM, un disque Windows cluster, etc. Elle doit être alignée avec le workload : taille, QoS, tier, snapshot policy, réplication.
| LUN size | Capacité présentée. |
| LUN ID | Identifiant côté host. |
| Host group | Liste de serveurs autorisés. |
| Storage group | Ensemble de volumes mappés. |
Le zoning contrôle qui peut parler à qui dans la fabric FC. Bonne pratique : single initiator zoning, c'est-à-dire une zone par initiator host avec les targets nécessaires.
Le LUN masking est côté baie : même si la fabric permet la communication, la baie ne présente la LUN qu'aux hosts ou groupes autorisés. Zoning et masking sont complémentaires.
- Créer volume/LUN sur baie.
- Créer ou identifier host avec WWPN/IQN.
- Configurer zoning fabric A et B.
- Mapper LUN au host group.
- Rescan host.
- Vérifier multipath.
- Créer filesystem/datastore côté host.
| Champ | Pourquoi |
|---|---|
| Host | Serveur consommateur. |
| WWPN/IQN | Identité initiator. |
| LUN ID | Mapping host. |
| Fabric A/B zones | Audit et dépannage. |
| Owner applicatif | Responsabilité métier. |
Le multipathing permet à un host de voir plusieurs chemins vers la même LUN. Il évite qu'un câble, HBA, switch, port baie ou contrôleur unique devienne un point de panne.
| Policy | Comportement | Usage |
|---|---|---|
| Active/Active | Plusieurs chemins servent l'I/O. | Baies modernes ALUA ou symmetric. |
| Active/Passive | Chemin secondaire utilisé en failover. | Baies contrôleurs avec ownership. |
| Round robin | Répartition entre chemins. | Débit si supporté. |
| Least queue | Chemin le moins chargé. | Optimisation dynamique. |
multipath -ll lsblk lsscsi cat /etc/multipath.conf systemctl status multipathd rescan-scsi-bus.sh
- Activer MPIO Feature.
- Ajouter support iSCSI/FC selon vendor DSM.
- Vérifier nombre de chemins dans Disk Management / mpclaim.
- Utiliser recommandations constructeur baie.
mpclaim -s -d mpclaim -s -m
- Un seul chemin actif en production.
- Deux fabrics branchées sur le même switch physique.
- Zoning asymétrique A/B.
- Policy multipath non recommandée par constructeur.
- Timeouts OS incompatibles avec failover baie.
Le SAN est très utilisé pour datastores VMFS partagés, HA, vMotion, snapshots baie et intégration backup. Il demande zoning, MPIO, queue depth HBA et compatibilité matrice constructeur.
| Oracle | ASM, RAC, redo logs, snapshots clones. |
| SQL Server | LUN data/log/tempdb, Failover Cluster. |
| SAP | Workloads critiques, faible latence, réplication. |
- Windows Failover Cluster avec disques partagés.
- Oracle RAC si architecture validée.
- Filesystems cluster uniquement si supportés.
- Créer trop de petites LUN sans gouvernance.
- Présenter une LUN à deux hosts non cluster-aware.
- Mélanger trafic iSCSI et LAN saturé.
| Constructeur | Familles typiques | Positionnement |
|---|---|---|
| Dell EMC | PowerMax, PowerStore | Enterprise / midrange. |
| HPE | Alletra, Primera | All-flash/hybrid enterprise. |
| IBM | FlashSystem | Enterprise flash. |
| NetApp | AFF, ASA | Unified/block all-flash. |
| Hitachi Vantara | VSP | Enterprise très robuste. |
| Pure Storage | FlashArray | All-flash simple et performant. |
- Latence garantie et QoS.
- Snapshots/clones/réplication inclus ou licences.
- Support NVMe/FC, FC, iSCSI.
- Compression/déduplication réelle selon workload.
- Intégrations VMware/Oracle/SQL Server/Kubernetes.
En SAN, la matrice de compatibilité est critique : firmware baie, switch, HBA, driver, OS, hyperviseur et multipathing doivent être cohérents.
- Deux fabrics indépendantes, pas juste deux VLANs sur le même switch.
- Zoning maintenu symétriquement.
- Firmware switches compatible.
- Monitoring erreurs ports, CRC, flaps.
| Front-end ports | Connexions hosts. |
| Controllers | Cache, ownership LUN, services. |
| Back-end | Disques/SSD/NVMe internes. |
| Replication ports | Remote copy/DR. |
- Réseau management séparé.
- RBAC baie.
- Syslog/SNMP/API monitoring.
- Exports configuration réguliers.
Critique DB/VM.
Par host, LUN, array.
HBA/OS/array.
Lecture/écriture.
| Host queue full | Augmenter/ajuster queue depth avec prudence. |
| Front-end saturated | Ajouter ports, équilibrer paths. |
| Backend saturated | Tier insuffisant, hot spots. |
| Fabric errors | CRC, SFP, câble, switch. |
# Linux multipath -ll iostat -x 1 lsscsi systool -c fc_host -v # VMware concepts esxtop storage views adapter/device latency queue depth
- Suivre recommandations vendor pour HBA driver/firmware.
- Équilibrer LUN ownership et chemins optimisés ALUA.
- Ne pas augmenter queue depth globalement sans comprendre baie.
- Mesurer depuis host et baie.
Un SAN FC est naturellement isolé du LAN, mais pas automatiquement sécurisé. Le contrôle vient du zoning strict, masking côté baie, RBAC et audit.
- VLAN dédié ou réseau physique dédié.
- CHAP mutuel si possible.
- Pas de routage large vers initiators.
- ACL firewall strictes.
- Comptes nominatifs admin baie.
- MFA si disponible.
- Journaliser création/suppression LUN, mapping, snapshot.
- Exporter logs vers SIEM.
Le secure erase ou crypto-erase doit être prévu pour LUN décommissionnées, notamment en environnement multi-tenant ou données sensibles.
- Demande capacité/performance/protection.
- Créer LUN dans pool/tier adapté.
- Créer host/host group.
- Zoning fabrics A/B.
- Masking/mapping baie.
- Rescan host et vérifier MPIO.
- Documenter CMDB.
- Snapshots rapides pour rollback technique.
- Clones pour dev/test.
- Attention cohérence applicative.
- Surveiller réserve snapshot/capacité.
- Lire matrice compatibilité.
- Planifier fenêtre.
- Vérifier redondance paths avant update.
- Exporter configuration avant changement.
| Solution | Force | Faiblesse | Usage |
|---|---|---|---|
| SAN | Block partagé, HA, faible latence | Coût/complexité | VM, DB enterprise |
| DAS | Latence locale, coût | Pas partagé | DB locale, edge |
| NAS | Fichier partagé | Pas block natif | Documents, NFS/SMB |
| Object | Échelle/durabilité | Pas transactionnel bloc | Data lake, archive |
- Besoin block partagé pour hyperviseurs.
- Applications enterprise certifiées SAN.
- Faible latence et haute disponibilité.
- Snapshots/clones/réplication baie nécessaires.
- Simple partage fichiers : NAS suffit.
- Archive massive API : object storage préférable.
- Budget/compétence insuffisants pour double fabric.
| Contrôle | OK ? | Note |
|---|---|---|
| Fabric A/B indépendante | ☐ | Switches/chemins séparés. |
| Zoning single initiator | ☐ | Audit plus simple. |
| Masking cohérent | ☐ | Host group validé. |
| MPIO testé | ☐ | Failover réel testé. |
- Ports fabric erreurs CRC/flap.
- Paths MPIO perdus.
- Latence host et baie.
- Capacité pool et snapshots.
- Réplication en retard.
- WWPN/IQN par host.
- LUN ID, volume name, owner app.
- Zones A/B.
- Policy multipath.
- Procédure restore et rollback.
Définition opérationnelle
Le stockage objet stocke des données sous forme d'objets dans des buckets. Chaque objet possède une clé, des métadonnées et un contenu binaire. L'accès se fait via API HTTP, souvent compatible S3, plutôt que par blocs ou chemins POSIX traditionnels.
Modèle logique
| Concept | Rôle |
|---|---|
| Bucket | Conteneur logique d'objets. |
| Key | Nom unique de l'objet dans le bucket. |
| Metadata | Attributs système et custom. |
| Version | Historique des versions d'un objet. |
| Policy | Règles d'accès et lifecycle. |
- Scalabilité massive.
- API standard cloud-native.
- Durabilité élevée via réplication/erasure coding.
- Lifecycle chaud/froid/archive.
- Metadata et événements.
| Élément | Description |
|---|---|
| Bucket | Namespace logique et point de policy. |
| Object key | Chemin logique, ex: logs/2026/05/file.json. |
| Versioning | Conserve anciennes versions. |
| Lifecycle | Transition vers classes froides ou expiration. |
| Events | Déclenche notifications/traitements. |
Le versioning protège contre écrasement et suppression accidentelle, mais augmente fortement la capacité consommée si non gouverné.
Rule examples: - transition logs/* to infrequent access after 30 days - transition archives/* to archive after 90 days - delete incomplete multipart uploads after 7 days - expire non-current versions after 180 days
- Bucket policy pour règles globales.
- IAM policy pour identités.
- Presigned URL pour accès temporaire.
- Block public access par défaut.
| Type | Unité | Accès | Usage |
|---|---|---|---|
| Bloc | LUN / volume | SCSI/NVMe | DB, VM, OS. |
| Fichier | Fichier/dossier | NFS/SMB/POSIX | Partage, home dirs. |
| Objet | Object + metadata | HTTP API | Data lake, backup, archive. |
- Bloc : l'application/OS gère filesystem.
- Fichier : le serveur NAS gère arborescence et locks.
- Objet : l'application gère clés, metadata, idempotence, retries.
| Base OLTP | Bloc ou DAS rapide. |
| Dossiers utilisateurs | NAS fichier. |
| Archive massive | Objet. |
| Images CDN | Objet + CDN. |
L'objet scale horizontalement : ajout de nœuds, buckets massifs, milliards d'objets si architecture adaptée. Les applications cloud-native utilisent naturellement l'API.
Copies sur zones/sites.
Rendement capacité.
Détection corruption.
Retour arrière objet.
- Classes de stockage par température.
- Hardware commodity pour solutions privées.
- Lifecycle automatique.
- Attention aux coûts cachés : requêtes, egress, versions, réplication.
- API HTTP simple.
- Intégration IAM/KMS/events.
- Traitements serverless/data pipelines.
- CDN origin naturel.
Des milliards de petits objets peuvent saturer metadata, coût de requêtes, listings et lifecycle. Il faut packager, partitionner les clés ou utiliser formats adaptés comme Parquet pour analytics.
Les modèles de cohérence ont évolué selon fournisseurs, mais l'application doit rester robuste : retries idempotents, gestion concurrence, pagination, erreurs réseau.
- Egress réseau.
- Opérations PUT/GET/LIST.
- Non-current versions.
- Multipart uploads incomplets.
- Restauration archive payante/lente.
| Provider | Service | Positionnement |
|---|---|---|
| AWS | S3 | Référence du modèle API. |
| Azure | Blob Storage | Écosystème Microsoft/Azure. |
| Cloud Storage | Analytics/ML GCP. | |
| OVHcloud | Object Storage | Europe, S3-compatible selon offre. |
| Scaleway | Object Storage | Europe, développeurs, coût. |
| MinIO | S3-compatible, simple, performant, Kubernetes-friendly. |
| Ceph RGW | Scale-out open source, S3/Swift, puissant mais exigeant. |
| Scality | Enterprise object storage. |
- Compatibilité S3 réelle.
- Durabilité et failure domains.
- IAM/KMS/Object Lock.
- Lifecycle et classes froides.
- Coût egress et requêtes.
- Support SDK et outils backup.
Le stockage objet est devenu le socle des data lakes : fichiers Parquet/ORC/JSON/CSV, partitionnement par date, moteurs Spark/Trino/Presto, catalogues et pipelines.
- Cible backup économique.
- Object Lock/WORM pour immutabilité.
- Lifecycle vers cold/archive.
- Réplication cross-region/site.
- Images produits et assets web.
- Vidéos et transcodage.
- Origin CDN.
- Presigned URLs pour accès temporaire.
- Datasets d'entraînement.
- Checkpoints modèles.
- Logs applicatifs massifs.
- Exports analytics.
- Principe du moindre privilège.
- Policies par bucket/prefix.
- Rôles applicatifs, pas clés humaines partagées.
- Rotation des access keys.
- Désactiver public access par défaut.
| At rest | SSE provider, SSE-KMS, client-side encryption. |
| In transit | HTTPS/TLS obligatoire. |
| Keys | KMS/HSM/rotation/audit. |
Object Lock/WORM empêche modification ou suppression pendant une période. C'est un pilier anti-ransomware pour backups et archives réglementaires.
- Log des accès objets sensibles.
- Détection bucket public.
- Alertes mass delete.
- Inventaire objets et chiffrement.
- Analyse permissions effectives.
Multipart upload découpe les gros objets en parties uploadées en parallèle. C'est indispensable pour gros fichiers, résilience réseau et débit.
aws s3 cp bigfile.bin s3://bucket/path/bigfile.bin --expected-size 50000000000 # Concepts : part size, concurrency, retry, checksum
- Multiplier connexions et workers.
- Éviter listings globaux.
- Partitionner clés par date/projet/tenant.
- Utiliser CDN/cache pour reads publics.
| p95/p99 GET | Latence utilisateur. |
| PUT errors/retries | Réseau ou throttling. |
| LIST duration | Problème namespace/prefix. |
| Egress | Coût et bande passante. |
| Température | Usage | Attention |
|---|---|---|
| Hot | Accès fréquent | Stockage plus cher. |
| Cool/IA | Accès rare | Frais retrieval possibles. |
| Archive | Long terme | Restore lent, minimum duration. |
| Deep archive | Conservation réglementaire | Ne pas utiliser pour recovery urgent. |
- Egress inter-région/Internet.
- Requêtes LIST/GET/PUT.
- Versions anciennes.
- Replication double stockage.
- Restore archive.
- Multipart incomplets.
Policies: - Abort incomplete multipart uploads after 7 days - Move logs to IA after 30 days - Move archives to cold after 90 days - Expire non-current versions after 180 days - Delete temporary prefixes after 14 days
L'EC découpe les objets en fragments data + parity pour améliorer rendement capacité tout en tolérant des pannes de disques/nœuds/racks.
- Disque.
- Nœud.
- Rack.
- Salle.
- Zone/région.
Le service metadata est souvent le point critique : listings, versioning, policies, tags, ACL. Une architecture objet performante protège et scale aussi cette couche.
| Contrôle | OK ? | Note |
|---|---|---|
| Naming buckets/prefixes | ☐ | Projet, env, région, données. |
| Versioning décidé | ☐ | Avec lifecycle. |
| IAM moindre privilège | ☐ | Rôles applicatifs. |
| Lifecycle/retention | ☐ | FinOps + conformité. |
- Block public access par défaut.
- Encryption at rest et TLS.
- Object Lock pour backups critiques.
- Audit logs activés.
- Rotation clés et secrets.
- Alertes coût/budget.
- Alertes erreurs 4xx/5xx.
- Monitoring egress.
- Inventaire objets sensibles.
- Tests restore depuis archive.
