Laboratorio: configuración de lvm, raid en Linux

Unha pequena digresión: este LR é sintético.
Algunhas das tarefas aquí descritas pódense facer moito máis sinxelas, pero xa que a tarefa de l/r é coñecer
coa funcionalidade raid e lvm, algunhas operacións complícanse artificialmente.

Requisitos das ferramentas para realizar LR:

  • Ferramentas de virtualización como Virtualbox
  • Imaxe de instalación de Linux, por exemplo Debian 9
  • Dispoñibilidade de Internet para descargar varios paquetes
  • Conectar mediante ssh á máquina virtual instalada (opcional)

ATENCIÓN

Este traballo de laboratorio está relacionado con un asunto tan sutil como a seguridade dos datos - esta é unha área onde
o que lle permite perder todos os seus datos debido ao menor erro: unha letra ou número adicional.
Xa que estás facendo traballo de laboratorio, non corres ningún perigo, salvo que terás que comezar a facelo de novo.
Na vida real, todo é moito máis serio, polo que debes introducir os nomes dos discos con moito coidado, entendendo
que está facendo exactamente co comando actual e con que discos está a traballar.

O segundo punto importante é a denominación de discos e particións: dependendo da situación, os números de disco poden diferir
a partir daqueles valores que se presentan nos comandos no traballo de laboratorio.
Así, por exemplo, se elimina o disco sda da matriz e despois engade un novo disco, o novo disco amosarase
nun sistema chamado sda. Se reinicia antes de engadir un novo disco, entón o novo
o disco chamarase sdb e o antigo chamarase sda

O laboratorio debe executarse como superusuario (raíz) como requiren a maioría dos comandos
privilexios elevados e non ten sentido aumentar os privilexios constantemente a través de sudo

Materiais de estudo

  • RAID
  • LVM
  • Nomes de disco no sistema operativo Linux
  • Que é unha sección
  • Que é unha táboa de particións e onde se almacena?
  • Que é grub

Utilidades utilizadas

1) ver a información do disco

  • lsblk -o NOME, TAMAÑO, TIPO FS, TIPO, PUNTO DE MONTAXE
  • fdisk -l
    2) ver información e traballar con LVM
  • pvs
  • pvextend
  • pvcreate
  • pvresize
  • etc
  • vgreduce
  • lvs
  • lveestender
    3) ver información e traballar con RAID
  • cat /proc/mdstat
  • mdadm
    4) puntos de montaxe
  • montar
  • desmontar
  • cat /etc/fstab
  • cat /etc/mtab
    5) repartición de discos
  • fdisk /dev/XXX
    6) copiando particións
  • dd if=/dev/xxx of=/dev/yyy
    7) traballar coa táboa de particións
  • partx
  • sfdisk
  • mkfs.ext4
    8) traballar co cargador de arranque
  • grub-install /dev/XXX
  • actualización-grub
    9) Varios
  • lsof
  • apto
  • rsync

O traballo de laboratorio consta de 3 partes:

  • configurar un sistema de traballo usando lvm, raid
  • emulación dun dos fallos do disco
  • substituíndo discos sobre a marcha, engadindo novos discos e movendo particións.

Tarefa 1 (instalación do SO e configuración de LVM, RAID)

1) Crea unha nova máquina virtual, dándolle as seguintes características:

  • 1 GB de memoria RAM
  • 1 cpu
  • 2 discos duros (nomeos ssd1, ssd2 e asígnelle tamaños iguais, marque as caixas de intercambio en quente e ssd)
  • Controlador SATA configurado para 4 portos

Laboratorio: configuración de lvm, raid en Linux

2) Comeza a instalar Linux e cando chegue a seleccionar os discos duros, faga o seguinte:

  • Método de partición: manual, despois do cal deberías ver esta imaxe:
    Laboratorio: configuración de lvm, raid en Linux

  • Configurar unha partición separada para /boot: seleccione o primeiro disco e cree unha nova táboa de particións nel

    • Tamaño da partición: 512M
    • Punto de montaxe: /boot
    • Repita a configuración para o segundo disco, pero dado que non pode montar /boot dúas veces ao mesmo tempo, seleccione o punto de montaxe: none, e finalmente obtense o seguinte (a imaxe cunha xamba, demasiado preguiceiro para refacelo):
      Laboratorio: configuración de lvm, raid en Linux

  • Configuración RAID:

    • Seleccione espazo libre no primeiro disco e configure o tipo de partición como volume físico para RAID
    • Seleccione "Finalizar a configuración da partición"
    • Repita exactamente a mesma configuración para o segundo disco, resultando o seguinte:
      Laboratorio: configuración de lvm, raid en Linux
    • Seleccione "Configurar software RAID"
    • Crear dispositivo MD
    • Tipo de dispositivo RAID de software: seleccione unha matriz espellada
    • Dispositivos activos para a matriz RAID XXXX: seleccione ambas unidades
    • Dispositivos de reserva: deixe 0 como predeterminado
    • Dispositivos activos para a matriz RAID XX: seleccione as particións que creou en RAID
    • Rematar
    • Como resultado, deberías obter unha imaxe como esta:
      Laboratorio: configuración de lvm, raid en Linux

  • Configuración de LVM: seleccione Configurar o xestor de volumes lóxicos

    • Manter o deseño actual da partición e configurar LVM: Si
    • Crear grupo de volumes
    • Nome do grupo de volumes: sistema
    • Dispositivos para o novo grupo de volumes: seleccione o RAID creado
    • Crear volume lóxico
    • nome do volume lóxico: root
    • tamaño do volume lóxico: 25 do tamaño do seu disco
    • Crear volume lóxico
    • nome do volume lóxico: var
    • tamaño do volume lóxico: 25 do tamaño do seu disco
    • Crear volume lóxico
    • nome do volume lóxico: rexistro
    • tamaño do volume lóxico: 15 do tamaño do seu disco
    • Ao seleccionar Mostrar detalles de configuración deberías obter a seguinte imaxe:
      Laboratorio: configuración de lvm, raid en Linux
    • Unha vez que completes a configuración de LVM deberías ver o seguinte:
      Laboratorio: configuración de lvm, raid en Linux

  • Disposición de partición: un por un, selecciona cada volume creado en LVM e dispóñaos, por exemplo, para root deste xeito:

    • Usar como: ext4
    • punto de montaxe: /
    • O resultado de marcar a partición raíz debería verse así:
      Laboratorio: configuración de lvm, raid en Linux
    • repita a operación de partición para var e log, seleccionando os puntos de montaxe axeitados (/var e /var/log introducidos manualmente), obtendo o seguinte resultado:
      Laboratorio: configuración de lvm, raid en Linux
    • Seleccione Finalizar partición
    • Faranche varias preguntas sobre o feito de que aínda tes unha partición sen montar e o intercambio non está configurado. Ambas preguntas deben ser contestadas negativamente.

  • O resultado final debería ser así:
    Laboratorio: configuración de lvm, raid en Linux
    3) Finalice a instalación do SO instalando grub no primeiro dispositivo (sda) e arrinque o sistema.
    4) Copie o contido da partición /boot da unidade sda ​​(ssd1) á unidade sdb (ssd2)

    dd if=/dev/sda1 of=/dev/sdb1

    5) Instala grub no segundo dispositivo:

  • mira os discos do sistema:

    fdisk -l
    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

  • Enumera todos os discos que che deu o comando anterior e describe que tipo de disco é

  • Busca a unidade onde non se instalou o grub e realiza esta instalación:
    grub-install /dev/sdb

  • ver información sobre a incursión actual co comando cat /proc/mdstat e anotar o que ve.

  • mira a saída dos comandos: pvs, vgs, lvs, mount e escribe o que viu exactamente

Describe coas túas propias palabras o que fixeches e o resultado que obtivo coa tarefa.

Despois de completar esta tarefa, recoméndase gardar unha copia de seguridade do cartafol da máquina virtual ou facer
caixa vagabunda: https://t.me/bykvaadm/191

Resultado: máquina virtual con discos ssd1, ssd2

Tarefa 2 (Emular o fallo dun dos discos)

1) Se marcaches a caixa de intercambio en quente, podes eliminar discos sobre a marcha

  • Elimina o disco ssd1 nas propiedades da máquina
  • Busca o directorio onde se almacenan os ficheiros da túa máquina virtual e elimina ssd1.vmdk
    2) Asegúrate de que a túa máquina virtual aínda está funcionando
    3) Reinicie a máquina virtual e asegúrese de que aínda está en execución
    4) verifique o estado da matriz RAID: cat /proc/mdstat
    5) engade un novo disco do mesmo tamaño na interface da máquina virtual e nomealle ssd3
    6) Realice as operacións:
  • ver que o novo disco chegou ao sistema usando fdisk -l
  • copie a táboa de particións do disco antigo ao novo: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
  • mira o resultado usando fdisk -l
  • Engade un novo disco á matriz raid: mdadm —manage /dev/md0 —add /dev/YYY
  • Mira o resultado: cat /proc/mdstat. Deberías ver que a sincronización comezou
    7) Agora cómpre sincronizar manualmente as particións que non forman parte do RAID.
    Para iso, utilizaremos a utilidade dd, copiando desde o disco "en vivo" ao novo que instalou recentemente

    dd if=/dev/XXX of=/dev/YYY

    8) Despois de completar a sincronización, instale o grub na nova unidade
    9) Reinicie a máquina virtual para asegurarse de que todo funciona
    Describe coas túas propias palabras o que fixeches e o resultado que obtivo coa tarefa.
    Resultado: eliminouse o disco ssd1, gardouse o disco ssd2 e engadiuse o disco ssd3.

    Tarefa 3 (Engadir novos discos e mover unha partición)

    Esta é a tarefa máis complexa e voluminosa de todas as presentadas.
    Comprobe con moito coidado o que está a facer e con que discos e particións.
    Recoméndase facer unha copia antes de executalo.
    Esta tarefa é independente da tarefa número 2, pódese realizar despois da tarefa número 1, axustada para os nomes de disco.
    A segunda parte desta tarefa de laboratorio debería levar exactamente ao mesmo estado que estaba despois de completar a primeira parte.

    Para facilitar o teu traballo, recomendo que non elimines fisicamente os discos da máquina host, senón só
    desconécteos nas propiedades da máquina. Desde o punto de vista do sistema operativo na VM, parecerá exactamente igual, pero podes
    se ocorre algo, conecte o disco de novo e continúe o traballo retrocedendo un par de puntos, se
    estás tendo problemas. Por exemplo, é posible que o fixera incorrectamente ou se esquecera de copiar a partición /boot no novo disco.
    Só podo aconsellarlle que comprobe varias veces con que discos e particións está a traballar, ou aínda mellor.
    Anota nun papel a correspondencia entre os discos, particións e o número de disco “físico”. Árbore fermosa e clara
    empates por equipos lsblk, utilízao coa maior frecuencia posible para analizar o que fixeches e o que hai que facer.

    Ao conto...

    Imaxina que o teu servidor estivo funcionando durante moito tempo en 2 unidades SSD, cando de súpeto...

    1) Simule o fallo do disco ssd2 eliminando o disco das propiedades da máquina virtual e reiniciando
    2) Ver o estado actual dos discos e do RAID:

    cat /proc/mdstat
    fdisk -l
    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

    3) Tes sorte: os teus xefes permitíronche comprar varios discos novos:

    2 SATA de gran capacidade para a tarefa tan esperada de mover a partición con rexistros a un disco separado

    2 SSD para substituír o que morreu, así como para substituír o que aínda está funcionando.

    Ten en conta que a cesta do servidor só admite a instalación de 4 discos á vez,
    polo tanto, non pode engadir todos os discos á vez.

    Seleccione a capacidade do disco duro 2 veces maior que a SSD.
    A capacidade SSD é 1,25 veces maior que a antiga SSD.

    4) Engade un novo disco ssd, chamándoo ssd4, e despois de engadir, comproba o que pasou:

    fdisk -l
    lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

    5) En primeiro lugar, debes coidar da seguridade dos datos do disco antigo.
    Esta vez transferiremos datos usando LVM:

    • Primeiro de todo, cómpre copiar a táboa de ficheiros do disco antigo ao novo:
      sfdisk -d /dev/XXX | sfdisk /dev/YYY

      Substitúe os discos correctos por x,y e descubra o que fai este comando.

      Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare a súa saída coa chamada anterior.
      Que cambiou?
      use o comando dd para copiar os datos /boot no novo disco

      dd if=/dev/XXX of=/dev/YYY

      se /boot permaneceu montado no disco antigo, debería montarse de novo no disco en directo:

      mount | grep boot # смотрим куда смонтирован диск
      lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
      umount /boot # отмонтируем /boot
      mount -a # выполним монтирование всех точек согласно /etc/fstab. 
      # Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск

      Instala o cargador de arranque na nova unidade ssd

      grub-install /dev/YYY

      Por que estamos a realizar esta operación?

      cree unha nova matriz de incursión que inclúe só un novo disco ssd:

      mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYY

      O comando anterior non funcionará sen especificar unha chave especial.
      Le a axuda e engade esta chave ao comando.

      Use o comando cat /proc/mdstat para comprobar o resultado da súa operación. Que cambiou?
      Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare a súa saída coa chamada anterior.
      Que cambiou?
      6) O seguinte paso é configurar LVM
      execute o comando pvs para ver información sobre os volumes físicos actuais
      cree un novo volume físico incluíndo a matriz RAID creada anteriormente:

      pvcreate /dev/md63

      Execute lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT e compare a súa saída coa chamada anterior.
      Que cambiou?
      Execute o comando pvs de novo. Que cambiou?
      Aumentemos o tamaño do sistema de grupos de volume usando o seguinte comando:

      vgextend system /dev/md63

      Executa os comandos e escribe o que viu e o que cambiou.

      vgdisplay system -v
      pvs
      vgs
      lvs -a -o+devices

      En que disco físico se atopa actualmente LV var,log,root?

      Move os datos da antiga unidade á nova, utilizando os nomes de dispositivos correctos.

      pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63 

      Repita a operación para todos os volumes lóxicos

      Executa os comandos e escribe o que viu e o que cambiou.

      vgdisplay system -v
      pvs
      vgs
      lvs -a -o+devices
      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

      Imos cambiar o noso VG eliminando o antigo disco raid. Substitúe o nome correcto da banda.

      vgreduce system /dev/md0

      Executa os comandos e escribe o que viu e o que cambiou.

      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
      pvs
      vgs

      Para facer a imaxe máis fermosa, volve montar /boot no segundo disco ssd (ssd4) e executa lsblk. Como resultado, o disco ssd3 non
      non se debe montar nada. Comprobe coidadosamente que a partición /boot non estea baleira! ls /boot debe mostrar
      varios ficheiros e cartafoles. Estude o que se almacena nesta sección e anote que directorio de ficheiros é responsable de que.
      7) elimina o disco ssd3 e engade ssd5, hdd1, hdd2 segundo as especificacións técnicas descritas anteriormente, o que resulta:
      ssd4 - o primeiro ssd novo
      ssd5 - segundo ssd novo
      hdd1 - primeiro disco duro novo
      hdd2 - segundo disco duro novo

      8) Comprobe o que pasou despois de engadir discos:

      fdisk -l
      lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

      9) Restauremos o funcionamento da matriz de ataque principal:

      • copie a táboa de particións, substituíndo os discos correctos:
        sfdisk -d /dev/XXX | sfdisk /dev/YYY
      • Teña en conta que cando copiamos a táboa de particións do disco antigo, parecía que o novo tamaño
        non utiliza toda a capacidade do disco duro.
        Polo tanto, en breve teremos que redimensionar esta partición e ampliar a incursión.
        Comproba por ti mesmo executando o comando:

        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        10) copie a partición de arranque /boot de ssd4 a ssd5

        dd if=/dev/XXX of=/dev/YYY

        11) Instala grub na nova unidade (ssd5)
        12) redimensionar a segunda partición do disco ssd5

        executa a utilidade de partición do disco:

        fdisk /dev/XXX

        introduza a tecla d para eliminar unha partición existente (escolla 2)
        introduza a chave n para crear unha nova partición
        introduza a tecla p para indicar que o tipo de partición é "principal"
        introduza a tecla 2 para que a nova partición teña o segundo número
        Primeiro sector: prema Intro para aceptar o tamaño calculado automaticamente do inicio da partición
        Último sector: prema Intro para aceptar o tamaño calculado automaticamente do final da partición
        introduza a tecla l para ver unha lista de todos os tipos de particións posibles e atopar nela Linux Raid Auto
        introduza a tecla t para cambiar o tipo da partición creada (2) e introduza o número atopado no paso anterior.
        introduza a tecla w para escribir o cambio no disco.
        12) volve ler a táboa de particións e verifique o resultado

        partx -u /dev/XXX
        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        engadir un novo disco á matriz de ataque actual (non esqueza substituír os discos correctos)

        mdadm --manage /dev/md63 --add /dev/sda2

        Imos ampliar o número de discos da nosa matriz a 2:

        mdadm --grow /dev/md63 --raid-devices=2

        Mira o resultado: temos 2 matrices marcadas, pero as dúas seccións incluídas nesta matriz teñen tamaños diferentes

        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        13) aumentar o tamaño da partición no disco ssd4

        executa a utilidade de partición do disco:

        fdisk /dev/XXX

        introduza a tecla d para eliminar unha partición existente (escolla 2)
        introduza a chave n para crear unha nova partición
        introduza a tecla p para indicar que o tipo de partición é "principal"
        introduza a tecla 2 para que a nova partición teña o segundo número
        Primeiro sector: prema Intro para aceptar o tamaño calculado automaticamente do inicio da partición
        Último sector: prema Intro para aceptar o tamaño calculado automaticamente do final da partición
        Ao final do marcado, seleccione Non para deixar a sinatura da pertenza da partición na matriz.
        introduza a tecla w para escribir o cambio no disco.
        12) volve ler a táboa de particións e verifique o resultado

        partx -u /dev/XXX
        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT

        Teña en conta que agora as particións sda2 e sdc2 teñen un tamaño > que o tamaño do dispositivo de ataque.

        13) nesta fase o tamaño da incursión agora pódese ampliar

        mdadm --grow /dev/md63 --size=max
        lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result

        Revisa lsblk e observa o que cambiou
        14) Non obstante, aínda que cambiamos o tamaño da incursión, os tamaños de vg root,var,log non cambiaron

        • mira o tamaño do PV:
          pvs
        • Ampliemos o tamaño do noso PV:
          pvresize /dev/md63
        • mira o tamaño do PV:
          pvs

          15) Engade a localización recén aparecida VG var,root

          lvs # посмотрим сколько сейчас размечено
          lvextend -l +50%FREE /dev/system/root
          lvextend -l +100%FREE /dev/system/var
          lvs # проверьте что получилось

          Neste punto, rematou de migrar a matriz principal aos novos discos. traballar con ssd1, ssd2 está rematado

          16) A nosa seguinte tarefa é mover /var/log a novos discos, para iso crearemos unha nova matriz e lvm nos discos hdd.

          • imos ver que nomes teñen as novas unidades de disco duro
            fdisk -l
          • imos crear unha matriz de ataque
            mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
          • imos crear un novo PV no raid a partir de discos grandes
            pvcreate data /dev/md127
          • Imos crear un grupo neste PV chamado datos
            vgcreate data /dev/md127
          • Creemos un volume lóxico co tamaño de todo o espazo libre e chamémoslle val_log
            lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
          • formatear a partición creada en ext4
            mkfs.ext4 /dev/mapper/data-var_log
          • vexamos o resultado
            lsblk

            17) transferir datos de rexistro da partición antiga á nova

            instalar temporalmente un novo almacenamento de rexistro

            mount /dev/mapper/data-var_log /mnt

            imos sincronizar as particións

            apt install rsync
            rsync -avzr /var/log/ /mnt/

            Descubramos cales son os procesos que se están executando actualmente en /var/log

            apt install lsof
            lsof | grep '/var/log'

            parar estes procesos

            systemctl stop rsyslog.service syslog.socket

            realizar a sincronización final das particións (datos que poden ter cambiado desde a última sincronización)

            rsync -avzr /var/log/ /mnt/

            intercambiar as seccións

            umount /mnt
            umount /var/log
            mount /dev/mapper/data-var_log /var/log

            imos comprobar o que pasou

            lsblk

            18) Edite /etc/fstab
            fstab - un ficheiro que rexistra as regras polas que se montarán as particións ao arrancar
            a nosa tarefa é atopar a liña onde está montado /var/log e arranxar o dispositivo system-log en data-var_log

            19) O máis importante nesta fase é non esquecer cambiar a táboa de radela (ext4, por exemplo). Porque non importa como cambiemos calquera ataque, lvm, ata que o FS da partición sexa notificado de que agora cambiou o tamaño da partición, non poderemos usar o novo espazo. Use o comando resize2fs para cambiar o FS.

            20) Acordo final

            • Reiniciemos. Se fixeches todo correctamente, volverás ao teu SO (isto é necesario para asegurarte de que todo funciona. Este paso non ten outro significado que a autoproba)
            • comprobar que todo o que queriamos facer estaba feito:
              pvs
              lvs
              vgs
              lsblk
              cat /proc/mdstat

            21) [OPCIONAL] Siga os pasos

            • reinicie premendo F12 para especificar diferentes unidades ao iniciar para asegurarse de que pode iniciar
              de calquera das unidades ssd, para que non teñamos medo a falla dunha delas
            • agora tes un rexistro LV innecesario no sistema VG. Asigna este espazo entre root ou var, pero en vez de usalo
              deseños 100% GRATIS especifique o tamaño a man usando a tecla -L:

              -L 500M
            • solucionar o problema de que /boot está situado en dúas particións sen sincronización, non hai que facelo correctamente,
              engádese aquí como exemplo. Non esquezas copiar primeiro o contido de /boot nalgún lugar.

              • crea un novo raid e inclúe sda1,sda2 nel
              • inclúa estas particións no raid existente e restaura /boot no raid principal, pero sen montalo.

Fonte: www.habr.com

Engadir un comentario