Um pouco sobre o RAID
NOTA # 1: Tenha cuidado ao configurar o LVM. Nas versões mais antigas, o RAID não era suportado e, portanto, era necessário configurar o RAID (mdadm) junto com o LVM. Configurar seus discos usando apenas o LVM para agrupá-los coloca seus dados em risco! É muito mais sensato criar um RAID usando os discos e, em seguida, colocar o LVM no topo da matriz RAID.
NOTA # 2: Em versões mais recentes do LVM, agora há uma funcionalidade RAID real incluída no LVM.
trecho da página da Wikipédia do LVM
features:
- Create RAID logical volumes (since recent LVM implementations, such as Red Hat Enterprise Linux v6 1): RAID1, RAID5, RAID6, etc.
- Stripe whole or parts of logical volumes across multiple PVs, in a fashion similar to RAID 0.
- Mirror whole or parts of logical volumes, in a fashion similar to RAID 1.
Exemplo
Da página lvcreate
man.
-
Cria um volume lógico de 5GiB RAID10 "vg00 / my_lv", com 2 faixas em 2 espelhos de 2 vias. Observe que os argumentos -i e -m se comportam de maneira diferente. O -i especifica o número de faixas. O -m especifica o número de cópias adicionais:
$ sudo lvcreate --type raid10 -L 5G -i 2 -m 1 -n my_lv vg00
-
O comando a seguir cria uma matriz RAID6 (3 faixas + 2 unidades de paridade implícitas) chamada my_lv no grupo de volume my_vg que tem tamanho 1G.
$ sudo lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
Sua pergunta sobre os UUIDs
Se você der uma olhada no arquivo lvm.conf
do seu sistema, geralmente armazenado aqui, /etc/lvm/lvm.conf
, você perceberá que existem regras que especificam quais dispositivos de bloco serão verificados.
trecho do meu sistema Fedora 19
# By default we accept every block device:
filter = [ "a/.*/" ]
# Exclude the cdrom drive
# filter = [ "r|/dev/cdrom|" ]
# When testing I like to work with just loopback devices:
# filter = [ "a/loop/", "r/.*/" ]
# Or maybe all loops and ide drives except hdc:
# filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
# Use anchors if you want to be really specific
# filter = [ "a|^/dev/hda8$|", "r/.*/" ]
As regras que começam com a|
adicionam dispositivos, as regras que começam com r|
removem os dispositivos da consideração.
NOTA: Você também pode descarregar a configuração usando o comando sudo lvm dumpconfig
. Isso mostrará a configuração atual.
$ sudo lvm dumpconfig | head -10
devices {
dir="/dev"
scan="/dev"
obtain_device_list_from_udev=1
preferred_names=["^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d"]
filter="a/.*/"
cache_dir="/etc/lvm/cache"
cache_file_prefix=""
write_cache_state=1
sysfs_scan=1
...
Um passeio por
Então, quando o seu sistema inicializa pela primeira vez, há um init / systemd / etc. serviço que inicia e invoca vgscan
. Este aplicativo usa o arquivo lvm.conf
para determinar quais dispositivos de bloco estão em jogo e quais não estão.
Você pode executar vgscan
com opções adicionais para ver o que está fazendo. É seguro executar este comando depois.
Exemplo
Para obter mais detalhes, adicione mais opções -v
para obter mais ou menos.
$ sudo vgscan -vvv |& less
etapa 1 - encontre dispositivos
Enquanto isso é executado, você pode ver como ele passa por todos os dispositivos de bloco da seguinte forma:
Wiping cache of LVM-capable devices
/dev/sda: Added to device cache
/dev/disk/by-id/ata-ST95005620AS_5YX1K0Q5: Aliased to /dev/sda in device cache
/dev/disk/by-id/wwn-0x5000c50044b84d12: Aliased to /dev/sda in device cache
/dev/sda1: Added to device cache
/dev/disk/by-id/ata-ST95005620AS_5YX1K0Q5-part1: Aliased to /dev/sda1 in device cache
/dev/disk/by-id/wwn-0x5000c50044b84d12-part1: Aliased to /dev/sda1 in device cache
/dev/disk/by-uuid/190ba40f-0c79-462c-b592-0b3d6450f40a: Aliased to /dev/sda1 in device cache
/dev/sda2: Added to device cache
Eventualmente, ele chegará a vários dispositivos que fazem parte de um LVM.
TH7Tn397qrQAETbHjeSaO0AwZk7zbm7r7NnkhRk9ndQ65S0K: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-swap in device cache
/dev/disk/by-uuid/5c863357-78a9-4e8d-a66a-c3bc25695ce8: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-swap in device cache
/dev/fedora_greeneggs/swap: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-swap in device cache (preferred name)
/dev/mapper/fedora_greeneggs-swap: Aliased to /dev/fedora_greeneggs/swap in device cache
/dev/dm-1: Added to device cache
/dev/disk/by-id/dm-name-fedora_greeneggs-root: Aliased to /dev/dm-1 in device cache (preferred name)
/dev/disk/by-id/dm-uuid-LVM-UHlsLRdlvpobBVb5TH7Tn397qrQAETbHH5YiQx0WJaOqsUAs7hyr5FK8r0i0fR8D: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-root in device cache
passo # 2 - encontre VG's
Em seguida, ele descobrirá quais VG (Volume Groups) estão presentes:
Setting name to fedora_greeneggs
Setting metadata/format to lvm2
Setting id to 6Cf2tN-ayiy-PIO7-44We-20vs-oTEt-QWS3JR
etapa 3 - identificar os VE's
Uma vez identificado o VG, ele procurará identificar o LV (Volumes Lógicos).
Allocated VG fedora_greeneggs at 0x206a1d0.
/dev/sda2 0: 0 1956: swap(0:0)
/dev/sda2 1: 1956 104353: home(0:0)
/dev/sda2 2: 106309 12800: root(0:0)
Found volume group "fedora_greeneggs" using metadata type lvm2
Neste ponto, o LVM (e seu sistema) agora identificaram quais dispositivos de bloco são membros de quais VGs.
UUIDs
Se você ainda não está convencido de que eles são usados em toda a pilha do LVM para identificar volumes físicos, grupos de volumes e volumes lógicos, você pode verificar a saída vgscan
procurando por cadeias de caracteres que sejam UUID.
Por exemplo, um dos LVs no meu LVM VG tem esse bit em seu UUID, 5ece678c
. A procura desta string em blkid
output, bem como de vgscan
, mostra isso:
$ blkid | grep 5ece678c
/dev/mapper/fedora_greeneggs-home: UUID="5ece678c-0382-4015-94e8-88c06ecdd872" TYPE="ext4"
$ sudo vgscan -vvv |& grep 5ece678c
/dev/disk/by-uuid/5ece678c-0382-4015-94e8-88c06ecdd872: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-home in device cache
O disco físico que faz parte desse VG tem esse bit em seu UUID, 6Cf2tN
:
$ blkid | grep 6Cf2tN
/dev/sda2: UUID="6Cf2tN-ayiy-PIO7-44We-20vs-oTEt-QWS3JR" TYPE="LVM2_member"
$ sudo vgscan -vvv |& grep 6Cf2tN
Setting id to 6Cf2tN-ayiy-PIO7-44We-20vs-oTEt-QWS3JR
O UUID do VG tem esse bit, UHlsLR
. Isso não será exibido na saída de blkid
, mas você pode usar vgs
para localizar os UUIDs de todos os VGs.
$ sudo vgs -v |& grep UHlsLR
fedora_greeneggs wz--n- 4.00m 1 3 0 465.27g 0 UHlsLR-dlvp-obBV-b5TH-7Tn3-97qr-QAETbH
$ sudo vgscan -vvv |& grep UHlsLR
/dev/disk/by-id/dm-uuid-LVM-UHlsLRdlvpobBVb5TH7Tn397qrQAETbHjeSaO0AwZk7zbm7r7NnkhRk9ndQ65S0K: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-swap in device cache
/dev/disk/by-id/dm-uuid-LVM-UHlsLRdlvpobBVb5TH7Tn397qrQAETbHH5YiQx0WJaOqsUAs7hyr5FK8r0i0fR8D: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-root in device cache
/dev/disk/by-id/dm-uuid-LVM-UHlsLRdlvpobBVb5TH7Tn397qrQAETbHF4nEeJnAPJdZG6gNAs8DRGW7FegWi5JI: Aliased to /dev/disk/by-id/dm-name-fedora_greeneggs-home in device cache
lvmcache: /dev/sda2: setting fedora_greeneggs VGID to UHlsLRdlvpobBVb5TH7Tn397qrQAETbH
Este último conjunto de comandos é interessante porque mostra o VGID UUID (VGID) junto com os LVs que estão dentro dele. Observe como o UUID para o VG é incorporado aos IDs do dispositivo /dev/disk/by-id/...
?
Indo mais longe
Se você é do tipo curioso, aconselho-o a dar uma olhada na saída de vgscan -vvv
para pelo menos se familiarizar com o conteúdo. Se mais tarde você quiser explorar as coisas mais do que você pode usar as ferramentas de linha de comando listadas na página da página man lvm
man para interagir com os vários níveis do LVM.
-
pvs
- volumes físicos
-
vgs
- grupos de volumes
-
lvs
- volumes lógicos
Existe toda uma série de outras ferramentas, estas são algumas das mais comuns.
Referências