Перенос сервера на raid

Обновлено: 04.07.2024

Процесс переноса системы может производиться без прекращения функционирования сервера, но в ходе переноса может значительно снизится его производительность. Вкратце, все разделы постепенно переносятся на свободный жесткий диск, который переводится в состояние деградированного RAID1. После завершения переноса файлов и загрузчика на разделы рейда старый одиночный диск очищается от данных и добавляется к зеркалу.

Дисклеймер: автор текста не несет никакой ответственности за выши данные на серверах. В конце статьи приведены ссылки на гайды, откуда кусочно был скомпонован алгоритм, опробованный в деле.

Процесс настройки будет производится с учетом используемого в текущий момент диска /dev/sda и свежего незадействованного диска /dev/sdb. Помимо всего прочего в системе используется LVM. Диск разбит на 2 части: первый раздел /boot небольшого размера, остальное отдано под LVM.

Для начала установим mdadm.

После установки необходимо проиницализировать все необходимые модули. Это избавит нас от необходимости лишний раз перезагружать сервер:

Теперь скопируем структуру разделов с действующего диска на новый

Делаем RAID1 для первого раздела на новом диске

Повторяем для остальных

Форматируем партиции в нужные файловые системы

Теперь перенесем содержимое первого раздела в зеркало, так как там только папка /boot, скопируем её

После успешного монтирования нового раздела с загрузочными файлами добавляем старый к зеркалу и ждем завершения синхронизации.

Так как существующий раздел /dev/sda5 расположен на LVM, создаем LVM физический том в рейде

Расширяем существующую группу томов с учетом md1

Переносим туда наш текущий раздел с данными

Выбрасываем из группы томов одиночный раздел

Добавляем освободившийся раздел к зеркалу, дожидаемся сборки массива

После всех этих процедур, если система не предложила сделать это ранее, вносим изменения в файлы конфигурации mdadm, добавляя туда данные о созданных нами массивах

На этом этапе пробуем перезагрузиться и скрестив пальцы ждём пингов от сервера, находящегося от нас в нескольких тысячах километров.

При создании RAID-массивов на контроллерах HPE Smart Array не допускается комбинированное использование дисков с разными интерфейсами (SAS и SATA) в рамках одного массива. Поэтому, в случае, если ранее операционная система сервера была установлена на RAID-массив, состоящий из дисков одного типа (например SAS HDD), то в случае необходимости переноса ОС на диски другого типа (например SATA SSD), нам потребуется создать отдельный RAID-массив из дисков такого типа. Здесь мы рассмотрим пример подобного переноса ОС Windows Server 2012 R2, развёрнутой на сервере HPE ProLiant Gen9, без необходимости переустановки ОС, то есть с минимальным временем простоя сервера.

Исходные данные, используемые в нашем примере:

  • В сервере установлен RAID-контроллер HPE Smart Array P440ar и включена загрузка UEFI;
  • Загружаемая ОС сервера установлена на массив RAID-1 из пары дисков SAS HDD 72GB;
  • Необходимо перенести ОС сервера на массив RAID-1 из пары дисков SATA SSD 150GB;
  • В дисковой корзине сервера имеется хотя бы один свободный слот для установки дополнительного диска (только на время переноса ОС);
  • На сервере установлена утилита HPE Smart Storage Administrator (SSA). Загрузить актуальную версию можно здесь;
  • Имеются загрузочные образы:

Используемый в нашем случае вариант плана действий по переносу ОС:

Пройдёмся по пунктам этого плана.

Подготовка сервера

Сюда входят пункты 1-2 нашего плана. Особых комментариев по поводу этих пунктов нет, так как смысл их понятен каждому. Единственное, на что стоит обратить внимание перед началом манипуляций с RAID-массивами, так это на то, что контроллер Smart Array должен функционировать в штатном режиме без каких-либо ошибок. Для этого заглянем в утилиту HPE Smart Storage Administrator (SSA) и проверим текущую конфигурацию RAID.

HPE Smart Storage Administrator RAID Array status

В нашем случае массив RAID-1 состоит из двух дисков SAS HDD, установленных в 9 и 10 слотах дисковой корзины сервера.

HP ProLiant DL380 Gen9 Server Storage Cage

Массив работает в штатном режиме.

Изменение конфигурации RAID-массивов

Сюда входят пункты 3-9 нашего плана.

Выключаем сервер, штатно завершая работу ОС.

Извлекаем из дисковой корзины сервера один из дисков SAS HDD из
текущего массива RAID-1. В нашем примере извлекается диск из слота 10.

Remove HDD from mirror array in ProLiant 380 Gen9

Smart Array warning about disk array errors

Не смотря на аварийное состояние нашего текущего RAID-1, операционная система должна успешно загрузиться с доступного диска в слоте 9.

Запускаем утилиту SSA и видим, что статус массива изменился на критический, так как система запущена без зеркального диска

HPE SSA Logical Drive in Recovery Mode

Массив перешёл в режим Interim Recovery Mode и всё ещё находится в работоспособном состоянии.

В свободный слот дисковой корзины сервера устанавливаем первый диск SATA
SSD. В нашем примере SSD диск установлен в 17 слот.

Insert SDD in ProLiant DL380 Gen9

Здесь важно использовать для установки нового SSD диска слот корзины, отличный от того, из которого мы только что вытащили SAS HDD. Если вставить диск в тот же слот, то контроллер будет переводить этот диск в состояние ошибки.

Жмём кнопку Refresh или просто перезапускаем утилиту SSA, чтобы получить обновлённую информацию. Добавленный SSD диск должен появится в разделе Unassigned Drives

Unassigned Drives in HPE SSA

Создаём с членством этого SSD диска новый
массив RAID-0

New RAID-0 Array in SSA

В нашем случае на базе нового RAID-массива создан логический диск, меньшего размера (

107GB), чем позволяет физическая ёмкость диска (150GB) намеренно. Несмотря на то, что производители серверных SSD-дисков уже изначально закладывают некоторый запас резервных ячеек при производстве дисков, есть мнение, что при возможности лучше всё же оставлять небольшой процент неразмеченного пространства дисковой ёмкости. По крайней мере в дальнейшем расширить диск при необходимости нет никаких проблем, так как эта операция давно поддерживается в онлайн-режиме и на уровне самих контроллеров Smart Array и на уровне файловой системы NTFS в Windows Server.

После того, как создан новый массив RAID-0, выключаем сервер, штатно завершая работу ОС.

Если сервер имеет подключения к внешним дисковым массивам через SAN, то на данном этапе желательно отключить сервер от SAN, чтобы избежать потенциальных проблем при последующей работе с загрузочными утилитами для работы с дисковыми разделами.

Копирование дисковых разделов с HDD на SSD

Сюда входят пункты 10-12 нашего плана. Нам предстоит выполнить копирование разделов диска с операционной системой сервера со старого полу-разобранного массива RAID-1 на только что созданный массив RAID-0.

Загружаем сервер с образа MiniTool Partition Wizard. Для этого можно использовать, например, возможность загрузки ISO-образов по сети через интерфейс управления сервером HPE iLO.

В процессе загрузки сервера жмём F11 Boot Menu, чтобы попасть в загрузочное меню.

ProLiant DL380 G9 F11 Boot Menu

В меню загрузки указываем загрузочный накопитель. В нашем случае это ISO-образ смонтированный через интерфейс iLO.

ProLiant DL380 G9 Boot from ILO ISO image

MiniTool Partition Wizard Upgrade to Full Version Notice

Здесь выбираем исходный диск на массиве RAID-1 и жмём на верхней панели кнопку Migrate OS to SSD/HD.

Migrate OS to SSD from HD in MiniTool

В открывшемся окне мастера миграции выбираем вариант A, чтобы вся структура разделов была скопирована с исходного диска на целевой диск.

Migrate partitions in MiniTool

На следующем шаге выбираем целевой диск. В нашем случае это массив RAID-0.

Select destination disk in MiniTool

Далее выбираем опции копирования разделов. В нашем случае разделы копируются без масштабирования под новую увеличенную ёмкость диска.

Select Copy partition options in MiniTool

На следующем шаге мастер обращаем внимание на уведомление о том, что после копирования может потребоваться переопределение загрузочного диска в настройках микрокода BIOS. В нашем случае выбор загрузочного диска определяется на уровне RAID-контроллера и мы сделаем это позже (п.16 плана).

Note about bootable disk in BIOS from MiniTool

Мастер миграции будет закрыт, а в главном окне MiniTool Partition Wizard в разделе Operations Pending появится запланированная последовательность действий с дисковыми разделами. Нажимаем кнопку Apply, чтобы запустить фактическое выполнение запланированных действий.

Operations Pending in MiniTool

Время выполняемых операций будет напрямую зависеть от скорости исходного и целевого дисков.

Operations Status in MiniTool

Дожидаемся успешного завершения копирования разделов, после чего завершаем работу среды MiniTool Partition Wizard и выключаем сервер.

Удаление массива SAS HDD

На этом этапе выполняем пункты 13-17 нашего плана.

Извлекаем из дисковой корзины сервера второй диск SAS HDD из
старого массива RAID-1. В нашем примере извлекается HDD диск из слота 9.

Remove HDD from cage on ProLiant DL380 G9 server

Загружаем сервер с образа HPE SSA Offline. Опять же, для этого можно использовать возможность загрузки ISO-образов по сети через интерфейс управления сервером HPE iLO.

В процессе загрузки сервера, как и ранее, получим предупреждение о критическом состоянии конфигурации RAID-массива на контроллере Smart Array. Игнорируем его и продолжаем процесс загрузки.

В загрузившейся среде SSA Offline удаляем ссылку на старый массив RAID-1 из
отсутствующих дисков SAS HDD – Delete Array

Delete Array in HPE SSA

Понимая что мы делаем, подтверждаем удаление ссылки на RAID-массив

Confirmation of deleting RAID

На самом деле здесь только удаляется ссылка на RAID-массив из метаданных, хранящихся в энергонезависимой памяти сервера. При наличии дисков, которые ранее были членами массива, массив может быть автоматически воссоздан, если, например, установить эти диски в этот же или другой сервер с контроллером Smart Array. Поэтому извлечённые нами ранее диски SAS HDD можно сохранять на всякий случай до тех пор, пока все пункты нашего плана не будут выполнены успешно.

В среде SSA Offline, выбрав раздел настроек RAID-контроллера Smart Array, пройдём по ссылке Set Bootable Logical Drive/Volume для того, чтобы определить созданный нами ранее массив RAID-0, как загрузочный.

Set Bootable Logical Drive in HPE SSA Offline

Выбираем единственный оставшийся у нас логический диск Smart Array, как загрузочный.

Smart Array Bootable Logical Drive

После этого завершаем работу среды SSA Offline и выключаем сервер.

Конвертация массива RAID-0 в RAID-1

После того, как ОС успешно загрузится, в высвободившийся ранее слот дисковой корзины сервера (в нашем случае это 9 слот) устанавливаем второй диск SATA SSD.

Insert new SSD in disk cage on ProLiant DL380 Gen9 server

Запускаем утилиту HPE SSA и конвертируем массив RAID-0 в RAID-1 с
присоединением второго, только что установленного, диска SATA SSD. Для этого выбираем RAID-массив и в меню действий используем ссылку Manage Data Drives.

Manage Data Drives in HPE SSA

В форме управления дисками нашего массива RAID-0 выбираем тип преобразования в зеркальный массив RAID-1 - Mirror Array и отмечаем добавляемый диск.

Convert RAID-0 to RAID-1 Mirror Array in HPE Smart Array

Дожидаемся окончания процесса трансформации, которая будет запущена сразу и пройдёт в онлайн-режиме.

HPE SSA Array Transformation Status

В результате мы получим штатно работающий массив RAID-1 из пары дисков SATA SSD.

SATA SSD RAID-1 Array in Smart Storage Administrator

Можно считать, что поставленная задача выполнена. Теперь остаётся только подключить сервер к SAN, если ранее выполнялось отключение на этапе п.9.

Похожее

Только один комментарий Комментировать

Спасибо большое за статью - помогла очень.
Вчера делал подобную процедуру.
Контроллер HPE ssa 408i . сервер prolliant ml350 gen10

4 физ диска были в рейде 1+0.
- Два(зеркальных) вытащил, вставил так же один рядом.
- Туда склонировал систему win_server_2016 minitool.
- У меня правда вин не загрузился, то есть начал грузится и все. Можно было восстановить, но сделал другой - запустилось.
- Удалил рейд 1+0.
- Переставил диск с ситемой в 1-й слот - создал рейд0, установил загрузку.
- Во второй добавил диск - отзеркалил в рейд1(все как здесь описано). Только hpe ssa запускал прямо с рабочей ос.
- паралельно почти установил два оставшихся диска, сделал друой рейд 1 - программа ругнулась, что одновременно два массива не может сделать(первый еще зеркалился) и сделала один массив из дух дисков(вроди бы рейд 0).
- Потом первое зеркало создалось и я решил убрать второй рейд0, дабы сделать нужный мне второй массив рейд1.
Дальше веселее.
- Грохнул рейд1 с системой или . я не понял что сделал (перепутал скорее всего).

Дальше наша песня хороша .
- Достал по сети образ(создал несколько предварительно всеми прогами, что были под рукой).
отказался моей программой разворачиваться по сети. После мучений:
- установил еще один жесткий диск, скопировал с сети образ на него, с локального диска развернулся и дальше аналогично как в статье и в моих предыдущих действиях удачно закончил сформировав два рейда1 на 4 дисках
( 1- система, 2-й для бекапа и как резерв дисков. в случае выхода из строя диска с 1-го системного рейда вытащу диск из второго, не несущего важной нагрузки, с быстрой поставкой запчастей - не реально).

Примерно так закончилось с удачнім завершением.

Фирмваре обновил. Там оказывается в биосе (в общем во флеше) есть полноценный HPE SSA OffLine, то есть с загрузочного диска я не грузился (без ОС). Только какой то из него интересный выход - при выходе висит долго и говорит, что подождать - перегрузится. Я ждал - не дождался, перегрузил жестко.
Перепроверять нет возможности - сервер в работе.

Предположим, что у нас имеется сервер на базе OS Ubuntu server или Debian 6 установленный и работающий на одном физическом жестком диске. Мы хотим защитить увеличить или ускорить дисковую систему этого сервера. Каждый сценарий подразумевает свой эффект от использования.

Увеличение надежности за счет добавления второго диска [ ]

  1. Добавить физический диск равного (до байта) или меньшего размера чем исходный, но не меньше, чем объём имеющихся данных.
  2. Создать рейд массив первого уровня (зеркальный) в который включить только один (новый) диск
  3. Произвести копирование всех данных на него и сделать его загрузочным
  4. Проверить, что все работает с нового диска и если да то
  5. Очистить исходный (старый) диск и присоединить его к зеркальному массиву

Перенос системы на одиночный диск большей ёмкости [ ]

  1. Добавляем новый диск большего размера чем исходный
  2. Переносим данные и делаем загрузочным
  3. Отключаем исходный диск

При желании в любой момент можно добавить второй диск аналогичный по размеру новому диску и защитить данные при помощи зеркала.

Увеличение объема и скорости [ ]

  1. Добавить к системе несколько идентичных дисков и объединить их в массив 1,5 или 10 го уровня
  2. Перенести на этот массив систему сделав каждый диск загрузочным
  3. Убрать исходный диск

Произвести перенос рабочей операционной системы на RAID массив по следующей схеме:

  • Структура разделов на физических носителях GPT (снимает ограничение в 2 Тб на носитель)
    • 1 раздел для обеспечения поддержки загрузки BIOS компьютера и размещения менеджера загрузки Linux
    • 2. раздел является хранилищем зеркального тома RAID1 и расположен на каждом физическом диске
    • 3. раздел является хранилищем RAID любого уровня внутри которого располагается LVM структура

    Описание выполнения переноса системы на raid1 в соответствии с первым сценарием. Все блоки команд вводятся как есть, копировать -> вставить. Изменять нужно только выделенные жирным значения.

    Проверим список доступных в системе дисков

    Уточним, какой диск является рабочим, то-есть диск, с которого загрузилась система

    Задаем диски, который будем готовить под RAID

    Очищаем таблицу разделов на указанном жестком диске и размечаем диск в GPT.

    Определяем максимальный размер диска и создаем разделы на нем

    Создаем массивы в деградированном состоянии на новом диске:

    • md0 для загрузки (обязательно зеркало -level=1) расположен во 2м разделе GPT
    • md1 массив для данных, может быть любого уровня (тут для сценария 1) расположен в 3м, наибольшем разделе GPT

    Сохраним параметры массива в конфигурационном файле:

    Создадим структуру разделов в LVM:

    • lv_swap для подкачки в начале диска размером 8 Гб (8192 Мб)
    • Выделим отдельный раздел lv_add для хранения данных, которые могут переполнить диск под или которые особо ценные, например /var/spool и установим ему размер 70% от размера диска. Это позволит избежать ситуаций с переполнением диска и отказом всей системы. Кроме того, данный раздел будет отформатирован в высоконадежную систему jfs оптимизированную для хранения огромного числа мелких файлов.
    • lv_root оставшееся место под корневую систему
    • Загрузочный раздел форматируем в ext2, корень системы в ext4, а рабочие данные будут в файловой системе jfs

    Создадим точки монтирования созданных разделов и примонтируем их

    Произведем копирование загрузочных файлов и остальных данных исключая служебные каталоги в соответвтующие разделы

    Создадим новые служебные каталоги и назначим на них права

    Войдем в окружение созданой копии системы

    Переходим в окружение скопированной системы [ ]

    Создадим файл монтирования файловых систем при загрузке

    Разрешим системе автоматически запускаться, если один из дисков вышел из строя или отсутствует (по умолчанию при загрузке будет выдаваться запрос на разрешение запуска)

    Подмонтируем загрузочный раздел в соответствии с указанными параметрами fstab с генерируем загрузочное ядро

    Отключим графический режим загрузчика из-за которого система может не загружаться с рейда.

    Выполним запись в загрузочный сектор второго жесткого диска и обновление параметров загрузчика

    В результате проделанных действий мы получили систему, которая должна запускать с RAID массива, но при этом сам массив находится в состоянии деградации и ожидает, когда будет доступен новый физический диск. В качестве такого диска теперь можно использовать как новый диск, так и диск с исходной системой, который надо предварительно очистить.

    Очищаем таблицу разделов на исходном диске. Все данные на нем будут уничтожены! Все изменения в файлах произошедшие со времени начала копирования данных с него на второй диск будут потеряны.

    ВНИМАНИЕ. Если процесс выполняется удаленно, что выполнено условие: В БИОС компьютера должен быть настроен режим последовательной загрузки с жестких дисков, т.е. если загрузиться с первого диска не удалось, должна произойти автоматическая загрука со второго. Если это не так, и система не загружается, необходимо переключить загрузку на второй диск или поменять местами интерфейсные кабели.

    • Далее все действия идентичны как для первичного добавления диска, так и для замены вышедшего из строя

    Проверим список дисков в системе

    Диск который будет добавляться в массив, на данном этапе не должен быть быть членом рейда. Проверим, какой диск в рейде:

    Чтобы не ошибиться в дальнейших действиях и не испортить данные создадим переменные с именами дисков.

    Произведем копирование структуры разделов с рабочего на чистый диск и подключим его к массиву

    Установим загрузчик на добавленный диск

    На этом действия по переносу системы на рейд массив завершены, осталось дождаться окончания синхронизации массива. Контролировать процесс можно с помощью команды:

    На этапе сборки RAID массивов, жесткие диски используются по максимуму своих возможностей, что в свою очередь является хорошим тестом надёжности, при помощи следующих команд можно наблюдать интерактивно, в реальном времени изменение параметров SMART

    Читайте также: