Bonjour,
Je possède un DS213j avec 2x 1To en volumes basic (donc 2 volumes distincts).
Mon 2ème disque arrive à saturation, je pense à le remplacer prochainement par un 2To, mais je souhaite récupérer toutes mes données qu'il y a dessus rapidement.
Sur ce disque, il y a les partitions systèmes DSM (en raid1 avec le 1er disque), ma partition de données, et des applications installées dessus.
Ayant pas mal customisé mon DSM via ssh, j'ai peur qu'un simple backup et restore dans les règles par DSM ne me rendra pas mon NAS pleinement opérationnel une fois le disque dur remplacé...
N'ayant pas trouvé de tuto pour ce cas de clonage sur volumes basique, voici ce que j'ai réussi à faire en test sous XPEnology DSM 5.2.
J'aimerai votre avis si tout mon cheminement est correct.
Tout d'abord la config relevé avec un live CD (ex: Gparted) des disques branchés sur un PC.
sda = disque d'origine avec les données (20Go)
sdb = nouveau disque (40Go)
root@debian:~# fdisk -l
unused devices: <none>
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
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: 0x000b4d67
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4982527 4980480 2,4G fd Linux raid autodetect
/dev/sda2 4982528 9176831 4194304 2G fd Linux raid autodetect
/dev/sda3 9437184 41738239 32301056 15,4G fd Linux raid autodetect
Disk /dev/sdb: 40 GiB, 42949672960 bytes, 83886080 sectors
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: 0x000b4d67
Device Boot Start End Sectors Size Id Type
Disk /dev/md127: 15,4 GiB, 16536961024 bytes, 32298752 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/vg1-syno_vg_reserved_area: 12 MiB, 12582912 bytes, 24576 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/vg1-volume_2: 15,4 GiB, 16521363456 bytes, 32268288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@debian:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active (auto-read-only) raid1 sda3[0]
16149376 blocks super 1.2 [1/1] [U]
1er constat: même en volume basic, Synology utilise la couche raid pour gérer le volume contenant nos données.
root@debian:~# mdadm --examine /dev/sda3
/dev/sda3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : d3804f2f:7b6423df:6249c1e6:3ec0b82e
Name : diskstation52:3
Creation Time : Wed Aug 16 15:10:36 2017
Raid Level : raid1
Raid Devices : 1
Avail Dev Size : 32299008 (15.40 GiB 16.54 GB)
Array Size : 16149376 (15.40 GiB 16.54 GB)
Used Dev Size : 32298752 (15.40 GiB 16.54 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=256 sectors
State : clean
Device UUID : 52586183:2cad2229:4e6d7843:2e6b6ac1
Update Time : Thu Aug 17 10:35:06 2017
Checksum : 4a382cf5 - correct
Events : 6
Device Role : Active device 0
Array State : A ('A' == active, '.' == missing, 'R' == replacing)
root@debian:~# pvdisplay
--- Physical volume ---
PV Name /dev/md127
VG Name vg1
PV Size 15,40 GiB / not usable 2,88 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 3942
Free PE 0
Allocated PE 3942
PV UUID gG5mVT-fsS6-l19g-4oeq-cZq4-RD1A-wCaZ1K
root@debian:~# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 15,40 GiB
PE Size 4,00 MiB
Total PE 3942
Alloc PE / Size 3942 / 15,40 GiB
Free PE / Size 0 / 0
VG UUID jh2Fv1-Ww7r-InN5-fdS5-uXMd-gvRf-SuKPoH
root@debian:~# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/syno_vg_reserved_area
LV Name syno_vg_reserved_area
VG Name vg1
LV UUID r1Elqb-tcxx-uE31-IukG-WxR2-HYCa-yNZvtr
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 0
LV Size 12,00 MiB
Current LE 3
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/vg1/volume_2
LV Name volume_2
VG Name vg1
LV UUID C1OOwc-kgXa-42Sc-PQLC-GRDG-4t4B-1LTSPw
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 0
LV Size 15,39 GiB
Current LE 3939
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
2ème constat: Synology utilise la couche LVM.
Si volume raid non SHR:
Les commandes que j'ai effectué:
#je désactive le volume group dans le LVM
vgchange -an vg1
#je supprime le raid
mdadm -S /dev/md127
#je clone mon disque entier tel quel
dd if=/dev/sda of=/dev/sdb
#j'augmente la partition des données
echo ",+," | sfdisk -N3 /dev/sdb
#je réassemble le raid du nouveau disque
mdadm -A --force /dev/md127 /dev/sdb3
#j'augmente la taille du raid au max
mdadm --grow /dev/md127 --size=max
#je vérifie que je suis bien passé à environ 40Go
mdadm --examine /dev/sdb3
#j'augmente le volume physique situé dans le raid
pvresize /dev/md127
#j'augmente le volume logique (mes données) à 100% de la capacité max
lvresize -l +100%FREE /dev/vg1/volume_2
#j'active le volume groupe
vgchange -ay vg1
#je vérifie le FS de mon volume (mes données)
e2fsck -f /dev/vg1/volume_2
#j'augmente la taille du volume (mes données) au max
resize2fs /dev/vg1/volume_2 -f
#je vérifie que je dispose maintenant bien d'un volume d'environ 40Go
lvdisplay
Si le volume est en SHR, l'opération varie car il y a une partition logique étendue:
il n'y a qu'un seul volume logique au niveau lvm, et le volume groupe se nomme vg1001.
root@debian:~# lvdisplay
--- Logical volume ---
LV Path /dev/vg1001/lv
LV Name lv
VG Name vg1001
LV UUID C1OOwc-kgXa-42Sc-PQLC-GRDG-4t4B-1LTSPw
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 0
LV Size 15,39 GiB
Current LE 3939
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
#je désactive le volume group dans le LVM
vgchange -an vg1001
#je supprime le raid
mdadm -S /dev/md127
#je clone mon disque entier tel quel
dd if=/dev/sda of=/dev/sdb
#dump de la table des partitions:
sfdisk -d /dev/sdb > table.txt
#modifier le fichier à la main en calculant les nouvelles tailles tout en respectant les espaces non alloués:
root@debian:~# sfdisk -l /dev/sdb
Disk /dev/sdb: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@debian:~# nano table.txt
label: dos
label-id: 0x000a2d6c
device: /dev/sda
unit: sectors
/dev/sda1 : start= 2048, size= 4980480, type=fd
/dev/sda2 : start= 4982528, size= 4194304, type=fd
/dev/sda3 : start= 9437184, size= 32499488, type=f
/dev/sda5 : start= 9453280, size= 32274528, type=fd
je calcul en faisant:
taille partition 3 = secteurs totaux - secteur départ - 3Mo = 83886080 - 9437184 - 3*1024*1024/512 = 74442752
taille partition 5 = secteurs totaux - secteur départ - 1001Mo = 83886080 - 9453280 - 208864 = 74223936
je modifie le fichier table et le réinjecte:
root@debian:~# nano table.txt
label: dos
label-id: 0x000a2d6c
device: /dev/sdb
unit: sectors
/dev/sdb1 : start= 2048, size= 4980480, type=fd
/dev/sdb2 : start= 4982528, size= 4194304, type=fd
/dev/sdb3 : start= 9437184, size= 74442752, type=f
/dev/sdb5 : start= 9453280, size= 74223936, type=fd
root@debian:~# sfdisk /dev/sdb < table.txt
#je réassemble le raid du nouveau disque
mdadm -A --force /dev/md127 /dev/sdb3
#j'augmente la taille du raid au max
mdadm --grow /dev/md127 --size=max
#je vérifie que je suis bien passé à environ 40Go
mdadm --examine /dev/sdb3
#j'augmente le volume physique situé dans le raid
pvresize /dev/md127
#j'augmente le volume logique (mes données) à 100% de la capacité max
lvresize -l +100%FREE /dev/vg1001/lv
#j'active le volume logique
vgchange -ay vg1001
#je vérifie le FS de mon volume (mes données)
e2fsck -f /dev/vg1001/lv
#j'augmente la taille du volume (mes données) au max
resize2fs /dev/vg1001/lv
#je vérifie que je dispose maintenant bien d'un volume d'environ 40Go
lvdisplay
Résultat:
j'ai remonté ensuite mon nouveau disque dans la VM XPenology.
à l'ouverture de DSM:
L'avertissement ne concerne que les partitions systèmes DSM en raid1 qui ne sont plus synchro: une simple réparation, et le système est OK.
On peut ensuite voir que mon nouveau disque de 40Go est bien reconnu avec la partition des données, et sans perte de mes données, applis, paramétrages de dossiers, etc...
Est-ce que tout mon cheminement vous semble correct ?
Merci pour votre réponse.
Edit:
Après correction et modifications de vos suggestions, on peut mettre ce post en tuto :)