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
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?
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?
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?
Tente rotular dois discos diferentes com o mesmo nome. Você pode montá-los?