Capítulo 3.8 - Tipos de Sistemas de Arquivos
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender os diferentes tipos de sistemas de arquivos
- Identificar os sistemas de arquivos mais comuns
- Escolher o sistema de arquivos adequado para cada caso
- Entender sistemas de arquivos especiais
O que é um Sistema de Arquivos?
Um sistema de arquivos (File System) define como os dados são organizados e armazenados em um disco. O Linux suporta diversos tipos de sistemas de arquivos.
Sistemas de Arquivos Locais
ext4 (Fourth Extended)
O mais comum no Linux:
Características:
- Journaling: Resistente a falhas
- Tamanho máx: 1EB (exabyte)
- Arquivo máx: 16TB
- Estável e maduro
Uso:
- Sistema de arquivos padrão
- Discos locais
- Servidores generalistas
Comandos:
# Criar
mkfs.ext4 /dev/sda1
# Verificar
fsck.ext4 /dev/sda1
# Ver informações
tune2fs -l /dev/sda1
xfs
Desempenho para arquivos grandes:
Características:
- Muito rápido para arquivos grandes
- Tamanho máx: 8EB
- Arquivo máx: 8EB
- Alocação dinâmica
Uso:
- Bancos de dados
- Arquivos volumosos
- Servidores de alta performance
Comandos:
# Criar
mkfs.xfs /dev/sda1
# Verificar
xfs_repair /dev/sda1
# Ver informações
xfs_info /dev/sda1
btrfs (B-Tree File System)
Funcionalidades avançadas:
Características:
- Snapshots: Instantâneos
- Compressão: Transparente
- Copy-on-Write: Eficiente
- RAID integrado
Uso:
- Sistemas que precisam de snapshots
- Backups
- Ambientes de desenvolvimento
Comandos:
# Criar
mkfs.btrfs /dev/sda1
# Criar um snapshot
btrfs subvolume snapshot /mnt/data /mnt/data/snapshot1
# Compressão
mount -o compress=zlib /dev/sda1 /mnt
Comparação
| FS | Tamanho Máx | Arquivo Máx | Journal | Uso |
|---|---|---|---|---|
| ext4 | 1EB | 16TB | Sim | Geral |
| xfs | 8EB | 8EB | Sim | Arquivos grandes |
| btrfs | 16EB | 16EB | Sim | Avançado |
Sistemas de Arquivos de Rede
NFS (Network File System)
Compartilhamento de arquivos em rede:
# Servidor: Exportar
# /etc/exports
/home/user1 192.168.1.0/24(rw,sync)
# Cliente: Montar
mount -t nfs server:/home/user1 /mnt/nfs
Uso:
- Compartilhamento de arquivos entre sistemas Unix/Linux
- Servidores de arquivos centralizados
CIFS/SMB
Compatível com Windows:
# Montar um compartilhamento Windows
mount -t cifs //server/share /mnt/smb -o username=user
Uso:
- Compartilhamento entre plataformas
- Compatibilidade com Windows
Sistemas de Arquivos Especiais
tmpfs
Em memória (RAM):
# Montar tmpfs
mount -t tmpfs -o size=1G tmpfs /mnt/tmpfs
# Usado para:
# - /tmp (frequentemente)
# - /dev/shm (memória compartilhada)
Características:
- Muito rápido (RAM)
- Temporário (perdido ao reiniciar)
- Tamanho limitado pela RAM
procfs
Interface com o kernel:
# Montado automaticamente em /proc
# Contém:
# - /proc/cpuinfo: Info CPU
# - /proc/meminfo: Info memória
# - /proc/pid/: Detalhes de processos
Características:
- Sistema de arquivos virtual
- Dados em tempo real
- Somente leitura (geralmente)
sysfs
Informações do sistema:
# Montado automaticamente em /sys
# Contém:
# - /sys/class/: Classes de dispositivos
# - /sys/devices/: Dispositivos
Características:
- Interface de hardware
- Configuração de hardware
- Virtual
Comandos de Gerenciamento
Ver Sistemas de Arquivos Montados
# Lista simples
mount
# Formato legível
df -h
# Tipos de sistemas de arquivos
mount | grep -E '^/dev' | awk '{print $5}' | sort -u
Montar/Desmontar
# Montar
mount /dev/sda1 /mnt
mount -t ext4 /dev/sda1 /mnt
# Montar com opções
mount -o rw,noexec /dev/sda1 /mnt
# Desmontar
umount /mnt
umount /dev/sda1
# Forçar desmontagem (se ocupado)
umount -f /mnt
umount -l /mnt # Lazy unmount
Configuração Permanente (/etc/fstab)
# Formato: device mountpoint fstype options dump pass
/dev/sda1 / ext4 defaults 0 1
/dev/sda2 /home ext4 defaults 0 2
/dev/sda3 /var xfs defaults 0 2
server:/export /mnt/nfs nfs defaults 0 0
Opções comuns:
defaults: rw, suid, dev, exec, auto, nouser, asyncnoexec: Não executa arquivosnosuid: Ignora SUIDro: Somente leituranoatime: Não atualiza atime
Verificação e Reparo
fsck
Verificar e reparar:
# Verificar (sem reparar)
fsck /dev/sda1
# Reparar automaticamente
fsck -a /dev/sda1
# Forçar verificação
fsck -f /dev/sda1
# Específico para ext4
fsck.ext4 /dev/sda1
Importante:
- Desmonte antes de usar fsck (se possível)
- Use modo single-user para sistema raiz
Resumo
Neste capítulo, você aprendeu:
Tipos locais: ext4 (padrão), xfs (arquivos grandes), btrfs (avançado)
Tipos de rede: NFS (Unix), CIFS/SMB (Windows)
Tipos especiais: tmpfs (RAM), procfs (kernel), sysfs (sistema)
Gerenciamento: mount, umount, /etc/fstab para montagem permanente
Verificação: fsck para reparar sistemas de arquivos
Próximos Passos
Lab 3.4: Prática Completa
Módulo 4: Gerenciamento de Processos
Capítulo criado em: Dezembro 2024