- Лабораторная работа: настраиваем lvm, raid на linux
- Требования к инструментам для выполнения л\р:
- ВНИМАНИЕ
- Материалы для изучения
- Используемые утилиты
- Лабораторная работа состоит из 3-х частей:
- Задание 1 (Установка ОС и настройка LVM, RAID)
- Задание 2 (Эмуляция отказа одного из дисков)
- Задание 3 (Добавление новых дисков и перенос раздела)
- Лабораторная работа «Настройка сети в Linux системах»
Лабораторная работа: настраиваем lvm, raid на linux
Небольшое отступление: данная л\р является синтетической.
Некоторые задания которые здесь описаны можно сделать гораздо проще, но поскольку задача л/р — познакомиться с функционалом raid, lvm то некоторые операции искусственно усложнены.
Требования к инструментам для выполнения л\р:
- Средства виртуализации, например Virtualbox
- Установочный образ linux, например Debian9
- Наличие интернета для скачивания нескольких пакетов
- Подключение по ssh к установленной VM (опционально)
ВНИМАНИЕ
Данная лабораторная работа связана с такой тонкой материей как сохранность данных — это такая область, которая позволяет из-за мельчайшей ошибки — одной лишней буквы или цифры потерять все ваши данные.
Поскольку вы выполняете лабораторную работу вам ничего не грозит, разве что придется начать делать ее заново.
В реальной жизни все гораздо серьезнее, поэтому следует очень внимательно вводить имена дисков, понимая что именно вы выполняете текущей командой и с какими дисками работаете.
Второй важный момент — именование дисков и разделов: в зависимости от ситуации номера дисков могут отличаться от тех значений, что представлены в командах в лабораторной работе.
Так, например, если удалить диск sda из массива, а затем добавить новый диск, то новый диск будет отображаться в системе с именем sda. Если же выполнить перезагрузку перед добавлением нового диска, то новый диск будет иметь имя sdb, а старый станет именоваться sda
Лабораторная работа должна выполняться под суперпользователем (root) поскольку большая часть команд требует повышенных привилегий и не имеет смысла постоянно повышать привилегии через sudo.
Материалы для изучения
- RAID
- LVM
- Именование дисков в ОС Linux
- Что такое раздел
- Что такое таблица разделов и где она хранится
- Что такое grub
Используемые утилиты
- Просмотр информации о дисках:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
- fdisk -l
- Просмотр информации и работа с LVM
- pvs
- pvextend
- pvcreate
- pvresize
- vgs
- vgreduce
- lvs
- lvextend
- Просмотр информации и работа с RAID:
- сat /proc/mdstat
- mdadm
- Точки монтирования:
- mount
- umount
- cat /etc/fstab
- cat /etc/mtab
- Переразметка диска:
- fdisk /dev/XXX
- Копирование разделов:
- dd if=/dev/xxx of=/dev/yyy
- Работа с таблицей разделов:
- partx
- sfdisk
- mkfs.ext4
- Работа с загрузчиком:
- grub-install /dev/XXX
- update-grub
- misc
- lsof
- apt
- rsync
Лабораторная работа состоит из 3-х частей:
- Настройка работоспособной системы с использованием lvm, raid.
- Эмуляция отказа одного из дисков.
- Замена дисков на лету, с добавлением новых дисков и переносом разделов.
Задание 1 (Установка ОС и настройка LVM, RAID)
- Создайте новую виртуальную машину, выдав ей следующие характеристики:
- 1 gb ram
- 1 cpu
- 2 hdd (назвать их ssd1, ssd2 и назначить равный размер, поставить галочки hot swap и ssd)
- SATA контроллер настроен на 4 порта:
Начать установку 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
- Finish
- В итоге вы должны получить такую картину:
- Настройка 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: 2\5 от размера вашего диска
- Create logical volume
- logical volume name: var
- logical volume size: 2\5 от размера вашего диска
- Create logical volume
- logical volume name: log
- logical volume size: 1\5 от размера вашего диска
- Выбрав Display configuration details вы должны получить следующую картину:
Завершив настройку LVM вы должны увидеть следующее:
- Разметка разделов: по-очереди выберите каждый созданный в LVM том и разметьте их, например, для root так:
- Use as: ext4
- mount point: /
- Результат разметки корневого раздела должен получиться таким:
Повторите операцию разметки для var и log выбрав соответствующие точки монтирования (/var и /var/log вручную ввести), получив следующий результат:
- Выберите Finish Partitioning
- Вам зададут несколько вопросов, про то что у вас остался несмонтированный раздел и не настроен swap. Следует ответить отрицательно на оба вопроса.
- Финальный результат должен получиться вот таким:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Опишите своими словами что вы сделали и какой результат получили в итоге проделанного задания.
После выполнения этого задания рекомендуется сохранить резервную копию папки с виртуальной машиной или сделать vagrant box.
Результат: Виртуальная машина с дисками ssd1, ssd2.
Задание 2 (Эмуляция отказа одного из дисков)
- Если вы поставили галочку hot swap, то вам доступно удаление дисков на лету:
- Выполните удаление диска ssd1 в свойствах машины.
- Найдите директорию, где хранятся файлы вашей виртуальной машины и удалите ssd1.vmdk.
- Убедитесь что ваша виртуальная машина по-прежнему работает
- Выполните перезагрузку виртуальной машины и убедитесь что она по-прежнему работает
- Проверьте статус RAID-массива: cat /proc/mdstat
- Добавьте в интерфейсе VM новый диск такого же размера и назовите его ssd3.
- Выполните операции:
- Посмотрите что новый диск приехал в систему командой fdisk -l
- Скопируйте таблицу разделов со старого диска на новый: sfdisk -d /dev/XXXX | sfdisk /dev/YYY
- Посмотрите результат командой fdisk -l
- Добавьте в рейд массив новый диск: mdadm —manage /dev/md0 —add /dev/YYY
- Посмотрите результат: cat /proc/mdstat . Вы должны увидеть что началась синхронизация
- Теперь нужно вручную выполните синхронизацию разделов, не входящих в RAID. Для этого воспользуемся утилитой dd, скопировав с «живого» диска на новенький, который вы недавно поставили:
Опишите своими словами что вы сделали и какой результат получили в итоге проделанного задания.
Результат: удалён диск ssd1, сохранен диск ssd2, добавлен диск ssd3.
Задание 3 (Добавление новых дисков и перенос раздела)
Это самое сложное и объемное задание из всех представленных. Очень внимательно проверяйте что вы делаете и с какими дисками и разделами. Рекомендуется снять копию перед его выполнением. Это задание независимо от задания №2, его можно выполнять после задания №1 с поправкой на имена дисков.
Вторая часть задания этой лабораторной должна привести в точно такое же состояние которое было после выполнения первой части.
Для того чтобы вам было проще работать могу рекомендовать не удалять физически диски с хостовой машины, а только лишь отсоединять их в свойствах машины. С точки зрения ОС в ВМ это будет выглядеть абсолютно одинаково, но вы сможете в случае чего подключить диск обратно и продолжить выполнение работы откатившись на пару пунктов назад, в случае если у вас возникли проблемы. Например вы могли выполнить неверно или забыть скопировать на новый диск раздел /boot. Я могу лишь посоветовать несколько раз перепроверять с какими дисками и разделами вы работаете, а еще лучше выписать на листочек соответствие дисков, разделов и «физическому» номеру диска. Красивое и понятное дерево рисует команда lsblk , пользуйтесь ей как можно чаще для анализа того что вы сделали и что нужно сделать.
Представьте себе что ваш сервер работал долгое время на 2-х ssd дисках, как вдруг.
- Проэмулируйте отказ диска ssd2, удалив из свойств ВМ диск и перезагрузившись.
- Посмотрите текущее состояние дисков и RAID:
cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
sfdisk -d /dev/XXX | sfdisk /dev/YYY
mount | grep boot # смотрим куда смонтирован диск lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта umount /boot # отмонтируем /boot mount -a # выполним монтирование всех точек согласно /etc/fstab. # Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYY
vgdisplay system -v pvs vgs lvs -a -o+devices
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
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT pvs vgs
- ssd4 — первый новый ssd
- ssd5 — второй новый ssd
- hdd1 — первый новый hdd
- hdd2 — второй новый hdd
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
sfdisk -d /dev/XXX | sfdisk /dev/YYY
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
mdadm --manage /dev/md63 --add /dev/sda2
mdadm --grow /dev/md63 --raid-devices=2
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
lvs # посмотрим сколько сейчас размечено lvextend -l +50%FREE /dev/system/root lvextend -l +100%FREE /dev/system/var lvs # проверьте что получилось
mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
mkfs.ext4 /dev/mapper/data-var_log
mount /dev/mapper/data-var_log /mnt
apt install rsync rsync -avzr /var/log/ /mnt/
apt install lsof lsof | grep '/var/log'
systemctl stop rsyslog.service syslog.socket
umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/log
pvs lvs vgs lsblk cat /proc/mdstat
Лабораторная работа «Настройка сети в Linux системах»
2) По выведенным данным определите Mac -адрес компьютера, ip -адрес компьютера, маску подсети, адрес широковещательной рассылки, адрес шлюза по умолчанию (если есть) и адрес dns -сервера (если есть).
В Debian имена сетевых устройств принимают вид ethN , где N — число, означающее номер устройства связи в системе. Нумерация устройств начинается с нуля. Если в компьютере две сетевых карты, то они получат имена eth 0 и eth 1 . Если в сетевую карту ethN вставлен сетевой провод, идущий в модем, роутер или свитч, будет написано RUNNING , можно увидеть это примером выше в интерфейсе eth 1.
В процессе эксплуатации сети может возникнуть неисправность сети.
Причиной неработоспособности сети может быть что угодно — начиная повреждения кабеля, проблем с драйвером сетевого адаптера и заканчивая параметром, который был упущен (частота Wi-Fi при ручной настройке, неверный пароль или что-либо подобное).
Чаще всего в компьютерной сети используется получения IP -адреса по DHCP , однако иногда требуется и статическая адресация.
Если автоматическая настройка не подходит, то необходимо настроить сетевые параметры.
Выполните настройку сети двумя способами – через графический интерфейс и с командной строки.
№2. Задайте пароль для пользователя root .
1) Запустите терминал .
2) Задайте пароль пользователя root : sudo passwd root
Проверьте связь с соседними виртуальными машинами командой ping .
№4. Настройка сетевых параметров через консоль.
1) Получите права администратора с помощью команды su -.
2) Перейдите в папку /etc/network
3) Отредактируйте файл interfaces (используйте редактор nano ).
В данном файле задаются настройки для всех сетевых интерфейсов компьютера.
L oopback (коротко говоря loop или lo ) — это программный метод, который направляет полученный сигнал или данные обратно отправителю.
#hwaddress ether 12:34:56:78:90:12