Невялікі адступ: дадзеная лр з'яўляецца сінтэтычнай.
Некаторыя заданні якія тут апісаны можна зрабіць значна прасцей, але паколькі задача л / р - пазнаёміцца
з функцыяналам raid, lvm то некаторыя аперацыі штучна ўскладнены.
Патрабаванні да інструментаў для выканання лр:
Сродкі віртуалізацыі, напрыклад Virtualbox
Усталёвачная выява linux, напрыклад Debian 9
Наяўнасць інтэрнэту для запампоўкі некалькіх пакетаў
Падлучэнне па ssh да ўсталяванай VM (апцыянальна)
УВАГА
Дадзеная лабараторная праца звязана з такой тонкай матэрыяй як захаванасць дадзеных - гэта такая вобласць,
якая дазваляе з-за драбнюткай памылкі - адной лішняй літары або лічбы страціць усе вашыя дадзеныя.
Паколькі вы выконваеце лабараторную працу вам нічога не пагражае, хіба што давядзецца пачаць рабіць яе нанова.
У рэальным жыцці ўсё значна больш сур'ёзна, таму варта вельмі ўважліва ўводзіць імёны дыскаў, разумеючы
што менавіта вы выконваеце бягучай камандай і з якімі дыскамі працуеце.
Другі важны момант - найменне дыскаў і частак: у залежнасці ад сітуацыі нумары дыскаў могуць адрознівацца
ад тых значэнняў, што прадстаўлены ў камандах у лабараторнай рабоце.
Так, напрыклад, калі выдаліць дыск sda з масіва, а затым дадаць новы дыск, то новы дыск будзе адлюстроўвацца.
у сістэме з імем sda. Калі ж выканаць перазагрузку перад даданнем новай кружэлкі, то новы
дыск будзе мець імя sdb, а стары стане называцца sda
Лабараторная праца павінна выконвацца пад суперкарыстальнікам (root) паколькі большая частка каманд патрабуе
падвышаных прывілеяў і не мае сэнсу стала падвышаць прывілеі праз sudo
Матэрыялы для вывучэння
RAID
LVM
Найменне дыскаў у АС Linux
Што такое раздзел
Што такое табліца раздзелаў і дзе яна захоўваецца
Што такое grub
Выкарыстоўваныя ўтыліты
1) прагляд інфармацыі аб дысках
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
FDISK -l
2) прагляд інфармацыі і праца з LVM
пвс
pvextend
pvccreate
pvresize
г.д
vgreduce
лв
lпашырыць
3) прагляд інфармацыі і праца з RAID
сat /proc/mdstat
мадам
4) кропкі мантавання
мантаваць
мантаж
cat /etc/fstab
cat /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) misc
таксама
схільны
Rsync
Лабараторная праца складаецца з 3-х частак:
настройка працаздольнай сістэмы з выкарыстаннем lvm, raid
эмуляцыя адмовы аднаго з дыскаў
замена дыскаў на лета, з даданнем новых дыскаў і пераносам раздзелаў.
Заданне 1 (Усталяванне АС і настройка LVM, RAID)
1) Стварыце новую віртуальную машыну, выдаўшы ёй наступныя характарыстыкі:
1 Гб аператыўнай памяці
1 cpu
2 hdd (назваць іх ssd1, ssd2 і прызначыць роўны памер, паставіць галачкі hot swap і ssd)
SATA кантролер настроены на 4 порта
2) Пачаць усталёўку Linux і дайшоўшы да выбару цвёрдых дыскаў зрабіць наступнае:
Partitioning method: manual, пасля чаго вы павінны ўбачыць такую карціну:
Налада асобнай часткі пад /boot: Абярыце першы дыск і стварыце на ім новую табліцу частак
Partition size: 512M
Mount point: /boot
Паўтарыце наладу для другой кружэлкі, але паколькі адначасова мантаваць 2 разу /boot нельга, то абярыце mount point: none у выніку атрымаўшы наступнае (карцінка з вушаком, перарабляць лянота):
Настройка RAID:
Абярыце вольнае месца на першым дыску і наладзьце ў якасці тыпу часткі physical volume for RAID
Абярыце «Done setting up the partition»
Паўтарыце такую ж наладу для другога дыска, у выніку атрымаўшы наступнае:
Абярыце пункт «Configure software RAID»
Create MD device
Software RAID device type: Абярыце люстраны масіў
Active devices for the RAID XXXX array: Выбраць абодва дыскі
Spare devices: Пакінуць 0 па змаўчанні
Active devices for the RAID XX array: выбраць раздзелы, якія вы стваралі пад raid
Заканчэнне
У выніку вы павінны атрымаць такую карціну:
Настройка LVM: Абярыце Configure the Logical Volume Manager
Keep current partition layout and configure LVM: Yes
Create volume group
Volume group name: system
Devices for the new volume group: Абярыце ваш створаны RAID
Create logical volume
logical volume name: root
logical volume size: 25 ад памеру вашага дыска
Create logical volume
logical volume name: var
logical volume size: 25 ад памеру вашага дыска
Create logical volume
logical volume name: log
logical volume size: 15 ад памеру вашага дыска
Выбраўшы Display configuration details вы павінны атрымаць наступную карціну:
Завяршыўшы наладу LVM вы павінны ўбачыць наступнае:
Разметка раздзелаў: па-чарзе абярыце кожны створаны ў LVM том і размецьце іх, напрыклад, для root так:
Use as: ext4
mount point: /
вынік разметкі каранёвай часткі павінен атрымацца такім:
паўторыце аперацыю разметкі для var і log абраўшы адпаведныя кропкі мантавання (/var і /var/log уручную ўвесці), атрымаўшы наступны вынік:
Абярыце Finish Partitioning
Вам зададуць некалькі пытанняў, пра тое што ў вас застаўся несмонтированный падзел і не наладжаны swap. Варта адказаць адмоўна на абодва пытанні.
Фінальны вынік павінен атрымацца вось такім:
3) Скончыць усталёўку АС, паставіўшы grub на першую прыладу (sda) і загрузіць сістэму.
4) Выканайце капіраванне змесціва падзелу /boot з дыска sda (ssd1) на дыск sdb (ssd2)
Пералічыце ўсе дыскі, якія вам выдала папярэдняя каманда і апішыце што гэта за дыск
Знайдзіце дыск на які не была выканана ўстаноўка grub і выканайце гэтую ўстаноўку: grub-install /dev/sdb
праглядзіце інфармацыю аб бягучым raid камандай cat /proc/mdstat і запішыце што вы ўбачылі.
паглядзіце высновы каманд: pvs, vgs, lvs, mount і запішыце, што менавіта вы ўбачылі
Апішыце сваімі словамі што вы зрабілі і які вынік атрымалі ў выніку праведзенага задання
Пасля выканання гэтага задання рэкамендуецца захаваць рэзервовую копію тэчкі з віртуальнай машынай ці зрабіць
vagrant box: https://t.me/bykvaadm/191
Вынік: Віртуальная машына з дыскамі ssd1, ssd2
Заданне 2 (Эмуляцыя адмовы аднаго з дыскаў)
1) Калі вы паставілі галачку hot swap, то вам даступна выдаленне дыскаў на лета
Выканайце выдаленне дыска 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
Дадайце ў рэйд масіў новая кружэлка: mdadm -manage /dev/md0 -add /dev/YYY
Паглядзіце вынік: cat /proc/mdstat. Вы павінны ўбачыць што пачалася сінхранізацыя
7) Зараз трэба ўручную выканайце сінхранізацыю частак, якія не ўваходзяць у RAID.
Для гэтага скарыстаемся ўтылітай dd, скапіяваўшы з «жывога» дыска на новенькі, які вы нядаўна паставілі.
dd if=/dev/XXX of=/dev/YYY
8) Пасля завяршэння сінхранізацыі ўсталюеце grub на новы дыск
9) Выканайце перазагрузку ВМ, для таго каб пераканацца што ўсё працуе
Апішыце сваімі словамі што вы зрабілі і які вынік атрымалі ў выніку праведзенага задання
Вынік: Выдалены дыск ssd1, захаваны дыск ssd2, дададзены дыск ssd3.
Заданне 3 (Даданне новых дыскаў і перанос часткі)
Гэта самае складанае і аб'ёмнае заданне з усіх прадстаўленых.
Вельмі ўважліва правярайце што вы робіце і з якімі дыскамі і раздзеламі.
Рэкамендуецца зняць копію перад яго выкананнем.
Гэта заданне незалежна ад задання №2, яго можна выконваць пасля задання №1 з папраўкай на імёны дыскаў.
Другая частка задання гэтай лабараторнай павінна прывесці ў сапраўды такі ж стан якое было пасля выканання першай часткі.
Для таго каб вам было прасцей працаваць магу рэкамендаваць не выдаляць фізічна дыскі з хаставой машыны, а толькі
адлучаць іх ва ўласцівасцях машыны. З пункта гледжання АС у ВМ гэта будзе выглядаць абсалютна аднолькава, але вы зможаце
у выпадку чаго падлучыць дыск назад і працягнуць выкананне працы адкаціўшыся на пару пунктаў назад, калі
у вас узніклі праблемы. Напрыклад вы маглі выканаць няслушна ці забыцца скапіяваць на новую кружэлку падзел /boot.
Я магу толькі параіць некалькі разоў пераправяраць з якімі дыскамі і раздзеламі вы працуеце, а яшчэ лепш
выпісаць на лісток адпаведнасць дыскаў, раздзелаў і "фізічнаму" нумару дыска. Прыгожае і зразумелае дрэва
малюе каманда lsblk, карыстайцеся ёй як мага часцей для аналізу таго, што вы зрабілі і што трэба зрабіць.
Да гісторыі...
Уявіце сабе, што ваш сервер працаваў доўгі час на 2-х ssd дысках, як раптам…
1) Праэмулюйце адмову дыска ssd2, выдаліўшы з уласцівасцяў ВМ дыск і перазагрузіўшыся
2) Паглядзіце бягучы стан дыскаў і RAID:
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
Навошта мы выконваем гэтую аперацыю?
стварыце новы рэйд-масіў з уключэннем туды толькі аднаго новага 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 system з дапамогай такой каманды:
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. Падстаўце правільнае імя raid.
vgreduce system /dev/md0
Выканайце каманды і запішыце што вы ўбачылі і што памянялася.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Для прыгажосці карціны перамантуйце /boot на другі ssd дыск (ssd4) і выканайце lsblk. У выніку на дыску ssd3 не
павінна быць нічога змантавана. Уважліва праверце што раздзел /boot не пусты! ls /boot павінен паказаць
некалькі файлаў і тэчак. Вывучыце што захоўваецца ў гэтым раздзеле і запішыце які файлкаталог завошта адказвае.
7) выдаліце ssd3 дыск і дадайце ssd5, hdd1, hdd2 паводле вышэйапісаных ТЗ, у выніку атрымаўшы:
ssd4 - першы новы ssd
ssd5 - другі новы ssd
hdd1 - першы новы hdd
hdd2 - другі новы hdd
Звярніце ўвагу, што калі мы скапіявалі табліцу раздзелаў са старога дыска здавалася, што новы памер
не выкарыстоўвае ўвесь аб'ём жорсткага дыска.
Таму ў хуткім часе нам запатрабуецца змяніць памер гэтай часткі і пашырыць raid.
Пераканайцеся ў гэтым самі, увёўшы каманду:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) скапіруйце загрузную частку /boot з дыска ssd4 на ssd5
dd if=/dev/XXX of=/dev/YYY
11) Усталюйце grub на новы дыск (ssd5)
12) зменім памер другой часткі дыска ssd5
запусціце ўтыліту для працы з разметкай дыскаў:
fdisk /dev/XXX
увядзіце ключ d для таго каб выдаліць існуючы раздзел (выберыце 2)
увядзіце ключ n для таго каб стварыць новую частку
увядзіце ключ p для таго каб паказаць тып падзелу «першасны»
увядзіце ключ 2 для таго, каб новы раздзел меў другі нумар
First sector: націсніце enter, каб пагадзіцца з атаматычна вычасаным памерам пачатку часткі
Last sector: націсніце 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 для таго, каб новы раздзел меў другі нумар
First sector: націсніце enter, каб пагадзіцца з атаматычна вычасаным памерам пачатку часткі
Last sector: націсніце enter, каб пагадзіцца з атаматычна вычасаным памерам канца часткі
У канцы разметкі варта абраць No, каб пакінуць сігнатуру прыналежнасці часткі да масіва.
увядзіце ключ w для таго каб запісаць змену на дыск.
12) перачытаем табліцу раздзелаў і праверым вынік
створым лагічны том памерам усёй вольнай прасторы і назавем яго 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) Самае важна на гэтым этапе - не забыцца змяніць табліцу радзелаў (ext4, напрыклад). Паколькі як бы мы не змянялі ўсякія raid, lvm – пакуль ФС на падзеле не будзе апавешчаная аб тым што зараз памер часткі змяніўся, мы не зможам выкарыстоўваць новую прастору. Выкарыстоўвайце каманду resize2fs для змены ФС.
20) Фінальны акорд
выканаем перазагрузку. Калі вы ўсё зрабілі правільна - вы зноў патрапіце ў вашу АС (гэта трэба для таго каб пераканацца што ўсё працуе. Ніякага сэнсу акрамя самаправеркі гэты крок не нясе)
выканайце праверкі, што ўсё што мы хацелі зрабіць сапраўды было зроблена:
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [АПЦЫЯНАЛЬНА] Выканайце дзеянні
перазагрузіцеся націскаючы F12, каб паказаць пры загрузцы розныя дыскі, для таго каб пераканацца што вы можаце загрузіцца
з любога з ssd дыскаў, так каб мы не баяліся адмовы аднаго з іх
зараз у вас ёсць непатрэбны LV log у VG system. Размяркуеце гэтую прастору паміж root або var, але замест выкарыстання
канструкцыі 100%FREE пакажыце памер рукамі з дапамогай ключа -L:
-L 500M
выпраўце праблему з тым што /boot знаходзіцца на двух частках без сінхранізацыі, па-правільнаму так рабіць не трэба,
тут гэта дададзена для прыкладу. Не забудзьцеся папярэдне кудысьці скапіяваць змесціва /boot.
стварыце новы рэйд і ўключыце ў яго sda1,sda2
уключыце гэтыя часткі ў існуючы raid і адновіце /boot у асноўным raid, але ўжо не мантуючы яго.