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
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:
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):
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:
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:
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:
När du har slutfört konfigureringen av LVM bör du se följande:
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:
upprepa partitioneringsoperationen för var och log, välj lämpliga monteringspunkter (/var och /var/log manuellt inmatade), vilket ger följande resultat:
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:
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)
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:
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:
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.
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:
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
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
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-log på data-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.