User Tools

Site Tools


wiki:filesystem:lvm:rhcsa-lfcs

Praticando LVM - RHCSA-LFCS

Infraestrutura KVM

main.tf

terraform {
  required_providers {
    libvirt = {
      source = "dmacvicar/libvirt"
    }
  }
}
 
provider "libvirt" {
  uri = "qemu:///system"
}
 
resource "libvirt_volume" "os_image" {
  name   = "lvm-lfcs.qcow2"
  pool   = "default"
  source = "/home/gean/kvm/templates/ol8-amd64.qcow2"
  format = "qcow2"
}
 
data "template_file" "user_data" {
  template = file("${path.module}/cloud_init.yml")
}
 
resource "libvirt_cloudinit_disk" "cloudinit_resized" {
  name      = "cloudinit_resized.iso"
  user_data = data.template_file.user_data.rendered
  pool      = "default"
}
 
resource "libvirt_domain" "lvm-lfcs" {
  name   = "lvm-lfcs"
  memory = "2048"
  vcpu   = 2
 
  cpu {
    mode = "host-passthrough"
  }
 
  cloudinit = libvirt_cloudinit_disk.cloudinit_resized.id
 
  network_interface {
    network_name   = "default"
    wait_for_lease = true
  }
 
  console {
    type        = "pty"
    target_port = "0"
    target_type = "serial"
  }
 
  disk {
    volume_id = libvirt_volume.os_image.id
  }
 
  graphics {
    type        = "spice"
    listen_type = "none"
  }
}
 
output "ip" {
  value = libvirt_domain.lvm-lfcs.network_interface[0].addresses[0]
}

cloud_init.yml

#cloud-config
 
users:
  - name: gean
    gecos: "Gean Martins"
    sudo: "ALL=(ALL) NOPASSWD:ALL"
    shell: /bin/bash
    lock_passwd: false  
    ssh-authorized-keys:
      - ${file("~/.ssh/tfvms.pub")} 
 
ssh_pwauth: true  
 
chpasswd:
  list: |
     gean: $6$kp7ay8JwVMNBTlL1$xf/nfw3WWePI3PhzccOTaaNXiDVrhIBck6i4pKJ89897u3/xNbDXc5zf0LInnCN0HkP4A/jVbQVk3qTMt4hq/1 
  expire: false
 
 
runcmd:
  - hostnamectl set-hostname lvm-lfcs

Criando a infraestrutura

terraform init
terraform fmt
terraform validate
terraform plan
terraform apply

Adicionando novos discos

virsh list
 Id   Name       State
--------------------------
 1    lvm-lfcs   running
virsh vol-create-as --pool default --name lvm-lfcs-vdb.img --capacity 10G --format raw
virsh vol-create-as --pool default --name lvm-lfcs-vdc.img --capacity 10G --format raw
 
virsh attach-disk lvm-lfcs /home/gean/kvm/images/lvm-lfcs-vdb.img vdb --targetbus virtio --persistent
virsh attach-disk lvm-lfcs /home/gean/kvm/images/lvm-lfcs-vdc.img vdc --targetbus virtio --persistent
virsh domblklist lvm-lfcs
 Target   Source
-------------------------------------------------------
 vda      lvm-lfcs.qcow2
 vdb      /home/gean/kvm/images/lvm-lfcs-vdb.img
 vdc      /home/gean/kvm/images/lvm-lfcs-vdc.img
 hdd      /home/gean/kvm/images/cloudinit_resized.iso

Logical Volume Management (LVM)

Criando volume físico

ssh lvm-lfcs
lsblk | grep -E 'vdb|vdc'
vdb         252:16   0   10G  0 disk 
vdc         252:32   0   10G  0 disk 
sudo lvmdiskscan 
  /dev/vda1 [       1,00 GiB] 
  /dev/vda2 [     <15,00 GiB] LVM physical volume
  /dev/vdb  [      10,00 GiB] 
  /dev/vdc  [      10,00 GiB] 
  2 disks
  1 partition
  0 LVM physical volume whole disks
  1 LVM physical volume
sudo pvcreate /dev/vdb 
sudo pvcreate /dev/vdc
sudo pvs
  PV         VG Fmt  Attr PSize   PFree 
  /dev/vda2  ol lvm2 a--  <15,00g     0 
  /dev/vdb      lvm2 ---   10,00g 10,00g
  /dev/vdc      lvm2 ---   10,00g 10,00g
sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               ol
  PV Size               <15,00 GiB / not usable 3,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              3839
  Free PE               0
  Allocated PE          3839
  PV UUID               9WR60T-6MiC-cHbu-yg18-I1rF-HweP-lua8SQ
 
  "/dev/vdb" is a new physical volume of "10,00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdb
  VG Name               
  PV Size               10,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               mo1ytB-c2Ep-GPYv-FqhY-VbCe-4O04-iGv2Bm
 
  "/dev/vdc" is a new physical volume of "10,00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/vdc
  VG Name               
  PV Size               10,00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Ll8vYO-aBVb-qCPf-aRsa-6gSa-cDmk-QYv30Q

Para remover:

sudo pvremove /dev/vdb

Volumes físicos para grupos de volume

sudo vgcreate dados /dev/vdb /dev/vdc
sudo vgdisplay dados
  --- Volume group ---
  VG Name               dados
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19,99 GiB
  PE Size               4,00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19,99 GiB
  VG UUID               ZiJqqc-g5Nh-C59Q-aqfN-VpAn-dvgm-PoHVLv
sudo vgs
  VG    #PV #LV #SN Attr   VSize   VFree 
  dados   2   0   0 wz--n-  19,99g 19,99g
  ol      1   2   0 wz--n- <15,00g     0 
sudo pvs
  PV         VG    Fmt  Attr PSize   PFree  
  /dev/vda2  ol    lvm2 a--  <15,00g      0 
  /dev/vdb   dados lvm2 a--  <10,00g <10,00g
  /dev/vdc   dados lvm2 a--  <10,00g <10,00g

Criando volume lógico

sudo lvcreate -L 4G -n db dados
sudo lvcreate -L 512M -n web dados
sudo lvdisplay /dev/dados/db 
  --- Logical volume ---
  LV Path                /dev/dados/db
  LV Name                db
  VG Name                dados
  LV UUID                5GNlwp-Zi1t-dTrP-9zq0-Kpux-Ijj7-2z7Jlh
  LV Write Access        read/write
  LV Creation host, time lvm-lfcs, 2024-10-27 12:14:19 -0300
  LV Status              available
  # open                 0
  LV Size                4,00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
sudo lvdisplay /dev/dados/web 
  --- Logical volume ---
  LV Path                /dev/dados/web
  LV Name                web
  VG Name                dados
  LV UUID                7Ovshw-61dm-8AuA-E2eV-ddgi-JmsA-IcdgJL
  LV Write Access        read/write
  LV Creation host, time lvm-lfcs, 2024-10-27 12:14:54 -0300
  LV Status              available
  # open                 0
  LV Size                512,00 MiB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3
sudo vgdisplay dados
  --- Volume group ---
  VG Name               dados
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19,99 GiB
  PE Size               4,00 MiB
  Total PE              5118
  Alloc PE / Size       1152 / 4,50 GiB
  Free  PE / Size       3966 / 15,49 GiB
  VG UUID               ZiJqqc-g5Nh-C59Q-aqfN-VpAn-dvgm-PoHVLv
sudo vgs -o +lv_size,lv_name
  VG    #PV #LV #SN Attr   VSize   VFree  LSize   LV  
  dados   2   2   0 wz--n-  19,99g 15,49g   4,00g db  
  dados   2   2   0 wz--n-  19,99g 15,49g 512,00m web 
  ol      1   2   0 wz--n- <15,00g     0    1,60g swap
  ol      1   2   0 wz--n- <15,00g     0   13,39g root

Deletar volume lógico

sudo lvremove /dev/dados/web 
Do you really want to remove active logical volume dados/web? [y/n]: y
  Logical volume "web" successfully removed.
sudo vgdisplay dados
  --- Volume group ---
  VG Name               dados
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19,99 GiB
  PE Size               4,00 MiB
  Total PE              5118
  Alloc PE / Size       1024 / 4,00
 
 GiB
  Free  PE / Size       4094 / 15,99 GiB
  VG UUID               ZiJqqc-g5Nh-C59Q-aqfN-VpAn-dvgm-PoHVLv

Os comandos utilizados para os testes com o LVM são:

  • PV (Physical Volume)
    • pvs - saída resumida
    • pvscan - saída simples
    • pvdisplay - saída detalhada
  • VG (Volume Group)
    • vgs - saída resumida
    • vgscan - saída simples
    • vgdisplay - saída detalhada
  • LV (Logical Volume)
    • lvs - saída resumida
    • lvscan - saída simples
    • lvdisplay - saída detalhada

Sequência para remover um VG

sudo lvchange -an /dev/dados/db 
sudo lvremove /dev/dados/db 
 
sudo vgchange -an dados
sudo vgremove dados
 
sudo pvremove /dev/vdb 
sudo pvremove /dev/vdc
wiki/filesystem/lvm/rhcsa-lfcs.txt · Last modified: by Wiki Administrator