Lab: opsætning af lvm, raid på Linux

En lille digression: denne LR er syntetisk.
Nogle af de her beskrevne opgaver kan gøres meget enklere, men da opgaven med l/r er at lære at kende
med raid- og lvm-funktionalitet er nogle operationer kunstigt komplicerede.

Krav til værktøjer til at udføre LR:

  • Virtualiseringsværktøjer såsom Virtualbox
  • Linux installationsbillede, for eksempel Debian9
  • Tilgængelighed af internet til download af flere pakker
  • Opret forbindelse via ssh til den installerede VM (valgfrit)

FORSIGTIG

Dette laboratoriearbejde er relateret til en så subtil sag som datasikkerhed - dette er et område, hvor
som giver dig mulighed for at miste alle dine data på grund af den mindste fejl - et ekstra bogstav eller tal.
Da du laver laboratoriearbejde, er du ikke i fare, bortset fra at du bliver nødt til at begynde at gøre det igen.
I det virkelige liv er alt meget mere alvorligt, så du skal indtaste disknavne meget omhyggeligt, forståelse
hvad laver du præcist med den aktuelle kommando, og hvilke diske arbejder du med.

Det andet vigtige punkt er navngivningen af ​​diske og partitioner: afhængigt af situationen kan disknumre variere
fra de værdier, der præsenteres i kommandoerne i laboratoriearbejdet.
Så hvis du for eksempel fjerner sda-disken fra arrayet og derefter tilføjer en ny disk, vil den nye disk blive vist
på et system ved navn sda. Hvis du genstarter før du tilføjer en ny disk, så den nye
disken vil hedde sdb, og den gamle vil hedde sda

Laboratoriet skal køres som superbruger (root), som de fleste af kommandoerne kræver
forhøjede privilegier, og det giver ikke mening konstant at eskalere privilegier via sudo

Studiematerialer

  • RAID
  • LVM
  • Disknavngivning i Linux OS
  • Hvad er et afsnit
  • Hvad er en partitionstabel, og hvor er den gemt?
  • Hvad er grub

Brugte hjælpeprogrammer

1) se diskoplysninger

  • lsblk -o NAVN, STØRRELSE, FSTYPE, TYPE, MOUNTPOINT
  • fdisk -l
    2) se information og arbejde med LVM
  • pvs
  • pvextend
  • pvskabe
  • pvrestørrelse
  • etc
  • vgreducere
  • LVS
  • lvextend
    3) se information og arbejde med RAID
  • kat /proc/mdstat
  • mdadm
    4) monteringspunkter
  • montere
  • umount
  • kat /etc/fstab
  • kat /etc/mtab
    5) diskgenopdeling
  • fdisk /dev/XXX
    6) kopiering af partitioner
  • dd if=/dev/xxx af=/dev/yyy
    7) arbejde med partitionstabellen
  • partx
  • sfdisk
  • mkfs.ext4
    8) arbejde med bootloaderen
  • grub-installer /dev/XXX
  • opdater-grub
    9) div
  • lsof
  • apt
  • rsync

Laboratoriearbejdet består af 3 dele:

  • opsætning af et fungerende system ved hjælp af lvm, raid
  • emulering af en af ​​diskfejlene
  • udskiftning af diske i farten, tilføjelse af nye diske og flytning af partitioner.

Opgave 1 (OS installation og konfiguration af LVM, RAID)

1) Opret en ny virtuel maskine, som giver den følgende egenskaber:

  • 1 gb ram
  • 1 cpu
  • 2 hdds (navngiv dem ssd1, ssd2 og tildel lige store størrelser, tjek hot swap- og ssd-felterne)
  • SATA-controller konfigureret til 4 porte

Lab: opsætning af lvm, raid på Linux

2) Begynd at installere Linux, og når du kommer til at vælge harddiske, skal du gøre følgende:

  • Partitioneringsmetode: manuel, hvorefter du skal se dette billede:
    Lab: opsætning af lvm, raid på Linux

  • Opsætning af en separat partition til /boot: Vælg den første disk og opret en ny partitionstabel på den

    • Skillevægsstørrelse: 512M
    • Monteringspunkt: /boot
    • Gentag indstillingerne for den anden disk, men da du ikke kan montere /boot to gange på samme tid, skal du vælge monteringspunkt: ingen, får til sidst følgende (billede med en jamb, for doven til at gøre det om):
      Lab: opsætning af lvm, raid på Linux

  • RAID opsætning:

    • Vælg ledig plads på den første disk, og konfigurer partitionstypen som fysisk volumen til RAID
    • Vælg "Udfør opsætning af partitionen"
    • Gentag nøjagtig de samme indstillinger for den anden disk, hvilket resulterer i følgende:
      Lab: opsætning af lvm, raid på Linux
    • Vælg "Konfigurer software RAID"
    • Opret MD-enhed
    • Software RAID-enhedstype: Vælg et spejlet array
    • Aktive enheder til RAID XXXX-arrayet: Vælg begge drev
    • Reserveenheder: Lad 0 være som standard
    • Aktive enheder til RAID XX-arrayet: Vælg de partitioner, du oprettede under raid
    • Finish
    • Som et resultat bør du få et billede som dette:
      Lab: opsætning af lvm, raid på Linux

  • Konfiguration af LVM: Vælg Konfigurer Logical Volume Manager

    • Behold det nuværende partitionslayout og konfigurer LVM: Ja
    • Opret volumengruppe
    • Volumengruppenavn: system
    • Enheder til den nye volumengruppe: Vælg dit oprettede RAID
    • Opret logisk volumen
    • logisk volumen navn: root
    • logisk volumenstørrelse: 25 af din diskstørrelse
    • Opret logisk volumen
    • logisk volumen navn: var
    • logisk volumenstørrelse: 25 af din diskstørrelse
    • Opret logisk volumen
    • logisk volumennavn: log
    • logisk volumenstørrelse: 15 af din diskstørrelse
    • Ved at vælge Vis konfigurationsdetaljer skulle du få følgende billede:
      Lab: opsætning af lvm, raid på Linux
    • Når du har afsluttet opsætningen af ​​LVM, bør du se følgende:
      Lab: opsætning af lvm, raid på Linux

  • Partitionslayout: en efter en, vælg hver volumen, der er oprettet i LVM, og layout dem, for eksempel for root som dette:

    • Brug som: ext4
    • monteringspunkt: /
    • Resultatet af at markere rodpartitionen skulle se sådan ud:
      Lab: opsætning af lvm, raid på Linux
    • gentag partitioneringsoperationen for var og log, vælg de passende monteringspunkter (/var og /var/log manuelt indtastet), og opnå følgende resultat:
      Lab: opsætning af lvm, raid på Linux
    • Vælg Afslut partitionering
    • Du vil blive stillet flere spørgsmål om, at du stadig har en umonteret partition, og at swap ikke er konfigureret. Begge spørgsmål bør besvares benægtende.

  • Det endelige resultat skulle se sådan ud:
    Lab: opsætning af lvm, raid på Linux
    3) Afslut OS-installationen ved at installere grub på den første enhed (sda) og boot systemet.
    4) Kopier indholdet af /boot-partitionen fra sda-drevet (ssd1) til sdb-drevet (ssd2)

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

    5) Installer grub på den anden enhed:

  • se på diskene i systemet:

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

  • List alle de diske, som den forrige kommando gav dig, og beskriv, hvilken slags disk det er

  • Find det drev, hvor grub ikke var installeret, og udfør denne installation:
    grub-install /dev/sdb

  • se information om det aktuelle raid med kommandoen cat /proc/mdstat og skriv ned, hvad du ser.

  • se på outputtet af kommandoerne: pvs, vgs, lvs, mount og skriv ned, hvad præcist du så

Beskriv med dine egne ord, hvad du gjorde, og hvilket resultat du fik af opgaven.

Efter at have fuldført denne opgave, anbefales det at gemme en sikkerhedskopi af den virtuelle maskine mappe eller lave
vagrant boks: https://t.me/bykvaadm/191

Resultat: Virtuel maskine med diske ssd1, ssd2

Opgave 2 (Emulering af fejlen på en af ​​diskene)

1) Hvis du har markeret hot swap-boksen, så kan du slette diske med det samme

  • Slet disk ssd1 i maskinegenskaber
  • Find den mappe, hvor dine virtuelle maskinfiler er gemt, og slet ssd1.vmdk
    2) Sørg for, at din virtuelle maskine stadig kører
    3) Genstart den virtuelle maskine, og sørg for, at den stadig kører
    4) kontroller status for RAID-arrayet: cat /proc/mdstat
    5) tilføje en ny disk af samme størrelse i VM-grænsefladen og navngive den ssd3
    6) udfør handlingerne:
  • se, at den nye disk er ankommet i systemet ved hjælp af fdisk -l
  • kopier partitionstabellen fra den gamle disk til den nye: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
  • se på resultatet ved hjælp af fdisk -l
  • Tilføj en ny disk til raid-arrayet: mdadm —manage /dev/md0 —add /dev/YYY
  • Se på resultatet: cat /proc/mdstat. Du bør se, at synkroniseringen er startet
    7) Nu skal du manuelt synkronisere partitioner, der ikke er en del af RAID.
    For at gøre dette bruger vi dd-værktøjet, kopierer fra "live"-disken til den nye, som du for nylig har installeret

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

    8) Når synkroniseringen er fuldført, skal du installere grub på det nye drev
    9) Genstart VM'en for at sikre, at alt fungerer
    Beskriv med dine egne ord, hvad du gjorde, og hvilket resultat du fik af opgaven.
    Resultat: Disk ssd1 blev fjernet, disk ssd2 blev gemt, disk ssd3 blev tilføjet.

    Opgave 3 (Tilføjelse af nye diske og flytning af en partition)

    Dette er den mest komplekse og omfangsrige opgave af alle præsenterede.
    Tjek meget nøje, hvad du laver, og med hvilke diske og partitioner.
    Det anbefales at lave en kopi, før du kører den.
    Denne opgave er uafhængig af opgave nr. 2, den kan udføres efter opgave nr. 1, justeret for disknavne.
    Den anden del af denne laboratorieopgave skulle føre til nøjagtig den samme tilstand, som var efter at have gennemført den første del.

    For at gøre dit arbejde lettere, kan jeg anbefale, at du ikke fysisk fjerner diske fra værtsmaskinen, men kun
    frakoble dem i maskinens egenskaber. Fra OS'ens synspunkt i VM'en vil det se nøjagtigt det samme ud, men du kan
    hvis der sker noget, tilslut disken tilbage og fortsæt arbejdet ved at rulle et par punkter tilbage, if
    du har problemer. For eksempel kan du have gjort det forkert eller glemt at kopiere /boot-partitionen til den nye disk.
    Jeg kan kun råde dig til at dobbelttjekke hvilke diske og partitioner du arbejder med flere gange, eller endnu bedre
    Skriv ned på et stykke papir korrespondancen mellem diske, partitioner og det "fysiske" disknummer. Smukt og klart træ
    holdet trækker lsblk, brug det så ofte som muligt til at analysere, hvad du har gjort, og hvad der skal gøres.

    Til historien...

    Forestil dig, at din server har kørt i lang tid på 2 SSD-drev, når pludselig...

    1) Simuler ssd2-diskfejl ved at fjerne disken fra VM-egenskaberne og genstarte
    2) Se den aktuelle status for diske og RAID:

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

    3) Du er heldig - dine chefer har tilladt dig at købe flere nye diske:

    2 SATA med stor kapacitet til den langvarige opgave at flytte partitionen med logfiler til en separat disk

    2 SSD'er til at erstatte den, der døde, samt til at erstatte den, der stadig fungerer.

    Bemærk venligst, at serverkurven kun understøtter installation af 4 diske ad gangen,
    derfor kan du ikke tilføje alle diske på én gang.

    Vælg HDD-kapacitet 2 gange større end SSD.
    SSD-kapaciteten er 1,25 gange større end den tidligere SSD.

    4) Tilføj en ny ssd-disk, kalder den ssd4, og efter tilføjelse skal du kontrollere, hvad der skete:

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

    5) Først og fremmest bør du sørge for sikkerheden af ​​dataene på den gamle disk.
    Denne gang overfører vi data ved hjælp af LVM:

    • Først og fremmest skal du kopiere filtabellen fra den gamle disk til den nye:
      sfdisk -d /dev/XXX | sfdisk /dev/YYY

      Erstat de korrekte diske med x,y og find ud af, hvad denne kommando gør.

      Kør lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign outputtet med det forrige kald.
      Hvad har ændret sig?
      brug kommandoen dd til at kopiere /boot-dataene til den nye disk

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

      hvis /boot forblev monteret på den gamle disk, skulle den genmonteres på live disken:

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

      Installer bootloaderen på det nye ssd-drev

      grub-install /dev/YYY

      Hvorfor udfører vi denne operation?

      opret et nyt raid-array, der kun inkluderer én ny ssd-disk:

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

      Ovenstående kommando vil ikke fungere uden at angive en speciel nøgle.
      Læs hjælpen og tilføj denne tast til kommandoen.

      Brug kommandoen cat /proc/mdstat til at kontrollere resultatet af din operation. Hvad har ændret sig?
      Kør lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign outputtet med det forrige kald.
      Hvad har ændret sig?
      6) Næste trin er at konfigurere LVM
      kør kommandoen pvs for at se information om de aktuelle fysiske volumener
      opret en ny fysisk diskenhed inklusive det tidligere oprettede RAID-array:

      pvcreate /dev/md63

      Kør lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign outputtet med det forrige kald.
      Hvad har ændret sig?
      Kør kommandoen pvs igen. Hvad har ændret sig?
      Lad os øge størrelsen på Volume Group-systemet ved at bruge følgende kommando:

      vgextend system /dev/md63

      Kør kommandoerne og skriv ned, hvad du så, og hvad der ændrede sig.

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

      På hvilken fysisk disk er LV var,log,root i øjeblikket placeret?

      Flyt data fra det gamle drev til det nye ved at bruge de korrekte enhedsnavne.

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

      Gentag handlingen for alle logiske volumener

      Kør kommandoerne og skriv ned, hvad du så, og hvad der ændrede sig.

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

      Lad os ændre vores VG ved at fjerne den gamle raid-disk fra den. Erstat det korrekte raid-navn.

      vgreduce system /dev/md0

      Kør kommandoerne og skriv ned, hvad du så, og hvad der ændrede sig.

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

      For at gøre billedet smukkere skal du genmontere /boot til den anden ssd-disk (ssd4) og køre lsblk. Som et resultat gør ssd3-disken det ikke
      intet skal monteres. Kontroller omhyggeligt, at /boot-partitionen ikke er tom! ls /boot skal vise
      flere filer og mapper. Undersøg, hvad der er gemt i dette afsnit, og skriv ned, hvilken filmappe der er ansvarlig for hvad.
      7) fjern ssd3 disk og tilføj ssd5, hdd1, hdd2 i henhold til de tekniske specifikationer beskrevet ovenfor, hvilket resulterer i:
      ssd4 - den første nye ssd
      ssd5 - anden ny ssd
      hdd1 - første nye hdd
      hdd2 - anden ny hdd

      8) Tjek, hvad der skete efter tilføjelse af diske:

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

      9) Lad os gendanne driften af ​​hovedraid-arrayet:

      • kopier partitionstabellen, udskift de korrekte diske:
        sfdisk -d /dev/XXX | sfdisk /dev/YYY
      • Bemærk venligst, at da vi kopierede partitionstabellen fra den gamle disk, så det ud til, at den nye størrelse
        bruger ikke hele harddiskens kapacitet.
        Derfor bliver vi snart nødt til at ændre størrelsen på denne partition og udvide raidet.
        Se selv ved at køre kommandoen:

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

        10) kopier boot-partitionen /boot fra ssd4 til ssd5

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

        11) Installer grub på det nye drev (ssd5)
        12) ændre størrelsen på den anden partition på ssd5-disken

        kør diskpartitioneringsværktøjet:

        fdisk /dev/XXX

        indtast d-tasten for at slette en eksisterende partition (vælg 2)
        indtast nøglen n for at oprette en ny partition
        indtast tasten p for at angive, at partitionstypen er "primær"
        indtast tast 2, så den nye partition har det andet nummer
        Første sektor: Tryk på Enter for at acceptere den automatisk beregnede størrelse på begyndelsen af ​​partitionen
        Sidste sektor: Tryk på Enter for at acceptere den automatisk beregnede størrelse af slutningen af ​​partitionen
        indtast l-tasten for at se en liste over alle mulige partitionstyper og find Linux raid auto i den
        indtast t-tasten for at ændre typen af ​​den oprettede partition (2), og indtast nummeret fundet i det forrige trin.
        indtast w-tasten for at skrive ændringen til disk.
        12) genlæs partitionstabellen og kontroller resultatet

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

        tilføje en ny disk til det aktuelle raid-array (glem ikke at erstatte de korrekte diske)

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

        Lad os udvide antallet af diske i vores array til 2:

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

        Se på resultatet: vi har 2 arrays markeret, men begge sektioner inkluderet i dette array har forskellige størrelser

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

        13) øge partitionsstørrelsen på ssd4-disken

        kør diskpartitioneringsværktøjet:

        fdisk /dev/XXX

        indtast d-tasten for at slette en eksisterende partition (vælg 2)
        indtast nøglen n for at oprette en ny partition
        indtast tasten p for at angive, at partitionstypen er "primær"
        indtast tast 2, så den nye partition har det andet nummer
        Første sektor: Tryk på Enter for at acceptere den automatisk beregnede størrelse på begyndelsen af ​​partitionen
        Sidste sektor: Tryk på Enter for at acceptere den automatisk beregnede størrelse af slutningen af ​​partitionen
        I slutningen af ​​markeringen skal du vælge Nej for at efterlade signaturen for partitionens medlemskab i arrayet.
        indtast w-tasten for at skrive ændringen til disk.
        12) genlæs partitionstabellen og kontroller resultatet

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

        Bemærk, at nu har sda2, sdc2-partitioner en størrelse > end størrelsen på raid-enheden.

        13) på dette stadium kan raid-størrelsen nu udvides

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

        Gennemgå lsblk og noter, hvad der er ændret
        14) Selvom vi ændrede størrelsen på raidet, ændrede størrelserne på selve vg root,var,log sig ikke

        • se på PV-størrelsen:
          pvs
        • Lad os udvide størrelsen af ​​vores PV:
          pvresize /dev/md63
        • se på PV-størrelsen:
          pvs

          15) Tilføj den nyligt dukkede placering VG var,root

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

          På dette tidspunkt har du fuldført migreringen af ​​hovedarrayet til de nye diske. arbejde med ssd1, ssd2 er afsluttet

          16) Vores næste opgave er at flytte /var/log til nye diske, til dette vil vi oprette et nyt array og lvm på hdd-diske.

          • lad os se, hvilke navne de nye HDD-drev har
            fdisk -l
          • lad os oprette et raid-array
            mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
          • lad os skabe en ny PV på raidet fra store diske
            pvcreate data /dev/md127
          • Lad os oprette en gruppe i denne PV kaldet data
            vgcreate data /dev/md127
          • Lad os skabe et logisk volumen med størrelsen af ​​al ledig plads og kalde det val_log
            lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
          • formater den oprettede partition i ext4
            mkfs.ext4 /dev/mapper/data-var_log
          • lad os se resultatet
            lsblk

            17) overføre logdata fra den gamle partition til den nye

            midlertidigt installere et nyt loglager

            mount /dev/mapper/data-var_log /mnt

            lad os synkronisere partitionerne

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

            Lad os finde ud af, hvilke processer der i øjeblikket kører i /var/log

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

            stoppe disse processer

            systemctl stop rsyslog.service syslog.socket

            udføre endelig synkronisering af partitioner (data, der kan være ændret siden sidste synkronisering)

            rsync -avzr /var/log/ /mnt/

            skift sektionerne

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

            lad os tjekke hvad der skete

            lsblk

            18) Rediger /etc/fstab
            fstab - en fil, der registrerer reglerne for, hvilke partitioner vil blive monteret ved opstart
            vores opgave er at finde linjen, hvor /var/log er monteret, og rette enheden system-logdata-var_log

            19) Det vigtigste på dette stadium er ikke at glemme at ændre radela-tabellen (ekst4, for eksempel). For uanset hvordan vi ændrer et raid, lvm, indtil FS'en på partitionen får besked om, at partitionsstørrelsen nu er ændret, vil vi ikke være i stand til at bruge den nye plads. Brug kommandoen resize2fs for at ændre FS.

            20) Slutakkord

            • Lad os genstarte. Hvis du gjorde alt korrekt, vil du blive ført tilbage til dit OS (dette er nødvendigt for at sikre, at alt fungerer. Dette trin har ingen betydning udover selvtestning)
            • kontrollere, at alt, hvad vi ønskede at gøre, faktisk blev gjort:
              pvs
              lvs
              vgs
              lsblk
              cat /proc/mdstat

            21) [VALGFRI] Følg trinene

            • genstart ved at trykke på F12 for at angive forskellige drev ved opstart for at sikre, at du kan starte
              fra nogen af ​​ssd-drevene, så vi ikke er bange for fejl på et af dem
            • nu har du unødvendigt LV log i VG system. Tildel dette mellemrum mellem root eller var, men i stedet for at bruge
              designs 100% GRATIS angiv størrelsen manuelt ved hjælp af -L-tasten:

              -L 500M
            • løse problemet med at /boot er placeret på to partitioner uden synkronisering, det er ikke nødvendigt at gøre dette korrekt,
              det er tilføjet her som et eksempel. Glem ikke at kopiere indholdet af /boot et sted først.

              • opret et nyt raid og medtag sda1,sda2 i det
              • inkludere disse partitioner i det eksisterende raid og gendan /boot til hovedraidet, men uden at montere det.

Kilde: www.habr.com

Tilføj en kommentar