Logical Volume Manager
Programação de Sistemas LVM : 1/13
Introdução
• O sistema de partições montadas na hierarquia de directórios do Linux, revela uma rigidez excessiva:
– Obriga administradores a prever antecipadamente a dimensão de dados ocupada em cada partição, o que é impraticável nos directórios móveis (exemplo: /var, /home).
– A alteração do espaço de partições é tarefa administrativamente – A alteração do espaço de partições é tarefa administrativamente
laboriosa:
1. Copiar para “backup” as partições a alterar. 2. Eliminar e criar as partições a alterar. 3. Restaurar do “backup” as partições alteradas.
• A solução reside na virtualização dos dados, baseadas – no nó : LVM(Linux) ou LDM (Windows),
– no dispositivo de armazenamento: RAID, – na rede.
Arquitectura (1)
• O LVM – “Linux Virtual Management” gere volumes lógicos existentes por cima de volumes físicos (discos). • Os sistemas de ficheiros e aplicações não necessitam de
conhecer a organização dos volumes físicos.
Programação de Sistemas LVM : 3/13
Arquitectura (2)
[Def] Um LVG-Logival Volume Group é um conjunto de dispositivos físicos (discos ou partições).
O espaço dos volumes físicos é combinado no grupo, mas o grupo não é tratado como dispositivo.
/boot / /home /var Espaço livre Volumes lógicos
hda1 hda5
lvm/vg1
/boot / /home /var Espaço livre
Grupo de volumes lógicos Volumes lógicos
[Def] Um LV-Logical Volume é uma fracção do LVG, ao qual é alocado um “mount-point”.
Nota: o /boot é o único que não pode ser alocado a um LV porque o boot loader não o lê.
Programação de Sistemas
porque o boot loader não o lê.
• Um LVG pode facilmente ser alterado: • Expandido, por inclusão de mais volumes físicos.
• Encolhido, por remoção de volumes físicos não ocupados.
LVM : 5/13
Arquitectura (4)
[Def] Um LE-Logical Extent, tipicamente de 4MB, é o tamanho mínimo de alocação no LVG. Um PE-Physical Extent, é o tamanho de blocos de dados no dispositivo físico (LE=PE).
[Def] Um LV-Logical Group é uma fracção do LVG, [Def] Um LV-Logical Group é uma fracção do LVG,
constituída por múltiplos de LEs.
Exemplo: Seja um LVG mapeada a partições de dois discos duros
/dev/hda1(396MB=99PEs) e /dev/hdb1 (992MB=248PEs).
Arquitectura (5)
•
Existem 3 estratégias de mapear os LEs aos PEs
– Linear VG1 Programação de Sistemas LVM : 7/13 – Enfaixada (“Striped”) PV1 PV2 VG1 PV1 PV2
Arquitectura (6)
– Espelhada (“Mirrored”) VG1 PV1 PV2 Log• Detalhes de configuração, designados por metadata, são armazenado num ficheiro de texto. Existem 2 formatos: – lvm1: criado no kernel 2.4, restringe número máximo de LEs e
PEs a 255.
– lvm2 : criado no kernel 2.6
• Cópia do ficheiro metada em /etc/lvm/archive
1. Grupos (VG)
• Inicializar um grupo
/usr/sbin/vgcreate {-s DIM} vgID [disp+] -s determina a dimensão do LE (potências de 2, mínimo 1KB, por omissão
4MB)
Programação de Sistemas 4MB)
Um grupo é armazenado no /dev/ID e os volumes lógicos são criados seus subdirectórios.
vgcreate vg1 /dev/hda1 /dev/hdb1
cria o /dev/vg1: os volumes lógicos lv1 e lv2 são armazenados em /dev/vg1/lv1 e /dev/vg1/lv2.
• Alterar parâmetros de um grupo
/usr/sbin/vgchange param vgID
vgchange –l 128 vg1
numero máximo de LVs que o grupo pode contar passa a 128
LVM : 9/13
Gestão de LVMs (2)
• Listar os grupos existentes /usr/sbin/vgs
[root@asterix rgc]# vgs
VG #PV #LV #SN Attr VSize VFree VolGroup00 1 2 0 wz--n- 74.31G 32.00M
• Adicionar PVs ao grupo
/usr/sbin/vgextend vgID [disp+]
vgextend vg1 /dev/hda2
• Remover PVs vazios ao grupo com comando /usr/sbin/vgreduce vgID [disp+]
Gestão de LVMs (3)
• Listar propriedades de grupos
/usr/sbin/vgdisplay {grupos} [root@asterix rgc]# vgdisplay Volume group ---VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 Programação de Sistemas Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 74.31 GB PE Size 32.00 MB Total PE 2378 Alloc PE / Size 2377 / 74.28 GB Free PE / Size 1 / 32.00 MB VG UUID drW7yj-rzWI-M4Z0-EP8H-Cq48-nP0Z-3f31x3 LVM : 11/13
Gestão de LVMs (4)
2. Volumes lógicos (LV)
• Criar volume lógico linear
/usr/sbin/lvcreate –L dim {-n ID} vgID
-L determina a dimensão do volume lógico
-n determina o identificador do volume lógico (por omissão lvol#)
• Listar os volumes lógicos existentes /usr/sbin/lvs
[root@asterix rgc]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-ao 72.34G
3. Volumes físicos (PV)
• Preparar as partições /usr/sbin/pvcreate [disp+] pvcreate /dev/hda1 • Listar propriedades de PVs Programação de Sistemas • Listar propriedades de PVs /usr/sbin/pvdisplay [disp+][root@asterix Ficheiros]# pvdisplay /dev/sda2 Physical volume
---PV Name /dev/sda2 VG Name VolGroup00
PV Size 74.34 GB / not usable 24.49 MB Allocatable yes PE Size (KByte) 32768 Total PE 2378 Free PE 1 Allocated PE 2377 PV UUID 8iq8UU-jv03-xO6U-0He5-eMEy-jom1-NWfBeH LVM : 13/13