Lab: sette opp lvm, raid på Linux

En liten digresjon: denne LR er syntetisk.
Noen av oppgavene beskrevet her kan gjøres mye enklere, men siden oppgaven til l/r er å bli kjent
med raid- og lvm-funksjonalitet er noen operasjoner kunstig kompliserte.

Krav til verktøy for å utføre LR:

  • Virtualiseringsverktøy som Virtualbox
  • Linux installasjonsbilde, for eksempel Debian9
  • Tilgjengelighet av Internett for nedlasting av flere pakker
  • Koble via ssh til den installerte VM-en (valgfritt)

FORSIKTIG

Dette laboratoriearbeidet er relatert til en så subtil sak som datasikkerhet - dette er et område hvor
som lar deg miste alle dataene dine på grunn av den minste feilen - én ekstra bokstav eller tall.
Siden du gjør laboratoriearbeid, er du ikke i fare, bortsett fra at du må begynne å gjøre det på nytt.
I det virkelige liv er alt mye mer alvorlig, så du bør skrive inn disknavn veldig nøye, forståelse
hva gjør du med gjeldende kommando og hvilke disker jobber du med.

Det andre viktige punktet er navn på disker og partisjoner: avhengig av situasjonen kan disknummer variere
fra de verdiene som presenteres i kommandoene i laboratoriearbeidet.
Så hvis du for eksempel fjerner sda-disken fra arrayet og deretter legger til en ny disk, vil den nye disken vises
på et system som heter sda. Hvis du starter på nytt før du legger til en ny disk, vil den nye
disken vil hete sdb, og den gamle vil bli kalt sda

Laben må kjøres som superbruker (root) slik de fleste kommandoene krever
forhøyede privilegier, og det gir ikke mening å stadig eskalere privilegier via sudo

Studiemateriell

  • RAID
  • LVM
  • Disknavning i Linux OS
  • Hva er en seksjon
  • Hva er en partisjonstabell og hvor lagres den?
  • Hva er grub

Verktøy brukt

1) se diskinformasjon

  • lsblk -o NAVN, STØRRELSE, FSTYPE, TYPE, MONTERINGSPUNKT
  • fdisk -l
    2) se informasjon og arbeide med LVM
  • pvs
  • pvextend
  • pvskape
  • pvrestørrelse
  • etc
  • vgreduce
  • lvs
  • lvextend
    3) se informasjon og arbeide med RAID
  • cat /proc/mdstat
  • mdadm
    4) monteringspunkter
  • montere
  • umount
  • cat /etc/fstab
  • cat /etc/mtab
    5) ompartisjon av disk
  • fdisk /dev/XXX
    6) kopiering av partisjoner
  • dd if=/dev/xxx av=/dev/yyy
    7) arbeide med partisjonstabellen
  • partx
  • sfdisk
  • mkfs.ext4
    8) arbeider med oppstartslasteren
  • grub-install /dev/XXX
  • oppdatering-grub
    9) div
  • lsof
  • apt
  • rsync

Laboratoriearbeid består av 3 deler:

  • sette opp et fungerende system ved hjelp av lvm, raid
  • emulering av en av diskfeilene
  • bytte ut disker i farten, legge til nye disker og flytte partisjoner.

Oppgave 1 (OS-installasjon og konfigurasjon av LVM, RAID)

1) Opprett en ny virtuell maskin som gir den følgende egenskaper:

  • 1 gb ram
  • 1 cpu
  • 2 hdds (navngi dem ssd1, ssd2 og tilordne like størrelser, sjekk hot swap- og ssd-boksene)
  • SATA-kontroller konfigurert for 4 porter

Lab: sette opp lvm, raid på Linux

2) Begynn å installere Linux og når du kommer til å velge harddisker, gjør følgende:

  • Partisjoneringsmetode: manuell, hvoretter du skal se dette bildet:
    Lab: sette opp lvm, raid på Linux

  • Sette opp en separat partisjon for /boot: Velg den første disken og lag en ny partisjonstabell på den

    • Partisjonsstørrelse: 512M
    • Monteringspunkt: /boot
    • Gjenta innstillingene for den andre disken, men siden du ikke kan montere /boot to ganger samtidig, velg monteringspunkt: ingen, får til slutt følgende (bilde med en jamb, for lat til å gjøre det om):
      Lab: sette opp lvm, raid på Linux

  • RAID-oppsett:

    • Velg ledig plass på den første disken og konfigurer partisjonstypen som fysisk volum for RAID
    • Velg "Ferdig med å sette opp partisjonen"
    • Gjenta nøyaktig de samme innstillingene for den andre disken, noe som resulterer i følgende:
      Lab: sette opp lvm, raid på Linux
    • Velg "Konfigurer programvare RAID"
    • Opprett MD-enhet
    • Programvare RAID-enhetstype: Velg en speilet matrise
    • Aktive enheter for RAID XXXX-matrisen: Velg begge stasjonene
    • Reserveenheter: La 0 stå som standard
    • Aktive enheter for RAID XX-matrisen: velg partisjonene du opprettet under raid
    • Finish
    • Som et resultat bør du få et bilde som dette:
      Lab: sette opp lvm, raid på Linux

  • Konfigurere LVM: Velg Configure the Logical Volume Manager

    • Behold gjeldende partisjonsoppsett og konfigurer LVM: Ja
    • Opprett volumgruppe
    • Volumgruppenavn: system
    • Enheter for den nye volumgruppen: Velg din opprettede RAID
    • Lag logisk volum
    • logisk volumnavn: root
    • logisk volumstørrelse: 25 av diskstørrelsen din
    • Lag logisk volum
    • logisk volumnavn: var
    • logisk volumstørrelse: 25 av diskstørrelsen din
    • Lag logisk volum
    • logisk volumnavn: logg
    • logisk volumstørrelse: 15 av diskstørrelsen din
    • Ved å velge Vis konfigurasjonsdetaljer skal du få følgende bilde:
      Lab: sette opp lvm, raid på Linux
    • Når du har fullført konfigureringen av LVM, bør du se følgende:
      Lab: sette opp lvm, raid på Linux

  • Partisjonsoppsett: en etter en, velg hvert volum som er opprettet i LVM og layout dem, for eksempel for root slik:

    • Bruk som: ext4
    • monteringspunkt: /
    • Resultatet av å merke rotpartisjonen skal se slik ut:
      Lab: sette opp lvm, raid på Linux
    • gjenta partisjoneringsoperasjonen for var og log, velg de riktige monteringspunktene (/var og /var/log manuelt angitt), og oppnå følgende resultat:
      Lab: sette opp lvm, raid på Linux
    • Velg Fullfør partisjonering
    • Du vil bli stilt flere spørsmål om det faktum at du fortsatt har en umontert partisjon og swap ikke er konfigurert. Begge spørsmålene skal besvares benektende.

  • Det endelige resultatet skal se slik ut:
    Lab: sette opp lvm, raid på Linux
    3) Fullfør OS-installasjonen ved å installere grub på den første enheten (sda) og start opp systemet.
    4) Kopier innholdet av /boot-partisjonen fra sda-stasjonen (ssd1) til sdb-stasjonen (ssd2)

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

    5) Installer grub på den andre enheten:

  • se på diskene i systemet:

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

  • List opp alle diskene som den forrige kommandoen ga deg og beskriv hva slags disk det er

  • Finn stasjonen der grub ikke ble installert og utfør denne installasjonen:
    grub-install /dev/sdb

  • vis informasjon om gjeldende raid med kommandoen cat /proc/mdstat og skriv ned det du ser.

  • se på utgangen av kommandoene: pvs, vgs, lvs, mount og skriv ned nøyaktig hva du så

Beskriv med egne ord hva du gjorde og hvilket resultat du fikk av oppgaven.

Etter å ha fullført denne oppgaven, anbefales det å lagre en sikkerhetskopi av mappen eller lage den virtuelle maskinen
vagrant boks: https://t.me/bykvaadm/191

Resultat: Virtuell maskin med disker ssd1, ssd2

Oppgave 2 (Emulerer feilen på en av diskene)

1) Hvis du har krysset av i hot swap-boksen, kan du slette disker med en gang

  • Slett disk ssd1 i maskinegenskaper
  • Finn katalogen der filene dine for den virtuelle maskinen er lagret, og slett ssd1.vmdk
    2) Sørg for at den virtuelle maskinen fortsatt kjører
    3) Start den virtuelle maskinen på nytt og kontroller at den fortsatt kjører
    4) sjekk statusen til RAID-arrayen: cat /proc/mdstat
    5) legg til en ny disk av samme størrelse i VM-grensesnittet og gi den navnet ssd3
    6) utfør operasjonene:
  • se at den nye disken har kommet inn i systemet ved hjelp av fdisk -l
  • kopier partisjonstabellen fra den gamle disken til den nye: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
  • se på resultatet med fdisk -l
  • Legg til en ny disk i raid-arrayen: mdadm —manage /dev/md0 —add /dev/YYY
  • Se på resultatet: cat /proc/mdstat. Du skal se at synkroniseringen har startet
    7) Nå må du manuelt synkronisere partisjoner som ikke er en del av RAID.
    For å gjøre dette bruker vi dd-verktøyet, kopierer fra "live"-disken til den nye som du nylig installerte

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

    8) Etter at synkroniseringen er fullført, installer grub på den nye stasjonen
    9) Start VM-en på nytt for å sikre at alt fungerer
    Beskriv med egne ord hva du gjorde og hvilket resultat du fikk av oppgaven.
    Resultat: Disk ssd1 ble fjernet, disk ssd2 ble lagret, disk ssd3 ble lagt til.

    Oppgave 3 (legge til nye disker og flytte en partisjon)

    Dette er den mest komplekse og omfangsrike oppgaven av alle presenterte.
    Sjekk veldig nøye hva du gjør og med hvilke disker og partisjoner.
    Det anbefales å lage en kopi før du kjører den.
    Denne oppgaven er uavhengig av oppgave nr. 2, den kan utføres etter oppgave nr. 1, justert for disknavn.
    Den andre delen av denne laboratorieoppgaven skal føre til nøyaktig samme tilstand som var etter å ha fullført den første delen.

    For å gjøre arbeidet ditt enklere, kan jeg anbefale å ikke fjerne disker fysisk fra vertsmaskinen, men bare
    koble dem fra i maskinegenskapene. Fra synspunktet til OS i VM vil det se nøyaktig det samme ut, men du kan
    hvis noe skjer, koble disken tilbake og fortsett arbeidet ved å rulle tilbake et par punkter, if
    du har problemer. For eksempel kan du ha gjort det feil eller glemt å kopiere /boot-partisjonen til den nye disken.
    Jeg kan bare råde deg til å dobbeltsjekke hvilke disker og partisjoner du jobber med flere ganger, eller enda bedre
    Skriv ned korrespondansen mellom diskene, partisjonene og det "fysiske" disknummeret på et stykke papir. Vakkert og klart tre
    laget trekker lsblk, bruk den så ofte som mulig til å analysere hva du har gjort og hva som må gjøres.

    Til historien...

    Tenk deg at serveren din har kjørt i lang tid på 2 SSD-stasjoner, da plutselig...

    1) Simuler ssd2-diskfeil ved å fjerne disken fra VM-egenskapene og starte på nytt
    2) Se gjeldende status for disker og RAID:

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

    3) Du er heldig - sjefene dine har tillatt deg å kjøpe flere nye disker:

    2 SATA med stor kapasitet for den langvarige oppgaven med å flytte partisjonen med logger til en separat disk

    2 SSD-er for å erstatte den som døde, samt for å erstatte den som fortsatt fungerer.

    Vær oppmerksom på at serverkurven kun støtter installasjon av 4 disker om gangen,
    derfor kan du ikke legge til alle diskene samtidig.

    Velg HDD-kapasitet 2 ganger større enn SSD.
    SSD-kapasiteten er 1,25 ganger større enn den tidligere SSD-en.

    4) Legg til en ny ssd-disk, kall den ssd4, og etter å ha lagt til, sjekk hva som skjedde:

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

    5) Først av alt bør du ta vare på sikkerheten til dataene på den gamle disken.
    Denne gangen vil vi overføre data ved hjelp av LVM:

    • Først av alt må du kopiere filtabellen fra den gamle disken til den nye:
      sfdisk -d /dev/XXX | sfdisk /dev/YYY

      Bytt ut de riktige diskene med x,y og finn ut hva denne kommandoen gjør.

      Kjør lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign utgangen med forrige kall.
      Hva har forandret seg?
      bruk dd-kommandoen til å kopiere /boot-dataene til den nye disken

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

      hvis /boot forble montert på den gamle disken, bør den monteres på nytt på live disken:

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

      Installer oppstartslasteren på den nye ssd-stasjonen

      grub-install /dev/YYY

      Hvorfor utfører vi denne operasjonen?

      lag en ny raid-array inkludert bare én ny ssd-disk:

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

      Kommandoen ovenfor vil ikke fungere uten å spesifisere en spesiell nøkkel.
      Les hjelpen og legg til denne nøkkelen i kommandoen.

      Bruk kommandoen cat /proc/mdstat for å sjekke resultatet av operasjonen. Hva har forandret seg?
      Kjør lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign utgangen med forrige kall.
      Hva har forandret seg?
      6) Neste trinn er å konfigurere LVM
      kjør pvs-kommandoen for å se informasjon om gjeldende fysiske volumer
      opprette et nytt fysisk volum inkludert den tidligere opprettede RAID-matrisen:

      pvcreate /dev/md63

      Kjør lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT og sammenlign utgangen med forrige kall.
      Hva har forandret seg?
      Kjør pvs-kommandoen igjen. Hva har forandret seg?
      La oss øke størrelsen på Volume Group-systemet ved å bruke følgende kommando:

      vgextend system /dev/md63

      Kjør kommandoene og skriv ned hva du så og hva som endret seg.

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

      På hvilken fysisk disk er LV var,log,root plassert?

      Flytt data fra den gamle stasjonen til den nye ved å bruke de riktige enhetsnavnene.

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

      Gjenta operasjonen for alle logiske volumer

      Kjør kommandoene og skriv ned hva du så og hva som endret seg.

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

      La oss endre vår VG ved å fjerne den gamle raiddisken fra den. Bytt ut det riktige raidnavnet.

      vgreduce system /dev/md0

      Kjør kommandoene og skriv ned hva du så og hva som endret seg.

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

      For å gjøre bildet vakrere, remonter /boot til den andre ssd-disken (ssd4) og kjør lsblk. Som et resultat gjør ikke ssd3-disken det
      ingenting skal monteres. Sjekk nøye at /boot-partisjonen ikke er tom! ls /boot må vise
      flere filer og mapper. Studer hva som er lagret i denne delen og skriv ned hvilken filkatalog som er ansvarlig for hva.
      7) fjern ssd3-disken og legg til ssd5, hdd1, hdd2 i henhold til de tekniske spesifikasjonene beskrevet ovenfor, noe som resulterer i:
      ssd4 - den første nye ssd
      ssd5 - andre nye ssd
      hdd1 - første nye hdd
      hdd2 - andre nye hdd

      8) Sjekk hva som skjedde etter å ha lagt til disker:

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

      9) La oss gjenopprette driften av hovedraid-arrayet:

      • kopier partisjonstabellen, og bytt ut de riktige diskene:
        sfdisk -d /dev/XXX | sfdisk /dev/YYY
      • Vær oppmerksom på at når vi kopierte partisjonstabellen fra den gamle disken, så det ut til at den nye størrelsen
        bruker ikke hele harddiskkapasiteten.
        Derfor må vi snart endre størrelsen på denne partisjonen og utvide raidet.
        Se selv ved å kjøre kommandoen:

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

        10) kopier oppstartspartisjonen /boot fra ssd4 til ssd5

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

        11) Installer grub på den nye stasjonen (ssd5)
        12) endre størrelsen på den andre partisjonen på ssd5-disken

        kjør diskpartisjoneringsverktøyet:

        fdisk /dev/XXX

        skriv inn d-tasten for å slette en eksisterende partisjon (velg 2)
        skriv inn nøkkelen n for å opprette en ny partisjon
        skriv inn tasten p for å indikere at partisjonstypen er "primær"
        skriv inn tast 2 slik at den nye partisjonen har det andre tallet
        Første sektor: trykk enter for å godta den automatisk beregnede størrelsen på begynnelsen av partisjonen
        Siste sektor: trykk enter for å godta den automatisk beregnede størrelsen på slutten av partisjonen
        skriv inn l-tasten for å se en liste over alle mulige partisjonstyper og finn Linux raid auto i den
        skriv inn t-tasten for å endre typen til den opprettede partisjonen (2) og skriv inn nummeret som ble funnet i forrige trinn.
        skriv inn w-tasten for å skrive endringen til disk.
        12) les partisjonstabellen på nytt og sjekk resultatet

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

        legg til en ny disk i gjeldende raid-array (ikke glem å erstatte de riktige diskene)

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

        La oss utvide antallet disker i arrayet vårt til 2:

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

        Se på resultatet: vi har 2 arrays merket opp, men begge seksjonene inkludert i denne arrayen har forskjellige størrelser

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

        13) øk partisjonsstørrelsen på ssd4-disken

        kjør diskpartisjoneringsverktøyet:

        fdisk /dev/XXX

        skriv inn d-tasten for å slette en eksisterende partisjon (velg 2)
        skriv inn nøkkelen n for å opprette en ny partisjon
        skriv inn tasten p for å indikere at partisjonstypen er "primær"
        skriv inn tast 2 slik at den nye partisjonen har det andre tallet
        Første sektor: trykk enter for å godta den automatisk beregnede størrelsen på begynnelsen av partisjonen
        Siste sektor: trykk enter for å godta den automatisk beregnede størrelsen på slutten av partisjonen
        På slutten av markeringen velger du Nei for å la signaturen til partisjonens medlemskap være i matrisen.
        skriv inn w-tasten for å skrive endringen til disk.
        12) les partisjonstabellen på nytt og sjekk resultatet

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

        Vær oppmerksom på at nå har sda2, sdc2-partisjoner en størrelse > enn størrelsen på raidenheten.

        13) på dette stadiet kan raidstørrelsen nå utvides

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

        Se gjennom lsblk og legg merke til hva som har endret seg
        14) Selv om vi endret størrelsen på raidet, endret ikke størrelsene på vg root,var,log seg selv

        • se på PV-størrelsen:
          pvs
        • La oss utvide størrelsen på vår PV:
          pvresize /dev/md63
        • se på PV-størrelsen:
          pvs

          15) Legg til den nylig dukkede plasseringen VG var,root

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

          På dette tidspunktet har du fullført migreringen av hovedarrayen til de nye diskene. arbeid med ssd1, ssd2 er fullført

          16) Vår neste oppgave er å flytte /var/log til nye disker, for dette vil vi lage en ny array og lvm på hdd-disker.

          • la oss se hvilke navn de nye HDD-stasjonene har
            fdisk -l
          • la oss lage en raid-array
            mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
          • la oss lage en ny PV på raidet fra store disker
            pvcreate data /dev/md127
          • La oss lage en gruppe i denne PV kalt data
            vgcreate data /dev/md127
          • La oss lage et logisk volum med størrelsen på all ledig plass og kalle det val_log
            lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
          • formater den opprettede partisjonen i ext4
            mkfs.ext4 /dev/mapper/data-var_log
          • la oss se resultatet
            lsblk

            17) overføre loggdata fra den gamle partisjonen til den nye

            midlertidig installere en ny logglagring

            mount /dev/mapper/data-var_log /mnt

            la oss synkronisere partisjonene

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

            La oss finne ut hvilke prosesser som kjører i /var/log

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

            stoppe disse prosessene

            systemctl stop rsyslog.service syslog.socket

            utføre endelig synkronisering av partisjoner (data som kan ha endret seg siden siste synkronisering)

            rsync -avzr /var/log/ /mnt/

            bytt ut seksjonene

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

            la oss sjekke hva som skjedde

            lsblk

            18) Rediger /etc/fstab
            fstab - en fil som registrerer reglene for hvilke partisjoner skal monteres ved oppstart
            vår oppgave er å finne linjen der /var/log er montert og fikse enheten system-logdata-var_log

            19) Det viktigste på dette stadiet er ikke å glemme å endre radela-tabellen (ext4, for eksempel). For uansett hvordan vi endrer et hvilket som helst raid, lvm, før FS på partisjonen får beskjed om at partisjonsstørrelsen nå er endret, vil vi ikke kunne bruke den nye plassen. Bruk kommandoen resize2fs for å endre FS.

            20) Sluttakkord

            • La oss starte på nytt. Hvis du gjorde alt riktig, vil du bli tatt tilbake til operativsystemet ditt (dette er nødvendig for å være sikker på at alt fungerer. Dette trinnet har ingen annen betydning enn selvtesting)
            • sjekk at alt vi ønsket å gjøre faktisk ble gjort:
              pvs
              lvs
              vgs
              lsblk
              cat /proc/mdstat

            21) [VALGFRITT] Følg trinnene

            • start på nytt ved å trykke F12 for å spesifisere forskjellige stasjoner ved oppstart for å være sikker på at du kan starte opp
              fra noen av ssd-stasjonene, slik at vi ikke er redde for feil på en av dem
            • nå har du unødvendig LV-logg i VG-system. Tildel dette rommet mellom root eller var, men i stedet for å bruke
              design 100% GRATIS spesifiser størrelsen for hånd ved å bruke -L-tasten:

              -L 500M
            • fikse problemet med at /boot er plassert på to partisjoner uten synkronisering, det er ikke nødvendig å gjøre dette riktig,
              det er lagt til her som et eksempel. Ikke glem å kopiere innholdet av /boot et sted først.

              • lag et nytt raid og ta med sda1,sda2 i det
              • inkludere disse partisjonene i det eksisterende raidet og gjenopprett /boot til hovedraidet, men uten å montere det.

Kilde: www.habr.com

Legg til en kommentar