web-dev-qa-db-fra.com

RAID1 augmente-t-il les performances avec Linux Mdadm?

J'ai un 2-bay ===NAS avec un disque dur de 2 To. Pour être robuste contre l'échec du disque, je pense à acheter un deuxième disque dur de 2 To et à la mettre dans RAID1 avec Linux Mdadm. Le fichier système est ext4.

Cela augmentera-t-il ou diminuera-t-il la performance de la NAS? Qu'en est-il de simplement lire ou écrire des performances?

Il semble y avoir beaucoup d'opinions sur ce sujet en ligne mais pas de consensus.

Merci.

Edit :

J'ai donc déjà trois réponses différentes: "Un peu plus vite", "Vous remarquerez" et "diminuera la performance si quelque chose". (Je suis principalement intéressé dans la lecture de la performance.) Wikipedia dit "Les performances de lecture peuvent monter à peu près comme un multiple linéaire du nombre de copies". Laquelle est-ce?

Edit 2 :

J'ai trouvé des preuves montées à l'appui de la performance de lecture croissante RAID1, y compris le MD Manpage:

Les modifications sont écrites sur tous les appareils en parallèle. Les données sont lues à partir de n'importe quel périphérique. Le conducteur tente de distribuer des demandes de lecture sur tous les périphériques afin de maximiser les performances.

J'ai aussi découvert le RAID10 de MD avec --layout=f2, qui fournit une redondance de RAID1 avec les performances de lecture de RAID0 et peut être utilisée avec seulement deux lecteurs. Les performances d'écriture sont toutefois réduites, car une écriture séquentielle implique les deux disques recherchant entre des parties lointaines du lecteur. man md Pour plus de détails.

26
Jesse

Oui, Mise en œuvre Linux de RAID1 Accélère les opérations de lecture du disque par un facteur de deux tant que deux opérations de lecture distinctes de disque sont effectuées en même temps . Cela signifie que la lecture d'un fichier de 10 Go ne sera pas plus rapide sur RAID1 que sur un seul disque, mais la lecture de deux fichiers distincts de 10 Go * sera plus rapide.

Pour le démontrer, il suffit de lire certaines données avec dd. Avant d'effectuer quelque chose, effacez le cache de lecture du disque avec sync && echo 3 > /proc/sys/vm/drop_caches. Sinon hdparm va réclamer des lectures super rapides.

Un seul fichier:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

Deux fichiers:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

La lecture de 10 Go de données a pris 65 secondes alors que la lecture 10 GB + 10 GB = 20 Go de données a pris 68,7 secondes au total, ce qui signifie Plusieurs disques sont considérables à partir de RAID1 sur Linux. skip=$COUNT une partie est très importante. Le deuxième processus lit 10 Go de données à partir du décalage de 10 Go.

La réponse de Jared et les commentaires de SSH se rapportent http://www.unicom.com/node/459 ont tort. Le repère de là indique que les lectures de disque ne bénéficient pas de RAID1. Cependant, le test a été effectué avec l'outil de référence Bonnie ++ qui n'exécute pas deux lectures distinctes à la fois. L'auteur indique explicitement que Bonnie ++ n'est pas utilisable pour les réparations de RAID Benchmarking ( voir README ).

39
Nowaker

Oui, vous obtiendrez une performance de lecture Boost + la redondance. Vous pouvez facilement imaginer que vous pouvez lire les parties des fichiers à partir de deux disques de disques différents, car les fichiers sont sur les deux disques durs.

Tellement théoriquement, si le contrôleur RAID fait son travail, vous pourriez obtenir une vitesse d'accélération de O (n).

5
Stephan Dollberg
  • man 4 md états: - ("... Notez que l'équilibrage de lecture effectué par le pilote ne fait pas que le profil de performance RAID1 soit le même que pour RAID0; un seul flux d'entrée ne sera pas accéléré (par exemple, un seul DD), mais flux séquentiels multiples ou une charge de travail aléatoire utilisera plus d'une broche. en théorie, Avoir un N-Disk RAID1 permettra à N threads séquentiels à lire de tous les disques. ... "

  • Pour terminer le dessus - -dans la pratique, sur la base de iostat Sortie observée sur une configuration de RAID logicielle typique de 2 HDDS, il y a Aucun de l'équilibre. En fait, cela ressemble effectivement à mdadm 's option --write-mostly est toujours sur.

4
poige