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
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
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:
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):
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:
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:
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:
Når du har afsluttet opsætningen af LVM, bør du se følgende:
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:
gentag partitioneringsoperationen for var og log, vælg de passende monteringspunkter (/var og /var/log manuelt indtastet), og opnå følgende resultat:
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:
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)
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:
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:
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.
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:
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
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
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-log på data-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.