LVM : migration de données ou comment remplacer un disque defectueux

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.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : http://blog.tools-fm.com/index.php?trackback/101

Fil des commentaires de ce billet