Lab: ställa in lvm, raid på Linux

En liten avvikelse: denna LR är syntetisk.
Vissa av de uppgifter som beskrivs här kan göras mycket enklare, men eftersom uppgiften för l/r är att lära känna
med raid- och lvm-funktioner är vissa operationer konstgjorda komplicerade.

Krav för verktyg för att utföra LR:

  • Virtualiseringsverktyg som Virtualbox
  • Linux installationsbild, till exempel Debian9
  • Tillgång till Internet för nedladdning av flera paket
  • Anslut via ssh till den installerade virtuella datorn (valfritt)

VARNING

Detta laboratoriearbete är relaterat till en så subtil fråga som datasäkerhet - detta är ett område där
vilket gör att du kan förlora all din data på grund av det minsta felet - en extra bokstav eller siffra.
Eftersom du utför laboratoriearbete är du inte i någon fara, förutom att du måste börja göra det igen.
I det verkliga livet är allt mycket mer seriöst, så du bör ange disknamn mycket noggrant, förståelse
exakt vad gör du med det aktuella kommandot och vilka diskar arbetar du med.

Den andra viktiga punkten är namngivningen av diskar och partitioner: beroende på situationen kan disknummer skilja sig åt
från de värden som presenteras i kommandona i laboratoriearbetet.
Så, till exempel, om du tar bort sda-disken från arrayen och sedan lägger till en ny disk, kommer den nya disken att visas
på ett system som heter sda. Om du startar om innan du lägger till en ny disk, då den nya
disken kommer att heta sdb, och den gamla kommer att heta sda

Labbet måste köras som superanvändare (root) som de flesta kommandon kräver
förhöjda privilegier och det är inte meningsfullt att ständigt eskalera privilegier via sudo

Studiematerial

  • RAID
  • LVM
  • Disknamn i Linux OS
  • Vad är ett avsnitt
  • Vad är en partitionstabell och var lagras den?
  • Vad är grub

Verktyg som används

1) visa diskinformation

  • lsblk -o NAMN, STORLEK, FSTYPE, TYPE, MOUNTPOINT
  • fdisk -l
    2) visa information och arbeta med LVM
  • PVS
  • pvextend
  • pvskapa
  • pvresize
  • vGS
  • vgreduce
  • jag mot
  • lvextend
    3) visa information och arbeta med RAID
  • cat /proc/mdstat
  • mdadm
    4) fästpunkter
  • montera
  • umount
  • cat /etc/fstab
  • cat /etc/mtab
    5) ompartition av disk
  • fdisk /dev/XXX
    6) kopiering av partitioner
  • dd om=/dev/xxx av=/dev/ååå
    7) arbeta med partitionstabellen
  • partx
  • sfdisk
  • mkfs.ext4
    8) arbeta med starthanteraren
  • grub-installera /dev/XXX
  • update-grub
    9) div
  • lsof
  • benägen
  • rsync

Laborationer består av 3 delar:

  • ställa in ett fungerande system med lvm, raid
  • emulering av ett av diskfelen
  • byta ut diskar i farten, lägga till nya diskar och flytta partitioner.

Uppgift 1 (OS-installation och konfiguration av LVM, RAID)

1) Skapa en ny virtuell maskin som ger den följande egenskaper:

  • 1 GB RAM
  • 1 cpu
  • 2 hdds (namnge dem ssd1, ssd2 och tilldela lika storlekar, kryssa i rutorna för hot swap och ssd)
  • SATA-kontroller konfigurerad för 4 portar

Lab: ställa in lvm, raid på Linux

2) Börja installera Linux och när du kommer till valet av hårddiskar gör du följande:

  • Partitioneringsmetod: manuell, varefter du bör se denna bild:
    Lab: ställa in lvm, raid på Linux

  • Ställa in en separat partition för /boot: Välj den första disken och skapa en ny partitionstabell på den

    • Partitionsstorlek: 512M
    • Monteringspunkt: /boot
    • Upprepa inställningarna för den andra disken, men eftersom du inte kan montera /boot två gånger samtidigt, välj monteringspunkt: ingen, får så småningom följande (bild med en jamb, för lat för att göra om det):
      Lab: ställa in lvm, raid på Linux

  • RAID-inställning:

    • Välj ledigt utrymme på den första disken och konfigurera partitionstypen som fysisk volym för RAID
    • Välj "Klar med att konfigurera partitionen"
    • Upprepa exakt samma inställningar för den andra disken, vilket resulterar i följande:
      Lab: ställa in lvm, raid på Linux
    • Välj "Konfigurera programvara RAID"
    • Skapa MD-enhet
    • Software RAID-enhetstyp: Välj en speglad array
    • Aktiva enheter för RAID XXXX-arrayen: Välj båda enheterna
    • Reservenheter: Lämna 0 som standard
    • Aktiva enheter för RAID XX-arrayen: välj de partitioner som du skapade under raid
    • Finish
    • Som ett resultat bör du få en bild som denna:
      Lab: ställa in lvm, raid på Linux

  • Konfigurera LVM: Välj Konfigurera den logiska volymhanteraren

    • Behåll nuvarande partitionslayout och konfigurera LVM: Ja
    • Skapa volymgrupp
    • Volymgruppsnamn: system
    • Enheter för den nya volymgruppen: Välj din skapade RAID
    • Skapa logisk volym
    • logisk volymnamn: root
    • logisk volymstorlek: 25 av din diskstorlek
    • Skapa logisk volym
    • logisk volymnamn: var
    • logisk volymstorlek: 25 av din diskstorlek
    • Skapa logisk volym
    • logisk volymnamn: log
    • logisk volymstorlek: 15 av din diskstorlek
    • Genom att välja Visa konfigurationsdetaljer bör du få följande bild:
      Lab: ställa in lvm, raid på Linux
    • När du har slutfört konfigureringen av LVM bör du se följande:
      Lab: ställa in lvm, raid på Linux

  • Partitionslayout: en efter en, välj varje volym som skapats i LVM och layout dem, till exempel för root så här:

    • Använd som: ext4
    • monteringspunkt: /
    • Resultatet av att markera rotpartitionen bör se ut så här:
      Lab: ställa in lvm, raid på Linux
    • upprepa partitioneringsoperationen för var och log, välj lämpliga monteringspunkter (/var och /var/log manuellt inmatade), vilket ger följande resultat:
      Lab: ställa in lvm, raid på Linux
    • Välj Slutför partitionering
    • Du kommer att få flera frågor om att du fortfarande har en omonterad partition och att swap inte är konfigurerat. Båda frågorna ska besvaras nekande.

  • Slutresultatet ska se ut så här:
    Lab: ställa in lvm, raid på Linux
    3) Avsluta OS-installationen genom att installera grub på den första enheten (sda) och starta upp systemet.
    4) Kopiera innehållet i /boot-partitionen från sda-enheten (ssd1) till sdb-enheten (ssd2)

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

    5) Installera grub på den andra enheten:

  • titta på diskarna i systemet:

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

  • Lista alla diskar som det föregående kommandot gav dig och beskriv vilken typ av disk det är

  • Hitta enheten där grub inte var installerad och utför denna installation:
    grub-install /dev/sdb

  • visa information om den aktuella raiden med kommandot cat /proc/mdstat och skriv ner vad du ser.

  • titta på resultatet av kommandona: pvs, vgs, lvs, mount och skriv ner exakt vad du såg

Beskriv med egna ord vad du gjorde och vilket resultat du fick av uppgiften.

När du har slutfört den här uppgiften rekommenderas det att du sparar en säkerhetskopia av mappen eller gör den virtuella maskinen
lösdrivare låda: https://t.me/bykvaadm/191

Resultat: Virtuell maskin med diskar ssd1, ssd2

Uppgift 2 (Emulera felet på en av diskarna)

1) Om du har markerat hot swap-rutan kan du ta bort diskar direkt

  • Ta bort disk ssd1 i maskinegenskaper
  • Hitta katalogen där dina virtuella maskinfiler är lagrade och ta bort ssd1.vmdk
    2) Se till att din virtuella maskin fortfarande körs
    3) Starta om den virtuella maskinen och se till att den fortfarande körs
    4) kontrollera statusen för RAID-arrayen: cat /proc/mdstat
    5) lägg till en ny disk av samma storlek i VM-gränssnittet och döp den till ssd3
    6) utför operationerna:
  • se att den nya disken har anlänt till systemet med fdisk -l
  • kopiera partitionstabellen från den gamla disken till den nya: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
  • titta på resultatet med fdisk -l
  • Lägg till en ny disk till raid-arrayen: mdadm —manage /dev/md0 —add /dev/YYY
  • Titta på resultatet: cat /proc/mdstat. Du bör se att synkroniseringen har startat
    7) Nu måste du manuellt synkronisera partitioner som inte är en del av RAID.
    För att göra detta kommer vi att använda dd-verktyget, kopiera från "live"-disken till den nya som du nyligen installerade

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

    8) När synkroniseringen är klar, installera grub på den nya enheten
    9) Starta om den virtuella datorn för att se till att allt fungerar
    Beskriv med egna ord vad du gjorde och vilket resultat du fick av uppgiften.
    Resultat: Disk ssd1 togs bort, disk ssd2 sparades, disk ssd3 lades till.

    Uppgift 3 (Lägga till nya diskar och flytta en partition)

    Detta är den mest komplexa och omfattande uppgiften av alla presenterade.
    Kontrollera mycket noga vad du gör och med vilka diskar och partitioner.
    Det rekommenderas att du gör en kopia innan du kör den.
    Denna uppgift är oberoende av uppgift nr 2, den kan utföras efter uppgift nr 1, justerad för disknamn.
    Den andra delen av denna laboratorieuppgift bör leda till exakt samma tillstånd som var efter att ha genomfört den första delen.

    För att göra ditt arbete enklare kan jag rekommendera att inte fysiskt ta bort diskar från värddatorn, utan bara
    koppla bort dem i maskinegenskaperna. Ur OS-synpunkt i VM kommer det att se exakt likadant ut, men du kan
    om något händer, koppla tillbaka skivan och fortsätt arbetet genom att rulla tillbaka ett par punkter, if
    du har problem. Till exempel kan du ha gjort det felaktigt eller glömt att kopiera /boot-partitionen till den nya disken.
    Jag kan bara råda dig att dubbelkolla vilka diskar och partitioner du arbetar med flera gånger, eller ännu bättre
    Skriv ner på ett papper korrespondensen mellan diskarna, partitionerna och det "fysiska" disknumret. Vackert och tydligt träd
    laglottningar lsblk, använd den så ofta som möjligt för att analysera vad du har gjort och vad som behöver göras.

    Till historien...

    Föreställ dig att din server har körts länge på 2 SSD-enheter, när plötsligt...

    1) Simulera ssd2-diskfel genom att ta bort disken från VM-egenskaperna och starta om
    2) Visa aktuell status för diskar och RAID:

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

    3) Du har tur - dina chefer har tillåtit dig att köpa flera nya diskar:

    2 SATA med stor kapacitet för den efterlängtade uppgiften att flytta partitionen med loggar till en separat disk

    2 SSD:er för att ersätta den som dog, samt för att ersätta den som fortfarande fungerar.

    Observera att serverkorgen endast stöder installation av 4 diskar åt gången,
    därför kan du inte lägga till alla diskar samtidigt.

    Välj HDD-kapacitet 2 gånger större än SSD.
    SSD-kapaciteten är 1,25 gånger större än den tidigare SSD:n.

    4) Lägg till en ny ssd-disk, kalla den ssd4, och efter att ha lagt till, kontrollera vad som hände:

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

    5) Först och främst bör du ta hand om säkerheten för data på den gamla disken.
    Den här gången kommer vi att överföra data med LVM:

    • Först och främst måste du kopiera filtabellen från den gamla disken till den nya:
      sfdisk -d /dev/XXX | sfdisk /dev/YYY

      Byt ut x,y med rätt diskar och ta reda på vad det här kommandot gör.

      Kör kommandot lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT och jämför dess utdata med föregående anrop.
      Vad har förändrats?
      använd kommandot dd för att kopiera /boot-data till den nya disken

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

      om /boot förblev monterad på den gamla disken, bör den monteras om på livedisken:

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

      Installera starthanteraren på den nya ssd-enheten

      grub-install /dev/YYY

      Varför utför vi denna operation?

      skapa en ny raid-array som bara innehåller en ny ssd-disk:

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

      Ovanstående kommando fungerar inte utan att ange en speciell nyckel.
      Läs hjälpen och lägg till denna nyckel till kommandot.

      Använd kommandot cat /proc/mdstat för att kontrollera resultatet av din operation. Vad har förändrats?
      Kör kommandot lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT och jämför dess utdata med föregående anrop.
      Vad har förändrats?
      6) Nästa steg är att konfigurera LVM
      kör kommandot pvs för att visa information om de aktuella fysiska volymerna
      skapa en ny fysisk volym inklusive den tidigare skapade RAID-arrayen:

      pvcreate /dev/md63

      Kör kommandot lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT och jämför dess utdata med föregående anrop.
      Vad har förändrats?
      Kör kommandot pvs igen. Vad har förändrats?
      Låt oss öka storleken på volymgruppsystemet med följande kommando:

      vgextend system /dev/md63

      Kör kommandona och skriv ner vad du såg och vad som förändrades.

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

      På vilken fysisk disk finns LV var,log,root för närvarande?

      Flytta data från den gamla enheten till den nya med rätt enhetsnamn.

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

      Upprepa operationen för alla logiska volymer

      Kör kommandona och skriv ner vad du såg och vad som förändrades.

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

      Låt oss ändra vår VG genom att ta bort den gamla raiddisken från den. Byt ut det korrekta raidnamnet.

      vgreduce system /dev/md0

      Kör kommandona och skriv ner vad du såg och vad som förändrades.

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

      För att göra bilden vackrare, montera om /boot till den andra ssd-disken (ssd4) och kör lsblk. Som ett resultat gör det inte ssd3-disken
      inget ska monteras. Kontrollera noga att /boot-partitionen inte är tom! ls /boot måste visa
      flera filer och mappar. Studera vad som finns lagrat i detta avsnitt och skriv ner vilken filkatalog som ansvarar för vad.
      7) ta bort ssd3-disken och lägg till ssd5, hdd1, hdd2 enligt de tekniska specifikationerna som beskrivs ovan, vilket resulterar i:
      ssd4 - den första nya ssd
      ssd5 - andra nya ssd
      hdd1 - första nya hdd
      hdd2 - andra nya hdd

      8) Kontrollera vad som hände efter att du lagt till diskar:

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

      9) Låt oss återställa funktionen för huvudraid-arrayen:

      • kopiera partitionstabellen och byt ut rätt diskar:
        sfdisk -d /dev/XXX | sfdisk /dev/YYY
      • Observera att när vi kopierade partitionstabellen från den gamla disken, verkade det som om den nya storleken
        använder inte hela hårddiskens kapacitet.
        Därför kommer vi snart att behöva ändra storlek på denna partition och utöka raiden.
        Se själv genom att köra kommandot:

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

        10) kopiera startpartitionen /boot från ssd4 till ssd5

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

        11) Installera grub på den nya enheten (ssd5)
        12) ändra storlek på den andra partitionen på ssd5-disken

        kör diskpartitioneringsverktyget:

        fdisk /dev/XXX

        skriv in d-tangenten för att ta bort en befintlig partition (välj 2)
        skriv in nyckeln n för att skapa en ny partition
        skriv in tangenten p för att indikera att partitionstypen är "primär"
        skriv in tangent 2 så att den nya partitionen har det andra numret
        Första sektorn: tryck på enter för att acceptera den automatiskt beräknade storleken på början av partitionen
        Sista sektorn: tryck på enter för att acceptera den automatiskt beräknade storleken på slutet av partitionen
        skriv in l-tangenten för att se en lista över alla möjliga partitionstyper och hitta Linux raid auto i den
        skriv in t-tangenten för att ändra typen av den skapade partitionen (2) och ange numret som hittades i föregående steg.
        skriv in w-tangenten för att skriva ändringen till disken.
        12) läs partitionstabellen igen och kontrollera resultatet

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

        lägg till en ny disk till den aktuella raid-arrayen (glöm inte att byta ut rätt diskar)

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

        Låt oss utöka antalet diskar i vår array till 2:

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

        Titta på resultatet: vi har 2 arrayer markerade, men båda sektionerna som ingår i denna array har olika storlekar

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

        13) öka partitionsstorleken på ssd4-disken

        kör diskpartitioneringsverktyget:

        fdisk /dev/XXX

        skriv in d-tangenten för att ta bort en befintlig partition (välj 2)
        skriv in nyckeln n för att skapa en ny partition
        skriv in tangenten p för att indikera att partitionstypen är "primär"
        skriv in tangent 2 så att den nya partitionen har det andra numret
        Första sektorn: tryck på enter för att acceptera den automatiskt beräknade storleken på början av partitionen
        Sista sektorn: tryck på enter för att acceptera den automatiskt beräknade storleken på slutet av partitionen
        I slutet av markeringen väljer du Nej för att lämna signaturen för partitionens medlemskap i arrayen.
        skriv in w-tangenten för att skriva ändringen till disken.
        12) läs partitionstabellen igen och kontrollera resultatet

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

        Observera att nu har sda2, sdc2-partitioner en storlek > än storleken på raidenheten.

        13) i detta skede kan raidstorleken nu utökas

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

        Granska lsblk och notera vad som har förändrats
        14) Men även om vi ändrade storleken på raiden, ändrades inte storlekarna på själva vg root,var,log

        • titta på PV-storleken:
          pvs
        • Låt oss utöka storleken på vår PV:
          pvresize /dev/md63
        • titta på PV-storleken:
          pvs

          15) Lägg till den nyligen visade platsen VG var,root

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

          Vid det här laget har du slutfört migreringen av huvudarrayen till de nya diskarna. arbete med ssd1, ssd2 är klar

          16) Vår nästa uppgift är att flytta /var/log till nya diskar, för detta kommer vi att skapa en ny array och lvm på hdd-diskar.

          • låt oss se vilka namn de nya hårddiskarna har
            fdisk -l
          • låt oss skapa en raid-array
            mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
          • låt oss skapa en ny PV på raiden från stora diskar
            pvcreate data /dev/md127
          • Låt oss skapa en grupp i denna PV som kallas data
            vgcreate data /dev/md127
          • Låt oss skapa en logisk volym med storleken på allt ledigt utrymme och kalla det val_log
            lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
          • formatera den skapade partitionen i ext4
            mkfs.ext4 /dev/mapper/data-var_log
          • låt oss se resultatet
            lsblk

            17) överför loggdata från den gamla partitionen till den nya

            tillfälligt installera en ny logglagring

            mount /dev/mapper/data-var_log /mnt

            låt oss synkronisera partitionerna

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

            Låt oss ta reda på vilka processer som för närvarande körs i /var/log

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

            stoppa dessa processer

            systemctl stop rsyslog.service syslog.socket

            utföra slutlig synkronisering av partitioner (data som kan ha ändrats sedan den senaste synkroniseringen)

            rsync -avzr /var/log/ /mnt/

            byt avsnitt

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

            låt oss kolla vad som hände

            lsblk

            18) Redigera /etc/fstab
            fstab - en fil som registrerar reglerna för vilka partitioner kommer att monteras vid uppstart
            vår uppgift är att hitta raden där /var/log är monterad och fixa enheten system-logdata-var_log

            19) Det viktigaste i detta skede är att inte glömma att ändra radelatabellen (ext4, till exempel). För oavsett hur vi ändrar någon raid, lvm, tills FS på partitionen meddelas att partitionsstorleken nu har ändrats, kommer vi inte att kunna använda det nya utrymmet. Använd kommandot resize2fs för att ändra FS.

            20) Slutackord

            • Låt oss starta om. Om du gjorde allt korrekt kommer du att tas tillbaka till ditt OS (detta är nödvändigt för att se till att allt fungerar. Det här steget har ingen annan betydelse än självtestning)
            • kontrollera att allt vi ville göra faktiskt gjordes:
              pvs
              lvs
              vgs
              lsblk
              cat /proc/mdstat

            21) [VALFRITT] Följ stegen

            • starta om genom att trycka på F12 för att ange olika enheter vid uppstart för att säkerställa att du kan starta
              från någon av ssd-enheterna, så att vi inte är rädda för fel på en av dem
            • nu har du onödig LV inloggning i VG-system. Tilldela detta utrymme mellan root eller var, men istället för att använda
              designs 100%FREE specificera storleken för hand med -L-tangenten:

              -L 500M
            • fixa problemet med att /boot finns på två partitioner utan synkronisering, det finns inget behov av att göra detta korrekt,
              det läggs till här som ett exempel. Glöm inte att kopiera innehållet i /boot någonstans först.

              • skapa en ny raid och inkludera sda1,sda2 i den
              • inkludera dessa partitioner i den befintliga raiden och återställ /boot till huvudraiden, men utan att montera den.

Källa: will.com

Lägg en kommentar