10.12. Mudando o número de imagens em um dispositivo RAID1 existente
Você pode alterar o número de imagens em uma matriz RAID1 existente, assim como pode alterar o número de imagens na implementação anterior do espelhamento LVM. Use o comando lvconvert
para especificar o número de pares de metadados/dados adicionais a serem adicionados ou removidos.
Quando você adiciona imagens a um dispositivo RAID1 com o comando lvconvert
, você pode especificar o número total de imagens para o dispositivo resultante, ou pode especificar quantas imagens adicionar ao dispositivo. Opcionalmente, você também pode especificar em quais volumes físicos os novos pares de metadados/dados de imagem residirão.
Subvolumes de metadados (denominados rmeta
) sempre existem nos mesmos dispositivos físicos que suas contrapartes de subvolume de dados rimage
). Os pares de metadados/subvolume de dados não serão criados nos mesmos volumes físicos que os de outro par de metadados/subvolume de dados na matriz RAID (a menos que você especifique --alloc anywhere
).
O formato para o comando de adicionar imagens a um volume RAID1 é o seguinte:
lvconvert -m new_absolute_count vg/lv [removable_PVs] lvconvert -m +num_additional_images vg/lv [removable_PVs]
Por exemplo, o seguinte comando exibe o dispositivo LVM my_vg/my_lv
, que é uma matriz RAID1 de 2 vias:
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 6.25 my_lv_rimage_0(0),my_lv_rimage_1(0)
[my_lv_rimage_0] /dev/sde1(0)
[my_lv_rimage_1] /dev/sdf1(1)
[my_lv_rmeta_0] /dev/sde1(256)
[my_lv_rmeta_1] /dev/sdf1(0)
O seguinte comando converte o dispositivo RAID1 de 2 vias my_vg/my_lv
para um dispositivo RAID1 de 3 vias:
#lvconvert -m 2 my_vg/my_lv
#lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices my_lv 6.25 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0) [my_lv_rimage_0] /dev/sde1(0) [my_lv_rimage_1] /dev/sdf1(1) [my_lv_rimage_2] /dev/sdg1(1) [my_lv_rmeta_0] /dev/sde1(256) [my_lv_rmeta_1] /dev/sdf1(0) [my_lv_rmeta_2] /dev/sdg1(0)
Quando você adiciona uma imagem a uma matriz RAID1, você pode especificar quais volumes físicos usar para a imagem. O seguinte comando converte o dispositivo RAID1 de 2 vias my_vg/my_lv
para um dispositivo RAID1 de 3 vias, especificando que o volume físico /dev/sdd1
seja usado para a matriz:
#lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices my_lv 56.00 my_lv_rimage_0(0),my_lv_rimage_1(0) [my_lv_rimage_0] /dev/sda1(1) [my_lv_rimage_1] /dev/sdb1(1) [my_lv_rmeta_0] /dev/sda1(0) [my_lv_rmeta_1] /dev/sdb1(0) #lvconvert -m 2 my_vg/my_lv /dev/sdd1
#lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices my_lv 28.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0) [my_lv_rimage_0] /dev/sda1(1) [my_lv_rimage_1] /dev/sdb1(1) [my_lv_rimage_2] /dev/sdd1(1) [my_lv_rmeta_0] /dev/sda1(0) [my_lv_rmeta_1] /dev/sdb1(0) [my_lv_rmeta_2] /dev/sdd1(0)
Para remover imagens de uma matriz RAID1, use o seguinte comando. Quando você remover imagens de um dispositivo RAID1 com o comando lvconvert
, você pode especificar o número total de imagens para o dispositivo resultante, ou você pode especificar quantas imagens a serem removidas do dispositivo. Você também pode especificar opcionalmente os volumes físicos dos quais remover o dispositivo.
lvconvert -m new_absolute_count vg/lv [removable_PVs] lvconvert -m -num_fewer_images vg/lv [removable_PVs]
Além disso, quando uma imagem e seu subvolume de metadados associado são removidos, quaisquer imagens de números mais altos serão deslocadas para baixo para preencher o espaço. Se você remover lv_rimage_1
de uma matriz RAID1 de 3 vias que consiste de lv_rimage_0
, lv_rimage_1
e lv_rimage_2
, isto resulta em uma matriz RAID1 que consiste de lv_rimage_0
e lv_rimage_1
. O subvolume lv_rimage_2
será renomeado e assumirá o slot vazio, tornando-se lv_rimage_1
.
O exemplo a seguir mostra o layout de um volume lógico RAID1 de 3 vias my_vg/my_lv
.
# lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices
my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
[my_lv_rimage_0] /dev/sde1(1)
[my_lv_rimage_1] /dev/sdf1(1)
[my_lv_rimage_2] /dev/sdg1(1)
[my_lv_rmeta_0] /dev/sde1(0)
[my_lv_rmeta_1] /dev/sdf1(0)
[my_lv_rmeta_2] /dev/sdg1(0)
O seguinte comando converte o volume lógico RAID1 de 3 vias em um volume lógico RAID1 de 2 vias.
#lvconvert -m1 my_vg/my_lv
#lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0) [my_lv_rimage_0] /dev/sde1(1) [my_lv_rimage_1] /dev/sdf1(1) [my_lv_rmeta_0] /dev/sde1(0) [my_lv_rmeta_1] /dev/sdf1(0)
O seguinte comando converte o volume lógico RAID1 de 3 vias em um volume lógico RAID1 de 2 vias, especificando o volume físico que contém a imagem a ser removida como /dev/sde1
.
#lvconvert -m1 my_vg/my_lv /dev/sde1
#lvs -a -o name,copy_percent,devices my_vg
LV Copy% Devices my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0) [my_lv_rimage_0] /dev/sdf1(1) [my_lv_rimage_1] /dev/sdg1(1) [my_lv_rmeta_0] /dev/sdf1(0) [my_lv_rmeta_1] /dev/sdg1(0)