===== Physical Volumes (PVs) ===== ==== Nível Básico ==== * **Criar um Physical Volume (PV):** - sudo pvcreate /dev/sdb - Inicializa o dispositivo `/dev/sdb` como um **Physical Volume**, pronto para ser utilizado em um **Volume Group (VG)**. * **Listar todos os Physical Volumes no sistema:** - sudo pvdisplay - Exibe informações detalhadas de todos os **Physical Volumes** no sistema. * **Verificar informações resumidas dos Physical Volumes:** - sudo pvs - Mostra um resumo de todos os **PVs** com detalhes como o nome, tamanho e o **Volume Group** associado. * **Exibir informações detalhadas de um PV específico:** - sudo pvdisplay /dev/sdb - Mostra informações detalhadas sobre o **PV** localizado em `/dev/sdb`. * **Redefinir o rótulo de um PV (remover configuração):** - sudo pvremove /dev/sdb - Remove o rótulo LVM de um **Physical Volume**, apagando-o da configuração. ==== Nível Intermediário ==== * **Verificar o status de um PV com informações detalhadas:** - sudo pvscan - Verifica todos os discos do sistema e detecta **Physical Volumes** e **Volume Groups**, mostrando uma visão geral de seus estados. * **Adicionar múltiplos discos como Physical Volumes:** - sudo pvcreate /dev/sdb /dev/sdc - Inicializa os dispositivos `/dev/sdb` e `/dev/sdc` como **PVs** prontos para serem adicionados a um **VG**. * **Mover dados de um Physical Volume para outro:** - sudo pvmove /dev/sdb /dev/sdc - Move os dados do **PV** `/dev/sdb` para o **PV** `/dev/sdc`, útil em cenários de migração ou manutenção de discos. * **Marcar um PV como não alocável:** - sudo pvchange -x n /dev/sdb - Marca o **PV** `/dev/sdb` como não disponível para alocação de novos dados. * **Marcar um PV como alocável novamente:** - sudo pvchange -x y /dev/sdb - Redefine o **PV** `/dev/sdb` como disponível para alocação de novos dados. ==== Nível Avançado ==== * **Aumentar o tamanho de um PV após expandir um disco (por exemplo, disco virtual):** - sudo pvresize /dev/sdb - Redimensiona o **PV** `/dev/sdb` para utilizar o novo espaço disponível após a expansão do disco. * **Verificar a integridade de um PV:** - sudo pvck /dev/sdb - Verifica o **Physical Volume** `/dev/sdb` em busca de erros ou problemas de metadados. * **Modificar os atributos de um Physical Volume:** - sudo pvchange --metadataignore y /dev/sdb - Define para ignorar os metadados do **PV** durante a sincronização, útil em cenários de recuperação. ==== Nível Especializado ==== * **Distribuir dados em vários PVs (striping):** - **Exemplo ao criar um Logical Volume:** sudo lvcreate -L 10G -i2 -I64 -n lv_data vg_data
Utiliza striping de dados em dois **PVs** (com a opção `-i2`) no **Volume Group** `vg_data`, criando um **Logical Volume** de 10 GB. * **Forçar a criação de um PV em um disco com partição existente:** - sudo pvcreate --force /dev/sdb - Inicializa o **PV** mesmo em discos que possuem uma tabela de partição existente (atenção: pode sobrescrever dados). * **Recuperar informações de um PV corrompido:** - sudo pvcreate --restorefile /caminho/pv_backup /dev/sdb - Restaura um **Physical Volume** corrompido a partir de um arquivo de backup de metadados, útil em cenários de falha de disco. * **Recuperar PV em um disco reformatado:** - sudo pvcreate --uuid {UUID} --restorefile /caminho/backup /dev/sdb - Restaura o UUID e metadados de um **PV** após a formatação acidental do disco. ===== Volume Groups (VGs) ===== ==== Nível Básico ==== * **Criar um Volume Group (VG):** - sudo vgcreate vg_data /dev/sdb - Cria um **Volume Group** chamado `vg_data` usando o **Physical Volume** `/dev/sdb`. * **Adicionar um PV a um Volume Group existente:** - sudo vgextend vg_data /dev/sdc - Adiciona o **Physical Volume** `/dev/sdc` ao **Volume Group** `vg_data`, expandindo sua capacidade. * **Listar todos os Volume Groups no sistema:** - sudo vgdisplay - Exibe informações detalhadas sobre todos os **Volume Groups** no sistema, incluindo tamanho, PVs associados e espaço livre. * **Listar informações resumidas dos Volume Groups:** - sudo vgs - Mostra um resumo dos **VGs**, incluindo nome, tamanho total e o número de PVs associados. * **Remover um Volume Group:** - sudo vgremove vg_data - Remove o **Volume Group** `vg_data` (somente se nenhum **Logical Volume** estiver em uso). ==== Nível Intermediário ==== * **Reduzir um Volume Group removendo um PV:** - sudo vgreduce vg_data /dev/sdc - Remove o **Physical Volume** `/dev/sdc` do **Volume Group** `vg_data`, desde que ele não contenha **Logical Volumes** ativos. * **Verificar o status de todos os VGs com informações detalhadas:** - sudo vgscan - Verifica o sistema e detecta todos os **Volume Groups** existentes, exibindo o status e informações detalhadas. * **Exibir informações detalhadas de um VG específico:** - sudo vgdisplay vg_data - Mostra detalhes como tamanho, número de PVs, e espaço livre do **Volume Group** `vg_data`. * **Verificar o espaço livre disponível em um VG:** - sudo vgs --units G - Exibe o espaço livre e o tamanho total dos **Volume Groups** em gigabytes. * **Configurar um VG para ser ativado automaticamente no boot:** - sudo vgchange -a y vg_data - Configura o **VG** `vg_data` para ser ativado automaticamente durante a inicialização do sistema. ==== Nível Avançado ==== * **Renomear um Volume Group:** - sudo vgrename vg_data vg_novo - Renomeia o **Volume Group** `vg_data` para `vg_novo`. * **Redimensionar um Volume Group após expansão de PVs:** - sudo vgextend vg_data /dev/sdd
sudo vgresize vg_data - Adiciona um novo PV (`/dev/sdd`) ao VG `vg_data` e redimensiona o **VG** para utilizar o espaço adicional. * **Marcar um VG como somente leitura:** - sudo vgchange -p vg_data - Configura o **Volume Group** `vg_data` para somente leitura, impedindo gravações. * **Ativar/desativar todos os Volume Groups:** - **Ativar**: sudo vgchange -a y
- **Desativar**: sudo vgchange -a n
- Ativa ou desativa todos os **VGs** no sistema. * **Criar um snapshot do VG (para backup ou teste):** - sudo lvcreate --size 1G --snapshot --name snapshot_data /dev/vg_data/lv_data - Cria um snapshot de 1GB do **Logical Volume** `lv_data` do **VG** `vg_data`, permitindo operações de backup sem interromper o volume principal. ==== Nível Especializado ==== * **Forçar a remoção de um VG com PVs inativos:** - sudo vgremove -f vg_data - Força a remoção do **Volume Group** `vg_data`, mesmo que os **Physical Volumes** associados estejam inativos ou com falhas. * **Criar um VG distribuído (striping) em múltiplos PVs:** - sudo vgcreate vg_data /dev/sdb /dev/sdc /dev/sdd
sudo lvcreate -L 50G -i3 -n lv_data vg_data - Cria o **VG** `vg_data` usando os **PVs** `/dev/sdb`, `/dev/sdc`, e `/dev/sdd`, e depois cria um **Logical Volume** de 50GB com striping (dividido em 3 discos). * **Mover um VG inteiro para outro dispositivo:** - sudo vgsplit vg_data vg_novo /dev/sdb - Divide o **VG** `vg_data` movendo o **PV** `/dev/sdb` para um novo **VG** chamado `vg_novo`, permitindo uma migração controlada de discos. * **Recuperar um Volume Group após perda de PV:** - sudo vgcfgrestore -f /caminho/backup/vg_data /dev/vg_data - Restaura as configurações do **VG** `vg_data` a partir de um arquivo de backup de metadados, útil após falhas de disco. * **Exibir os metadados de um Volume Group:** - sudo vgcfgbackup -f /caminho/backup/vg_data - Realiza o backup dos metadados do **VG** `vg_data`, permitindo futuras restaurações. ===== Logical Volumes (LVs) ===== ==== Nível Básico ==== * **Criar um Logical Volume:** - sudo lvcreate -L 10G -n lv_data vg_data - Cria um **Logical Volume** de 10GB chamado `lv_data` dentro do **Volume Group** `vg_data`. * **Listar todos os Logical Volumes no sistema:** - sudo lvdisplay - Exibe informações detalhadas de todos os **Logical Volumes** no sistema. * **Exibir informações resumidas de Logical Volumes:** - sudo lvs - Mostra um resumo de todos os **LVs**, incluindo tamanho, nome e **Volume Group** associado. * **Formatar um Logical Volume com um sistema de arquivos:** - sudo mkfs.ext4 /dev/vg_data/lv_data - Formata o **Logical Volume** `lv_data` com o sistema de arquivos **ext4**. * **Montar um Logical Volume:** - sudo mount /dev/vg_data/lv_data /mnt/data - Monta o **Logical Volume** `lv_data` no diretório `/mnt/data`. * **Desmontar um Logical Volume:** - sudo umount /mnt/data - Desmonta o **Logical Volume** montado no diretório `/mnt/data`. * **Remover um Logical Volume:** - sudo lvremove /dev/vg_data/lv_data - Remove o **Logical Volume** `lv_data` do **Volume Group** `vg_data`. ==== Nível Intermediário ==== * **Expandir um Logical Volume existente:** - sudo lvextend -L +5G /dev/vg_data/lv_data - Expande o **Logical Volume** `lv_data` em 5GB adicionais, utilizando o espaço livre disponível no **VG**. * **Reduzir o tamanho de um Logical Volume:** - **Desmontar o volume primeiro**: sudo umount /dev/vg_data/lv_data
- **Verificar o sistema de arquivos**: sudo e2fsck -f /dev/vg_data/lv_data
- **Reduzir o tamanho**: sudo resize2fs /dev/vg_data/lv_data 8G
- **Reduzir o Logical Volume**: sudo lvreduce -L 8G /dev/vg_data/lv_data - Esse processo reduz o **Logical Volume** `lv_data` para 8GB, após redimensionar o sistema de arquivos. * **Mover um Logical Volume para outro Physical Volume:** - sudo pvmove /dev/sdb /dev/sdc - Move os dados do **Logical Volume** localizado em `/dev/sdb` para o **Physical Volume** `/dev/sdc`. * **Exibir o espaço livre dentro de um Logical Volume:** - sudo lvs --units G - Exibe o tamanho e o espaço livre em gigabytes para cada **Logical Volume** no sistema. * **Configurar um Logical Volume como "somente leitura":** - sudo lvchange -pr /dev/vg_data/lv_data - Altera o **LV** `lv_data` para ser montado como somente leitura, evitando gravações. * **Remover um Logical Volume com snapshot:** - sudo lvremove /dev/vg_data/lv_snapshot - Remove um snapshot existente, liberando espaço no **VG**. ==== Nível Avançado ==== * **Aumentar um Logical Volume online sem desmontar:** - sudo lvextend -L +10G /dev/vg_data/lv_data
sudo resize2fs /dev/vg_data/lv_data - Aumenta o **Logical Volume** `lv_data` em 10GB e redimensiona o sistema de arquivos ext4, sem desmontar o volume. * **Criar um Logical Volume com striping (distribuição de dados em vários discos):** - sudo lvcreate -L 50G -i 2 -I 64 -n lv_striped vg_data - Cria um **Logical Volume** de 50GB com **striping** (dividido entre 2 discos), com blocos de 64KB. * **Criar um Logical Volume Thin Provisioning:** - **Criar uma thin pool**: sudo lvcreate --thinpool thin_pool -L 100G vg_data
- **Criar um volume thin**: sudo lvcreate --thin -V 50G --name lv_thin vg_data/thin_pool - Cria um **Logical Volume Thin Provisioning**, que permite alocar espaço sob demanda, evitando desperdício. * **Criar um snapshot de um Logical Volume (para backup ou teste):** - sudo lvcreate --size 2G --snapshot --name lv_snapshot /dev/vg_data/lv_data - Cria um snapshot de 2GB do **Logical Volume** `lv_data`, permitindo realizar backups ou testes sem afetar o volume principal. * **Redimensionar um Logical Volume Thin:** - sudo lvresize --size +10G /dev/vg_data/lv_thin - Aumenta o tamanho do **LV Thin** em 10GB, sem precisar alocar todo o espaço imediatamente. ==== Nível Especializado ==== * **Converter um Logical Volume em Thin Provisioning:** - sudo lvconvert --thinpool vg_data/lv_data - Converte um **Logical Volume** existente para **Thin Provisioning**, permitindo a alocação dinâmica de espaço. * **Ativar e desativar Logical Volumes:** - **Ativar**: sudo lvchange -ay /dev/vg_data/lv_data
- **Desativar**: sudo lvchange -an /dev/vg_data/lv_data - Ativa ou desativa o **Logical Volume** `lv_data`, permitindo ou impedindo seu uso. * **Migrar dados de um Logical Volume para outro VG:** - sudo vgsplit vg_data vg_novo /dev/vg_data/lv_data - Divide o **VG** movendo o **Logical Volume** `lv_data` para um novo **VG** chamado `vg_novo`. * **Forçar a remoção de um Logical Volume com erro:** - sudo lvremove -f /dev/vg_data/lv_corrompido - Força a remoção do **Logical Volume** `lv_corrompido`, mesmo se houver erros associados ao volume. * **Recuperar um Logical Volume a partir de um snapshot:** - sudo lvconvert --merge /dev/vg_data/lv_snapshot - Restaura o **Logical Volume** `lv_data` para o estado do snapshot `lv_snapshot`, recuperando dados após falha ou alteração.