Voila déjà quelques temps que j'utilise LVM pour gérer mes volumes de stockage.
Extrêmement flexible ce système permet de grandir "à la demande" soit avec l'ajout de volume physique, soit avec la simple allocation d'espace disque supplémentaire.
Nous allons aujourd'hui voir comment migrer des données avec la couche LVM.
Le plan:
J'ai récemment fais l'acquisition d'un NAS Synology DS1010+ offrant, entre autre, la possibilité de publier des volumes via iSCSI. L'idée est donc de déporté tout les volumes de stockage depuis les disques locaux de mon serveur vers le NAS. De la sorte les volumes présents sur mon serveur pourront bénéficier des performances et tolérance de panne offertes par le NAS.
J'ai donc utilisé LVM pour migrer tout ce beau monde.
L'action
je passe sur la configuration du volume iSCSI que j'ai déjà évoqué dans un article précédent.
Une fois le volume iSCSI présenté au serveur le reste des action est relativement simple.
Dans un premier temps nous ajoutons le nouveau volume, /dev/sdb dans mon cas, au système LVM
routeur ~ # pvcreate /dev/sdb
On l'ajoute ensuite au VG à migrer
routeur ~ # vgextend shares /dev/sdb
On vérifie
routeur ~ # pvs PV VG Fmt Attr PSize PFree /dev/hdb1 shares lvm2 a- 186,30g 0 /dev/hdc1 shares lvm2 a- 233,75g 0 /dev/sdb shares lvm2 a- 300,00g 300,00g
On migre ensuite les données d'un PV vers un autre: Attention; pour une migration des données en cours d'utilisation, allez faire un tour dans le man. Pour ma part j'ai démonté les partitions avant l'action.
routeur ~ # pvmove /dev/hdb1 /dev/sdb
l'action est relativement longue selon la quantité de données à migrer.
On observe à présent que l'ensemble du volume /deb/hdb1 est libre.
routeur ~ # pvs PV VG Fmt Attr PSize PFree /dev/hdb1 shares lvm2 a- 186,30g 186,30g /dev/hdc1 shares lvm2 a- 233,75g 0 /dev/sdb shares lvm2 a- 300,00g 113,75g
On peut à présent le sortir du Volume Group auquel il appartient
routeur ~ # vgreduce shares /dev/hdb1 Removed "/dev/hdb1" from volume group "shares"
Pour ensuite le liberer totallement du système LVM
routeur ~ # pvremove /dev/hdb1 Labels on physical volume "/dev/hdb1" successfully wiped
On observe à présent que le volume ne fait plus partie des volumes disponible et peut donc être retiré du serveur en toute tranquillité.
routeur ~ # pvs PV VG Fmt Attr PSize PFree /dev/hdc1 shares lvm2 a- 233,75g 0 /dev/sdb shares lvm2 a- 300,00g 113,75g
Pour information, J'ai entendu, sans le tester, que la même chose se fait avec lvconvert en utilisant la notion de miroir.
