mercredi 7 décembre 2011

NVMe, mon futur ami

Traduction à ma sauce d'un excellent article de Chris Mellor "SSDs choked by crummy disk interfaces - Gotta be PCIe and not SAS or SATA" publié ce jour sur The Register.

Un disk flash pouvant cracher 100 000 IOPS ne doit pas être ralenti par une interface tout juste apte à faire face aux modestes 200 IOPS délivrés par un traditionnel disque mécanique. Ces derniers subissent la latence liée au positionnement de la tête sur la piste cible : respectivement 11ms et 13 ms pour une lecture et une écriture aléatoire sur un disque Seagate Momentus 750Go. Les disques SSD ne souffrent pas de ce soucis et les cartes PCIe telle que la carte Fusion-IO ont démontré au combien sont rapides les mémoire NAND quand elle sont connectées directement dans le serveur : au bas mot 350 000 IOPS voir plus avec la carte ioDrive 2.

Le bus PCIe GEN 3 délivre 1Go/s par trace soit 4 Go/s avec une interface PCIe GEN3 x4. Pour profiter de telles performances, impossible d'imaginer utiliser un disque SSD avec une interface standard.

N'importe quel OS reconnaîtra un disque si vous le branchez à une interface externe USB ou interne de type SATA voir SAS. Idem pour un disque SSD sur ce même type de connexion. Cependant, le niveau de performance sera loin d'être nominal. Pour opérer à sa vitesse maximum et délivrer les données aptent à saturer un CPU multi-core, il y a nécessité d'être connecté au bus PCIe dans la mesure où les flux ont l'avantage de ne pas transiter via une passerelle. Si l'on peut raccorder un disque SSD directement au bus PCIe,vous pouvez du coup vous affranchir aussi d'une HBA qui a l'inconvénient d'ajouter quelques microsecondes de latence supplémentaires dû au fait de sa propre consommation de cycles CPU.

Il existe deux initiatives pour définir un standard pour cette nouvelle interface :NVMe et SCSI Express.

NVMe

NVMe, signifie Non-Volatile Memory express, basée sur des standards définis par pas moins de 80 entreprises. Un groupe de travail appelé NVMHCI (Non-Volatile Memory Host Controller Interface) est dirigé par un groupe - formé en Juin 2011 - de promoteurs qui inclut Cisco, Dell, EMC, IDT, Intel, NetApp et Oracle.Les sièges permanents de ce groupe sont détenues par ces sept fournisseurs, avec six autres sièges détenus par des représentants élus parmi les autres entreprises travaillant au sein de ce groupe.

Il semble que HP ne soit pas membre de NVMe,tandis que la plupart voir tous les supporters de NVMe ne sont pas des partisants de SCSI Express.

Le groupe de travail a publié une spécification v1.0 en Mars de cette année, et les détails peuvent être obtenus sur le site NVM Express. La norme comprend l'interface de programmation, le jeu de commandes, et la définition des fonctionnalités. Cela permet d'ors et déjà l'écriture de pilotes standards pour chaque OS et autorise l'interopérabilité entre les implémentations, raccourcissant du coup les cycles de qualification OEM. ...

La norme fournis un jeu de commandes optimisées incluant le support pour les opérations parallèles jusqu'à 64 000 commandes par file d'attente. Accessoirement, le support a été étendu pour les besoins de l'entreprise tels que la protection end to end, le reporting d'erreur avancé et la virtualisation. La spécification autorise le support jusqu'à 64 000 files d'attentes I/O chacune disposant de 64 000 commandes, optimisant ainsi l'usage des CPUq multicore sachant que chacun de ces derniers peut mettre en oeuvre sa propre file d'attente. Il est fait mention d' une intention de supporter les interfaces SAS et SATA existantes.

Un blog sur le site NVMe explique comment l'idéal est d'avoir un SSD équipé d'un contrôleur flash, un System On Chip (SoC) incluant la fonctionnalité NVMe. Le standard propose des recommandations aussi bien pour les postes clients que pour les systèmes d'entreprise .

Ce qui semble se dessiner est un soutient relativement large de l'industrie. Les fournisseurs de SoC vont délivrer des SOCs supportant NVMe. Le fournisseurs d'OS vont fournir des drivers supportant les SSD compatibles NVMe et les fournisseurs de PC et portables eux des systèmes équipés de disques Flash NVMe aux alentours de 2013.

Aucun commentaire: