Le SHR de Synology correspond à une couche raid (mdadm) et une couche de LVM.
Il existe 2 type de SHR :
SHR-1 : raid avec 1 disque de parité
SHR-2 : raid avec 2 disques de parité
Mais comment passer de 1 à 2 disques de parité ? Officiellement, c’est impossible…
Mais c’est tout a fait possible :
Pour cela il faut :
Avoir un sauvegarde de ses données contenue sur le nas
Que les disques de la plus grande capacité soit au nombre de 3 minimum.
Avoir un nouveau disque de capacité égale au plus grand disques
Code couleur du tuto :
- Vert : les commandes a taper tels quels
- Bleu : ce qu’il faut modifier avec le résultat d’une commande précédente
Dans cet exemple, on utilisera 3 disques de 40GB en SHR 
On commence par ajouter le nouveau disque dans le nas:
Si le nas supporte le hotplug, on ajoute le disque quand le nas est allumé, sinon, on éteint la nas, on insère le disque et on rallume le nas
On a donc 3 disque en état « normal » et le nouveau disque en état « non initialisé »
Pour effectuer la migration, on a besoin d’activer le ssh:

Un fois que cela est fait, on se connecte avec putty au nas en ssh
login as: root
[email protected]’s password:
BusyBox v1.16.1 (2014-05-29 11:29:41 CST) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.DsmDemo>
Le nouveau disque étant le disque 4, il s’appelle donc pour le système /dev/sdd
Il faut ensuite trouver le plus grand disque du volume, ici, c’est le disque 1, il s’appelle donc pour le système /dev/sda
Pour commencer, on va mettre a blanc la table de table de partition du nouveau disque :
DsmDemo> synopartition –remove /dev/sdd
Cleaning all partitions…
Ensuite, on va partitionner le disque de manière identique au plus grand disques :
On récupère le partitionnement du plus grand disque :
DsmDemo> sfdisk -l /dev/sda
/dev/sda1 256 4980735 4980480 fd
/dev/sda2 4980736 9175039 4194304 fd
/dev/sda3 9437184 83882367 74445184 f
/dev/sda5 9453280 83882367 74429088 fd
On crée la 1° partition :
DsmDemo> sfdisk -N 1 -o 256 -z 4980480 -t fd /dev/sdd
et on vérifie le résultat :
DsmDemo> sfdisk -l /dev/sdd
/dev/sdd1 256 4980735 4980480 fd
On récupère le partitionnement du plus grand disque :
DsmDemo> sfdisk -l /dev/sda
/dev/sda1 256 4980735 4980480 fd
/dev/sda2 4980736 9175039 4194304 fd
/dev/sda3 9437184 83882367 74445184 f
/dev/sda5 9453280 83882367 74429088 fd
On crée la 2° partition :
DsmDemo> sfdisk -N 2 -o 4980736 -z 4194304 -t fd /dev/sdf
et on vérifie le résultat :
DsmDemo> sfdisk -l /dev/sdd
/dev/sdd1 256 4980735 4980480 fd
/dev/sdd2 4980736 9175039 4194304 fd
On recupère le partitionnement du plus grand disque :
DsmDemo> sfdisk -l /dev/sda
/dev/sda1 256 4980735 4980480 fd
/dev/sda2 4980736 9175039 4194304 fd
/dev/sda3 9437184 83882367 74445184 f
/dev/sda5 9453280 83882367 74429088 fd
Ici, la ligne se termine par « f » ce qui signifie que c’est la partition étendue. Si cette partition n’existe pas, ignorez cette étape :
DsmDemo> sfdisk -N3 -E -o 9437184 -z 74445184 /dev/sdd
et on vérifie le résultat :
DsmDemo> sfdisk -l /dev/sdd
/dev/sdd1 256 4980735 4980480 fd
/dev/sdd2 4980736 9175039 4194304 fd
/dev/sdd3 9437184 83882367 74445184 f
On récupère le partitionnement du plus grand disque :
DsmDemo> sfdisk -l /dev/sda
/dev/sda1 256 4980735 4980480 fd
/dev/sda2 4980736 9175039 4194304 fd
/dev/sda3 9437184 83882367 74445184 f
/dev/sda5 9453280 83882367 74429088 fd
On crée la partition restante :
DsmDemo> sfdisk -N5 -o 9453280 -z 74429088 -t fd /dev/sdd
et on vérifie le résultat :
DsmDemo> sfdisk -l /dev/sdd
/dev/sdd1 256 4980735 4980480 fd
/dev/sdd2 4980736 9175039 4194304 fd
/dev/sdd3 9437184 83882367 74445184 f
/dev/sdd5 9453280 83882367 74429088 fd
Si il y d’autres partitions a créer, il suffit de reprendre la procédure décrite pour la dernière partition.
Arrivé ici, les partitions doivent être ABSOLUMENT identique
Ensuite, on va vérifier l’état du raid :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda5[0] sdc5[2] sdb5[1]
74426880 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]md1 : active raid1 sda2[0] sdb2[1] sdc2[2]
2097088 blocks [12/3] [UUU_________]md0 : active raid1 sda1[0] sdb1[1] sdc1[2]
2490176 blocks [12/3] [UUU_________]unused devices:
On vois ici 3 grappes raid :
- md0 utilisé pour le système avec les partitions se terminant toute par 1,
- md1 utilisé pour le swap avec les partitions se terminant toute par 2,
- md2 pour les données avec les partitions se terminant toute par 5.
Il faudra travailler sur chaque md qui contient des disques du volume.
Dans notre cas, le disque 1, 2 et 3 sont dans le volume, c’est donc sda, sdb, sdc; Il faudra donc travailler sur md0, md1, md2
on va ajouter le disque dans le raid utilisé pour la partition système (md0) :
DsmDemo> mdadm –add /dev/md0 /dev/sdd1
mdadm: added /dev/sdd1
On vérifie l’état du raid :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda5[0] sdc5[2] sdb5[1]
74426880 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]md1 : active raid1 sda2[0] sdb2[1] sdc2[2]
2097088 blocks [12/3] [UUU_________]md0 : active raid1 sdd1[12] sda1[0] sdb1[1] sdc1[2]
2490176 blocks [12/3] [UUU_________]
[==>………………] recovery = 11.6% (290880/2490176) finish=2.3min speed=15309K/secunused devices:
On constate que md0 est en « recovery », on répète la même commande jusqu’à ce que ce soit fini :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda5[0] sdc5[2] sdb5[1]
74426880 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]md1 : active raid1 sda2[0] sdb2[1] sdc2[2]
2097088 blocks [12/3] [UUU_________]md0 : active raid1 sdd1[3] sda1[0] sdb1[1] sdc1[2]
2490176 blocks [12/4] [UUUU________]unused devices:
Ici, le raid est ok et md0 contient 4 disques.
Ensuite, on va ajouter le disque dans le raid utilisé pour la partition swap (md1) :
DsmDemo> mdadm –add /dev/md1 /dev/sdd2
mdadm: added /dev/sdd2
On vérifie l’état du raid :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda5[0] sdc5[2] sdb5[1]
74426880 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]md1 : active raid1 sdd2[12] sda2[0] sdb2[1] sdc2[2]
2097088 blocks [12/3] [UUU_________]
[=>……………….] recovery = 9.9% (208768/2097088) finish=2.1min speed=14912K/secmd0 : active raid1 sdd1[3] sda1[0] sdb1[1] sdc1[2]
2490176 blocks [12/4] [UUUU________]unused devices:
On constate que md1 est en « recovery », on répète la même commande jusqu’à ce que ce soit fini :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda5[0] sdc5[2] sdb5[1]
74426880 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]md1 : active raid1 sdd2[3] sda2[0] sdb2[1] sdc2[2]
2097088 blocks [12/4] [UUUU________]md0 : active raid1 sdd1[3] sda1[0] sdb1[1] sdc1[2]
2490176 blocks [12/4] [UUUU________]unused devices:
Ici, le raid est ok et md1 contient 4 disques.
Graphiquement, on peut constater que le statut du disque est passé à « Normal »
Ensuite, on va ajouter le disque dans le raid utilisé pour la partition de données (md2) :
DsmDemo> mdadm –add /dev/md2 /dev/sdd5
mdadm: added /dev/sdd5
et on va convertir md2 de raid5 en raid6 :
DsmDemo> mdadm –grow /dev/md2 –level=6 –backup-file=/root/raid5to6.bak
mdadm level of /dev/md2 changed to raid6
On vérifie l’état du raid :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid6 sdd5[3] sda5[0] sdc5[2] sdb5[1]
74426880 blocks super 1.2 level 6, 64k chunk, algorithm 18 [4/3] [UUU_]
[=>……………….] reshape = 5.9% (2203648/37213440) finish=146.3min speed=3985K/secmd1 : active raid1 sdd2[3] sda2[0] sdb2[1] sdc2[2]
2097088 blocks [12/4] [UUUU________]md0 : active raid1 sdd1[3] sda1[0] sdb1[1] sdc1[2]
2490176 blocks [12/4] [UUUU________]unused devices:
La conversion est en cours, celle-ci prend plusieurs heures, c’est tout a fait normal.
Dans l’interface graphique, on peut voir les changements :
La vérification du volume est en cours et le volume est protégé avec 2 disques de parité.
… Plusieurs heures après :
On peut constater que la conversion est finie :
DsmDemo> cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid6 sdd5[3] sdc5[2] sdb5[1] sda5[0]
74426880 blocks super 1.2 level 6, 64k chunk, algorithm 2 [4/4] [UUUU]md1 : active raid1 sdd2[2] sda2[4] sdb2[0] sdc2[1]
2097088 blocks [12/4] [UUU_U_______]md0 : active raid1 sdd1[2] sda1[4] sdb1[0] sdc1[1]
2490176 blocks [12/4] [UUU_U_______]unused devices:
et graphiquement, le volume est de nouveau à un statut « Normal »
Tout est fini, on peut donc refermer Putty :
DsmDemo> exit




Merci pour ton tuto, il me rend un énorme service. Bravo pour la découverte, c’est impeccable!
Je te signale au passage quelques petites erreurs qui m’ont bloqué :
– Les arguments -add –grow –level, etc. doivent s’écrire avec deux tirets (ex: –add), en tout cas chez moi avec DSM 6.
– Sinon il y a une petite erreur dans la commande de création de la 2ème partition: sdf au lieu de sdd.
– Enfin, pour les partitions sdd3 et sdd5 tu as collé -N et le chiffre (respectivement 3 ou 5).
Encore un grand merci à toi!