15. Gerenciamento de armazenamento e discos no Ubuntu Server: guia simples

Introdução

Gerenciar o armazenamento e os discos no Ubuntu Server é uma habilidade fundamental para administradores, especialmente em ambientes dinâmicos como plataformas de nuvem (AWS, Azure, Google Cloud) ou plataformas de virtualização (VMware, Hyper-V, Proxmox). Tarefas como expandir discos do sistema operacional, inicializar discos de dados ou otimizar configurações de armazenamento são cenários comuns. Embora as ferramentas de automação geralmente simplifiquem esses processos, ter uma compreensão sólida das etapas subjacentes é essencial para uma solução de problemas eficaz e intervenção manual.

Neste guia, vamos explorar o gerenciamento de armazenamento e discos no Ubuntu Server, incluindo tipos de sistemas de arquivos, particionamento, formatação e otimização de disco. Com exemplos práticos adaptados tanto para ambientes físicos quanto virtualizados, este guia fornecerá o conhecimento para lidar com as tarefas de gerenciamento de armazenamento de forma eficiente.


Artigos anteriores:

01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud

02. Como configurar seu primeiro servidor Ubuntu: guia para iniciantes – SysOSX: AI & Cloud

03. Dominando a linha de comando do Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gerenciamento de usuários e permissões no Ubuntu Server: guia completo – SysOSX: AI & Cloud

05. Fundamentos de rede para Ubuntu Server: guia completo – SysOSX: AI & Cloud

06. Instalação e gerenciamento de software no Ubuntu Server: guia completo – SysOSX: AI & Cloud

07. Aplicar patches e atualizar o Ubuntu Server: guia completo – SysOSX: AI & Cloud

08. Protegendo seu servidor Ubuntu: etapas práticas de reforço e proteção – SysOSX: AI & Cloud

09. Auditoria e registro do servidor Ubuntu

10. Ferramentas de monitoramento de sistema para Ubuntu Server: guia completo – SysOSX: AI & Cloud

11. Registro centralizado para o servidor Ubuntu: um guia indispensável – SysOSX: AI & Cloud

12. Auditoria e conformidade para Ubuntu Server: práticas recomendadas – SysOSX: AI & Cloud

13. Configurando seu servidor Ubuntu para hospedagem e aplicativos web: guia definitivo – SysOSX: AI & Cloud

14. Hospede vários sites em um único servidor Ubuntu: dicas úteis – SysOSX: AI & Cloud



Compreendendo os tipos de sistemas de arquivos

Um sistema de arquivos define como os dados são armazenados e acessados em um disco. Escolher o sistema de arquivos certo é crucial para o desempenho, a confiabilidade e a compatibilidade. Abaixo estão os sistemas de arquivos mais comuns para servidores Ubuntu:

Sistemas de arquivos comuns para o Ubuntu

  1. Ext4 (quarto sistema de arquivos estendido)
    • Sistema de arquivos padrão para servidores Ubuntu.
    • Oferece journaling, suporte a arquivos grandes e excelente desempenho.
    • Ideal para cargas de trabalho de uso geral.
    • Comando para formatar: sudo mkfs.ext4 /dev/sdX1
  2. XFS
    • Sistema de arquivos com journaling de alto desempenho, projetado para arquivos grandes e cargas de trabalho de E/S intensivas.
    • Comumente usado em ambientes corporativos e de nuvem.
    • Comando para formatar: sudo mkfs.xfs /dev/sdX1
  3. Btrfs (sistema de arquivos B-Tree)
    • Sistema de arquivos avançado que oferece suporte a snapshots, compactação de dados e recursos RAID.
    • Adequado para cargas de trabalho complexas e ambientes que exigem backups frequentes.
  4. NTFS
    • Usado principalmente por compatibilidade com ambientes Windows.
    • Útil para sistemas de inicialização dupla ou discos compartilhados entre Linux e Windows.
  5. FAT32 e exFAT
    • Sistemas de arquivos leves usados para unidades removíveis e compatibilidade multiplataforma.

Escolhendo o sistema de arquivos certo

  • Ext4: Cargas de trabalho de uso geral.
  • XFS: Cargas de trabalho de alto desempenho em ambientes corporativos ou de nuvem.
  • Btrfs: Recursos avançados como snapshots e compactação.
  • NTFS/FAT32: Compatibilidade multiplataforma.

Particionando discos no Ubuntu Server

O particionamento divide um disco físico em seções lógicas, permitindo uma melhor organização e gerenciamento dos dados. Isso é particularmente útil para separar arquivos de sistema, backups e dados de aplicativos.

Etapas para particionar um disco no Ubuntu Server

  • Identifique o disco:
    Use o comando lsblk  para listar todos os discos disponíveis e suas partições: lsblk
  • Crie uma partição:
    Use fdisk ou parted para criar uma nova partição. Exemplo usando fdisk: sudo fdisk /dev/sdX
    • Pressione n para criar uma nova partição.
    • Especifique o tamanho e o tipo da partição.
    • Pressione w para gravar as alterações no disco.
  • Verifique a partição:
    Execute lsblk  novamente para confirmar que a nova partição foi criada.

Formatando discos de dados no Ubuntu Server

A formatação prepara uma partição para uso criando um sistema de arquivos.

Etapas para formatar um disco de dados no Ubuntu Server

  • Instale as ferramentas necessárias:
    Certifique-se de ter o utilitário mkfs  instalado (incluído por padrão na maioria das distribuições).
  • Formate a partição:
    Use o comando mkfs para formatar a partição. Exemplo: sudo mkfs.ext4 /dev/sdX1
  • Crie um ponto de montagem:
    Nota importante: Em ambientes de nuvem, evite usar /mnt como ponto de montagem. O diretório /mnt costuma ser reservado para discos temporários em plataformas de nuvem (como Azure ou AWS), que podem ser apagados durante reinicializações ou atualizações do sistema. Em vez disso, use um diretório personalizado como /data ou /storage. Exemplo:
sudo mkdir /data
  • Monte a partição:
    Monte a partição formatada no diretório recém-criado:
sudo mount /dev/sdX1 /data
  • Persista a montagem:
    Para garantir que a partição seja montada automaticamente na inicialização, adicione-a ao arquivo /etc/fstab:
echo '/dev/sdX1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab  

Persistindo a montagem: use UUID em ambientes de nuvem

Para garantir que a partição seja montada automaticamente na inicialização, adicioná-la ao arquivo /etc/fstab é essencial. No entanto, em ambientes de nuvem, recomenda-se usar o UUID (identificador único universal) para montar discos em vez de referenciar diretamente o nome do dispositivo (por exemplo, /dev/sdX1). Os nomes de dispositivos podem mudar após uma reinicialização do sistema, especialmente em ambientes virtualizados ou de nuvem, o que pode levar a falhas de montagem. O uso de UUIDs garante uma montagem consistente e confiável.

Etapas para persistir a montagem usando UUID

  • Encontre o UUID da partição:
    Use o comando blkid para obter o UUID da partição:
sudo blkid
  • Exemplo de saída:
/dev/sdX1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
  • Edite o arquivo /etc/fstab:
    Adicione uma entrada ao arquivo /etc/fstab usando o UUID em vez do nome do dispositivo.
    Exemplo: echo 'UUID=123e4567-e89b-12d3-a456-426614174000 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
  • Verifique a configuração:
    Teste a configuração desmontando a partição e remontando-a com o comando mount -a:
sudo umount /data  
sudo mount -a  

  • Reinicie e confirme:
    Reinicie o sistema para garantir que o disco seja montado corretamente durante a inicialização: sudo reboot

Por que usar UUID em ambientes de nuvem?

  • Consistência: Nomes de dispositivos como /dev/sdX podem mudar após uma reinicialização devido à enumeração dinâmica de dispositivos em plataformas de nuvem.
  • Confiabilidade: UUIDs são únicos para cada partição e permanecem constantes, garantindo uma montagem confiável.
  • Boa prática: Provedores de nuvem como AWS, Azure e Google Cloud recomendam o uso de UUIDs ou rótulos para montar discos em ambientes de produção.

Cenários de nuvem e virtualização: expansão e inicialização de discos

Cenário 1: expansão do disco do SO

Em plataformas de nuvem como AWS, Azure ou Google Cloud, os discos do SO podem ser expandidos a partir da camada física. Muitas plataformas detectam e expandem automaticamente o disco do SO. No entanto, pode ser necessária intervenção manual para redimensionar o sistema de arquivos e utilizar o novo espaço.

Etapas para expandir o disco do SO no Ubuntu Server:

  1. Verifique o espaço em disco:
    Verifique o espaço em disco expandido com lsblk: lsblk
  2. Redimensione o sistema de arquivos:
    Use resize2fs  para sistemas de arquivos Ext4: sudo resize2fs /dev/sdX1

Cenário 2: inicialização do disco de dados, consulte a seção anterior


Monitorando e otimizando o uso do disco

Monitorando o uso do disco

  1. Verifique o uso do espaço em disco:
    Use o comando df para exibir o uso do espaço em disco: df -h
  2. Analise o uso de diretórios:
    Use o comando du para verificar o tamanho de diretórios específicos: du -sh /var/log
  3. Monitoramento avançado:
    Instale ncdu para análise interativa do uso do disco:
sudo apt install ncdu 
ncdu /

Otimizando o uso do disco

  • Remova arquivos temporários:
sudo apt-get autoclean  
sudo apt-get clean  
sudo apt-get autoremove  

  • Encontre arquivos grandes que consomem espaço em disco
    Localize arquivos grandes com o find comando:
sudo find / -type f -size +100M

Referências

No próximo artigo, vamos nos aprofundar em a configuração de um servidor de banco de dados em servidores Ubuntu. Você aprenderá a:

  • Instale e configure MySQL ou MariaDB para seus aplicativos.
  • Proteja seu servidor de banco de dados para salvaguardar dados confidenciais.
  • Otimize o desempenho do banco de dados para ambientes de produção.

Seja implantando bancos de dados na nuvem ou localmente, este guia fornecerá informações práticas para ajudá-lo a gerenciar com eficácia sua infraestrutura de banco de dados.

Não perca — fique atento!