Table of Contents

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

Gerenciamento do SSM - Nível Intermediário

Nível Intermediário

sudo umount /mnt/data

<br>

  1. Reduzir o tamanho do volume:<br>
sudo ssm resize --size 5G /dev/mapper/volume_name

<br>

  1. Reduz o volume para 5GB, liberando espaço no VG. O volume deve estar desmontado para evitar corrupção de dados.
sudo mount /dev/mapper/snapshot1 /mnt/snapshot
  1. Cria um snapshot chamado snapshot1 do volume volume_name e o monta no diretório /mnt/snapshot para acesso.

Gerenciamento do SSM - Nível Avançado

Nível Avançado

```

    #!/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.
sudo chmod 770 /mnt/data

<br>

  1. Configurar quotas de disco para usuários:
sudo setquota -u user1 10000 12000 0 0 /mnt/data

<br>

  1. 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.

```

    #!/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:
    <code>crontab -e</code><br>
    Adicionar a linha: <code>0 0 * * * /path/to/snapshot_script.sh</code><br>
  - Automatiza a criação de snapshots diariamente à meia-noite, garantindo backups regulares dos volumes.
sudo cryptsetup luksFormat /dev/sdb

<br>

    <code>sudo cryptsetup luksOpen /dev/sdb encrypted_volume</code><br>
    <code>sudo ssm create --size 10G --fstype ext4 /dev/mapper/encrypted_volume</code>
  - Configura um volume criptografado usando **LUKS** e cria um volume gerenciado pelo **SSM** em cima do dispositivo criptografado.

```

    #!/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**.
/dev/mapper/volume_name /mnt/data ext4 defaults 0 0
  1. Configura um volume para montagem automática no boot, garantindo que ele esteja sempre disponível após reinicializações.

```

    #!/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.
sudo rsync -avz /mnt/data user@servidor_remoto:/mnt/data_backup
  1. Cria um backup/migração de volumes entre servidores usando rsync, útil para migração de dados ou replicação entre ambientes.

```

    #!/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.
sudo apt install nfs-kernel-server

<br>