Linux LVM pode combinar vários volumes físicos em um grupo e distribuir o espaço deste grupo entre volumes lógicos.
Se alguns dispositivos lentos forem adicionados ao grupo, isso poderá tornar todos os volumes lógicos mais lentos. Existe uma maneira de adicionar um dispositivo, mas permitir que o sistema o use apenas em caso de fome?
Responder1
Isso depende do tipo de striping que você deseja usar. Você pode controlar como os volumes lógicos abrangerão os volumes físicos por uma ordem de criação de LV e adição de PV. Por exemplo:
- adicionar
pv0
- criar
lv0
- adicionar
pv1
- criar
lv1
Então, agora se lv0
spans whole pv0
, lv1
irá span pv1
(no caso de distribuição linear). O sistema de arquivos usará os blocos primeiro no início do dispositivo, portanto, no caso linear, se o FS abranger vários PV, o último PV só será usado se o sistema de arquivos estiver cheio o suficiente.
Se precisar de distribuição não linear em dispositivos rápidos, você poderá criar VG somente com esses dispositivos. Em seguida, crie o raid LV nele. Então use este LV como PV. Ou seja, crie VG de segundo nível a partir de LV. E então adicione um dispositivo lento a este VG de segundo nível de forma linear.
Responder2
Os comandos lvcreate
e lvextend
possuem um parâmetro opcional que permite especificar qual pv usar (o pv deve fazer parte do vg).
Por exemplo:
Cria um volume lógico linear "vg00/lvol1" usando extensões físicas /dev/sda:0-7 e /dev/sdb:0-7 para alocação de extensões:
lvcreate -L 64M -n lvol1 vg00 /dev/sda:0-7 /dev/sdb:0-7
Estende o tamanho do volume lógico "vg01/lvol10" em 54 MiB no volume físico /dev/sdk3. Isso só é possível se /dev/sdk3 for membro do grupo de volumes vg01 e houver extensões físicas livres suficientes nele:
lvextend -L +54 /dev/vg01/lvol10 /dev/sdk3