Mueva el volumen lógico a un nuevo disco físico

14

Tengo tres volúmenes lógicos en un solo grupo de volúmenes usando un solo volumen físico (todo el disco / dev / sda existente).

Ahora quiero mover uno de esos volúmenes lógicos a un disco nuevo y más rápido, es decir, desde:

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

a:

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

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

Por lo que entiendo no puedo usar pvmoveo vgsplitporque solo hay un volumen físico en el grupo de volúmenes existente.

¿Cuál es un buen enfoque para lograr esto (preferiblemente en línea, no es un requisito crear un nuevo grupo de volúmenes para el nuevo disco)?

htorque
fuente
Verifiqué las muchas preguntas similares, pero por lo que entiendo, esas no describen mi situación. Pregunta extra: ¿Usar un disco completo como volumen físico es una mala idea per se? Parece que esta decisión hizo la solución mucho más difícil en mi caso.
htorque
2
¿Tiene alguna razón en particular por la que no desea agregar su nuevo disco físico como volumen físico al grupo de volúmenes existente?
Ulrich Schwarz
De ningún modo. Si facilita las cosas, el nuevo disco también puede ser parte de vg0.
htorque

Respuestas:

21

Solución de grupo de un volumen:

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

Solución de grupo de dos volúmenes:

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

Ahora parte difícil, todas las actividades DEBEN detenerse en /bar:

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

dónde

  • pvcreate borrar todos los datos en el disco (y prepararse para LVM)
  • lvcreate debería crear un volumen lógico lvol1, usted especifica el nombre lv con -n bar
  • Uso la sintaxis HP-UX para lv, es posible que /dev/mapper/myvg-mylvdeba usar la sintaxis

Una vez que haya verificado que los datos están bien, en un nuevo lugar:

  • puedes eliminar de forma segura viejos /bar
  • editar /etc/fstabpara usar nuevo/bar
Archemar
fuente
Wow, parece que leí completamente la pvmovepágina del manual. En ese caso, obviamente me conformaré con la solución de un grupo de volúmenes. :)
htorque
En realidad, uno podría usar vgsplitdespués pvmovepara lograr la solución de grupo de dos volúmenes un poco más fácil (sin embargo, el volumen lógico aún necesita ser desactivado usando lvchange).
htorque
1
La utilidad de "pvmove" es una muy buena razón para usar un solo VG en lugar de múltiples VG.
tgharold
1
Parece que vgreduceluego se puede usar para eliminar el volumen anterior si ese es el requisito (no era para la pregunta específica, pero una pregunta sobre mover todos los volúmenes probablemente se marcaría como un duplicado)
Gert van den Berg
Mi experiencia actual es que en la solución vg única, se pvmoverequiere un -nindicador para especificar el volumen lógico. O dice un Physical volume /dev/vg0/bar not found Run `pvmove --help' for more information.mensaje de error. La página del manual dice lo mismo. ¿Puedo insertarlo en la publicación?
peterh - Restablecer Monica