Лаборатория: настройка на lvm, raid на Linux

Малко отклонение: този 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 порта

Лаборатория: настройка на lvm, raid на Linux

2) Започнете да инсталирате Linux и когато стигнете до избора на твърди дискове, направете следното:

  • Метод на разделяне: ръчно, след което трябва да видите тази снимка:
    Лаборатория: настройка на lvm, raid на Linux

  • Настройване на отделен дял за /boot: Изберете първия диск и създайте нова таблица на дяловете върху него

    • Размер на дяла: 512M
    • Точка на монтиране: /boot
    • Повторете настройките за втория диск, но тъй като не можете да монтирате /зареждате два пъти едновременно, изберете точка на монтиране: няма, като в крайна сметка получавате следното (картина с преграда, твърде мързелива, за да я повторите):
      Лаборатория: настройка на lvm, raid на Linux

  • Настройка на RAID:

    • Изберете свободно място на първия диск и конфигурирайте типа дял като физически том за RAID
    • Изберете „Готово с настройката на дяла“
    • Повторете точно същите настройки за втория диск, което води до следното:
      Лаборатория: настройка на lvm, raid на Linux
    • Изберете „Конфигуриране на софтуерен RAID“
    • Създайте MD устройство
    • Тип софтуерен RAID устройство: Изберете огледален масив
    • Активни устройства за масива RAID XXXX: Изберете и двете устройства
    • Резервни устройства: Оставете 0 по подразбиране
    • Активни устройства за масива RAID XX: изберете дяловете, които сте създали под raid
    • завършеност
    • В резултат на това трябва да получите такава картина:
      Лаборатория: настройка на lvm, raid на Linux

  • Конфигуриране на LVM: Изберете Configure the Logical Volume Manager

    • Запазване на текущото оформление на дяла и конфигуриране на LVM: Да
    • Създайте група обеми
    • Име на група томове: система
    • Устройства за новата група томове: Изберете вашия създаден RAID
    • Създайте логически том
    • име на логически том: root
    • размер на логическия обем: 25 от размера на вашия диск
    • Създайте логически том
    • име на логически том: var
    • размер на логическия обем: 25 от размера на вашия диск
    • Създайте логически том
    • име на логически том: log
    • размер на логическия обем: 15 от размера на вашия диск
    • Като изберете Display configuration details, трябва да получите следната картина:
      Лаборатория: настройка на lvm, raid на Linux
    • След като завършите настройката на LVM, трябва да видите следното:
      Лаборатория: настройка на lvm, raid на Linux

  • Оформление на дяловете: един по един, изберете всеки том, създаден в LVM, и ги оформете, например, за root по този начин:

    • Използвайте като: ext4
    • точка на монтиране: /
    • Резултатът от маркирането на основния дял трябва да изглежда така:
      Лаборатория: настройка на lvm, raid на Linux
    • повторете операцията по разделяне за var и log, като изберете подходящите точки на монтиране (/var и /var/log въведени ръчно), като получите следния резултат:
      Лаборатория: настройка на lvm, raid на Linux
    • Изберете Завършване на разделянето
    • Ще ви бъдат зададени няколко въпроса относно факта, че все още имате немонтиран дял и swap не е конфигуриран. И на двата въпроса следва да се отговори отрицателно.

  • Крайният резултат трябва да изглежда така:
    Лаборатория: настройка на lvm, raid на Linux
    3) Завършете инсталирането на операционната система, като инсталирате grub на първото устройство (sda) и заредете системата.
    4) Копирайте съдържанието на /boot дяла от sda ​​устройството (ssd1) на sdb устройството (ssd2)

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

    5) Инсталирайте grub на второто устройство:

  • вижте дисковете в системата:

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

  • Избройте всички дискове, които предишната команда ви даде, и опишете какъв тип диск е той

  • Намерете устройството, където 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:

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

    3) Имате късмет - вашите шефове са ви позволили да закупите няколко нови диска:

    2 SATA с голям капацитет за дългосрочната задача за преместване на дяла с регистрационни файлове на отделен диск

    2 SSD за смяна на умрялото, както и за смяна на все още функциониращото.

    Моля, обърнете внимание, че сървърната кошница поддържа инсталиране само на 4 диска наведнъж,
    следователно не можете да добавите всички дискове наведнъж.

    Изберете капацитет на HDD 2 пъти по-голям от SSD.
    Капацитетът на SSD е 1,25 пъти по-голям от предишния SSD.

    4) Добавете един нов ssd диск, като го наречете ssd4 и след добавянето проверете какво се е случило:

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

    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 диск:

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

      Горната команда няма да работи без да посочите специален ключ.
      Прочетете помощта и добавете този ключ към командата.

      Използвайте командата 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?

      Преместете данни от старото устройство към новото, като използвате правилните имена на устройства.

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

      Повторете операцията за всички логически томове

      Изпълнете командите и запишете какво сте видели и какво се е променило.

      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) Проверете какво се е случило след добавяне на дискове:

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

      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) прочетете отново таблицата на дяловете и проверете резултата

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

        добавете нов диск към текущия 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) прочетете отново таблицата на дяловете и проверете резултата

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

        Моля, обърнете внимание, че сега 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 дискове.

          • да видим какви имена имат новите hdd дискове
            fdisk -l
          • нека създадем рейд масив
            mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
          • нека създадем нов PV на рейда от големи дискове
            pvcreate data /dev/md127
          • Нека създадем група в тази PV, наречена данни
            vgcreate data /dev/md127
          • Нека създадем логически том с размера на цялото свободно пространство и го наречем 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 в него
              • включете тези дялове в съществуващия рейд и възстановете /заредете към основния рейд, но без да го монтирате.

Източник: www.habr.com

Добавяне на нов коментар