Uma pequena digressão: este LR é sintético.
Algumas das tarefas descritas aqui podem ser realizadas de forma muito mais simples, mas como a tarefa de l/r é conhecer
com a funcionalidade raid e lvm, algumas operações são artificialmente complicadas.
Requisitos para ferramentas para executar LR:
- Ferramentas de virtualização como Virtualbox
- Imagem de instalação do Linux, por exemplo
- Disponibilidade de Internet para download de diversos pacotes
- Conecte-se via ssh à VM instalada (opcional)
CUIDADO
Este trabalho laboratorial está relacionado com uma questão tão subtil como a segurança de dados - esta é uma área onde
o que permite que você perca todos os seus dados devido ao menor erro - uma letra ou número extra.
Como você está fazendo um trabalho de laboratório, você não corre nenhum perigo, exceto que terá que começar a fazer tudo de novo.
Na vida real tudo é muito mais sério, então você deve inserir os nomes dos discos com muito cuidado, entendendo
o que exatamente você está fazendo com o comando atual e com quais discos está trabalhando.
O segundo ponto importante é a nomenclatura dos discos e partições: dependendo da situação, os números dos discos podem ser diferentes
daqueles valores que são apresentados nos comandos do trabalho de laboratório.
Então, por exemplo, se você remover o disco sda do array e depois adicionar um novo disco, o novo disco será exibido
em um sistema chamado sda. Se você reinicializar antes de adicionar um novo disco, o novo
o disco será denominado sdb e o antigo será denominado sda
O laboratório deve ser executado como superusuário (root), pois a maioria dos comandos exige
privilégios elevados e não faz sentido escalar privilégios constantemente via sudo
Materiais de estudo
- RAID
- LVM
- Nomenclatura de discos em sistemas operacionais Linux
- O que é uma seção
- O que é uma tabela de partição e onde ela está armazenada?
- O que é comida
Utilitários usados
1) visualizar informações do disco
- lsblk -o NOME, TAMANHO, FSTYPE, TIPO, PONTO DE MONTAGEM
- fdisk -l
2) visualizar informações e trabalhar com LVM - pvs
- pvextend
- criação de pvc
- tamanho do tamanho
- vgs
- vgreduce
- Eu contra
- estender
3) visualizar informações e trabalhar com RAID - gato /proc/mdstat
- mdadm
4) pontos de montagem - montar
- umount
- cat / etc / fstab
- gato /etc/mtab
5) repartição de disco - fdisk /dev/XXX
6) copiar partições - dd if=/dev/xxx de=/dev/yyy
7) trabalhando com a tabela de partições - partex
- disco sf
- mkfs.ext4
8) trabalhando com o bootloader - grub-install /dev/XXX
- atualização-grub
9) diversos - lsof
- apto
- rsync
O trabalho laboratorial consiste em 3 partes:
- configurando um sistema funcional usando lvm, raid
- emulação de uma das falhas de disco
- substituindo discos dinamicamente, adicionando novos discos e movendo partições.
Tarefa 1 (instalação do sistema operacional e configuração de LVM, RAID)
1) Crie uma nova máquina virtual, atribuindo-lhe as seguintes características:
- 1 GB de RAM
- 1 cpu
- 2 HDDs (nomeie-os como ssd1, ssd2 e atribua tamanhos iguais, verifique as caixas hot swap e ssd)
- Controlador SATA configurado para 4 portas

2) Inicie a instalação Linux E quando chegar à seleção do disco rígido, faça o seguinte:
Método de particionamento: manual, após o qual você deverá ver esta imagem:

Configurando uma partição separada para /boot: Selecione o primeiro disco e crie uma nova tabela de partição nele
- Tamanho da partição: 512M
- Ponto de montagem: /boot
- Repita as configurações para o segundo disco, mas como você não pode montar /boot duas vezes ao mesmo tempo, selecione ponto de montagem: nenhum, eventualmente obtendo o seguinte (foto com um batente, com preguiça de refazer):

Configuração RAID:
- Selecione o espaço livre no primeiro disco e configure o tipo de partição como volume físico para RAID
- Selecione "Concluída a configuração da partição"
- Repita exatamente as mesmas configurações para o segundo disco, resultando no seguinte:

- Selecione "Configurar RAID de software"
- Criar dispositivo MD
- Tipo de dispositivo RAID de software: Selecione um array espelhado
- Dispositivos ativos para a matriz RAID XXXX: selecione ambas as unidades
- Dispositivos sobressalentes: deixe 0 como padrão
- Dispositivos ativos para a matriz RAID XX: selecione as partições que você criou no raid
- Acabamento
- Como resultado, você deverá obter uma imagem como esta:

Configurando LVM: Selecione Configurar o Gerenciador de Volume Lógico
- Mantenha o layout da partição atual e configure o LVM: Sim
- Criar grupo de volume
- Nome do grupo de volumes: sistema
- Dispositivos para o novo grupo de volumes: Selecione o RAID criado
- Criar volume lógico
- nome do volume lógico: root
- tamanho do volume lógico: 25 do tamanho do seu disco
- Criar volume lógico
- nome do volume lógico: var
- tamanho do volume lógico: 25 do tamanho do seu disco
- Criar volume lógico
- nome do volume lógico: log
- tamanho do volume lógico: 15 do tamanho do seu disco
- Ao selecionar Exibir detalhes de configuração, você deverá obter a seguinte imagem:

- Depois de concluir a configuração do LVM, você deverá ver o seguinte:

Layout da partição: um por um, selecione cada volume criado no LVM e faça o layout deles, por exemplo, para root assim:
- Usar como: ext4
- ponto de montagem: /
- O resultado da marcação da partição raiz deve ser assim:

- repita a operação de particionamento para var e log, selecionando os pontos de montagem apropriados (/var e /var/log inseridos manualmente), obtendo o seguinte resultado:

- Selecione Concluir Particionamento
- Serão feitas várias perguntas a você sobre o fato de ainda ter uma partição desmontada e o swap não estar configurado. Ambas as questões devem ser respondidas negativamente.
O resultado final deverá ficar assim:

3) Conclua a instalação do sistema operacional instalando o grub no primeiro dispositivo (sda) e inicialize o sistema.
4) Copie o conteúdo da partição /boot da unidade sda (ssd1) para a unidade sdb (ssd2)dd if=/dev/sda1 of=/dev/sdb15) Instale o grub no segundo dispositivo:
veja os discos no sistema:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTListe todos os discos que o comando anterior forneceu e descreva que tipo de disco é
Encontre a unidade onde o grub não foi instalado e execute esta instalação:
grub-install /dev/sdbveja informações sobre o ataque atual com o comando cat /proc/mdstat e anote o que você vê.
veja a saída dos comandos: pvs, vgs, lvs, mount e anote exatamente o que você viu
Descreva com suas próprias palavras o que você fez e qual resultado obteve com a tarefa.
Após concluir esta tarefa, é recomendável salvar uma cópia de backup da pasta da máquina virtual ou fazer
caixa vagabunda:
Resultado: máquina virtual com discos ssd1, ssd2
Tarefa 2 (Emulando a falha de um dos discos)
1) Se você marcou a caixa hot swap, poderá excluir os discos instantaneamente
- Exclua o disco ssd1 nas propriedades da máquina
- Encontre o diretório onde os arquivos da sua máquina virtual estão armazenados e exclua ssd1.vmdk
2) Certifique-se de que sua máquina virtual ainda esteja funcionando
3) Reinicie a máquina virtual e certifique-se de que ela ainda esteja em execução
4) verifique o status da matriz RAID: cat /proc/mdstat
5) adicione um novo disco do mesmo tamanho na interface da VM e nomeie-o como ssd3
6) realizar as operações: - veja se o novo disco chegou ao sistema usando fdisk -l
- copie a tabela de partições do disco antigo para o novo: sfdisk -d /dev/XXXX | sfdisk /dev/AAAA
- veja o resultado usando fdisk -l
- Adicione um novo disco ao array raid: mdadm —manage /dev/md0 —add /dev/YYY
- Veja o resultado: cat /proc/mdstat. Você deverá ver que a sincronização começou
7) Agora você precisa sincronizar manualmente as partições que não fazem parte do RAID.
Para fazer isso, usaremos o utilitário dd, copiando do disco “live” para o novo que você instalou recentementedd if=/dev/XXX of=/dev/YYY8) Após a conclusão da sincronização, instale o grub na nova unidade
9) Reinicie a VM para ter certeza de que tudo está funcionando
Descreva com suas próprias palavras o que você fez e qual resultado obteve com a tarefa.
Resultado: o disco ssd1 foi removido, o disco ssd2 foi salvo, o disco ssd3 foi adicionado.Tarefa 3 (Adicionar novos discos e mover uma partição)
Esta é a tarefa mais complexa e volumosa de todas as apresentadas.
Verifique com muito cuidado o que você está fazendo e com quais discos e partições.
Recomenda-se fazer uma cópia antes de executá-lo.
Esta tarefa é independente da tarefa nº 2, podendo ser executada após a tarefa nº 1, ajustada para nomes de disco.
A segunda parte desta tarefa de laboratório deve levar exatamente ao mesmo estado que estava após a conclusão da primeira parte.Para facilitar seu trabalho, recomendo não remover fisicamente os discos da máquina host, mas apenas
desconecte-os nas propriedades da máquina. Do ponto de vista do sistema operacional na VM, será exatamente igual, mas você pode
se algo acontecer, conecte o disco de volta e continue o trabalho revertendo alguns pontos, se
você está tendo problemas. Por exemplo, você pode ter feito isso incorretamente ou esquecido de copiar a partição /boot para o novo disco.
Só posso aconselhá-lo a verificar várias vezes com quais discos e partições você está trabalhando, ou melhor ainda
Anote em um pedaço de papel a correspondência entre os discos, partições e o número do disco “físico”. Árvore bonita e clara
sorteios de equipeslsblk, use-o sempre que possível para analisar o que você fez e o que precisa ser feito.Para a história...
Imagine que seu servidor está rodando há muito tempo em 2 unidades SSD, quando de repente...
1) Simule a falha do disco SSD2 removendo o disco das propriedades da VM e reiniciando
2) Visualize o status atual dos discos e RAID:cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT3) Você tem sorte - seus chefes permitiram que você comprasse vários discos novos:
2 SATA de grande capacidade para a tarefa há muito esperada de mover a partição com logs para um disco separado
2 SSDs para substituir o que morreu, bem como para substituir o que ainda está funcionando.
Deve-se levar em consideração que a cesta servidor Suporta a instalação de apenas 4 discos por vez.
portanto, não é possível adicionar todos os discos de uma vez.Selecione a capacidade do HDD 2 vezes maior que a do SSD.
A capacidade do SSD é 1,25 vezes maior que a do antigo SSD.4) Adicione um novo disco SSD, chamando-o de ssd4, e após adicionar, verifique o que aconteceu:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT5) Em primeiro lugar, você deve cuidar da segurança dos dados do disco antigo.
Desta vez iremos transferir dados usando LVM:- Primeiro de tudo, você precisa copiar a tabela de arquivos do disco antigo para o novo:
sfdisk -d /dev/XXX | sfdisk /dev/YYYSubstitua x, y pelos discos corretos e descubra o que este comando faz.
Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare sua saída com a chamada anterior.
O que mudou?
use o comando dd para copiar os dados /boot para o novo discodd if=/dev/XXX of=/dev/YYYse /boot permaneceu montado no disco antigo, ele deverá ser remontado no disco ativo:
mount | grep boot # смотрим куда смонтирован диск lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта umount /boot # отмонтируем /boot mount -a # выполним монтирование всех точек согласно /etc/fstab. # Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой дискInstale o bootloader na nova unidade SSD
grub-install /dev/YYYPor que estamos realizando esta operação?
crie um novo array raid incluindo apenas um novo disco SSD:
mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYYO comando acima não funcionará sem especificar uma chave especial.
Leia a ajuda e adicione esta chave ao comando.Use o comando cat /proc/mdstat para verificar o resultado de sua operação. O que mudou?
Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare sua saída com a chamada anterior.
O que mudou?
6) O próximo passo é configurar o LVM
execute o comando pvs para visualizar informações sobre os volumes físicos atuais
crie um novo volume físico incluindo a matriz RAID criada anteriormente:pvcreate /dev/md63Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare sua saída com a chamada anterior.
O que mudou?
Execute o comando pvs novamente. O que mudou?
Vamos aumentar o tamanho do sistema Volume Group usando o seguinte comando:vgextend system /dev/md63Execute os comandos e anote o que você viu e o que mudou.
vgdisplay system -v pvs vgs lvs -a -o+devicesEm qual disco físico estão LV var,log,root atualmente localizados?
Mova os dados da unidade antiga para a nova, usando os nomes de dispositivos corretos.
pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63Repita a operação para todos os volumes lógicos
Execute os comandos e anote o que você viu e o que mudou.
vgdisplay system -v pvs vgs lvs -a -o+devices lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTVamos mudar nosso VG removendo dele o disco raid antigo. Substitua o nome do ataque correto.
vgreduce system /dev/md0Execute os comandos e anote o que você viu e o que mudou.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT pvs vgsPara deixar a imagem mais bonita, remonte /boot no segundo disco SSD (ssd4) e execute lsblk. Como resultado, o disco SSD3 não
nada deve ser montado. Verifique cuidadosamente se a partição /boot não está vazia!ls /bootdeve mostrar
vários arquivos e pastas. Estude o que está armazenado nesta seção e anote qual diretório de arquivo é responsável por quê.
7) remova o disco ssd3 e adicione ssd5, hdd1, hdd2 de acordo com as especificações técnicas descritas acima, resultando em:
ssd4 - o primeiro novo SSD
ssd5 – segundo novo SSD
hdd1 - primeiro novo disco rígido
hdd2 - segundo novo disco rígido8) Verifique o que aconteceu após adicionar os discos:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT9) Vamos restaurar a operação do array raid principal:
- copie a tabela de partições, substituindo os discos corretos:
sfdisk -d /dev/XXX | sfdisk /dev/YYY - Observe que quando copiamos a tabela de partição do disco antigo, parecia que o novo tamanho
não usa toda a capacidade do disco rígido.
Portanto, em breve precisaremos redimensionar esta partição e expandir o raid.
Veja você mesmo executando o comando:lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT10) copie a partição de inicialização /boot de ssd4 para ssd5
dd if=/dev/XXX of=/dev/YYY11) Instale o grub na nova unidade (ssd5)
12) redimensione a segunda partição do disco SSD5execute o utilitário de particionamento de disco:
fdisk /dev/XXXdigite a tecla d para excluir uma partição existente (escolha 2)
digite a chave n para criar uma nova partição
digite a chave p para indicar que o tipo de partição é “primário”
digite a chave 2 para que a nova partição tenha o segundo número
Primeiro setor: pressione Enter para aceitar o tamanho calculado automaticamente do início da partição
Último setor: pressione Enter para aceitar o tamanho calculado automaticamente do final da partição
Digite a tecla "l" para ver uma lista de todos os tipos de partição possíveis e encontre-a. Linux ataque automático
digite a tecla t para alterar o tipo de partição criada (2) e digite o número encontrado na etapa anterior.
digite a tecla w para gravar a alteração no disco.
12) releia a tabela de partições e verifique o resultadopartx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTadicione um novo disco ao array raid atual (não se esqueça de substituir os discos corretos)
mdadm --manage /dev/md63 --add /dev/sda2Vamos expandir o número de discos em nosso array para 2:
mdadm --grow /dev/md63 --raid-devices=2Veja o resultado: temos 2 arrays marcados, mas ambas as seções incluídas neste array têm tamanhos diferentes
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT13) aumente o tamanho da partição no disco SSD4
execute o utilitário de particionamento de disco:
fdisk /dev/XXXdigite a tecla d para excluir uma partição existente (escolha 2)
digite a chave n para criar uma nova partição
digite a chave p para indicar que o tipo de partição é “primário”
digite a chave 2 para que a nova partição tenha o segundo número
Primeiro setor: pressione Enter para aceitar o tamanho calculado automaticamente do início da partição
Último setor: pressione Enter para aceitar o tamanho calculado automaticamente do final da partição
No final da marcação, selecione Não para deixar a assinatura da associação da partição na matriz.
digite a tecla w para gravar a alteração no disco.
12) releia a tabela de partições e verifique o resultadopartx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTObserve que agora as partições sda2, sdc2 têm um tamanho > que o tamanho do dispositivo raid.
13) nesta fase o tamanho do ataque agora pode ser expandido
mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check resultRevise lsblk e observe o que mudou
14) No entanto, embora tenhamos alterado o tamanho do ataque, os tamanhos de vg root,var,log em si não mudaram- veja o tamanho do PV:
pvs - Vamos expandir o tamanho do nosso PV:
pvresize /dev/md63 - veja o tamanho do PV:
pvs15) Adicione o local recém-aparecido VG var,root
lvs # посмотрим сколько сейчас размечено lvextend -l +50%FREE /dev/system/root lvextend -l +100%FREE /dev/system/var lvs # проверьте что получилосьNeste ponto, você concluiu a migração da matriz principal para os novos discos. trabalhe com ssd1, ssd2 está concluído
16) Nossa próxima tarefa é mover /var/log para novos discos, para isso criaremos um novo array e lvm em discos HDD.
- vamos ver quais nomes os novos drives de disco rígido têm
fdisk -l - vamos criar um array raid
mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd - vamos criar um novo PV no ataque a partir de discos grandes
pvcreate data /dev/md127 - Vamos criar um grupo nesse PV chamado data
vgcreate data /dev/md127 - Vamos criar um volume lógico com o tamanho de todo o espaço livre e chamá-lo de val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат - formate a partição criada em ext4
mkfs.ext4 /dev/mapper/data-var_log - vamos ver o resultado
lsblk17) transferir dados de log da partição antiga para a nova
instalar temporariamente um novo armazenamento de log
mount /dev/mapper/data-var_log /mntvamos sincronizar as partições
apt install rsync rsync -avzr /var/log/ /mnt/Vamos descobrir quais processos estão atualmente em execução em /var/log
apt install lsof lsof | grep '/var/log'parar esses processos
systemctl stop rsyslog.service syslog.socketrealizar a sincronização final das partições (dados que podem ter sido alterados desde a última sincronização)
rsync -avzr /var/log/ /mnt/troque as seções
umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/logvamos verificar o que aconteceu
lsblk18) Edite /etc/fstab
fstab - um arquivo que registra as regras pelas quais as partições serão montadas na inicialização
nossa tarefa é encontrar a linha onde /var/log está montado e consertar o dispositivosystem-logemdata-var_log19) O mais importante nesta fase é não esquecer de alterar a tabela radela (ext4, por exemplo). Porque não importa como alteramos qualquer ataque, lvm, até que o FS na partição seja notificado de que o tamanho da partição mudou, não poderemos usar o novo espaço. Use o comando
resize2fspara alterar o FS.20) Acorde final
- Vamos reiniciar. Se você fez tudo corretamente, você será levado de volta ao seu sistema operacional (isso é necessário para ter certeza de que tudo está funcionando. Esta etapa não tem outro significado senão o autoteste)
- verificar se tudo o que queríamos fazer foi realmente feito:
pvs lvs vgs lsblk cat /proc/mdstat
21) [OPCIONAL] Siga os passos
- reinicie pressionando F12 para especificar unidades diferentes durante a inicialização para garantir que você possa inicializar
de qualquer uma das unidades SSD, para que não tenhamos medo da falha de uma delas - agora você tem log LV desnecessário no sistema VG. Aloque esse espaço entre root ou var, mas em vez de usar
designs 100% GRATUITOS especifique o tamanho manualmente usando a tecla -L:-L 500M - corrija o problema de que /boot está localizado em duas partições sem sincronização, não há necessidade de fazer isso corretamente,
é adicionado aqui como exemplo. Não se esqueça de copiar o conteúdo de /boot em algum lugar primeiro.- crie um novo ataque e inclua sda1,sda2 nele
- inclua essas partições no ataque existente e restaure /boot no ataque principal, mas sem montá-lo.
- vamos ver quais nomes os novos drives de disco rígido têm
- veja o tamanho do PV:
- copie a tabela de partições, substituindo os discos corretos:
- Primeiro de tudo, você precisa copiar a tabela de arquivos do disco antigo para o novo:
Fonte: habr.com









