Малко отклонение: този LR е синтетичен.
Някои от задачите, описани тук, могат да бъдат изпълнени много по-лесно, но тъй като задачата на l/r е да опознае
с raid и lvm функционалност някои операции са изкуствено усложнени.
Изисквания към инструментите за извършване на LR:
Инструменти за виртуализация като Virtualbox
Инсталационно изображение на Linux, например Debian9
Наличие на интернет за изтегляне на няколко пакета
Свържете се чрез ssh към инсталираната виртуална машина (по избор)
ВНИМАНИЕ
Тази лабораторна работа е свързана с толкова тънък въпрос като сигурността на данните - това е област, в която
което ви позволява да загубите всичките си данни поради най-малката грешка - една допълнителна буква или цифра.
Тъй като правите лабораторна работа, не сте в опасност, освен че ще трябва да започнете да я правите отначало.
В реалния живот всичко е много по-сериозно, така че трябва да въведете имената на дисковете много внимателно, с разбиране
какво точно правиш с текущата команда и с какви дискове работиш.
Вторият важен момент е именуването на дискове и дялове: в зависимост от ситуацията номерата на дисковете могат да се различават
от тези стойности, които са представени в командите в лабораторната работа.
Така че, например, ако премахнете sda диска от масива и след това добавите нов диск, новият диск ще се покаже
на система с име sda. Ако рестартирате преди да добавите нов диск, тогава новият
дискът ще се казва sdb, а старият - sda
Лабораторията трябва да се изпълнява като суперпотребител (root), както изискват повечето команди
повишени привилегии и няма смисъл постоянно да увеличавате привилегиите чрез sudo
Учебни материали
RAID
LVM
Наименуване на дискове в Linux OS
Какво е раздел
Какво представлява таблицата на дяловете и къде се съхранява?
Какво е grub
Използвани помощни програми
1) преглед на информацията за диска
lsblk -o ИМЕ, РАЗМЕР, FSTYPE, ТИП, ТОЧКА НА МОНТИРАНЕ
fdisk -l
2) преглед на информация и работа с LVM
пвс
pvextend
pvccreate
pvresize
и т.н
vgreduce
лв
lvextend
3) преглед на информация и работа с RAID
котка /proc/mdstat
мадам
4) точки на монтиране
монтиране
умунт
котка /etc/fstab
котка /etc/mtab
5) преразпределение на диска
fdisk /dev/XXX
6) копиране на дялове
dd if=/dev/xxx of=/dev/yyy
7) работа с разделителната маса
partx
sfdisk
mkfs.ext4
8) работа с буутлоудъра
grub-install /dev/XXX
актуализация-grub
9) разни
също
подходящ
Rsync
Лабораторната работа се състои от 3 части:
настройка на работеща система с помощта на lvm, raid
емулация на един от отказите на диска
подмяна на дискове в движение, добавяне на нови дискове и преместване на дялове.
Задача 1 (Инсталиране на ОС и конфигуриране на LVM, RAID)
1) Създайте нова виртуална машина, като й придадете следните характеристики:
1 GB RAM
1 процесор
2 твърди диска (именувайте ги ssd1, ssd2 и задайте еднакви размери, проверете полетата за гореща смяна и ssd)
SATA контролер, конфигуриран за 4 порта
2) Започнете да инсталирате Linux и когато стигнете до избора на твърди дискове, направете следното:
Метод на разделяне: ръчно, след което трябва да видите тази снимка:
Настройване на отделен дял за /boot: Изберете първия диск и създайте нова таблица на дяловете върху него
Размер на дяла: 512M
Точка на монтиране: /boot
Повторете настройките за втория диск, но тъй като не можете да монтирате /зареждате два пъти едновременно, изберете точка на монтиране: няма, като в крайна сметка получавате следното (картина с преграда, твърде мързелива, за да я повторите):
Настройка на RAID:
Изберете свободно място на първия диск и конфигурирайте типа дял като физически том за RAID
Изберете „Готово с настройката на дяла“
Повторете точно същите настройки за втория диск, което води до следното:
Изберете „Конфигуриране на софтуерен RAID“
Създайте MD устройство
Тип софтуерен RAID устройство: Изберете огледален масив
Активни устройства за масива RAID XXXX: Изберете и двете устройства
Резервни устройства: Оставете 0 по подразбиране
Активни устройства за масива RAID XX: изберете дяловете, които сте създали под raid
завършеност
В резултат на това трябва да получите такава картина:
Конфигуриране на LVM: Изберете Configure the Logical Volume Manager
Запазване на текущото оформление на дяла и конфигуриране на LVM: Да
Създайте група обеми
Име на група томове: система
Устройства за новата група томове: Изберете вашия създаден RAID
Създайте логически том
име на логически том: root
размер на логическия обем: 25 от размера на вашия диск
Създайте логически том
име на логически том: var
размер на логическия обем: 25 от размера на вашия диск
Създайте логически том
име на логически том: log
размер на логическия обем: 15 от размера на вашия диск
Като изберете Display configuration details, трябва да получите следната картина:
След като завършите настройката на LVM, трябва да видите следното:
Оформление на дяловете: един по един, изберете всеки том, създаден в LVM, и ги оформете, например, за root по този начин:
Използвайте като: ext4
точка на монтиране: /
Резултатът от маркирането на основния дял трябва да изглежда така:
повторете операцията по разделяне за var и log, като изберете подходящите точки на монтиране (/var и /var/log въведени ръчно), като получите следния резултат:
Изберете Завършване на разделянето
Ще ви бъдат зададени няколко въпроса относно факта, че все още имате немонтиран дял и swap не е конфигуриран. И на двата въпроса следва да се отговори отрицателно.
Крайният резултат трябва да изглежда така:
3) Завършете инсталирането на операционната система, като инсталирате grub на първото устройство (sda) и заредете системата.
4) Копирайте съдържанието на /boot дяла от sda устройството (ssd1) на sdb устройството (ssd2)
Избройте всички дискове, които предишната команда ви даде, и опишете какъв тип диск е той
Намерете устройството, където grub не е инсталиран, и изпълнете тази инсталация: grub-install /dev/sdb
прегледайте информацията за текущия рейд с командата cat /proc/mdstat и запишете това, което виждате.
виж изхода на командите: pvs, vgs, lvs, mount и запиши какво точно си видял
Опишете със свои думи какво сте направили и какъв резултат сте получили от задачата.
След като завършите тази задача, се препоръчва да запазите резервно копие на папката или make на виртуалната машина
скитница кутия: https://t.me/bykvaadm/191
Резултат: Виртуална машина с дискове ssd1, ssd2
Задача 2 (Емулиране на повреда на един от дисковете)
1) Ако сте поставили отметка в полето за гореща смяна, тогава можете да изтривате дискове в движение
Изтрийте диск ssd1 в свойствата на машината
Намерете директорията, където се съхраняват файловете на вашата виртуална машина, и изтрийте ssd1.vmdk
2) Уверете се, че вашата виртуална машина все още работи
3) Рестартирайте виртуалната машина и се уверете, че все още работи
4) проверете състоянието на RAID масива: cat /proc/mdstat
5) добавете нов диск със същия размер в интерфейса на VM и го наречете ssd3
6) извършете операциите:
вижте, че новият диск е пристигнал в системата с помощта на fdisk -l
копирайте таблицата на дяловете от стария диск на новия: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
вижте резултата с помощта на fdisk -l
Добавете нов диск към масива raid: mdadm —manage /dev/md0 —add /dev/YYY
Вижте резултата: cat /proc/mdstat. Трябва да видите, че синхронизирането е започнало
7) Сега трябва ръчно да синхронизирате дялове, които не са част от RAID.
За да направим това, ще използваме помощната програма dd, копирайки от „живия“ диск на новия, който сте инсталирали наскоро
dd if=/dev/XXX of=/dev/YYY
8) След като синхронизацията приключи, инсталирайте grub на новото устройство
9) Рестартирайте VM, за да се уверите, че всичко работи
Опишете със свои думи какво сте направили и какъв резултат сте получили от задачата.
Резултат: Диск ssd1 беше премахнат, диск ssd2 беше запазен, диск ssd3 беше добавен.
Задача 3 (Добавяне на нови дискове и преместване на дял)
Това е най-сложната и обемна задача от всички представени.
Проверявайте много внимателно какво правите и с кои дискове и дялове.
Препоръчително е да направите копие, преди да го стартирате.
Тази задача е независима от задача № 2, може да се изпълнява след задача № 1, коригирана за имена на дискове.
Втората част от тази лабораторна задача трябва да доведе до точно същото състояние, което беше след завършване на първата част.
За да улесня работата ви, мога да препоръчам да не премахвате физически дискове от хост машината, а само
изключете ги в свойствата на машината. От гледна точка на ОС във виртуалната машина ще изглежда абсолютно същото, но можете
ако нещо се случи, свържете диска обратно и продължете работата, като върнете няколко точки назад, ако
имате проблеми. Например, може да сте го направили неправилно или да сте забравили да копирате /boot дяла на новия диск.
Мога само да ви посъветвам да проверите няколко пъти с кои дискове и дялове работите или дори по-добре
Запишете на лист хартия съответствието между дисковете, дяловете и номера на "физическия" диск. Красиво и ясно дърво
отборни равенства lsblk, използвайте го възможно най-често, за да анализирате какво сте направили и какво трябва да се направи.
Към историята...
Представете си, че вашият сървър е работил дълго време на 2 SSD устройства, когато изведнъж...
1) Симулирайте повреда на ssd2 диска, като премахнете диска от свойствата на VM и рестартирате
2) Вижте текущото състояние на дисковете и RAID:
3) Имате късмет - вашите шефове са ви позволили да закупите няколко нови диска:
2 SATA с голям капацитет за дългосрочната задача за преместване на дяла с регистрационни файлове на отделен диск
2 SSD за смяна на умрялото, както и за смяна на все още функциониращото.
Моля, обърнете внимание, че сървърната кошница поддържа инсталиране само на 4 диска наведнъж,
следователно не можете да добавите всички дискове наведнъж.
Изберете капацитет на HDD 2 пъти по-голям от SSD.
Капацитетът на SSD е 1,25 пъти по-голям от предишния SSD.
4) Добавете един нов ssd диск, като го наречете ssd4 и след добавянето проверете какво се е случило:
5) На първо място, трябва да се погрижите за безопасността на данните на стария диск.
Този път ще прехвърлим данни с помощта на LVM:
Първо, трябва да копирате файловата таблица от стария диск на новия:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Заменете правилните дискове за x,y и разберете какво прави тази команда.
Изпълнете lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT и сравнете изхода му с предишното извикване.
Какво се промени?
използвайте командата dd, за да копирате /boot данните на новия диск
dd if=/dev/XXX of=/dev/YYY
ако /boot остана монтиран на стария диск, трябва да се монтира отново на живия диск:
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Инсталирайте буутлоудъра на новото ssd устройство
grub-install /dev/YYY
Защо извършваме тази операция?
създайте нов raid масив, включващ само един нов ssd диск:
Горната команда няма да работи без да посочите специален ключ.
Прочетете помощта и добавете този ключ към командата.
Използвайте командата cat /proc/mdstat, за да проверите резултата от вашата операция. Какво се промени?
Изпълнете lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT и сравнете изхода му с предишното извикване.
Какво се промени?
6) Следващата стъпка е да конфигурирате LVM
изпълнете командата pvs, за да видите информация за текущите физически томове
създайте нов физически том, включително създадения преди това RAID масив:
pvcreate /dev/md63
Изпълнете lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT и сравнете изхода му с предишното извикване.
Какво се промени?
Изпълнете отново командата pvs. Какво се промени?
Нека увеличим размера на системата Volume Group, като използваме следната команда:
vgextend system /dev/md63
Изпълнете командите и запишете какво сте видели и какво се е променило.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
На какъв физически диск в момента се намират LV var,log,root?
Преместете данни от старото устройство към новото, като използвате правилните имена на устройства.
Изпълнете командите и запишете какво сте видели и какво се е променило.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Нека променим нашия VG, като премахнем стария raid диск от него. Заменете правилното име на нападението.
vgreduce system /dev/md0
Изпълнете командите и запишете какво сте видели и какво се е променило.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
За да направите картината по-красива, премонтирайте /заредете към втория ssd диск (ssd4) и стартирайте lsblk. В резултат на това ssd3 дискът не го прави
нищо не трябва да се монтира. Внимателно проверете дали /boot дялът не е празен! ls /boot трябва да покаже
няколко файла и папки. Проучете какво се съхранява в този раздел и запишете коя файлова директория за какво отговаря.
7) премахнете ssd3 диска и добавете ssd5, hdd1, hdd2 според техническите спецификации, описани по-горе, което води до:
ssd4 - първият нов ssd
ssd5 - второ ново ssd
hdd1 - първият нов hdd
hdd2 - втори нов hdd
8) Проверете какво се е случило след добавяне на дискове:
9) Нека възстановим работата на основния рейд масив:
копирайте таблицата на дяловете, като замените правилните дискове:
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Моля, обърнете внимание, че когато копирахме таблицата на дяловете от стария диск, изглеждаше, че новият размер
не използва целия капацитет на твърдия диск.
Следователно скоро ще трябва да преоразмерим този дял и да разширим нападението.
Вижте сами, като изпълните командата:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) копирайте дяла за зареждане /зареждане от ssd4 на ssd5
dd if=/dev/XXX of=/dev/YYY
11) Инсталирайте grub на новото устройство (ssd5)
12) преоразмерете втория дял на ssd5 диска
стартирайте помощната програма за разделяне на диска:
fdisk /dev/XXX
въведете клавиша d, за да изтриете съществуващ дял (изберете 2)
въведете ключа n, за да създадете нов дял
въведете ключа p, за да посочите, че типът дял е „основен“
въведете ключ 2, така че новият дял да има втория номер
Първи сектор: натиснете enter, за да приемете автоматично изчисления размер на началото на дяла
Последен сектор: натиснете Enter, за да приемете автоматично изчисления размер на края на дяла
въведете клавиша l, за да видите списък с всички възможни типове дялове и да намерите Linux raid auto в него
въведете клавиша t, за да промените типа на създадения дял (2) и въведете номера, намерен в предишната стъпка.
въведете клавиша w, за да запишете промяната на диска.
12) прочетете отново таблицата на дяловете и проверете резултата
добавете нов диск към текущия raid масив (не забравяйте да замените правилните дискове)
mdadm --manage /dev/md63 --add /dev/sda2
Нека разширим броя на дисковете в нашия масив до 2:
mdadm --grow /dev/md63 --raid-devices=2
Вижте резултата: имаме маркирани 2 масива, но и двете секции, включени в този масив, имат различни размери
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) увеличете размера на дяла на ssd4 диска
стартирайте помощната програма за разделяне на диска:
fdisk /dev/XXX
въведете клавиша d, за да изтриете съществуващ дял (изберете 2)
въведете ключа n, за да създадете нов дял
въведете ключа p, за да посочите, че типът дял е „основен“
въведете ключ 2, така че новият дял да има втория номер
Първи сектор: натиснете enter, за да приемете автоматично изчисления размер на началото на дяла
Последен сектор: натиснете Enter, за да приемете автоматично изчисления размер на края на дяла
В края на маркирането изберете Не, за да оставите подписа на членството на дяла в масива.
въведете клавиша w, за да запишете промяната на диска.
12) прочетете отново таблицата на дяловете и проверете резултата
Моля, обърнете внимание, че сега sda2, sdc2 дяловете имат размер > от размера на raid устройството.
13) на този етап размерът на нападението вече може да бъде разширен
mdadm --grow /dev/md63 --size=max
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
Прегледайте lsblk и отбележете какво се е променило
14) Въпреки това, въпреки че променихме размера на нападението, самите размери на vg root,var,log не се промениха
погледнете размера на PV:
pvs
Нека разширим размера на нашия PV:
pvresize /dev/md63
погледнете размера на PV:
pvs
15) Добавете новопоявилото се местоположение VG var,root
lvs # посмотрим сколько сейчас размечено
lvextend -l +50%FREE /dev/system/root
lvextend -l +100%FREE /dev/system/var
lvs # проверьте что получилось
На този етап сте завършили мигрирането на основния масив към новите дискове. работата с ssd1, ssd2 е завършена
16) Следващата ни задача е да преместим /var/log на нови дискове, за това ще създадем нов масив и lvm на hdd дискове.
Нека създадем логически том с размера на цялото свободно пространство и го наречем val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
форматирайте създадения дял в ext4
mkfs.ext4 /dev/mapper/data-var_log
да видим резултата
lsblk
17) прехвърлете регистрационните данни от стария дял към новия
временно инсталирайте ново хранилище на регистрационни файлове
mount /dev/mapper/data-var_log /mnt
нека синхронизираме дяловете
apt install rsync
rsync -avzr /var/log/ /mnt/
Нека разберем кои процеси се изпълняват в момента в /var/log
apt install lsof
lsof | grep '/var/log'
спрете тези процеси
systemctl stop rsyslog.service syslog.socket
извършете окончателна синхронизация на дялове (данни, които може да са се променили след последната синхронизация)
rsync -avzr /var/log/ /mnt/
разменете секциите
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
нека проверим какво се е случило
lsblk
18) Редактирайте /etc/fstab
fstab - файл, който записва правилата, по които ще се монтират дялове при зареждане
нашата задача е да намерим реда, където е монтиран /var/log и да поправим устройството system-log на data-var_log
19) Най-важното на този етап е да не забравите да промените таблицата radela (ext4, например). Защото без значение как променяме който и да е raid, lvm, докато FS на дяла не бъде уведомен, че размерът на дяла вече е променен, няма да можем да използваме новото пространство. Използвайте командата resize2fs за промяна на FS.
20) Финален акорд
Да рестартираме. Ако сте направили всичко правилно, ще бъдете върнати обратно към вашата операционна система (това е необходимо, за да се уверите, че всичко работи. Тази стъпка няма друго значение освен самотест)
провери дали всичко, което искахме да направим, наистина е направено:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [НЕЗАДЪЛЖИТЕЛНО] Следвайте стъпките
рестартирайте, като натиснете F12, за да посочите различни устройства при зареждане, за да сте сигурни, че можете да заредите
от някое от ssd устройствата, така че да не се страхуваме от повреда на някое от тях
сега имате ненужен LV лог във VG система. Разпределете това пространство между root или var, но вместо да използвате
дизайни 100% БЕЗПЛАТНО посочете размера на ръка с помощта на клавиша -L:
-L 500M
коригирайте проблема, че /boot се намира на два дяла без синхронизация, няма нужда да правите това правилно,
добавено е тук като пример. Не забравяйте първо да копирате някъде съдържанието на /boot.
създайте нов рейд и включете sda1,sda2 в него
включете тези дялове в съществуващия рейд и възстановете /заредете към основния рейд, но без да го монтирате.