Skip to content

Instantly share code, notes, and snippets.

@MilesTEG1
Last active June 18, 2024 03:12
Show Gist options
  • Save MilesTEG1/221d1f5dad14828638cf09ceaaebada1 to your computer and use it in GitHub Desktop.
Save MilesTEG1/221d1f5dad14828638cf09ceaaebada1 to your computer and use it in GitHub Desktop.
Utiliser un SSD MVNe dans un NAS Synology en tant que volume et pas en tant que cache

Utiliser un SSD MVNe dans un NAS Synology en tant que volume et pas en tant que cache

Objectif final :
Déplacer le dossier docker, et le paquet Docker sur le volume SSD NVMe pour gagner en fluidité. Voir §-III. à la fin de ce GIST.

Note :
Les commandes suivantes sont pour la plupart à lancer en root dans un terminal, pensez à faire un : sudo -i


⚠️ IMPORTANT - À - FAIRE ⚠️
Il faut faire des sauvegardes de toutes les données du NAS, car les commandes utilisées ici ne sont pas sans risques...


Sources sur reddit :


Autre source intéressante :


Sujet sur forum-nas.fr :




Table des matières


I. Méthode pour utiliser un seul SSD NVMe en BASIC

I.1. Lister les disques NVMe présents dans /dev/

ls /dev/nvme*

Exemple de sortie :

root@Syno-DS920Plus:~# ls /dev/nvme*
/dev/nvme0  /dev/nvme0n1

En fonction du slot d'installation du SSD, ce sera soit /dev/nvme0n1 soit /dev/nvme1n1.

I.2. Lister les partition du disque NVMe avec fdisk -l

fdisk -l /dev/nvme0n1

Il faudra utiliser fdisk -l /dev/nvme1n1 si le ssd est dans le slot n°2.

Exemple de sortie :

root@Syno-DS920Plus:~# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

I.3. Création de la partition

synopartition --part /dev/nvme0n1 12

Exemple de sortie :

root@Syno-DS920Plus:~# synopartition --part /dev/nvme0n1 12

        Device   Sectors (Version7: SupportRaid)
 /dev/nvme0n11   4980480 (2431 MB)
 /dev/nvme0n12   4194304 (2048 MB)
Reserved size:    262144 ( 128 MB)
Primary data partition will be created.

WARNING: This action will erase all data on '/dev/nvme0n1' and repart it, are you sure to continue? [y/N] y
Cleaning all partitions...
Creating sys partitions...
Creating primary data partition...
Please remember to mdadm and mkfs new partitions.

Les partitions sont ainsi créées et respecte le prérequis de disposition pour DSM.

I.4. Vérification des partitions créées

fdisk -l /dev/nvme0n1

Sortie :

root@Syno-DS920Plus:~# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7b408005

Device         Boot   Start       End   Sectors   Size Id Type
/dev/nvme0n1p1          256   4980735   4980480   2.4G fd Linux raid autodetect
/dev/nvme0n1p2      4980736   9175039   4194304     2G fd Linux raid autodetect
/dev/nvme0n1p3      9437184 976768064 967330881 461.3G fd Linux raid autodetect

On constate alors que la disposition des partitions est créée. Noter ici le Device correspondant à la 3ème partition du disque, ici c'est : /dev/nvme0n1p3. On en aura besoin plus loin, lors de la création du volume.

I.5. Creation d'un volume basic

Pour la création d'un disque en Basic, il faut créer une unique partition en RAID1 afin que DSM la reconnaisse. (C'est ce que fait DSM quand il crée un volume basic.)

I.5.1. Voir la configuration RAID actuelle

cat /proc/mdstat

Sortie :

root@Syno-DS920Plus:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sata3p5[0] sata4p5[2]
      3902187456 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sata1p3[0]
      13667560448 blocks super 1.2 [1/1] [U]

md4 : active raid1 sata2p3[0]
      1948692544 blocks super 1.2 [1/1] [U]

md1 : active raid1 sata1p2[0] sata4p2[3] sata3p2[2] sata2p2[1]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sata1p1[0] sata4p1[3] sata3p1[2] sata2p1[1]
      2490176 blocks [4/4] [UUUU]

unused devices: <none>

Pour autant que je sache, md0 est la partition système, et md1 est le swap. Le volume des données va donc commencer à md2. Dans mon cas, j'ai donc les deux partitions de DSM (système et swap), plus trois volumes en raid, ce qui correspond (à peu près pour le raid) à ce que j'ai :

  • un volume en SHR1 avec deux disques : le md2
  • un volume en basic avec un disque : le md3
  • un autre volume en basci avec un seul disque : le md4

I.5.2. Création du volume Basic

Pour créer le volume basic, il faut utiliser le mdX suivant le dernier de la liste précédente (X étant à remplacer par un nombre entier). Dans mon cas, il s'agira de md5. Pour être 1000% sûr, car la commande suivante peut ruiner vos volumes existant, tapons :

ls /dev/md*

Qui retourne ceci :

root@Syno-DS920Plus:~# ls /dev/md*
/dev/md0  /dev/md1  /dev/md2  /dev/md3  /dev/md4

On voit bien dans mon cas, que je n'ai pas de md5 et suivants (md6, md7...)

Rappelez-vous, on a mémoriser la 3ème partition du disque à la fin de la partie 4., c'est ici qu'on en a besoin. C'est de dernier paramètre de la ligne de commande suivante :

mdadm --create /dev/md5 --level=1 --raid-devices=1 --force /dev/nvme0n1p3

Voilà la sortie :

root@Syno-DS920Plus:~# mdadm --create /dev/md5 --level=1 --raid-devices=1 --force /dev/nvme0n1p3
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array?

Il faudra répondre Y, et la suite de la sortie est :

Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

I.5.3. Vérification de la fin de création du volume

Il faut lancer la commande suivante régulièrement afin de vérifier la non présence de la mention resync qui indique que la création n'est pas terminée :

cat /proc/mdstat

Si la sortie indique quelque chose de ce genre (cet exemple est bricolé pour illustrer le propos) :

md5 : active raid1 nvme0n1p3[0]
483664384 blocks super 1.2 [2/2] [UU]
[===========>.........] resync = 56.2% (272194304/483664384) finish=9.7min speed=360766K/sec

La sortie, une fois que la création est terminée devra ressembler à ceci, avec active raid1 pour la ligne du md5 qu'on a créé :

root@Syno-DS920Plus:~# cat /proc/mdstat
Personalities : [raid1]
md5 : active raid1 nvme0n1p3[0]
      483664384 blocks super 1.2 [1/1] [U]

md2 : active raid1 sata3p5[0] sata4p5[2]
      3902187456 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sata1p3[0]
      13667560448 blocks super 1.2 [1/1] [U]

md4 : active raid1 sata2p3[0]
      1948692544 blocks super 1.2 [1/1] [U]

md1 : active raid1 sata1p2[0] sata4p2[3] sata3p2[2] sata2p2[1]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sata1p1[0] sata4p1[3] sata3p1[2] sata2p1[1]
      2490176 blocks [4/4] [UUUU]

unused devices: <none>

I.5.4. Indiquer à DSM que le disque n'est pas à plateaux en rotation

Comme nous avons ici affaire à un SSD, il n'y a pas de plateaux en rotation. Il faut donc l'indiquer à DSM avec la commande suivante (remplacer md5 par votre valeur à vous) :

echo 0 > /sys/block/md5/queue/rotational

De Base, il y avait ceci dans le fichier :

root@Syno-DS920Plus:~# cat /sys/block/md5/queue/rotational
1

Après l'exécution de la commande, on devrait avoir :

root@Syno-DS920Plus:~# cat /sys/block/md5/queue/rotational
0

I.6. Création du système de fichier

Maintenant que le volume est créé, il faut créé le système de fichier, qui sera BTRFS en ce qui me concerne. (Il est possible de faire de l'EXT4, mais je n'aurais pas la sortie à vous montrer...) Pensez à remplacer md5 par votre valeur...

mkfs.btrfs -f /dev/md5

Voilà le résultat :

root@Syno-DS920Plus:~# mkfs.btrfs -f /dev/md5
btrfs-progs v4.0
See http://btrfs.wiki.kernel.org for more information.

Detected a SSD, turning off metadata duplication.  Mkfs with -m dup if you want to force metadata duplication.
Performing full device TRIM (461.26GiB) ...
Label:              (null)
UUID:               0a1a5418-9f5e-49d6-96e4-aaa1c21131b5
Node size:          16384
Sector size:        4096
Filesystem size:    461.26GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         single            8.00MiB
  System:           single            4.00MiB
SSD detected:       yes
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1   461.26GiB  /dev/md5

I.7. Paramétrer le volume dans DSM et redémarrer le NAS

Connectez-vous à DSM, et lancer le Gestionnaire de Stockage. Dans la liste à gauche, tout en haut devrait figurer Groupe disponible : DSM Storage Manager

Cliquez ensuite sur les "..." en haut à droite, et choisir "Assemblage en ligne" : DSM Storage Manager Puis cliquez sur "Appliquer". DSM Storage Manager

Lors de cette tentative, j'ai eu droit à une erreur, et le volume n'a pas été créé... DSM Storage Manager J'ai du redémarrer le NAS pour retenter la manipulation, et ça a enfin fonctionné !

Pour redémarrer le NAS, utiliser la commande suivante :

reboot

Une fois redémarré, si l'assemblage en ligne précédemment lancé n'avait pas fonctionné, refaite le maintenant. Vous devriez observer ce qui suit : DSM Storage Manager

Une fois terminé, le volume est enfin créé : DSM Storage Manager

Il est maintenant possible de l'utiliser... Il faudra créer des dossiers partagés dessus.

I.8. Déplacement de données, et (ré)installation de paquets sur le SSD

Section à venir.

Afin de ne pas perdre de données, il est vivement conseillé de faire une sauvegarde du dossier /volume1/docker avec HyperBackup ou un autre outils.

Ce dossier ne peut pas être déplacer dans le /volume4 fraichement créé car Docker est en cours d'exécution et est installé. Même Docker stoppé, ce n'est pas possible :

DSM Storage Manager

synopkgctl stop Docker && rsync -avXh --syno-acl --stats --progress /volume1/docker/ /volume4/docker-ssd/ && synopkgctl start Docker

II. Création de RAID1 avec 2 SSD après avoir fait le groupe BASIC précédent

_
Section en cours de rédaction
_

Note : *Je ne sais comment ajouter facilement un second SSD NVMe au premier déjà en place... J'an tenté divers commandes mdadm pour ajouter le nouveau SSD, mais ça ne l'ajoute qu'en spare...

# Commande pour ajouter un disque 
mdadm /dev/md5 --add /dev/nvme0n1p3
# Commande pour supprimer un disque
mdadm /dev/md5 --remove /dev/nvme0n1p3

Il faut donc tout recommencer avec deux SSD vierges, ou bien en cassant le volume4 construit dans la section I.
Il faudra bien entendu prévoir de faire des sauvegardes avant !*


Faire une sauvegarde des données (avec rsync) en CLI Déplacer les dossiers partagés depuis DSM, donc le dossier docker Désinstaller le paquet docker depuis DSM Supprimer les dossiers partagés depuis DSM (optionnel) Supprimer le groupe de stockage depuis DSM Supprimer les partitions des NVMe : synopartition --remove /dev/nvme0n1 synopartition --remove /dev/nvme1n1 Les SSD sont donc vierges de partitions, on peut donc repartir de 0.

II.1. Lister les disques NVMe présents dans /dev/

ls /dev/nvme*

Exemple de sortie :

root@Syno-DS920Plus:~# ls /dev/nvme*
/dev/nvme0  /dev/nvme0n1  /dev/nvme1  /dev/nvme1n1

Le premier SSD NVMe est celui en BASIC, créé dans la partie I., et étrangement, il est passé en : /dev/nvme1n1... Le second SSD NVMe est /dev/nvme0n1 et n'est pas initialisé car il n'a pas de partitions...

II.2. Lister les partitions des disques NVMe avec fdisk -l

root@Syno-DS920Plus:~# fdisk -l /dev/nvme1n1
Disk /dev/nvme1n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7b408005
root@Syno-DS920Plus:~# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaccf85f7


Note : avant de tout casser, j'avais remarqué que la numérotation des SSD avait changé...

On voit clairement que le nouveau SSD dans le slot n°2 et donc celui qui n'a pas de partition est le /dev/nvme0n1...

Pour être définitivement sûr de moi avant de créer des partitions, je lance la commande suivante pour lister les SSD NVMe et afficher leurs caractéristiques, comme le S/N, le firmware, informations qui peuvent être comparées dans DSM :

root@Syno-DS920Plus:~# nvme --list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     22--------70         CT500P3SSD8                              1         500.11  GB / 500.11  GB    512   B +  0 B   P9CR30A
/dev/nvme1n1     22--------B8         CT500P3SSD8                              1         500.11  GB / 500.11  GB    512   B +  0 B   P9CR309
/dev/nvme1n1p1   22--------B8         CT500P3SSD8                              1         500.11  GB / 500.11  GB    512   B +  0 B   P9CR309
/dev/nvme1n1p2   22--------B8         CT500P3SSD8                              1         500.11  GB / 500.11  GB    512   B +  0 B   P9CR309
/dev/nvme1n1p3   22--------B8         CT500P3SSD8                              1         500.11  GB / 500.11  GB    512   B +  0 B   P9CR309

Là je suis sûr que la numérotation des SSD a changé ! Le nouveau, dans le slot n°2, est bel et bien /dev/nvme0n1, et "l'ancien" dans le slot n°1 est /dev/nvme1n1.



II.3. Création de la partition

synopartition --part /dev/nvme0n1 12
synopartition --part /dev/nvme1n1 12

Exemple de sortie :

root@Syno-DS920Plus:~# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaccf85f7

Device         Boot   Start       End   Sectors   Size Id Type
/dev/nvme0n1p1          256   4980735   4980480   2.4G fd Linux raid autodetect
/dev/nvme0n1p2      4980736   9175039   4194304     2G fd Linux raid autodetect
/dev/nvme0n1p3      9437184 976768064 967330881 461.3G fd Linux raid autodetect
root@Syno-DS920Plus:~# fdisk -l /dev/nvme1n1
Disk /dev/nvme1n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7b408005

Device         Boot   Start       End   Sectors   Size Id Type
/dev/nvme1n1p1          256   4980735   4980480   2.4G fd Linux raid autodetect
/dev/nvme1n1p2      4980736   9175039   4194304     2G fd Linux raid autodetect
/dev/nvme1n1p3      9437184 976768064 967330881 461.3G fd Linux raid autodetect

Les partitions sont ainsi créées et respecte le prérequis de disposition pour DSM.

II.4. Vérification des partitions créées

root@Syno-DS920Plus:~# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500P3SSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaccf85f7

Device         Boot   Start       End   Sectors   Size Id Type
/dev/nvme0n1p1          256   4980735   4980480   2.4G fd Linux raid autodetect
/dev/nvme0n1p2      4980736   9175039   4194304     2G fd Linux raid autodetect
/dev/nvme0n1p3      9437184 976768064 967330881 461.3G fd Linux raid autodetect

On constate alors que la disposition des partitions est créée. Noter ici le Device correspondant à la 3ème partition du disque, ici c'est : /dev/nvme0n1p3. On en aura besoin plus loin, lors de la création du volume.

II.5. Creation d'un volume en RAID1 avec les deux SSD

Pour la création d'un disque en Basic, il faut créer une unique partition en RAID1 afin que DSM la reconnaisse. (C'est ce que fait DSM quand il crée un volume basic.)

II.5.1. Voir la configuration RAID actuelle

cat /proc/mdstat

Sortie :

root@Syno-DS920Plus:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sata3p5[0] sata4p5[2]
      3902187456 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sata1p3[0]
      13667560448 blocks super 1.2 [1/1] [U]

md4 : active raid1 sata2p3[0]
      1948692544 blocks super 1.2 [1/1] [U]

md1 : active raid1 sata1p2[0] sata4p2[3] sata3p2[2] sata2p2[1]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sata1p1[0] sata4p1[3] sata3p1[2] sata2p1[1]
      2490176 blocks [4/4] [UUUU]

unused devices: <none>

Pour autant que je sache, md0 est la partition système, et md1 est le swap. Le volume des données va donc commencer à md2. Dans mon cas, j'ai donc les deux partitions de DSM (système et swap), plus trois volumes en raid, ce qui correspond (à peu près pour le raid) à ce que j'ai :

  • un volume en SHR1 avec deux disques : le md2
  • un volume en basic avec un disque : le md3
  • un autre volume en basci avec un seul disque : le md4

II.5.2. Création du volume en RAID1

Pour créer le volume basic, il faut utiliser le mdX suivant le dernier de la liste précédente (X étant à remplacer par un nombre entier). Dans mon cas, il s'agira de md5. Pour être 1000% sûr, car la commande suivante peut ruiner vos volumes existant, tapons :

ls /dev/md*

Qui retourne ceci :

root@Syno-DS920Plus:~# ls /dev/md*
/dev/md0  /dev/md1  /dev/md2  /dev/md3  /dev/md4

On voit bien dans mon cas, que je n'ai pas de md5 et suivants (md6, md7...)

Rappelez-vous, on a mémoriser la 3ème partition du disque à la fin de la partie 4., c'est ici qu'on en a besoin. C'est de dernier paramètre de la ligne de commande suivante :

mdadm --create /dev/md5 --level=1 --raid-devices=2 --force /dev/nvme0n1p3 /dev/nvme1n1p3

Voilà la sortie :

root@Syno-DS920Plus:~# mdadm --create /dev/md5 --level=1 --raid-devices=2 --force /dev/nvme0n1p3 /dev/nvme1n1p3
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array?

Il faudra répondre Y, et la suite de la sortie est :

Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

II.5.3. Vérification de la fin de création du volume

Il faut lancer la commande suivante régulièrement afin de vérifier la non présence de la mention resync qui indique que la création n'est pas terminée :

cat /proc/mdstat

Si la sortie indique quelque chose de ce genre :

root@Syno-DS920Plus:~# cat /proc/mdstat
Personalities : [raid1]
md5 : active raid1 nvme1n1p3[1] nvme0n1p3[0]
      483664384 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  4.8% (23611264/483664384) finish=21.3min speed=359438K/sec

[...]

Prenez votre mal en patience, cette étape est un peu longue à se finir.

La sortie, une fois que la création est terminée devra ressembler à ceci, avec active raid1 pour la ligne du md5 qu'on a créé :

root@Syno-DS920Plus:~# cat /proc/mdstat
Personalities : [raid1]
md5 : active raid1 nvme1n1p3[1] nvme0n1p3[0]
      483664384 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sata3p5[0] sata4p5[2]
      3902187456 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sata1p3[0]
      13667560448 blocks super 1.2 [1/1] [U]

md4 : active raid1 sata2p3[0]
      1948692544 blocks super 1.2 [1/1] [U]

md1 : active raid1 sata1p2[0] sata4p2[3] sata3p2[2] sata2p2[1]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sata1p1[0] sata4p1[3] sata3p1[2] sata2p1[1]
      2490176 blocks [4/4] [UUUU]

unused devices: <none>

II.5.4. Indiquer à DSM que le disque n'est pas à plateaux en rotation

Comme nous avons ici affaire à un SSD, il n'y a pas de plateaux en rotation. Il faut donc l'indiquer à DSM avec la commande suivante (remplacer md5 par votre valeur à vous) :

echo 0 > /sys/block/md5/queue/rotational

De Base, il y avait ceci dans le fichier :

root@Syno-DS920Plus:~# cat /sys/block/md5/queue/rotational
1

Après l'exécution de la commande, on devrait avoir :

root@Syno-DS920Plus:~# cat /sys/block/md5/queue/rotational
0

II.6. Création du système de fichier

Maintenant que le volume est créé, il faut créé le système de fichier, qui sera BTRFS en ce qui me concerne. (Il est possible de faire de l'EXT4, mais je n'aurais pas la sortie à vous montrer...) Pensez à remplacer md5 par votre valeur...

mkfs.btrfs -f /dev/md5

Voilà le résultat :

root@Syno-DS920Plus:~# mkfs.btrfs -f /dev/md5
btrfs-progs v4.0
See http://btrfs.wiki.kernel.org for more information.

Detected a SSD, turning off metadata duplication.  Mkfs with -m dup if you want to force metadata duplication.
Performing full device TRIM (461.26GiB) ...
Label:              (null)
UUID:               0a1a5418-9f5e-49d6-96e4-aaa1c21131b5
Node size:          16384
Sector size:        4096
Filesystem size:    461.26GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         single            8.00MiB
  System:           single            4.00MiB
SSD detected:       yes
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1   461.26GiB  /dev/md5

⚠️ Attention ⚠️
Il faut maintenant redémarrer le NAS.

II.7. Paramétrer le volume dans DSM et redémarrer le NAS

Connectez-vous à DSM, et lancer le Gestionnaire de Stockage. Dans la liste à gauche, tout en haut devrait figurer Groupe disponible : DSM Storage Manager

Cliquez ensuite sur les "..." en haut à droite, et choisir "Assemblage en ligne" : DSM Storage Manager

Puis cliquez sur "Appliquer". DSM Storage Manager

Une fois redémarré, si l'assemblage en ligne précédemment lancé n'avait pas fonctionné, refaite le maintenant. Vous devriez observer ce qui suit : DSM Storage Manager

Une fois terminé, le volume est enfin créé : DSM Storage Manager

Il est maintenant possible de l'utiliser... Il faudra créer des dossiers partagés dessus.


III. Déplacement du paquet Docker et des données /volumeX/docker vers le volume SSD fraichement créé

Section en cours de rédaction...

Je le rappel, mais pour ne pas perdre de données, il est vivement conseillé de faire une sauvegarde des données.

Il sera préférable de désinstaller le paquet docker en supprimant toutes les données concernant Docker : cela supprimera le dossier /volume1/docker, mais aussi /volume1/@DOcker et différents autres dossiers concernant docker. Pourquoi est-ce préférable ? Pour qu'il ne reste plus de traces. C'est préférable, sinon on risque d'avoir des effets de bords...

Le dossier /volume1/docker ne peut pas être simplement déplacer dans le /volume4 fraichement créé car Docker est en cours d'exécution et est installé. Même Docker stoppé, ce n'est pas possible :

DSM Storage Manager

III.1. Copie des données de docker

  • Tout d'abord il faut stopper le paquet Docker, sinon les données copiées pourraient être corrompues, notamment les bases de données.

    • Soit via DSM :
      Stop Docker

    • Soit via la ligne de commande :

      synopkgctl stop Docker
  • On copie ensuite les données du dossier /volume1/docker, avec rsync dans un dossier partagé d'un autre volume (mais pas celui du SSD) qu'il faudra avoir créé au préalable, /volume2/docker-bis/ :

    rsync -avXh --syno-acl --stats --progress /volume1/docker/ /volume2/docker-bis/
  • Maintenant que les données sont copiées, on va désinstaller Docker totalement, en supprimant les données, donc en cochant la case de la capture ci-dessous :

  • Il ne reste plus qu'à réinstaller le paquet Docker sur le volume4, ce qui recréera un dossier /volume4/docker vierge, mais sans le lancer pour le moment.

  • On copie en retour les données de docker :

    rsync -avXh --progress --syno-acl --stats --log-file="/volume4/TEMP-SSD/rsync-`date +%Y-%m-%d--%Hh%Mm%Ss`.log" /volume2/docker-bis/ /volume4/docker/
  • On peut maintenant relancer Docker, et procéder à la recréation des conteneurs docker un-à-un, en commençant par Portainer, puis Gitea, puis SWAG, puis les autres...

Voilà, c'est fini.
Si vous avez lu tout ceci en premier, bon courage pour l'application de tout ça :)

@tomyvi
Copy link

tomyvi commented Sep 10, 2023

Hello, merci beaucoup pour ce tuto, suivi à la lettre, petit reboot au milieu pour être sur que DSM intègre les manip faites en CLI et hop, ca marche !
Migration de docker en cours... il va rester de la place (2x1To en raid1) !!

@karael
Copy link

karael commented Jan 4, 2024

Hello,

Est-ce que vous avez déjà eu des soucis d'assemblage après cette install ? Après 1 an de fonctionnement normal, j'ai un echec de l'assemblage en ligne. J'ai essayé de redémarrer et recontruire, ca ne suffit pas. Bon au pire tout est versionné, je vais pouvoir réinstaller vite, mais c'est chiant.

image

@MilesTEG1
Copy link
Author

Hello,

Est-ce que vous avez déjà eu des soucis d'assemblage après cette install ? Après 1 an de fonctionnement normal, j'ai un echec de l'assemblage en ligne. J'ai essayé de redémarrer et recontruire, ca ne suffit pas. Bon au pire tout est versionné, je vais pouvoir réinstaller vite, mais c'est chiant.

image

Bonjour,
Il faudrait essayer le script de base de donnée :
https://github.com/007revad/Synology_HDD_db
Bien faire la tâche planifiée.

Si jamais ça ne permet pas de faire le montage en ligne , il faudra passer par son autre script :
https://github.com/007revad/Synology_enable_M2_volume

Mon tuto n’est plus vraiment utile via les script de @007revad 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment