URL: https://linuxfr.org/forums/linux-debian-ubuntu/posts/reshape-mdadm-tres-lent-de-raid5-de-3-a-4-disques Title: Reshape mdadm très lent de RAID5 de 3 à 4 disques Authors: Nanawel Date: 2020年09月09日T13:52:19+02:00 License: CC By-SA Tags: raid, mdadm, reshape et uuid Score: 2 Hello les moules, Sur un serveur de récupération que j'utilise depuis quelques mois en homeserver/NAS avec grande satisfaction ([HP Microserver N40L](https://www.materiel.net/produit/201202280147.html) équipé d'un CPU AMD Turion et 4 Go de RAM), j'ai ajouté il y a quelques jours le "dernier" disque de la grappe que je souhaitais mettre en place : 4x 4 To en soft-RAID5 afin d'avoir 12 To à peu près sûrs afin d'y stocker des backups, principalement. La machine tournait avec 3x 4 To en soft-RAID5 depuis plusieurs mois et je n'avais aucun problème de perfs à signaler, bien que je ne lui en demandais pas trop. Je ne sais par contre pas exactement quelles étaient ces perfs précisément en terme de débit sur le périphérique `/dev/md0`. Une fois le disque ajouté, j'ai lancé la procédure pour intégrer ce disque à la grappe, et qui s'appelle apparemment le _reshape_. Aucun problème à signaler, le processus s'est bien lancé. Mais j'ai été ébaubi par l'estimation du temps restant, directement lié au débit observé : **environ 30 jours**, pour un débit de **1 Mo/s au mieux**. Voici l'état actuel à ce jour, sachant que j'ai lancé le process dimanche dernier, il y a 3 jours : ``` Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid5 sdd[4] sda[0] sdc[3] sdb[1] 7813775152 blocks super 1.2 level 5, 8k chunk, algorithm 2 [4/4] [UUUU] [=>...................] reshape = 6.8% (267783332/3906887576) finish=55060.9min speed=1101K/sec bitmap: 2/30 pages [8KB], 65536KB chunk unused devices: ``` Et encore là c'est revenu à un débit "presque acceptable" en étant au dessus du Mo/s, car il a passé la journée du lundi à 650 ko/s de moyenne. J'ai suivi les conseils mentionnés sur [cette page](https://superuser.com/questions/1026728/mdadm-reshape-really-slow), notamment - `/sys/block/*/device/queue_depth` - `/sys/block/md0/md/sync_max` - `blockdev --setra /dev/md0 65536` mais sans résultat probant. J'ai testé la vitesse de lecture avec `hdparm -Tt` et j'obtiens bien des débits bruts en cache de ~1000 Mo/s et ~100 Mo/s hors-cache. J'en arrive à la conclusion que le problème vient certainement **de la taille des chunks** qui est de 8 ko ce qui est très petit, et augmente logiquement fortement les I/O. Cette taille n'était pas un choix éclairé de ma part car je passe (passais) pour la gestion "NAS" du serveur par OpenMediaVault, et j'avais à l'origine créé un RAID1 avec 1 disque (temporaire) qui a ensuite été progressivement évolué vers un RAID1 avec 2 disques, puis un RAID5 avec 3 disques, et enfin aujourd'hui sa configuration finale en RAID5 à 4 disques. Je suppose qu'il aurait été pertinent de modifier la taille des chunks dès le passage au RAID5, et mettre une valeur plus commune comme 128 ou 512 ko. Qu'en pensez-vous ? Une dernière piste à explorer avant de patienter encore 4 semaines pour retrouver ma grappe finalisée ? :) Quelques informations complémentaires ci-dessous. ``` # mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Thu Oct 11 18:42:58 2018 Raid Level : raid5 Array Size : 7813775152 (7451.80 GiB 8001.31 GB) Used Dev Size : 3906887576 (3725.90 GiB 4000.65 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Thu Sep 10 13:30:07 2020 State : active, reshaping Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 8K Consistency Policy : bitmap Reshape Status : 9% complete Delta Devices : 1, (3->4) Name : sihaya:volume1 UUID : 9e9abda8:006e7462:bd4bde5d:b6401408 Events : 120780 Number Major Minor RaidDevice State 0 8 0 0 active sync /dev/sda 1 8 16 1 active sync /dev/sdb 3 8 32 2 active sync /dev/sdc 4 8 48 3 active sync /dev/sdd ``` ``` # fdisk -l Disque /dev/sda : 3,7 TiB, 4000787030016 octets, 7814037168 secteurs Modèle de disque : WDC WD40EZRZ-00G Unités : secteur de 1 ×ばつ 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 4096 octets taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets Disque /dev/sdb : 3,7 TiB, 4000787030016 octets, 7814037168 secteurs Modèle de disque : ST4000DM004-2CV1 Unités : secteur de 1 ×ばつ 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 4096 octets taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets Disque /dev/sdc : 3,7 TiB, 4000787030016 octets, 7814037168 secteurs Modèle de disque : WDC WD40EZRZ-00G Unités : secteur de 1 ×ばつ 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 4096 octets taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets Disque /dev/sdd : 3,7 TiB, 4000787030016 octets, 7814037168 secteurs Modèle de disque : ST4000VX007-2DT1 Unités : secteur de 1 ×ばつ 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 4096 octets taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets ``` ``` # iostat -k 1 2 Linux 4.19.0-10-amd64 (sihaya) 09/09/2020 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 3,39 1,24 3,66 69,29 0,00 22,42 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 72,17 1488,08 1016,40 414346320 283009386 sdc 92,64 1488,01 1016,33 414326433 282990430 sdb 71,79 1487,77 1016,31 414259612 282983970 sdd 84,82 2,53 987,87 703817 275066004 sde 7,82 12,08 79,95 3363708 22260254 md0 3,26 48,09 57,54 13389093 16020672 avg-cpu: %user %nice %system %iowait %steal %idle 0,51 0,00 7,14 92,35 0,00 0,00 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 65,00 4696,00 1600,00 4696 1600 sdc 78,00 4696,00 1608,00 4696 1608 sdb 61,00 4712,00 1564,00 4712 1564 sdd 73,00 0,00 784,00 0 784 sde 0,00 0,00 0,00 0 0 md0 2,00 8,00 0,00 8 0 ``` ``` # dstat -af --total-cpu-usage-- --dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/sdd-----dsk/sde-- net/br-866f-net/docker0--net/enp2s0---net/tun0- ---paging-- ---system-- usr sys idl wai stl| read writ: read writ: read writ: read writ: read writ| recv send: recv send: recv send: recv send| in out | int csw 4 8 0 89 0| 0 1712k:4096B 1692k: 0 1708k: 0 1712k: 0 0 | 0 0 : 0 0 : 0 0 : 0 0 | 0 0 |1203 1339 3 4 0 94 0| 0 2052k: 0 2016k: 0 2056k: 0 2052k: 0 36k| 0 0 : 0 0 : 282k 37k: 0 0 | 0 0 |1408 1484 0 2 0 98 0| 0 2336k: 0 2272k: 0 2208k: 0 2336k: 0 0 | 0 0 : 0 0 : 142k 35k: 0 0 | 0 0 | 873 764 2 3 0 95 0| 0 1624k: 0 1688k: 0 1688k: 0 1560k: 0 0 | 0 0 : 0 0 : 133k 14k: 0 0 | 0 0 |1073 1304 3 4 0 94 0| 0 1740k: 0 1744k: 0 1804k: 0 1804k: 0 0 | 0 0 : 0 0 : 129k 24k: 0 0 | 0 0 |1032 997 1 2 0 97 0| 0 1488k: 0 1544k: 0 1484k: 0 1484k: 0 0 | 0 0 : 0 0 : 155k 23k: 0 0 | 0 0 |1056 1132 2 3 0 95 0|4096B 1392k: 0 1332k: 0 1332k: 0 1396k: 0 40k| 0 0 : 0 0 : 137k 15k: 0 0 | 0 0 | 896 833 2 3 0 95 0| 0 1712k: 0 1712k: 0 1708k: 0 1700k: 0 0 | 0 0 : 0 0 : 122k 21k: 0 0 | 0 0 |1373 1375 15 19 0 66 0| 36M 1045k: 36M 1041k: 36M 1029k:8192B 933k: 0 0 | 0 0 : 0 0 : 140k 20k: 0 0 | 0 0 |1911 4876 35 12 0 53 0| 833k 896k: 828k 896k: 828k 896k: 0 952k: 0 56k| 0 0 : 0 0 : 76k 36k: 0 0 | 0 0 |1769 2032 7 10 0 83 0| 772k 856k: 768k 912k: 768k 920k: 0 860k: 0 0 | 0 0 : 0 0 : 247k 31k: 0 0 | 0 0 |1668 2468 4 12 0 84 0| 128k 1744k: 128k 1744k: 128k 1620k: 0 1736k: 0 12k| 0 0 : 0 0 : 121k 29k: 0 0 | 0 0 | ``` ## Mise à jour 12/09/2020 Après activation du cache writeback sur les disques et un retour à une valeur de NCQ de 32, le débit s'est stabilisé à ~26 Mo/s ce qui a permis de terminer l'opération de reshape en 2 jours seulement. La possibilité de modifier la taille des chunks et la passer à 64 voire 128 ko est encore en étude.

AltStyle によって変換されたページ (->オリジナル) /