- Лабораторная работа: настраиваем lvm, raid на linux
- Требования к инструментам для выполнения л\р:
- ВНИМАНИЕ
- Материалы для изучения
- Используемые утилиты
- Лабораторная работа состоит из 3-х частей:
- Задание 1 (Установка ОС и настройка LVM, RAID)
- Задание 2 (Эмуляция отказа одного из дисков)
- Задание 3 (Добавление новых дисков и перенос раздела)
Лабораторная работа: настраиваем lvm, raid на linux
Небольшое отступление: данная л\р является синтетической.
Некоторые задания которые здесь описаны можно сделать гораздо проще, но поскольку задача л/р — познакомиться с функционалом raid, lvm то некоторые операции искусственно усложнены.
Требования к инструментам для выполнения л\р:
ВНИМАНИЕ
Данная лабораторная работа связана с такой тонкой материей как сохранность данных — это такая область, которая позволяет из-за мельчайшей ошибки — одной лишней буквы или цифры потерять все ваши данные.
Поскольку вы выполняете лабораторную работу вам ничего не грозит, разве что придется начать делать ее заново.
В реальной жизни все гораздо серьезнее, поэтому следует очень внимательно вводить имена дисков, понимая что именно вы выполняете текущей командой и с какими дисками работаете.
Второй важный момент — именование дисков и разделов: в зависимости от ситуации номера дисков могут отличаться от тех значений, что представлены в командах в лабораторной работе.
Так, например, если удалить диск sda из массива, а затем добавить новый диск, то новый диск будет отображаться в системе с именем sda. Если же выполнить перезагрузку перед добавлением нового диска, то новый диск будет иметь имя sdb, а старый станет именоваться sda
Лабораторная работа должна выполняться под суперпользователем (root) поскольку большая часть команд требует повышенных привилегий и не имеет смысла постоянно повышать привилегии через sudo.
Материалы для изучения
Используемые утилиты
Лабораторная работа состоит из 3-х частей:
Задание 1 (Установка ОС и настройка LVM, RAID)
Создайте новую виртуальную машину, выдав ей следующие характеристики:
- 1 gb ram
- 1 cpu
- 2 hdd (назвать их ssd1, ssd2 и назначить равный размер, поставить галочки hot swap и ssd)
- SATA контроллер настроен на 4 порта:
Начать установку Linux и дойдя до выбора жестких дисков сделать следующее:
- Partitioning method: manual, после чего вы должны увидеть такую картину:
- Partition size: 512M
- Mount point: /boot
- 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
- logical volume name: root
- logical volume size: 2\5 от размера вашего диска
- logical volume name: var
- logical volume size: 2\5 от размера вашего диска
- logical volume name: log
- logical volume size: 1\5 от размера вашего диска
Завершив настройку LVM вы должны увидеть следующее:
- Use as: ext4
- mount point: /
Повторите операцию разметки для var и log выбрав соответствующие точки монтирования (/var и /var/log вручную ввести), получив следующий результат:
Закончить установку ОС, поставив grub на первое устройство (sda) и загрузить систему.
Выполните копирование содержимого раздела /boot с диска sda (ssd1) на диск sdb (ssd2)
Выполнить установку grub на второе устройство:
Посмотреть диски в системе:
Найдите диск на который не была выполнена установка grub и выполните эту установку:
Опишите своими словами что вы сделали и какой результат получили в итоге проделанного задания.
После выполнения этого задания рекомендуется сохранить резервную копию папки с виртуальной машиной или сделать vagrant box.
Результат: Виртуальная машина с дисками ssd1, ssd2.
Задание 2 (Эмуляция отказа одного из дисков)
Теперь нужно вручную выполните синхронизацию разделов, не входящих в RAID. Для этого воспользуемся утилитой dd, скопировав с «живого» диска на новенький, который вы недавно поставили:
Опишите своими словами что вы сделали и какой результат получили в итоге проделанного задания.
Результат: удалён диск ssd1, сохранен диск ssd2, добавлен диск ssd3.
Задание 3 (Добавление новых дисков и перенос раздела)
Это самое сложное и объемное задание из всех представленных. Очень внимательно проверяйте что вы делаете и с какими дисками и разделами. Рекомендуется снять копию перед его выполнением. Это задание независимо от задания №2, его можно выполнять после задания №1 с поправкой на имена дисков.
Вторая часть задания этой лабораторной должна привести в точно такое же состояние которое было после выполнения первой части.
Для того чтобы вам было проще работать могу рекомендовать не удалять физически диски с хостовой машины, а только лишь отсоединять их в свойствах машины. С точки зрения ОС в ВМ это будет выглядеть абсолютно одинаково, но вы сможете в случае чего подключить диск обратно и продолжить выполнение работы откатившись на пару пунктов назад, в случае если у вас возникли проблемы. Например вы могли выполнить неверно или забыть скопировать на новый диск раздел /boot. Я могу лишь посоветовать несколько раз перепроверять с какими дисками и разделами вы работаете, а еще лучше выписать на листочек соответствие дисков, разделов и «физическому» номеру диска. Красивое и понятное дерево рисует команда lsblk , пользуйтесь ей как можно чаще для анализа того что вы сделали и что нужно сделать.
Представьте себе что ваш сервер работал долгое время на 2-х ssd дисках, как вдруг.
Проэмулируйте отказ диска ssd2, удалив из свойств ВМ диск и перезагрузившись.
Посмотрите текущее состояние дисков и RAID:
Вам повезло — начальство разрешило закупить несколько новых дисков:
2 SATA большого объема для давно назревшей задачи вынесения раздела с логами на отдельный диск. 2 SSD на замену погибшему, а также на замену пока еще функционирующему.
Следует учитывать, что корзина сервера поддерживает установку только 4х дисков. одновременно, поэтому добавить все диски сразу нельзя.
Объем HDD выбрать в 2 раза больше чем SSD.
Объем SSD выбрать в 1,25 раза больше бывших SSD.
Добавьте один новый ssd диск, назвав его ssd4, а после добавления проверьте что произошло:
В первую очередь следует озаботиться сохранностью данных старого диска. На этот раз мы будем переносить данные с помощью LVM:
В первую очередь необходимо скопировать файловую таблицу со старого диска на новый:
Подставьте вместо x,y правильные диски и разберите что делает данная команда.
Выполните команду lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT и сравните ее вывод с прошлым вызовом. Что поменялось?
С помощью команды dd скопируйте данные /boot на новый диск:
Если /boot остался смонтирован на старом диске, его следует перемонтировать на живой диск:
Установите загрузчик на новый ssd диск:
Зачем мы выполняем эту операцию?
Создайте новый рейд-массив с включением туда только одного нового ssd диска:
Команда приведенная выше не отработает без указания специального ключа.Прочитайте справку и добавьте этот ключ к команде.
Следующим этапом необходимо настроить LVM
- Выполните команду pvs для просмотра информации о текущих физических томах.
Создайте новый физический том включив в него ранее созданный RAID массив:
Увеличим размер Volume Group system с помощью такой команды:
Выполните команды и запишите что вы увидели и что поменялось.
На каком физическом диске сейчас находятся LV var, log, root?
Выполните перемещение данных со старого диска на новый, подставив правильные имена устройств.
Повторите операцию для всех logical volume.
Выполните команды и запишите что вы увидели и что поменялось.
Изменим наш VG, удалив из него диск старого raid. Подставьте правильное имя raid.
Выполните команды и запишите что вы увидели и что поменялось.
Удалите ssd3 диск и добавьте ssd5, hdd1, hdd2 согласно вышеописанным ТЗ, в итоге получив:
- ssd4 — первый новый ssd
- ssd5 — второй новый ssd
- hdd1 — первый новый hdd
- hdd2 — второй новый hdd
Проверьте что произошло после добавления дисков:
Восстановим работу основного raid массива:
Выполните копирование таблицы разделов, подставив правильные диски:
Обратите внимание, что когда мы скопировали таблицу разделов со старого диска лказалось что новый размер не использует весь объем жесткого диска. Поэтому в скором времени нам потребуется изменить размер этого раздела и расширить raid. Убедитесь в этом сами, введя команду:
Скопируйте загрузочный раздел /boot с диска ssd4 на ssd5:
Установите grub на новый диск (ssd5).
Изменим размер второго раздела диска ssd5.
Запустите утилиту для работы с разметкой дисков:
Перечитаем таблицу разделов и проверим результат:
Добавим новый диск к текущему raid массиву (не забудьте подставить правильные диски):
Расширим количество дисков в нашем массиве до 2-х штук:
Посмотрите результат: у нас размечено 2 массива, но оба раздела входящие в этот массив имеют разные размеры:
Увеличим размер раздела на диске ssd4
Запустите утилиту для работы с разметкой дисков:
Перечитаем таблицу разделов и проверим результат.
Обратите внимание, теперь sda2, sdc2 разделы имеют размер > чем размер raid-устройства.
На этом этапе размер raid можно теперь расширить:
Просмотрите lsblk и запишите что изменилось.
Однако, хоть мы и изменили размер raid, сами размеры vg root,var,log не изменились
Посмотрите чему равен размер PV:
Расширим размер нашего PV:
Посмотрите чему равен размер PV:
Добавим вновь появившееся место VG var, root:
На этом этапе вы завершили миграцию основного массива на новые диски. работа с ssd1,ssd2 закончена.
Наша следующая задача — переместить /var/log на новые диски, для этого создадим новый массив и lvm на hdd дисках.
Посмотрим какие имена имеют новые hdd диски:
Создадим raid массив:
Создадим новый PV на рейде из больших дисков:
Создадим в этом PV группу с названием data:
Создадим логический том размером всего свободного пространства и назовем его val_log:
Отформатируем созданные раздел в ext4:
Перенесем данные логов со старого раздела на новый
Примонтируем временно новое хранилище логов:
Выполним синхронизацию разделов:
Выясним какие процессы работают сейчас с /var/log:
Останавливаем эти процессы:
Выполним финальную синхронизацию разделов (тех данных что могли измениться с момента последней синхронизации):
Поменяем местами разделы:
Проверяем что получилось:
fstab — файл, в котором записываются правила, по которым при загрузке будут смонтированы разделы. Наша задача — найти ту строку, в которой монтируется /var/log и поправить устройство system-log на data-var_log .
Самое важно на этом этапе — не забыть изменить таблицу раделов (ext4, например). Поскольку как бы мы не изменяли всякие raid, lvm — пока ФС на разделе не будет уведомлена о том что теперь размер раздела изменился, мы не сможем использовать новое пространство. Используйте команду resize2fs для изменения ФС.
- Выполним перезагрузку. Если вы все сделали правильно — вы снова попадете в вашу ОС (это нужно для того чтобы убедиться что все работает. Никакого смысла кроме самопроверки этот шаг не несет)
Выполните проверки, что все что мы хотели сделать действительно было сделано:
[ОПЦИОНАЛЬНО] Выполните действия
- Перезагрузитесь нажимая F12, чтобы указать при загрузке разные диски, для того чтобы убедиться что вы можете загрузиться с любого из ssd дисков, так чтобы мы не боялись отказа одного из них.
Теперь у вас есть ненужный LV log в VG system. Распределите это пространство между root или var, но вместо использования конструкции 100%FREE укажите размер руками с помощью ключа -L:
Источник