Skip to content

Instantly share code, notes, and snippets.

@MilesTEG1
Last active January 4, 2024 08:27
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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 :)

@Philabs13
Copy link

Merci beaucoup ! le tuto est clair et très complet,
Testé sur un 918+ avec un CT2000P5SSD8 CRUCIAL, création d'un second groupe de stockage et d'un second volume , tout en conservant le second emplacement SSD Nvme en Cache lecture , Parfait !

@MilesTEG1
Copy link
Author

@Philabs13 Merci du retour, ça fait plaisir à lire 😊 😃

@JulienBij
Copy link

Salut @MilesTEG1 ,
j'ai tenté à mon tour de créer un nouveau pool avec mes 2 SSD Nvme sur mon DS920+. Je rencontre cependant une erreur à l'étape de la création de la partition (1.3). Après avoir fait sudo -i pour passer en superadmin, et taper mon mot de passe, je tape la commande "synopartition --part /dev/nvme0n1 12" . J'ai bien un avertissement et je tape sur Y. Mais ça échoue : et voilà le retour que j'ai : err =255
Create partition failed (la copie de mon putty ci dessous)
Je suis bloqué et ne parviens pas à contourner ce problème. L'as tu rencontré ? sais-tu le contourner ?
Merci

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...
[/sbin/sfdisk -N1 -uS -q -f -j256 -z4980480 -tfd -F /dev/nvme0n1] failed. err=255
Create system partitions failed.

@JulienBij
Copy link

OK, à priori, c'est parce que je n'avais pas suppromer le cache SSD sous DSM et qu'il était en cours de fonctionnement que je ne pouvais pas partition le SSD. C'est bon maintenant

@MilesTEG1
Copy link
Author

MilesTEG1 commented Apr 9, 2023

Bonjour @JulienBij
Je n'ai pas rencontré ce souci.
Avant de voir ta seconde réponse, j'allais te dire que le SSD avait peut-être un souci...

OK, à priori, c'est parce que je n'avais pas suppromer le cache SSD sous DSM et qu'il était en cours de fonctionnement que je ne pouvais pas partition le SSD. C'est bon maintenant

Mais avec ce que tu viens de dire, l'erreur rencontrée prend tout son sens ^^
Je pense qu'on aurait une erreur similaire si on essayait de faire ça sur des HDD encore dans un groupe de stockage.

edit : en tout cas, content de voir que tu aies réussi à trouver la cause et à finaliser le paramétrage :)

@JulienBij
Copy link

Un grand merci à toi @MilesTEG1 pour ce super tuto en français et parfaitement accessible à un novice comme moi ! Le nouveau groupement est créé ! Je vais pouvoir créer des dossiers partagés pour avoir plus de réactivité j'espère ... J'envisage aussi de migrer ma machine virtuelle sous VMM pour tenter de l'accélérer un peu ...

@MilesTEG1
Copy link
Author

De rien 😃

J'envisage aussi de migrer ma machine virtuelle sous VMM pour tenter de l'accélérer un peu ...

Ça devrait jouer pas mal, surtout si tu déplaces aussi le paquet VMM sur les SSD.

@JulienBij
Copy link

Ah OK ... Je n'avais pas pensé à ça ... Merci de m'éclairer !
Du coup, tu me conseilles de suivre la fin de ton tuto sur Docker et de l'appliquer à VMM et ses données ? (à savoir copier les données de VMM sur le volume HDD de mon NAS; forcer l'arrêt du paquet VMM, le désinstaller du volume HDD, puis le réinstaller sur le volume SSD, et finir par recopier les données ?

@MilesTEG1
Copy link
Author

Ah OK ... Je n'avais pas pensé à ça ... Merci de m'éclairer ! Du coup, tu me conseilles de suivre la fin de ton tuto sur Docker et de l'appliquer à VMM et ses données ? (à savoir copier les données de VMM sur le volume HDD de mon NAS; forcer l'arrêt du paquet VMM, le désinstaller du volume HDD, puis le réinstaller sur le volume SSD, et finir par recopier les données ?

Fait une sauvegarde des données avant toute manipulation. Et ensuite, tu pourras tenter la fin du tuto.

C'est vraiment dommage que Syno n'ait pas prévu de solution pour déplacer les paquets d'un volume à un autre... comme c'est le cas pour un dossier partagé.

@JulienBij
Copy link

Salut @MilesTEG1,
je suis super content d'avoir créer grâce à toi et à ce tuto un volume de SSD sur mon DS920+. Ça marche beaucoup mieux (bien plus réactif sur le partage en réseau et la VM).
J'ai une question : j'ai mis 2 SSD 970Evo 1 To. Si je veux doubler la taille de ce volume et passer en 2 x 2To 970 Evo +, comment procéder ?
Merci de ton aide ! (je ne pense pas que si j'en enlève 1 de 1 To, et que je le remplace par celui de 2 To, ça fonctionnera comme ça le fait sur un voulme classique ???)

@MilesTEG1
Copy link
Author

Salut @JulienBij
Désolé de répondre si tardivement par rapport à ta question...

Je ne suis pas sûr que ce soit possible. Ce qu'on fait ici, c'est du RAID1. Et ce que tu veux faire c'est augmenter le stockage de la grappe RAID. Je sais que c'est faisable avec du SHR, mais je ne sais pas si c'est faisable avec du RAID1...

Peut-être en remplaçant un disque, et en laissant le système reconstruire le raid.
Puis en remplaçant l'autre disque, et là aussi en laissant le système refaire le raid.
Et là, peut-être qu'il y aura une option dans DSM pour étendre le stockage... mais rien de bien certains...

Si tu tentes la manip, fait bien des sauvegardes avant :)


Sinon, j'ai fait la MAJ en DSM 7.2. Et comme mes SSD ne font pas partis de la liste de compatibilité de Syno, mon volume a été déclaré comme manquant...
image

J'ai du lancer ce script https://github.com/007revad/Synology_HDD_db pour retrouver l'usage de mes NVMe en tant que stockage et donc récupérer mon volume avec ses données.
(Penser à faire une tâche déclenchée avec ce script, et rebooter le NAS).
image

Maintenant, avant un ultime reboot pour vérifier que tout va bien :
image

Je ferais une mise à jour du tuto dans les prochains jours, dès que j'aurais du temps.

@JulienBij
Copy link

Merci de ta réponse !
Heureusement que tu m'as mis en garde pour la MAJ 7.2 !!!! Je me serai retrouvé grave dans le pétrin ! Je ne vais pas la passer tout de suite du coup.
Pour le changement de SSD, je vais attendre et voir, mais j'essayerai la méthode que tu as décrite (en enlever un et voir si DSM propose la reconstruction) et si ça ne marche pas, j'essayerai de cloner le SSD 1To sur le 2 To ... Sinon, je copie toutes les données, changement des SSD et réinstallation ...m ais ça m'inquiete un peu tout de même ... car c'est mon NAS de travail

@Philabs13
Copy link

Merci beaucoup MilesTEG1 pour toutes ces infos ! Tout comme Julien tu m'évites les sueurs froides de la mise à jour en 7.2. (meme si cerise sur le gateau tu donnes la marche à suivre)

@Oyo95
Copy link

Oyo95 commented May 29, 2023

Hello,

Un grand merci pour ce tuto ! :D Effectivement ca redonne un petit coup de pompe à toutes mes applications :)
Pour information, j'ai dans un premier temps lancer le script disponible ici.
Ensuite j'ai eu la possibilité directement de créer un groupe de stockage + volume sans passer en CLI, directement sur DSM.
La seule action réalisée en CLI, c'est de modifier la valeur pour indiquer que c'est un SSD et non un HDD 👍
echo 0 > /sys/block/mdX/queue/rotational

Je suis sur un synology DS920+ en DSM 7.2.X et les SSD NVME sont des Crucial P5+.
L'un me sert en cache et l'autre pour porter mes dockers/applis.

image

@JulienBij
Copy link

Hello !
de mon côté, j'ai tenté sous DSM 7.1 de retirer un SSD et de le remplacer par un autre plus volumineux (j'ai enlevé un SSD Samsung Evo+ 1To sur les 2 présents et ai mis à la place le même SSD en 2To). Au redémarrage, volume dégradé ... pas de possibilité de réparer le volume. J'éteins et remets le SSD1 To dans son slot et là misère : le volume est toujours dégradé et impossible de le réparer ...
Bon j'avais évidemment suivi tes conseils @MilesTEG1 de faire des sauvegardes avant ! Donc je me dis perdu pour perdu, je vais faire la MAJ 7.2 et réinstallerai tout après.
Je fais la MAJ 7.2. Et je décide de refaire toute la manipulation pour créer un nouveau volume ... Mais je galère grave .... Plein de SSD listé dans /ls dev/nvme* ... Je vais y passer la journée je crois ...

@MilesTEG1
Copy link
Author

Hello @JulienBij
Ha mince … heureusement que tu as fait des sauvegardes !
Pour le fait que le volume reste en dégradé même si tu as remis l’ancien ssd, pour moi c’est normal car le ssd qui est resté à subi des modifications pendant la durée où il a été séparé de de son double . Et donc ce double n’était plus « synchronisé » quand tu l’as remis.
Il me semble avoir lu quelques part quelqu’un qui a réussi la manip que tu veux faire… mais je ne me rappelle pas si c’est vraiment le cas ni où 😅

@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