====== Introdução ao System Storage Manager (SSM) ====== O **System Storage Manager (SSM)** é uma ferramenta poderosa e simplificada para gerenciamento de volumes de armazenamento em sistemas Linux. Ele abstrai a complexidade do **LVM** (Logical Volume Manager), **Btrfs**, e outros sistemas de gerenciamento de armazenamento, oferecendo uma interface unificada para a administração de discos, volumes e sistemas de arquivos. Com o **SSM**, tarefas como criação de volumes, snapshots, expansão de discos e gerenciamento de dispositivos físicos podem ser realizadas de maneira mais eficiente, com comandos simplificados. O **SSM** facilita também o monitoramento de uso de espaço, a aplicação de criptografia e a automação de tarefas de gerenciamento por meio de scripts e integrações. Abaixo, apresentamos uma lista organizada de exemplos de uso do **SSM**, divididos em **Nível Básico**, **Intermediário**, **Avançado** e **Especializado**, proporcionando um guia completo para administradores de sistemas que buscam gerenciar volumes de forma eficiente e segura. ===== Gerenciamento do SSM - Nível Básico ===== ==== Nível Básico ==== * **Listar todos os dispositivos de armazenamento disponíveis:** - sudo ssm list - Exibe uma lista de todos os dispositivos de armazenamento e volumes gerenciados pelo **SSM**, mostrando detalhes como nome, tipo e tamanho. * **Criar um volume simples com SSM:** - sudo ssm create --fstype ext4 --size 5G /dev/sdb - Cria um volume de 5GB no dispositivo **/dev/sdb** com o sistema de arquivos **ext4**. * **Montar um volume gerenciado pelo SSM:** - sudo mount /dev/mapper/volume_name /mnt/data - Monta um volume criado com o **SSM** no diretório **/mnt/data**. * **Desmontar um volume gerenciado pelo SSM:** - sudo umount /mnt/data - Desmonta o volume previamente montado no diretório **/mnt/data**. * **Exibir informações detalhadas sobre volumes e sistemas de arquivos:** - sudo ssm list --details - Exibe informações detalhadas sobre volumes, sistemas de arquivos e dispositivos físicos. * **Formatar um dispositivo de armazenamento com SSM:** - sudo ssm format --fstype xfs /dev/sdb - Formata o dispositivo **/dev/sdb** com o sistema de arquivos **XFS**, pronto para ser usado. * **Verificar o uso de espaço em todos os volumes:** - sudo ssm list --usage - Mostra o uso de espaço de todos os volumes gerenciados, incluindo detalhes sobre espaço livre e usado. * **Criar um ponto de montagem automático para o volume:** - sudo ssm mount --fstype ext4 /dev/sdb1 /mnt/data - Monta o volume **/dev/sdb1** no diretório **/mnt/data** e o configura para montagem automática no boot. * **Remover um volume gerenciado pelo SSM:** - sudo ssm remove /dev/mapper/volume_name - Remove um volume gerenciado pelo **SSM**, liberando o espaço utilizado no sistema. * **Renomear um volume existente:** - sudo ssm rename /dev/mapper/volume_name /dev/mapper/new_volume_name - Renomeia um volume gerenciado pelo **SSM**, atribuindo um novo nome. * **Criar um snapshot de um volume com SSM:** - sudo ssm snapshot /dev/mapper/volume_name --name snapshot_name - Cria um **snapshot** de um volume existente, permitindo a restauração futura de seus dados. ===== Gerenciamento do SSM - Nível Intermediário ===== ==== Nível Intermediário ==== * **Aumentar o tamanho de um volume existente:** - sudo ssm resize --size +10G /dev/mapper/volume_name - Expande o volume **volume_name** em **10GB**, utilizando o espaço livre disponível no **Volume Group** (VG). * **Reduzir o tamanho de um volume existente:** - **Desmontar o volume antes de reduzir:**
sudo umount /mnt/data
- **Reduzir o tamanho do volume:**
sudo ssm resize --size 5G /dev/mapper/volume_name
- Reduz o volume para **5GB**, liberando espaço no **VG**. O volume deve estar desmontado para evitar corrupção de dados. * **Adicionar um novo disco a um Volume Group (VG) existente:** - sudo ssm add /dev/sdc /dev/mapper/volume_name - Adiciona o dispositivo **/dev/sdc** ao **VG** que contém o volume **volume_name**, expandindo sua capacidade. * **Listar os discos físicos associados a um Volume Group:** - sudo ssm list --pv - Exibe todos os **Physical Volumes (PVs)** associados aos **Volume Groups** gerenciados pelo **SSM**. * **Exibir detalhes sobre um Volume Group específico:** - sudo ssm list --vg vg_name - Exibe informações detalhadas sobre o **Volume Group (VG)** chamado **vg_name**, incluindo o uso de espaço, discos físicos, e volumes lógicos associados. * **Criar um volume espelhado com SSM:** - sudo ssm create --size 10G --fstype ext4 --mirror 2 /dev/sdb /dev/sdc - Cria um volume espelhado de **10GB** usando **/dev/sdb** e **/dev/sdc**, com o sistema de arquivos **ext4**. Isso garante redundância de dados, pois cada disco terá uma cópia dos mesmos dados. * **Mover os dados de um volume para outro dispositivo físico:** - sudo ssm move /dev/mapper/volume_name /dev/sdd - Move todos os dados do volume **volume_name** para o dispositivo **/dev/sdd**, útil para migrações ou manutenção de discos. * **Verificar a integridade de um volume gerenciado pelo SSM:** - sudo ssm check /dev/mapper/volume_name - Verifica a integridade do sistema de arquivos e do volume **volume_name**, corrigindo eventuais problemas se possível. * **Criar um snapshot de um volume e montá-lo:** - sudo ssm snapshot /dev/mapper/volume_name --name snapshot1
sudo mount /dev/mapper/snapshot1 /mnt/snapshot - Cria um snapshot chamado **snapshot1** do volume **volume_name** e o monta no diretório **/mnt/snapshot** para acesso. * **Monitorar o uso de espaço de um Volume Group ao longo do tempo:** - sudo watch ssm list --vg vg_name - Monitora em tempo real o uso de espaço no **VG** chamado **vg_name**, atualizando a cada segundo. * **Converter um volume espelhado para um volume simples:** - sudo ssm convert --to simple /dev/mapper/volume_name - Converte um volume espelhado de volta para um volume simples, removendo o espelhamento e utilizando apenas um disco. * **Exibir informações de desempenho de volumes com SSM:** - sudo ssm list --performance - Exibe métricas de desempenho dos volumes gerenciados, como tempo de leitura/gravação e uso de I/O. ===== Gerenciamento do SSM - Nível Avançado ===== ==== Nível Avançado ==== * **Automatizar a criação de volumes e montagem em scripts:** - **Exemplo de script simples:** ``` #!/bin/bash VOLUME_NAME="volume_data" MOUNT_POINT="/mnt/data" SIZE="20G" # Criar volume sudo ssm create --size $SIZE --fstype ext4 /dev/sdb /dev/sdc # Criar diretório de montagem sudo mkdir -p $MOUNT_POINT # Montar o volume sudo mount /dev/mapper/$VOLUME_NAME $MOUNT_POINT echo "Volume $VOLUME_NAME criado e montado em $MOUNT_POINT" ``` - Cria um script que automatiza a criação de um volume, configuração de um ponto de montagem e montagem do volume, simplificando a administração de volumes. * **Configurar permissões e quotas em volumes gerenciados pelo SSM:** - **Aplicar permissões ao ponto de montagem:** sudo chmod 770 /mnt/data
- **Configurar quotas de disco para usuários:** sudo setquota -u user1 10000 12000 0 0 /mnt/data
- Define permissões de acesso e quotas de disco para o volume montado em **/mnt/data**, limitando o uso de espaço por usuários específicos. * **Automatizar a criação de snapshots em intervalos regulares:** - **Criar um script para snapshots automatizados:** ``` #!/bin/bash VOLUME_NAME="volume_data" SNAPSHOT_NAME="snapshot_$(date +%F)" # Criar snapshot sudo ssm snapshot /dev/mapper/$VOLUME_NAME --name $SNAPSHOT_NAME echo "Snapshot $SNAPSHOT_NAME criado para o volume $VOLUME_NAME" ``` - Usar o script acima com **cron** para criar snapshots automáticos: crontab -e
Adicionar a linha: 0 0 * * * /path/to/snapshot_script.sh
- Automatiza a criação de snapshots diariamente à meia-noite, garantindo backups regulares dos volumes. * **Configurar segurança avançada para volumes SSM com criptografia LUKS:** - **Criar um volume criptografado:**
sudo cryptsetup luksFormat /dev/sdb
sudo cryptsetup luksOpen /dev/sdb encrypted_volume
sudo ssm create --size 10G --fstype ext4 /dev/mapper/encrypted_volume - Configura um volume criptografado usando **LUKS** e cria um volume gerenciado pelo **SSM** em cima do dispositivo criptografado. * **Expandir volumes automaticamente com base no uso de espaço:** - **Script para expandir volume automaticamente:** ``` #!/bin/bash VOLUME="/dev/mapper/volume_data" THRESHOLD=80 USAGE=$(df -h | grep $VOLUME | awk '{print $5}' | sed 's/%//') if [ "$USAGE" -gt "$THRESHOLD" ]; then sudo ssm resize --size +10G $VOLUME echo "Volume $VOLUME expandido em 10GB devido ao uso de $USAGE%" fi ``` - Usa o script acima para monitorar o uso de espaço no volume e, quando o uso ultrapassa **80%**, o volume é automaticamente expandido em **10GB**. * **Auditar logs de volumes criados e removidos com SSM:** - sudo journalctl -u ssm - Exibe os logs de todas as operações feitas pelo **System Storage Manager**, como criação, remoção e redimensionamento de volumes, útil para auditorias e resolução de problemas. * **Configurar volumes automontáveis no boot com SSM:** - **Adicionar a entrada no arquivo `/etc/fstab`:** /dev/mapper/volume_name /mnt/data ext4 defaults 0 0 - Configura um volume para montagem automática no boot, garantindo que ele esteja sempre disponível após reinicializações. * **Monitorar volumes e gerar alertas com scripts:** - **Exemplo de script com notificação de email:** ``` #!/bin/bash VOLUME="/dev/mapper/volume_data" THRESHOLD=90 USAGE=$(df -h | grep $VOLUME | awk '{print $5}' | sed 's/%//') if [ "$USAGE" -gt "$THRESHOLD" ]; then echo "Alerta: Volume $VOLUME está com $USAGE% de uso" | mail -s "Alerta de uso de disco" admin@dominio.com fi ``` - O script monitora o uso do volume e envia um email de alerta quando o uso do disco ultrapassa **90%**, permitindo ações preventivas. * **Migrar volumes entre servidores automaticamente:** - **Usar rsync para migrar volumes:**
sudo rsync -avz /mnt/data user@servidor_remoto:/mnt/data_backup - Cria um backup/migração de volumes entre servidores usando **rsync**, útil para migração de dados ou replicação entre ambientes. * **Remover volumes automaticamente com base em critérios de tempo:** - **Script para remover snapshots antigos:** ``` #!/bin/bash find /mnt/snapshot/ -type d -mtime +7 -exec rm -rf {} \; echo "Snapshots mais antigos que 7 dias foram removidos" ``` - Remove snapshots mais antigos que **7 dias**, liberando espaço no sistema de forma automatizada. * **Criar um volume compartilhado entre múltiplos servidores com NFS:** - **Instalar e configurar NFS:**
sudo apt install nfs-kernel-server
**Configurar o compartilhamento no servidor NFS:**
sudo echo "/mnt/data *(rw,sync,no_root_squash)" >> /etc/exports
**No cliente NFS:**
sudo mount servidor_nfs:/mnt/data /mnt/data
- Compartilha volumes entre servidores via **NFS**, permitindo que múltiplos servidores acessem os mesmos dados de forma compartilhada.