Utilizando o System Storage Manager para gerenciar volumes LVM no Oracle Linux 8


O LVM (Logical Volume Manager) é um gerenciador de volume lógico que permite criar backup de imagens, criar e redimensionar volumes de discos lógicos. Possibilitando uma maior flexibilidade para a administração e gerenciamento de áreas em disco.

Acontece que o gerenciamento do LVM não é tão simples e necessita da utilização de várias ferramentas de linha comando, comparado ao gerenciamento de partições tradicionais.

Uma boa noticia é que a a partir da versão 7 do Oracle Linux e versões baseadas no Kernel Red Hat versão 7, é disponibilizado em seu repositório o System Storage Manager (ssm). O SSM é uma interface unificada que permite aos usuários o gerenciamento de LVM de forma simplificada, através de uma única linha de comando.

Neste artigo, será abordado processo de instalação do ssm e a utilização do mesmo para criação e montagem de um volume lógico em uma máquina com o Oracle Linux 8.7.

Para a instalação será utilizado o comando yum install system-storage-manager.

[root@lamimtst tmp]# yum list system-storage-manager
Last metadata expiration check: 3:34:01 ago on Thu 12 Jan 2023 02:00:20 PM -03.
Available Packages
system-storage-manager.noarch                                                                   1.4-1.el8                                                                   ol8_baseos_latest
system-storage-manager.src                                                                      1.4-1.el8                                                                   ol8_baseos_latest
[root@lamimtst tmp]# 
[root@lamimtst tmp]# yum install system-storage-manager
Last metadata expiration check: 3:34:50 ago on Thu 12 Jan 2023 02:00:20 PM -03.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                              Architecture                         Version                                     Repository                                       Size
=============================================================================================================================================================================================
Installing:
 system-storage-manager                               noarch                               1.4-1.el8                                   ol8_baseos_latest                               145 k
Installing dependencies:
 python3-pwquality                                    x86_64                               1.4.4-5.el8                                 ol8_baseos_latest                                20 k

Transaction Summary
=============================================================================================================================================================================================
Install  2 Packages

Total download size: 165 k
Installed size: 534 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): python3-pwquality-1.4.4-5.el8.x86_64.rpm                                                                                                               53 kB/s |  20 kB     00:00
(2/2): system-storage-manager-1.4-1.el8.noarch.rpm                                                                                                           373 kB/s | 145 kB     00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        422 kB/s | 165 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                     1/1
  Installing       : python3-pwquality-1.4.4-5.el8.x86_64                                                                                                                                1/2
  Installing       : system-storage-manager-1.4-1.el8.noarch                                                                                                                             2/2
  Running scriptlet: system-storage-manager-1.4-1.el8.noarch                                                                                                                             2/2
  Verifying        : python3-pwquality-1.4.4-5.el8.x86_64                                                                                                                                1/2
  Verifying        : system-storage-manager-1.4-1.el8.noarch                                                                                                                             2/2

Installed:
  python3-pwquality-1.4.4-5.el8.x86_64                                                        system-storage-manager-1.4-1.el8.noarch

Complete!
[root@lamimtst tmp]#

Concluída a instalação serão listadas as partições existentes através do comando ssm list

[root@lamimtst ~]# ssm list
---------------------------------------------------------------
Device        Free      Used      Total  Pool       Mount point
---------------------------------------------------------------
/dev/sda                       46.58 GB             PARTITIONED
/dev/sda1                     100.00 MB             /boot/efi
/dev/sda2                       1.00 GB             /boot
/dev/sda3  0.00 KB  45.47 GB   45.48 GB  ocivolume
/dev/sdb                      500.00 GB             /orabackup
---------------------------------------------------------------
-------------------------------------------------------
Pool       Type  Devices     Free      Used     Total
-------------------------------------------------------
ocivolume  lvm   1        0.00 KB  45.47 GB  45.47 GB
-------------------------------------------------------
---------------------------------------------------------------------------------------------
Volume               Pool       Volume size  FS       FS size       Free  Type    Mount point
---------------------------------------------------------------------------------------------
/dev/ocivolume/root  ocivolume     35.47 GB  xfs     35.46 GB   26.19 GB  linear  /
/dev/ocivolume/oled  ocivolume     10.00 GB  xfs      9.99 GB    9.89 GB  linear  /var/oled
/dev/sda1                         100.00 MB  vfat                         part    /boot/efi
/dev/sda2                           1.00 GB  xfs   1014.00 MB  412.18 MB  part    /boot
/dev/sdb                          500.00 GB  xfs    499.76 GB  491.24 GB          /orabackup
---------------------------------------------------------------------------------------------
[root@lamimtst ~]#

No exemplo acima, temos dois discos físicos (/dev/sda e /dev/sdb), um storage pool chamado ocivolume e dois volumes LVM criados nesse pool (/ e /var/oled). Vamos adicionar um novo disco da maquina e criar um novo pool com um LVM chamado /lvmtst (o processo de adição do disco físico não é abordado neste artigo).

Após adicionar o novo disco físico, ao listar novamente as partições podemos constatar que agora existe o disco /dev/sdc com 50GB.

[root@lamimtst ~]#
[root@lamimtst ~]# ssm list
---------------------------------------------------------------
Device        Free      Used      Total  Pool       Mount point
---------------------------------------------------------------
/dev/sda                       46.58 GB             PARTITIONED
/dev/sda1                     100.00 MB             /boot/efi
/dev/sda2                       1.00 GB             /boot
/dev/sda3  0.00 KB  45.47 GB   45.48 GB  ocivolume
/dev/sdb                      500.00 GB             /orabackup
/dev/sdc                       50.00 GB
---------------------------------------------------------------
-------------------------------------------------------
Pool       Type  Devices     Free      Used     Total
-------------------------------------------------------
ocivolume  lvm   1        0.00 KB  45.47 GB  45.47 GB
-------------------------------------------------------
---------------------------------------------------------------------------------------------
Volume               Pool       Volume size  FS       FS size       Free  Type    Mount point
---------------------------------------------------------------------------------------------
/dev/ocivolume/root  ocivolume     35.47 GB  xfs     35.46 GB   26.19 GB  linear  /
/dev/ocivolume/oled  ocivolume     10.00 GB  xfs      9.99 GB    9.89 GB  linear  /var/oled
/dev/sda1                         100.00 MB  vfat                         part    /boot/efi
/dev/sda2                           1.00 GB  xfs   1014.00 MB  412.18 MB  part    /boot
/dev/sdb                          500.00 GB  xfs    499.76 GB  491.24 GB          /orabackup
---------------------------------------------------------------------------------------------
[root@lamimtst ~]#

Através do ssm vamos criar uma pool chamado vg_tstlvm e um lvm chamado lv_tstlvm no formato xfs, utilizando o disco /dev/sdc. Para isso será utilizado o comando ssm create -p <nome_do_pool> -n <nome_do_lvm> --fs <formato_do_disco> <disco> <mount_point_name>.

[root@lamimtst ~]#
[root@lamimtst ~]# ssm create -p vg_tstlvm -n lv_tstlvm --fs xfs /dev/sdc /tstlvm
  Physical volume "/dev/sdc" successfully created.
  Volume group "vg_tstlvm" successfully created
  Logical volume "lv_tstlvm" created.
meta-data=/dev/vg_tstlvm/lv_tstlvm isize=512    agcount=4, agsize=3276544 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13106176, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=25600, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
Directory '/tstlvm' does not exist! Create (Y/n/q) ? Y
[root@lamimtst ~]#
[root@lamimtst ~]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
devtmpfs                         7.7G     0  7.7G   0% /dev
tmpfs                            7.7G     0  7.7G   0% /dev/shm
tmpfs                            7.7G  8.7M  7.7G   1% /run
tmpfs                            7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/mapper/ocivolume-root        36G  9.3G   27G  27% /
/dev/sda2                       1014M  602M  413M  60% /boot
/dev/sda1                        100M  5.0M   95M   6% /boot/efi
/dev/mapper/ocivolume-oled        10G  108M  9.9G   2% /var/oled
/dev/sdb                         500G  8.6G  492G   2% /orabackup
tmpfs                            1.6G     0  1.6G   0% /run/user/0
tmpfs                            1.6G     0  1.6G   0% /run/user/987
tmpfs                            1.6G     0  1.6G   0% /run/user/1000
/dev/mapper/vg_tstlvm-lv_tstlvm   50G  389M   50G   1% /tstlvm
[root@lamimtst ~]#

***Veja que a partição foi criada e já foi montada. Porém é necessário adicionar a entrada no fstab para que seja montada automaticamente na inicialização do servidor.***

O próximo passo será estender o LVM anteriormente com um novo disco que foi adicionado ao servidor (/dev/sdd). Para isso iremos adicionar esse disco ao pool vg_tstlvm.

[root@lamimtst ~]# ssm add -p vg_tstlvm /dev/sdd
  Physical volume "/dev/sdd" successfully created.
  Volume group "vg_tstlvm" successfully extended
[root@lamimtst ~]#

Após adicionar o novo disco (/dev/sdd) ao pool vg_tstlvm é possível utilizar essa área adicionada para estender as partições LVM criadas neste pool. Neste exemplo, vamos estender o filesystem /tstlvm em 20GB através do comando ssm resize -s <tamanho> <volume>.

[root@lamimtst ~]#
[root@lamimtst ~]# ssm resize -s+20GB /dev/vg_tstlvm/lv_tstlvm
  Size of logical volume vg_tstlvm/lv_tstlvm changed from <50.00 GiB (12799 extents) to <70.00 GiB (17919 extents).
  Logical volume vg_tstlvm/lv_tstlvm successfully resized.
meta-data=/dev/mapper/vg_tstlvm-lv_tstlvm isize=512    agcount=4, agsize=3276544 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13106176, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=25600, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13106176 to 18349056
[root@lamimtst ~]#


Remover o volume ou o storage pool é tão fácil quanto cria-lo. Para  remover o volume, bastaexecutar o comando ssm remove <volume>. Se a unidade estiver montada, ela será automaticamente desmontada antes de ser removida.

[root@lamimtst ~]#
[root@lamimtst ~]# ssm remove /dev/vg_tstlvm/lv_tstlvm
Device '/dev/vg_tstlvm/lv_tstlvm' is mounted on '/tstlvm' Unmount (N/y/q) ? Y
Do you really want to remove active logical volume vg_tstlvm/lv_tstlvm? [y/n]: y
  Logical volume "lv_tstlvm" successfully removed.
[root@lamimtst ~]#

Para a remoção do storage pool é usado o comando ssm remove <pool_name>.

[root@lamimtst ~]# ssm remove vg_tstlvm
  Volume group "vg_tstlvm" successfully removed



Comentários