Déplacer le volume logique vers un nouveau disque physique

14

J'ai trois volumes logiques dans un seul groupe de volumes utilisant un seul volume physique (l'ensemble du disque / dev / sda existant).

Je veux maintenant déplacer l'un de ces volumes logiques vers un nouveau disque plus rapide, c'est-à-dire en passant de:

/dev/sda
    |-vg0-root → mounted to /
    |-vg0-foo  → mounted to /foo
    |-vg0-bar  → mounted to /bar

à:

/dev/sda
    |-vg0-root → mounted to /
    |-vg0-foo →  mounted to /foo

/dev/sdb
    |-vg1-bar  → mounted to /bar

D'après ce que je comprends, je ne peux pas l'utiliser pvmoveou vgsplitparce qu'il n'y a qu'un seul volume physique dans le groupe de volumes existant.

Quelle est la bonne approche pour y parvenir (de préférence en ligne, la création d'un nouveau groupe de volumes pour le nouveau disque n'est pas une exigence)?

htorque
la source
J'ai vérifié les nombreuses questions similaires, mais pour autant que je comprends, celles-ci ne décrivent pas ma situation. Question bonus: L'utilisation d'un disque entier comme volume physique est-elle une mauvaise idée en soi? Il semble que cette décision ait rendu la solution beaucoup plus difficile dans mon cas.
htorque
2
Avez-vous une raison particulière de ne pas ajouter votre nouveau disque physique en tant que volume physique au groupe de volumes existant?
Ulrich Schwarz
Pas du tout. Si cela facilite les choses, le nouveau disque peut également faire partie de vg0.
htorque

Réponses:

21

Solution d'un groupe de volumes:

 pvcreate /dev/sdb
 vgextend vg0 /dev/sdb
 pvmove -n /dev/vg0/bar /dev/sda /dev/sdb

Solution à deux groupes de volumes:

 pvcreate /dev/sdb
 vgcreate vg1 /dev/sdb
 lvcreate -l100%FREE vg1
 mkfs -t ext4 /dev/vg1/lvol1
 mount /dev/vg1/lvol1 /mnt

Maintenant partie difficile, toutes les activités DOIVENT s'arrêter sur /bar:

 cd /mnt ; ( cd /bat ; tar cf - * ) | tar xf -
 cd /
 umount /mnt
 mount /dev/vg1/lvol1 /bar

  • pvcreate effacer toutes les données sur le disque (et préparer LVM)
  • lvcreate pour créer un volume logique lvol1, vous spécifiez le nom lv avec -n bar
  • J'utilise la syntaxe HP-UX pour lv, vous devrez peut-être utiliser la /dev/mapper/myvg-mylvsyntaxe

Une fois que vous avez vérifié que les données sont OK, au nouvel endroit:

  • vous pouvez supprimer les anciens en toute sécurité /bar
  • modifier /etc/fstabpour utiliser nouveau/bar
Archemar
la source
Wow, il me semble que j'ai complètement mal lu la pvmovepage de manuel. Dans ce cas, je vais évidemment me contenter de la solution d'un groupe de volumes. :)
htorque
En fait, on pourrait utiliser vgsplitaprès pvmovepour réaliser la solution à deux groupes de volumes un peu plus facilement (cependant, le volume logique doit toujours être désactivé à l'aide lvchange).
htorque
1
L'utilité de "pvmove" est une très bonne raison d'utiliser un seul VG au lieu de plusieurs VG.
tgharold
1
Il semble vgreducepouvoir ensuite être utilisé pour supprimer l'ancien volume si tel est le besoin (ce n'était pas pour la question spécifique, mais une question demandant de déplacer tous les volumes serait probablement marquée en double)
Gert van den Berg
D'après mon expérience actuelle, dans la solution vg unique, pvmovenécessite un -nindicateur pour spécifier le volume logique. Ou il indique un Physical volume /dev/vg0/bar not found Run `pvmove --help' for more information.message d'erreur. La page de manuel dit la même chose. Puis-je l'insérer dans le message?
peterh