Pesquisa de site

Configure sistemas para montar sistemas de arquivos na inicialização por ID universalmente exclusivo (UUID) ou rótulo - Preparação do objetivo RHCSA


Embora no mundo dos desktops raramente troquemos nosso disco rígido – e isso é principalmente indicado por falhas de hardware – no mundo dos servidores não é incomum que o ambiente de armazenamento subjacente mude com o tempo.

Em um ambiente SAN (Storage Area Network), para Alta Disponibilidade, um servidor pode chegar ao seu armazenamento através de vários caminhos, na realidade distribuídos e espelhados em vários discos na rede de armazenamento. Se alguns caminhos mudarem, o servidor precisará identificar o “disco” novamente. É por isso que é recomendado usar identificadores especiais definidos no dispositivo e montar por esses identificadores, não pelo nome do dispositivo, que pode mudar. Nesta parte do tutorial de preparação para o exame RHCSA, adicionaremos um novo disco à nossa máquina de teste e configuraremos a montagem por UUID (Universally Unique IDentifier) e por rótulo.

Neste tutorial você aprenderá:

  • Como obter o UUID de um determinado dispositivo

  • Como obter e definir o rótulo de um dispositivo

  • Como montar o dispositivo por UUID

  • Como montar o dispositivo por etiqueta

Montando sistema de arquivos por rótulo.

Introdução da configuração

Nossa máquina de teste é uma máquina virtual simples rodando RHEL 8. O sistema operacional é instalado em /dev/sda, um disco rígido virtual de 15 GB. Para ter um disco livre para ser utilizado, adicionamos outro disco virtual à máquina, que aparece como /dev/sdb com tamanho de 2 GB. Particionamos o disco usando fdisk, criando uma única partição que ocupa todo o novo disco. Criamos um sistema de arquivos ext4 sobre essa partição, usando mkfs.ext4. Esta será nossa configuração de demonstração.

Como obter o UUID de um determinado dispositivo

Para listar o UUID dos dispositivos presentes em nosso sistema, abriremos um terminal e usaremos blkid:

# blkid
/dev/sda1: UUID="eef3b378-5272-45f4-ab41-97eb48bda63f" TYPE="xfs" PARTUUID="3c939719-01"
/dev/sda2: UUID="rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH" TYPE="LVM2_member" PARTUUID="3c939719-02"
/dev/sr0: UUID="2019-10-10-18-52-14-12" LABEL="VBox_GAs_6.0.14" TYPE="iso9660"
/dev/mapper/rhel-root: UUID="9ba9c1f7-40d7-4eb2-a66b-7b27905d8011" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="c08948ec-2320-4155-92d5-2c9364ccb99b" TYPE="swap"
/dev/sdb: UUID="17c1210c-8a88-42d6-b394-03f491415d5c" TYPE="ext4"

A saída em negrito indica nosso novo disco e também o UUID que procuramos.

Como obter e definir o rótulo de um dispositivo

Podemos imprimir a etiqueta do nosso dispositivo com e2label. Em nosso estado atual, a saída pode ser enganosa, porque nenhum rótulo foi definido até o momento para este dispositivo.

# e2label /dev/sdb

A linha vazia não indica erro, mas sim que o atributo label ainda não está definido neste dispositivo. O mesmo utilitário é capaz de definir o rótulo. A sintaxe é e2label :

# e2label /dev/sdb "small_disk"

Outra consulta mostrará o novo conjunto de rótulos:

# e2label /dev/sdb                                                                                                                                                                       
small_disk

Além disso, o utilitário blkid que usamos anteriormente também apresentará o rótulo recém-definido:

# blkid | grep sdb
/dev/sdb: LABEL="small_disk" UUID="17c1210c-8a88-42d6-b394-03f491415d5c" TYPE="ext4"

Como montar o dispositivo por UUID

Usar UUID para montar é a forma recomendada, portanto, em uma instalação padrão do RHEL8, já podemos encontrar um exemplo de como fazer isso. Se não modificamos as opções de disco na instalação, o dispositivo de inicialização provavelmente será montado por UUID. A configuração para montagem está no arquivo /etc/fstab, que podemos imprimir neste exemplo.

# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Oct 28 13:22:28 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=eef3b378-5272-45f4-ab41-97eb48bda63f /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

Na saída acima podemos ver a sintaxe que precisamos usar para montar nosso disco por UUID. Usando um editor de texto, podemos adicionar a seguinte nova entrada fstab ao final do arquivo:

UUID=17c1210c-8a88-42d6-b394-03f491415d5c /mnt/new_disk ext4    defaults        0 0

Observe que o exemplo acima usa o mesmo UUID listado com blkid na seção anterior. Será diferente em qualquer outro sistema.

Também precisaremos que o ponto de montagem exista, então criaremos o diretório que mencionamos na entrada acima:

# mkdir /mnt/new_disk

Com o caminho para montar, o modo de montar e o sistema de arquivos para montar pronto, tudo o que precisamos fazer é montar o dispositivo:

# mount /mnt/new_disk/

Na montagem bem-sucedida, podemos encontrar nosso sistema de arquivos ext4 de 2 GB no ponto de montagem especificado. O comando mount sem argumentos listará todos os sistemas de arquivos montados, e podemos usar grep para encontrar a linha na qual estamos particularmente interessados.

# mount | grep sdb
/dev/sdb on /mnt/new_disk type ext4 (rw,relatime,seclabel)

Também podemos usar o utilitário df para verificar o sistema de arquivos montado:

# df -h /mnt/new_disk/
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb        2.0G  6.0M  1.8G   1% /mnt/new_disk

Montando o sistema de arquivos usando UUID como identificador em /etc/fstab

Finalmente, podemos desmontar o sistema de arquivos para nos preparar para a próxima etapa:

# umount /mnt/new_disk

Como montar o dispositivo por etiqueta

Montar o sistema de arquivos por rótulo é praticamente o mesmo. Com o rótulo já definido, podemos referenciá-lo em /etc/fstab. Se estiver executando esta etapa com o mesmo dispositivo, lembre-se de remover a referência UUID adicionada na etapa anterior antes de adicionar outra que use rótulo:

LABEL=small_disk /mnt/new_disk  ext4    defaults        0 0

Podemos montar o dispositivo da mesma forma que com UUID, especificando o ponto de montagem:

# mount /mnt/new_disk/

Isso é possível por causa da entrada fstab que o comando mount usa. Também podemos montar por rótulo diretamente usando o sinalizador -L:

# mount -L small_disk /mnt/new_disk

Usamos o mesmo disco com a opção UUID e rótulo, portanto seu conteúdo será o mesmo. Podemos gravar dados nele, desmontá-los e montá-los novamente usando o outro método, os dados nele permanecerão os mesmos. Observe que este seria o caso se o disco fosse entregue a outra máquina (que pode já ter um dispositivo /dev/sdb).

Exercícios

  1. Crie um disco rotulado, adicione alguns dados de teste, remova o disco do sistema e adicione-o a outra máquina. A nova máquina pode ver os dados no disco?

  2. Crie um ponto de montagem UUID, desmonte o sistema de arquivos, recrie-o e verifique o UUID. Você pode usar a mesma entrada fstab para o novo sistema de arquivos?

  3. Crie um ponto de montagem de rótulo, desmonte o sistema de arquivos, recrie-o e rotule-o com o mesmo nome. A entrada fstab baseada em rótulo ainda é válida?

  4. Tente rotular dois discos diferentes com o mesmo nome. Você pode montá-los?

Artigos relacionados: