Mover volume lógico para um novo disco físico

14

Eu tenho três volumes lógicos em um único grupo de volumes usando um único volume físico (todo o disco existente / dev / sda).

Agora eu quero mover um desses volumes lógicos para um disco novo e mais rápido, ou seja, passando de:

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

para:

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

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

Pelo que entendi, não posso usar pvmoveou vgsplitporque há apenas um volume físico no grupo de volumes existente.

Qual é uma boa abordagem para conseguir isso (de preferência online, a criação de um novo grupo de volumes para o novo disco não é um requisito)?

htorque
fonte
Eu verifiquei muitas perguntas semelhantes, mas até onde eu entendi, essas não descrevem minha situação. Pergunta de bônus: Usar um disco inteiro como volume físico é uma má ideia por si só? Parece que essa decisão tornou a solução muito mais difícil no meu caso.
htorque
2
Você tem algum motivo específico para não adicionar seu novo disco físico como volume físico ao grupo de volumes existente?
Ulrich Schwarz
De modo nenhum. Se isso facilitar as coisas, o novo disco também poderá fazer parte da vg0.
htorque

Respostas:

21

Uma solução de grupo de volumes:

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

Solução de dois grupos de volumes:

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

Agora parte difícil, todas as atividades devem parar /bar:

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

Onde

  • pvcreate apague todos os dados no disco (e prepare-se para o LVM)
  • lvcreate Para criar um volume lógico lvol1, você especifica o nome lv com -n bar
  • Eu uso a sintaxe HP-UX para lv, talvez você precise usar a /dev/mapper/myvg-mylvsintaxe

Depois de verificar se os dados estão OK, em novo local:

  • você pode excluir com segurança /bar
  • editar /etc/fstabpara usar novo/bar
Archemar
fonte
Uau, parece que eu li completamente a pvmovepágina de manual. Nesse caso, obviamente aceitarei a solução de um grupo de volumes. :)
htorque
Na verdade, é possível usar vgsplitdepois pvmovepara obter a solução de dois grupos de volumes um pouco mais fácil (no entanto, o volume lógico ainda precisa ser desativado usando lvchange).
htorque
1
A utilidade do "pvmove" é uma boa razão para usar um único VG em vez de vários VGs.
precisa saber é
1
Parece que vgreducepode ser usado para remover o volume antigo, se esse for o requisito (não era para a pergunta específica, mas uma pergunta sobre a movimentação de todos os volumes provavelmente seria marcada como duplicada)
Gert van den Berg
Minha experiência atual é que, na solução vg única, pvmoverequer um -nsinalizador para especificar o volume lógico. Ou ele diz uma Physical volume /dev/vg0/bar not found Run `pvmove --help' for more information.mensagem de erro. A página de manual diz o mesmo. Posso inseri-lo na postagem?
peterh - Restabelece Monica