RAID 1 – IOPS Write Penalty 1 ou 2
Je continue de voir des articles décrivant la pénalité d'écriture RAID IOPS pour RAID 1 (et RAID 10) en tant que 2. RAID 0 aurait une pénalité de 1, bien sûr, puisque chaque écriture est simplement écrite sur le disque. RAID 1 est décrit comme "nécessitant deux écritures", donc une pénalité de 2.
Mais ne devrait-il pas être 1, puisque datatables sont écrites simultanément?
- Quelles sont les valeurs appropriées de Readahead pour une masortingce RAID 10 sur 4 volumes PIBS de EBS?
- md raid10: comment s'assurer que datatables répliquées sont stockées au bon endroit?
- Comment LSI MegaRAID propose-t-il réellement des sets RAID10?
- Calculer la taille de la bande correcte pour les arrays RAID10 de Linux mdadm dans la disposition "loin"
- Configuration RAID10 optimale pour 8 disques et deux volumes?
Du sharepoint vue de l'application ou du server utilisant le disque, un tableau RAID 1 doit apparaître comme une seule unité qui écrit sur les deux disques simultanément. Un disque peut être retardé par rapport à l'autre, mais un controller RAID matériel réel devrait être capable de commencer l'écriture en même time et signaler que l'opération d'écriture est terminée lorsque le disque plus lent a été complété, ce qui devrait être légèrement supérieur à celui d'un RAID -0, voire pas du tout. Ainsi, la pénalité IOPS devrait être de 1 pour RAID 1 ou 1.2 au maximum.
Je comprends qu'il y a deux opérations d'écriture, donc il y a 2 "IOPS", mais ils sont internes au controller RAID.
Est-ce que j'ai râté quelque chose?
- Possibilité de migrer le système RAID 10 de 2TB Seagate vers 2TB WD?
- 0xD1 sur megasas2.sys avec LSI-9240-8i pendant le transfert de données
- Mise en place d'un SAN iscsi entièrement redondant et hautement disponible (composé de n machines) en conjonction avec un système de files en cluster
- Linux Software Raid 10 suspendu après 1 défaillance du lecteur, mdadm ne me laisse pas forcer à supprimer le périphérique défectueux
- RAID 10 ou RAID 5 pour plusieurs machines virtuelles - quel est le meilleur choix?
- Comment rebuild un tableau dmraid RAID10?
- Comment faire pour déplacer RAID 1 vers RAID 1 + 0
- Est-il possible de modifier les volumes de raid une fois que le operating system est installé? RAID10 Windows Server 2008
2 Solutions collect form web for “RAID 1 – IOPS Write Penalty 1 ou 2”
Si RAID 1 était juste en train de câbler un câble, l'impact de performance serait nul (facteur 1.0), mais la mise en miroir RAID 1 est plus que le simple câblage d'un câble. Il faut effectuer un travail réel pour écrire des données sur deux lecteurs et gérer les résultats de qui écrivent à partir de chaque lecteur.
Ce travail supplémentaire est le facteur dont ils parlent dans l'impact sur la performance. Si l'opération d'E / S se produit dans le operating system quelque part (logiciel RAID) ou dans un coprocesseur / controller dédié (RAID matériel), deux écritures doivent toujours être émises pour chaque donnée et les résultats de cette écriture (succès, échec ou on_fire) doit être "manipulé".
Dans le pire des cas, vous êtes susceptibles de rencontrer (logiciel RAID-1 implémenté dans le operating system), ce qui signifie que le kernel effectue deux écritures et deux conversations avec le controller de disque.
C'est une pénalité d'écriture de 2x puisque nous faisons deux fois plus de travail que tout au long de la stack.
(Vraiment, il est probablement plus proche de 1,9 – après tout, nous n'émettons pas deux appels d'écriture () sur le système de files – mais on s'arrangent pour le pessimisme.)
Dans le meilleur des cas (hardware RAID 1, implémenté avec un controller dédié), le kernel a une conversation avec le controller, mais le controller a toujours 2 conversations (un avec chaque disque) car il doit s'assurer que les deux lecteurs reçoivent la command, écrivez datatables et reconnaissez que datatables ont été écrites (ou supprimez toutes les conditions d'erreur indiquées par les lecteurs).
C'est probablement une pénalité de 1,2 fois pour le travail supplémentaire du controller tel que vous l'avez supposé dans votre question: vous vous enregistrez simplement le travail extra en kernel (ce qui est beaucoup plus coûteux que ce que le controller fait).
Maintenant, parce que nous sums sysadmins et que nous sums payés pour être un lot pessimiste, nous allons évidemment prendre le pire des cas, tout comme lorsque nous avons terminé le facteur de performance pour RAID logiciel – alors si quelqu'un request que nous allons le dire il y a une pénalité d'écriture 2x, même pour leur controller de matériel chic, et laissez-les être satisfaits lorsque le système effectue avec seulement une pénalité 1.5x en moyenne 🙂
un controller RAID matériel réel devrait pouvoir commencer l'écriture en même time et signaler que l'opération d'écriture est terminée lorsque le disque plus lent est terminé, ce qui devrait être légèrement supérieur à celui d'un RAID-0, sinon le cas échéant.
Chaque écriture a cependant la moitié de la performance totale disponible. Dans votre exemple, chaque disque du RAID 0 doit seulement écrire la moitié de ce qui a été envoyé au controller RAID. Dans RAID 1, chaque disque doit l'écrire tout.
Cela place le RAID 0 dans le ballpark deux fois plus vite que RAID 1 pour les écritures (sur un groupe RAID à 2 disques), alors qu'ils sont égaux en vitesse de lecture théorique.