[gull] RAID 1 + LVM (ex: RAID 10)

Marc SCHAEFER schaefer at alphanet.ch
Thu Aug 22 10:50:11 CEST 2019


Salut Daniel,

en ce qui concerne le SATA, je suis un peu étonné par ta réponse.

Par exemple, j'ai une carte-mère avec 6 connecteurs SATA (ports),
gérés par un seul chip:

   00:1f.2 SATA controller: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04

Il y a donc 6 ports, qui me semblent indépendants: la couche physique
n'est pas partagée, donc le débit max est possible sur chaque port. Il
se peut toutefois que le chip lui-même ait une limitation de débit PCI
par exemple, qui limiterait le débit total: utiliser plusieurs chips
permettrait de résoudre ce problème, tant que le bus PCI n'est pas
saturé.

En testant avec `buffer', je trouve environ 520 MByte/s sur un SSD
branché à un port SATA 6 GBit/s chacun.  En lisant en parallèle sur
les deux, je trouve aussi 520 MByte/s. Il n'y a aucun ralentissement
observable. Toutefois, sur la même carte-mère j'ai des ports d'une
autre couleur, qui sont seulement à 3 GBit/s: en lisant en parallèle
sur tous les 4 ports (2 x 6 GBit/s et 2 x 3 GBit/s), la performance
totale est proche du maximum théorique.

As-tu rencontré des cas où les ports étaient partagés, en concurrence,
similairement à la notion de port-multiplier ci-dessous ?

En fait, comme USB, il ne faudrait pas appeler SATA un bus, sauf si l'on
y met des hubs (USB) ou des port-multipliers (SATA, voir plus bas).
Il s'agit en fait de liaisons points à point, ce qui est la
grande amélioration par rapport à PATA/IDE.

SCSI Parallel Interface (SPI), lui, était un bus, avec gestion de l'accès
concurrent à priorité CSMA/CR et connexion/déconnexion du bus au besoin,
bien plus efficace que le master/slave d'IDE ou, encore pire, les anciennes
collisions d'Ethernet CSMA/CD.

SAS conserve le jeu performant des commandes SCSI, mais est fonctionnellement
équivalent à un port SATA.

Le standard SATA a eu deux améliorations majeures par rapport à PATA/IDE:

   - une maintenant assez ancienne, le command queuing (NCQ, la
     possibilité d'envoyer plusieurs commandes en parallèle qui
     sont réordonnancées par le périphérique, comme SCSI le
     faisait avec TCQ, enfin en moins bien [1]) -- quant c'est
     sorti en SATA c'était affreux, suivant la paire de host controller
     et disque-dur, ça corrompait les données, etc: Linux avait une
     blacklist

   - une assez récente: la possibilité de mettre plusieurs
     périphériques sur le même port, ce qui ressemble à PATA
     mais en mieux, p.ex. pour des configurations
     à péta-bytes sans besoin de performance, mais ce qui ne marche pas
     sur tous les contrôleurs SATA [2]

S'il y a interlocking et mauvaise performance, cela peut être dû à
un problème de driver CD/DVD, voir par exemple:
   https://peertube.gaialabs.ch/videos/watch/7ad190bd-43d9-42dc-9336-984822db7cc3

Ou cela peut être dû à un contrôleur RAID non débranchable: p.ex. le
débit d'un serveur HP avec le mode "RAID" était de 11 MByte/s, avec
des délais affreux à chaque écriture, et en désactivant ce mode, c'est
passé à 120 MByte/s sans délai.  Malheureusement, certains serveurs
ne peuvent pas désactiver ce mode, p.ex. sur certains serveurs Dell.
Ce n'est pas la faute du SATA. Le SATA natif AHCI fonctionne bien.

Quant aux couleurs sur les connecteurs, ils identifient en général les
fonctionnalités supportées: p.ex. certains ports peuvent être utilisées
pour le software RAID du BIOS, ou certaines vitesses ne seront pas supportées.
Sur ma carte-mère, je crois que les bleus sont à 3 GBit/s et les oranges
à 6 Gbit/s, mais je n'ai pas vérifié.

Cela a peu d'impact pour Linux pour les disques-dur classiques, 
tant que le mode AHCI peut être utilisé et que le NCQ est activé.

Enfin ça c'est ma compréhension, si tu as des références contraires,
merci de les apporter :)

[1] https://unix.stackexchange.com/questions/144561/in-what-sense-does-sata-talk-scsi-how-much-is-shared-between-scsi-and-ata
[2] https://en.wikipedia.org/wiki/Port_multiplier


More information about the gull mailing list