Как восстановить raid 1 не работает один диск

Обновлено: 06.07.2024

Управление зеркальными дисками и чередующимися набора­ми отличается от управления томами других типов. Сбойный зеркальный диск или чередующийся набор нужно восстано­вить, выполнив определенные операции. Если вы хотите пре­кратить зеркалирование дисков, то должны расформировать зеркальный набор. А чтобы прекратить использование RAID-5, следует удалить весь набор томов.

Расформирование зеркального набора

Расформирование зеркального набора — стандартная процеду­ра, выполняемая, когда требуется отменить зеркалирование дисков или заново создать зеркальный набор. Если зеркали­рование дисков больше не нужно, можно расформировать "зер­кальный набор и работать с данными только на одном диске. Это позволяет использовать пространство второго диска в дру­гих целях. Если один из зеркальных дисков набора дает сбой, дисковые операции продолжают выполняться с использовани­ем другого диска. Чтобы восстановить зеркальный набор, сна­чала расформируйте его, а потом сформируйте заново.

Для расформирования зеркального набора выполните сле­дующие операции.

  1. Введите diskpart в командной строке, чтобы запустить DiskPart.
  2. Выведите список дисков компьютера, чтобы определить, какие диски входят в зеркальный набор: DISKPART> list disk
  3. Расформируйте зеркальный набор, высвободив заданный диск. У диска, который вы укажете при расформировании зеркального набора, не будет буквы диска и точки монти­рования. Например, если зеркалируются диски 0 и 1 и тре­буется, чтобы пользователи продолжали работать с диском О, можно расформировать зеркальный набор командой: D1SKPART> break disk=1

После расформирования зеркального набора у вас будет два диска, содержащих одинаковую информацию. Однако только у диска 0 будет буква диска или точка монтирова­ния. Если вы хотите расформировать зеркальный набор и уничтожить копию информации на втором диске, добавь­те параметр nokeep, например: DISKPART> break disk=1 nokeep

Повторная синхронизация и восстановление зеркального набора

Когда один из дисков зеркального набора дает сбой, для под­держки зеркалирования нужно восстановить зеркальный на­бор. Для этого расформируйте зеркальный набор и заново сформируйте его, включив в него новый или восстановленный диск (если сбойный диск удалось восстановить). Бывают слу­чаи, когда происходит не полная утрата работоспособности сбойного диска, а нарушение синхронизации данных. В таких случаях один из дисков по каким-то причинам скорее всего перешел в состояние Offline (Отключен), и из-за этого данные записывались только на один диск.

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

Привет, друзья. В прошлой статье мы с вами создали RAID 1 массив (Зеркало) - отказоустойчивый массив из двух жёстких дисков SSD. Смысл создания RAID 1 массива заключается в повышении надёжности хранения данных на компьютере. Когда два жёстких диска объединены в одно хранилище, информация на обоих дисках записывается параллельно (зеркалируется). Диски являются точными копиями друг друга, и если один из них выйдет из строя, мы получим доступ к операционной системе и нашим данным, ибо их целостность будет обеспечена работой другого диска. Также конфигурация RAID 1 повышает производительность при чтении данных, так как считывание происходит с двух дисков. В этой же статье мы рассмотрим, как восстановить массив RAID 1, если он развалится. Другими словами, мы рассмотрим, как сделать Rebuild RAID 1.

↑ Восстановление (Rebuild) RAID 1 массива



Развал RAID 1 массива может произойти по нескольким причинам: отказ одного из дисков, ошибки микропрограммы БИОСа, неправильные действия пользователя компьютера. При развале RAID 1 в БИОСе у него будет статус "Degraded".


В таких случаях нужно произвести восстановление (Rebuild) массива. Каким образом это можно сделать? К примеру, при отказе одного накопителя мы просто подсоединяем другой исправный, затем жмём в БИОСе кнопку "Rebuild", и происходит синхронизация данных на дисках. Таким вот образом RAID 1 массив восстанавливается, и мы можем работать дальше. Вроде, всё просто. Однако на практике при возникновении такой проблемы много нюансов. Давайте подробно рассмотрим все особенности восстановления RAID.

↑ Мониторинг состояния жёстких дисков в RAID

Если созданный с помощью БИОСа материнской платы RAID 1 массив развалился, неопытный пользователь может этого сразу и не понять. Мы не получим ни звукового оповещения, ни оповещения в иной форме, сигнализирующих о проблеме развала RAID 1. Возможностями аварийной сигнализации при развале массивов обладают только отдельные SAS/SATA/RAID-контроллеры, работающие через интерфейс PCI Express. За аварийную сигнализацию при проблемах с массивами отвечает специальное ПО таких контроллеров. Не имея таких контроллеров, можем использовать программы типа CrystalDiskInfo или Hard Disk Sentinel Pro, которые предупредят нас о выходе из строя одного из накопителей массива звуковым сигналом, либо электронным письмом на почту.


Если заглянем в управление дисками Windows, о развале RAID 1 можем догадаться, например, по исчезновению разметки одного из дисков.

Для примера возьмём мою материнскую плату на чипсете Z490 от Intel, для которого существует специальное программное обеспечение Intel Rapid Storage Technology (Intel RST). Технология Intel Rapid Storage поддерживает SSD SATA и SSD PCIe M.2 NVMe, повышает производительность компьютеров с SSD-накопителями за счёт собственных разработок. Всесторонне о бслуживает массивы RAID в конфигурациях 0, 1, 5, 10. П редоставляет пользовательский интерфейс Intel Optane Memory and Storage Management для управления системой хранения данных, в том числе дисковых массивов .



После установки Intel RST в главном окне увидим созданный нами из двух SSD M.2 NVMe Samsung 970 EVO Plus (250 Гб) RAID 1 массив, исправно функционирующий.


Вот этот массив в управлении дисками Windows.


И в диспетчере устройств.


Технология Intel Rapid Storage имеет свою службу и постоянно мониторит состояние накопителей. На данный момент все находящиеся в рейде диски исправны.


Если какой-либо накопитель неисправен, драйвер Intel RST сразу предупредит всплывающим окном о проблеме «Требуется внимание. Производительность одного из ваших томов снижена».


И в главном окне программы будет значиться, что один из дисков массива неисправен.


В этом случае можно произвести диагностику неисправного накопителя специальным софтом, к примеру, программой Hard Disk Sentinel Pro . Если диск неисправен или отработал свой ресурс, выключаем компьютер и заменяем диск на новый. Затем делаем Rebuild (восстановление) RAID 1 массива.

↑ Rebuild (восстановление) RAID 1 массива

После замены неисправного диска включаем ПК и входим в БИОС. Заходим в расширенные настройки «Advanced Mode», идём во вкладку «Advanced». Переходим в пункт «Intel Rapid Storage Technology».



Видим, что наш RAID 1 массив с названием Volume 1 неработоспособен - "Volume 1 RAID 1 (mirroring), Degraded".Выбираем "Rebuild" (Восстановить).

Обратим внимание на уведомление внизу: "Selecting a disk initiates a rebuild. Rebuild completes in the operating system", переводится как "Выбор диска инициирует перестройку массива. Восстановление завершается в операционной системе". Выбираем новый накопитель, который нужно добавить в массив для его восстановления, жмём Enter. Появится следующий экран, указывающий, что после входа в операционную систему будет выполнено автоматическое восстановление - "All disk data will be lost", переводится как "Все данные на диске будут потеряны".RAID 1 массив восстановлен.


Жмём F10, сохраняем настройки, произведённые нами в БИОСе, и перезагружаемся.

После перезагрузки открываем программу Intel Optane Memory and Storage Management и видим, что всё ещё происходит перестроение массива, но операционной системой уже можно пользоваться.


↑ Rebuild (восстановление) RAID 1 массива в пользовательском интерфейсе Intel Optane Memory and Storage Management

Восстановить дисковый массив можно непосредственно в программе Intel Optane Memory and Storage Management. К примеру, у нас неисправен один диск массива, и Windows 10 загружается с исправного накопителя. Выключаем компьютер, отсоединяем неисправный, а затем устанавливаем новый SSD PCIe M.2 NVMe, включаем ПК. Программа Intel Optane Memory and Storage Management определяет его как неизвестный жёсткий диск.

Диспетчер устройств, как и управление дисками, не видит целостный RAID, а видит два разных SSD.


В главном окне программы жмём «Создать том RAID».


У нас SSD нового поколения с интерфейсом PCIe M.2 NVMe, значит, выбираем контроллер PCIe. Тип дискового массива - "Защита данных в режиме реального времени (RAID 1)".


Выбираем два наших диска SSD PCIe M.2 NVMe.

Если на новом диске были данные, после перестроения массива данные на нём удалятся. Жмём "Создать том RAID". Можем наблюдать процесс восстановления массива.


RAID 1 массив восстановлен.




↑ Автоматический Rebuild RAID 1 массива

Если включить в настройках программы Intel RST «Автоматическое перестроение при оперативной замене», при замене неисправного накопителя не нужно будет ничего настраивать. Восстановление дискового массива начнётся автоматически.


↑ Восстановление массива RAID 1 из резервной копии при замене двух вышедших из строя дисков

Если у вас выйдут из строя сразу оба накопителя, то покупаем новые, устанавливаем в системный блок, затем создаём RAID 1 заново и разворачиваем на него резервную копию.

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

Содержание:

Многие пользователи, которые беспокоятся о сохранности важных данных выбирают массив RAID 1 в качестве основного хранилища. Например, этот тип RAID используют финансисты для хранения финансовых отчетов и небольших баз данных, которые они используют в своей повседневной работе и которые имеют большое значение. Это объясняется высокой надежностью массива RAID 1. В то же время, несмотря на всю кажущуюся надежность нельзя пренебрегать резервным копированием важных данных, ведь даже RAID 1 не способен гарантировать сохранность данных. Для того, чтобы разобраться почему это так – давайте рассмотрим устройство массива RAID 1, преимущества и недостатки, а также возможные риски потери важной информации.

Принцип работы массива RAID 1

RAID 1 являет собой тип дискового массива, в котором каждый накопитель является точной копией предыдущего. Именно поэтому его еще называют «зеркалированием». То есть это не резервная копия данных, а избыточность томов на дисках. Когда производится запись информации – контроллер одновременно записывает ее на несколько дисков (а не на один как обычно). Отсюда сильное снижение скорости записи данных. Например, если запись архива размером 10 ГБ на обычный жесткий диск занимает 5 мин, то запись этого же файла на массив RAID 1, состоящий из трех дисков займет 15 мин соответственно (так как система запишет 30 ГБ данных (три раза по 10 ГБ)). В то же время, считывание информации будет происходить в три раза быстрее, так как информация считывается одновременно с трех дисков (как в случае с RAID 0). Принцип записи информации изображен на иллюстрации ниже.

Принцип записи информации массива RAID 1?

Главные недостатки массива RAID 1

Несмотря на высокий уровень сохранности данных массив RAID 1 обладает определенными недостатками. В первую очередь стоит сказать, что если вы хотите увеличить уровень надежности в массиве RAID 1 – вы можете использовать более двух дисков. Чем выше количество накопителей – тем выше надежность. Однако отсюда же вытекает первый недостаток RAID 1 – цена за Гигабайт памяти.

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

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

Многие программные контроллеры не поддерживают «горячую замену» вышедшего из строя накопителя. Соответственно, для того чтобы заменить поврежденный диск придется отключить питание. Это делает крайне неудобным использование массива RAID 1 в серверах, которые использует большое количество людей, так как отключение питания приведет к недоступности данных. Лучше всего в для этих целей использовать аппаратные контроллеры, которые могут обеспечить поддержку «горячей замены» дисков.

Однако аппаратные контроллеры дороже программных, что также отразится на общей стоимости массива RAID 1.

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

Причины выхода массива RAID 1 из строя

Причин, способных вывести RAID 1 из строя не так уж и много, однако они существуют. Первой и одной из наиболее значимых являются перепады электричества и внезапное отключение питания. Из-за перебоев с электричеством нередко выходит из строя контроллер, который отвечает за распределение данных.

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

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

В такой ситуации лучше извлечь данные с накопителей, создать массив заново и скопировать данные из восстановленной копии обратно. О том, как восстановить данные с массива RAID 1 читайте в последнем пункте этой статьи.

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

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

Что делать если RAID 1 не может активировать Spare Disk (запасной диск)?

Случаться это может по следующим причинам:

Как заменить вышедший из строя накопитель RAID 1 в Linux?

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

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

Итак, процедура замены поврежденного диска в RAID 1 выглядит следующим образом:

Шаг 1: Сделайте резервную копию всех важных данных, так как пользователи часто теряют информацию именно в процессе замены поврежденного диска. Если ваш RAID 1 массив находится в рабочем состоянии – вы можете просто скопировать нужные файлы в другое место. Если же ваш массив выдал ошибку и не запускается – восстановите данные с помощью – RS RAID Retrieve. Процесс восстановления информации детально расписан в последнем пункте этой статьи.

Шаг 2: Если вы используете программный контроллер – отметьте диск как поврежденный, а затем удалите его из массива. Для этого выполните в терминале одна за другой следующие команды:

Стоит отметить, что sdb2 это диск, который подключен к второму SATA порту. На всякий случай напомним, что в операционной системе Linux диски идентифицируются следующим образом:

  • sd – буквы, которые обозначают тип подключения SATA;
  • a – номер диска. Например, a – это первый диск, b – второй, c – третий и т.д.
  • 2 – это номер раздела на диске;

То есть sda2 это второй раздел на первом SATA диске.

Шаг 2: Желательно отключить питание даже если ваш контроллер поддерживает функцию hot spare (горячая замена диска). Это позволит безопасно работать с массивом и исключить вероятность коротких замыканий и т.д. Единственным вариантом, когда можно не отключать питание – это замена диска на сервере, которым пользуется большое количество людей. И даже в этой ситуации лучше либо перенести данные на другой сервер (если у вас такой есть), либо создать предупреждение о сервисных работах.

Шаг 3: Подключите новый диск к массиву и включите питание. Затем скопируйте таблицу разделов на новый накопитель при помощи утилиты sfdisk. Для этого выполните команду:

е /dev/sda — это источник, а /dev/sdb — новый диск, на который копируется таблица разделов.

Если в вашей системе sfdisk отсутствует – установить ее можно выполнив в терминале команду:

apt install sgdisk/sfdisk

Шаг 4: Теперь нужно дать команду утилите mdadm включить новый диск в массив, чтобы контроллер скопировал не него информацию и работал с ним как с частью массива. Если разделов несколько – эту операцию нужно проделать для каждого раздела:

После этого, начнется процесс перестройки вашего массива. Ни в коем случае не отключайте питание пока он не закончится. После того, как новый диск будет добавлен – вы снова сможете использовать ваш RAID 1 массив как и раньше.

Как заменить вышедший из строя накопитель RAID 1 в Windows?

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

Алгоритм замены диска выглядит следующим образом:

Шаг 1: Сделайте резервную копию всех важных файлов, чтобы не потерять информацию, в случае если что-то пойдет не так.

Шаг 2: Отключите питание, затем замените поврежденный накопитель на новый. После этого снова включите питание компьютера. Щелкните правой кнопкой мыши по «Пуск» и выберите «Управление дисками».

Шаг 3: В открывшемся окне «Управление дисками» появится предложение использовать новый диск. Нажмите «OK». После этого щелкните на нем правой кнопкой мыши и выберите «Преобразовать в динамический диск».

Шаг 4: Вы увидите окно преобразования дисков. В этом окне отметьте ваш диск галочкой и нажмите «ОК».

Шаг 5: Щелкните правой кнопкой мыши на вашем массиве и выберите «Удалить зеркало». Перед вами откроется окно удаления зеркала. Выберите отсутствующий диск (тот, который мы раньше изъяли), щелкните на нем правой кнопкой мыши и выберите «Изъять диск».

Шаг 6: Щелкните правой кнопкой мыши на диске который остался в массиве и выберите «Добавить зеркало». В открывшемся окне выберите новый диск и нажмите «Добавить зеркальный том».

После этого появится окно с предупреждением, что выбранные диски буду конвертированы в динамические. Нажмите «ОК», после чего ваш новый диск будет успешно добавлен к массиву RAID 1.

Как восстановить данные в случае выхода из строя массива RAID 1?

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

Для того, чтобы восстановить данные с массива RAID 1 следует:

Шаг 1: Скачайте и установите программу RS RAID Retrieve. Запустите приложение после установки. Перед вами откроется встроенный RAID конструктор. Нажмите Далее.

Восстановление данных с любых RAID массивов

Шаг 2: Выберите тип добавления RAID массива для сканирования. RS RAID Retrieve предлагает на выбор три варианта:

  • Автоматический режим – позволяет просто указать диски, из которых состоял массив, и программа автоматически определит их порядок, тип массива и остальные параметры;
  • Поиск по производителю – эту опцию следует выбрать, если вам известен производитель вашего RAID контроллера. Эта опция также автоматическая и не требует каких-либо знаний о структуре RAID массива. Наличие данных о производителе позволяют сократить время на построение массива, соответственно она быстрее предыдущей;
  • Создание вручную – эту опцию стоит использовать если вы знаете какой тип RAID массива вы используете. В этом случае вы можете указать все параметры, которые вам известны, а те, которых вы не знаете – программа определит автоматически.

После того, как выберите подходящий вариант – нажмите Далее.

Шаг 3: Выберите диски, из которых состоял RAID массив и нажмите Далее. После этого начнется процесс обнаружения конфигураций массива. После его завершения нажмите Готово.

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

Шаг 7: Укажите место куда будут записаны восстановленные файлы. Это может быть жесткий диск, ZIP-архив или FTP-сервер. Нажмите Далее.

Как видите, процесс восстановления данных с RAID 1 массива достаточно прост и не требует глубоких знаний ПК, соответственно RS RAID Retrieve является отличным приложением как для профессионалов, так и для начинающих пользователей.

Хочу рассказать поучительную историю, которая случилась со мной на днях. На одном из серверов в ЦОД вышел из строя диск в составе рейда mdadm. Ситуация типовая, с которой регулярно сталкиваюсь. Оставил заявку в техподдержку на замену диска с указанием диска, который надо поменять. В цоде заменили рабочий диск и оставили сбойный. Дальше история, как я решал возникшую проблему.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Цели статьи

  1. Рассказать поучительную историю о том, какие могут быть проблемы при аренде серверов в ЦОД.
  2. Показать на примере, как надо действовать при выходе из строя диска в рейде mdadm.
  3. Простыми словами объяснить, в чем разница между программным и аппаратным рейдом.

Введение

Когда первый раз сталкиваешься с рукожопством сотрудников техподдержки дата центра, впадаешь в ступор и думаешь, ну как так то? Сейчас я спокойно отношусь к таким ситуациям и действую исходя из самых худших ожиданий. На днях я столкнулся с ситуацией, когда мне заменили не тот диск в сервере с RAID1. Вместо сбойного диска вынули рабочий и заменили чистым. К счастью все закончилось хорошо, но обо всем по порядку.

Не скажу, что у меня прям большой опыт аренды серверов, но он есть. Я регулярно обслуживаю 10-15 серверов, расположенных в разных дата центрах, как российских, так и европейских. Первый негативный опыт я получил именно в Европе и был очень сильно удивлен и озадачен. Я, как и многие, был под влиянием либеральной пропаганды на тему того, что у нас все плохо, а вот Европа образец надежности, стабильности и сервиса. Как же я ошибался. Сейчас отдам предпочтение нашим дата центрам. По моему мнению и опыту, у нас тех поддержка и сервис в целом лучше, чем там, без привязки к стоимости. В Европе дешевле схожие услуги, так как там масштабы сервисов в разы больше.

Приведу несколько примеров косяков саппорта, с которыми сталкивался.

Было много всяких инцидентов помельче, нет смысла описывать. Хотя нет, один все же опишу. Устанавливал свой сервер в ЦОД. Решил пойти в маш зал и проконтролировать монтаж. Если есть такая возможность, крайне рекомендую ей воспользоваться. Местный рукожоп неправильно прикрепил салазки и сервер во время монтажа стал падать. Я его поймал, тем спас его и сервера других клиентов. В итоге помог с монтажом. Сам бы он просто не справился. Я не представляю, что было, если бы я не пошел в машзал. К чести руководства, я написал претензию, где подробно описал данный случай и попросил бесплатно месячную аренду. Мне ее предоставили. Советую всем так поступать. Зачастую, руководство может быть не в курсе того, что происходит в реальности. Надо давать обратную связь.

Уровень моего доверия к тех поддержке дата центров и хостингов вы примерно представляете :) Ну и вот случилось очередное ЧП. Подробнее остановлюсь на этой ситуации, так как она случилась вчера, свежи воспоминания.

Замена диска в рейде mdadm

Речь пойдет о дешевых дедиках от selectel. Я их много где использую и в целом готов рекомендовать. Это обычные десктопные системники за скромные деньги. Свое мнение об этих серверах, а так же сравнение с полноценными серверами сделаю в конце, в отдельном разделе.

На сервере была установлена система Debian из стандартного шаблона Selectel. Вот особенности дисковой подсистемы этих серверов и шаблона.

  • 2 ssd диска, объединенные в mdadm
  • /boot раздел на /dev/md0 размером 1G
  • корень / на /dev/md1 и поверх lvm на весь массив

В целом, хорошая и надежная разбивка, чему будет подтверждение дальше. На сервере был установлен proxmox, настроен мониторинг mdadm. Мониторинг дисков не сделал. В какой-то момент получил уведомление в zabbix, что mdadm развалился. Сервер при этом продолжал работать. Ситуация штатная. Пошел в консоль сервера, чтобы все проверить. Посмотрел состояние рейда.

Убедился, что один диск выпал из массива. В системном логе увидел следующее.

Замена диска в mdadm

Попробовал посмотреть информацию о выпавшем диске.

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

Я не стал разбираться, что там к чему с диском. Если вижу проблемы, сразу меняю. Предупредил заказчика, что с диском проблемы, нужно планировать замену. Так как железо десктопное, "сервер" надо выключать. Согласовали время после 22 часов. Я в это время уже сплю, поэтому написал тикет в тех поддержку, где указал время и серийный номер диска, который нужно было оставить. Я сделал на этом акцент, объяснил, что сбойный диск не отвечает, поэтому его серийник посмотреть не могу. Расписал все очень подробно, чтобы не оставить почвы для недопонимания или двойного толкования. Я в этом уже спец, но все равно не помогло.

Я спокойно согласился на эту операцию, потому что часто делаются бэкапы и они гарантированно рабочие. Настроен мониторинг бэкапов и делается регулярное полуручное восстановление из них. Договоренность была такая, что хостер после замены дожидается появления окна логина, а заказчик проверяет, что сайт работает. Все так и получилось - сервер загрузился, виртуалки поднялись, сайт заработал. На том завершили работы.

Утром я встал и увидел, что весь системный лог в ошибках диска, рабочего диска в системе нет, а есть один глючный и один новый. Сразу же запустил на всякий случай ребилд массива и он вроде как даже прошел без ошибок. Перезагрузка временно оживила сбойный диск. В принципе, на этом можно было бы остановиться, заменить таки сбойный диск и успокоиться. Но смысл в том, что этот сбойный диск почти сутки не был в работе и данные на нем старые. Это не устраивало. Потом пришлось бы как-то склеивать эти данные с данными из бэкапов. В случае с базой данных это не тривиальная процедура. Созвонился с заказчиком и решили откатываться на рабочий диск, который вытащили накануне ночью.

Я создал тикет и попросил вернуть рабочий диск на место. К счастью, он сохранился. К нему добавить еще один полностью чистый. Хостер оперативно все сделал и извинился. В завершении прислал скриншот экрана сервера.

You are in emergency mode

И самоустранился. Дальше решать проблему загрузки он предложил загрузившись в режиме rescue. Этот режим доступен через панель управления сервером в админке, даже если сервер не имеет ipmi консоли. Как я понял, по сети загружается какой-то live cd для восстановления. Я в нем загрузился, убедился, что данные на месте, но понять причину ошибки не смог. Может быть и смог бы, если бы дольше покопался, но это очень неудобно делать, не видя реальной консоли сервера. Я попросил подключить к серверу kvm over ip, чтобы я мог подключиться к консоли. Тех поддержка без лишних вопросов оперативно это сделала.

К слову, мне известны случаи, когда техподдержка selectel потом сама чинила загрузку и возвращала mdadm в рабочее состояние. Видел такие переписки в тикетах у своих клиентов до того, как они обращались ко мне. Но я не стал настаивать на таком решении проблемы, так как боялся, что будет хуже. К тому же это было утро воскресенья и специалистов, способных это сделать, могло просто не быть. Плюс, я не думаю, что они обладали бы большими компетенциями, чем я. Я бы за их зарплату не пошел работать в ЦОД.

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

You are in emergency mode

У меня много примеров того, как я восстанавливал загрузку сломавшихся linux дистрибутивов.

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

Дальше нужно ввести пароль root и вы окажетесь в системной консоли. Первым делом я проверил состояние массива mdadm.

Состояние массива md0, на котором располагается раздел /boot - inactive. Вот, собственно, и причина того, почему сервер не загружается. Судя по всему, когда был подключен сбойный диск, mdadm отключил массив, чтобы предотвратить повреждение данных. Не понятно, почему именно на разделе /boot, но по факту было именно это. Из-за того, что массив остановлен, загрузиться с него не получалось. Я остановил массив и запустил снова.

После этого массив вышел из режима inactive и стал доступен для дальнейшей работы с ним. Я перезагрузил сервер и убедился, что он нормально загружается. Сервер фактически был в рабочем состоянии, просто с развалившимся массивом mdadm, без одного диска.

Если вам это не поможет, предлагаю еще несколько советов, что можно предпринять, чтобы починить загрузку. Первым делом проверьте файл /etc/fstab и посмотрите, какие разделы и как там монтируются. Вот мой пример этого файла.

Вам нужно убедиться, что указанные lvm разделы /dev/mapper/vg0-root и /dev/mapper/vg0-swap_1 действительно существуют. Для этого используйте команду:

Подробно об этой команде, о работе с lvm и вообще с дисками я рассказываю в отдельной статье - настройка диска в debian. Если с lvm разделами все нормально, проверьте /boot. У меня он монтируется по uuid. Посмотреть список uuid всех разделов можно командой.

Как вы видите, у меня uuid раздела для загрузки полностью совпадает с тем, что указано в fstab. Если по какой-то причине uuid изменился (разобрали и собрали новый массив), отредактируйте fstab.

Все дальнейшие действия я делал уже по ssh. Скопировал таблицу разделов с рабочего диска sda на чистый sdb.

Проверил таблицы разделов и убедился, что они идентичные.

Копирование разделов с одного диска на другой

Скопировал раздел BIOS boot partition с рабочего диска на новый.

Потом добавил разделы диска sdb2 и sdb3 в рейд массив.

Дождался окончания ребилда и убедился, что он прошел. Проверил состояние массива.

cat /proc/mdstat

В завершении устанавливаем загрузчик на оба диска.

После этого я перезагрузился и убедился, что все работает нормально. По хорошему, теперь надо было бы поменять загрузочный диск с первого на второй и убедиться, что со второго тоже нормально грузится. Я не стал этого делать, и так простой и так был велик. Главное, чтобы массив был на месте, а починить загрузку, если что, дело техники.

Вот и все по замене диска в массиве mdadm. После доступа к консоли сервера, мне потребовалось минут 10, чтобы вернуть сервер в рабочее состояние.

В чем отличия программного и аппаратного рейда

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

  1. Рейд контроллер оповещает о том, что с диском проблемы и выводит его из работы. В случае с софтовым рейдом система может зависнуть в случае проблем с диском, прежде чем пометит его как проблемный и перестанет к нему обращаться.
  2. Я оставляю тикет в тех поддержку, где прошу заменить сбойный диск. Информацию о нем я посмотрю в панели управления рейд контроллером.
  3. Сотрудник тех поддержки видит сбойный диск, так как индикация на нем, скорее всего, будет мигать красной лампочкой. Это не гарантия того, что рукожоп все сделает правильно, но тем не менее, шансов, что он ошибется, меньше. Я сталкивался с ситуацией, когда и в этом случае диск меняли не тот.
  4. При появлении нового диска raid контроллер автоматически начинает ребил массива.

Если же у вас в сервере уже установлен запасной диск на случай выхода из строя диска в составе raid массива, то все еще проще:

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

И это все. В обоих случаях у вас вообще нет простоя. Вот принципиальная разница между mdadm и железным raid контроллером. Стоимость полноценного сервера с контроллером и постоянным ipmi доступом к консоли в среднем в 3 раза выше, чем у сервера на десткопном железе с софтовым рейдом при схожей производительности. Это все при условии, что вам достаточно одного процессора и 64G памяти. Это потолок для десктопных конфигураций. Дальше считайте сами, что вам выгоднее. Если возможен простой в несколько часов на замену диска или других комплектующих, то смело можно использовать десктопное железо. Mdadm обеспечивает сопоставимую гарантию сохранности данных в сравнении с железным контроллером. Вопрос лишь в простое и производительности. Ну и своевременные бэкапы добавляют уверенности в том, что вы переживете неполадки с железом.

При использовании железного рейда на hdd дисках, есть возможно получить очень значительный прирост скорости за счет кэша контроллера. Для ssd дисков я особо не замечал разницы. Но это все на глазок, никаких замеров и сравнений я не делал. Нужно еще понимать, что десктопное железо в целом менее надежное. К примеру, в том же селектеле на дешевых серверах я ловил перегрев или очень высокую температуру дисков. Прыгала в районе 55-65 градусов. Все, что ниже 60-ти, тех поддержка футболила, говоря, что это допустимая температура, судя по документации к дискам. Это так и есть, но мы же понимаем, что диск, постоянно работающий на 59 градусах с бОльшей долей вероятности выйдет из строя.

Вот еще пример разницы в железе. Если у вас в нормальном сервере выйдет из строя планка памяти, сервер просто пометит ее как сбойную и выведет из работы. Информацию об этом вы увидите в консоли управления - ilo, idrac и т.д. В десктопном железе у вас просто будет постоянно виснуть сервер и вам придется долго выяснять, в чем же проблема, так как доступа к железу у вас нет, чтобы проще было запланировать тестирование сервера. А если вы закажете это у тех поддержки, то есть ненулевая вероятность, что станет хуже - сервер уронят, перепутают провода подключения дисков и т.д. В общем, это всегда риск. Проще сразу съезжать с такой железки на другую.

Заключение

Надеюсь, моя статья была интересной. Для тех, кто никогда не работал с ЦОДами будет полезно узнать, чего можно от них ожидать. Я скучаю по временам, когда все сервера, которые я администрировал, были в серверной, куда никому не было доступа и куда я мог в любой момент попасть и проверить их. Сейчас все стало не так. И твои сервера уже не твои. Их может сломать, уронить, что-то перепутать сотрудник тех поддержки дата центра.

Сейчас большой тренд на переход в облака. Я смотрю на эти облака и не понимаю, как с ними можно нормально взаимодействовать. Заявленная производительность не гарантированная, нагрузка плавает в течении суток. Упасть может в любой момент и ты не будешь понимать вообще в чем проблема. Твои виртуалки могут быть по ошибке удалены и кроме извинений и компенсации в 3 копейки ты ничего не получить. Каждое обращение в ТП как лотерея. Думаешь, что сломают в этот раз. Если сервера железные, то когда пишу тикет на доступ к железу, я морально и технически всегда готов к тому, что этот сервер сейчас отключится и я больше не смогу к нему подключиться.

В целом, опыт работы с облаками у меня негативный. Несколько раз пробовал для сайтов и все время съезжал. Нет гарантированного времени отклика. А это сейчас фактор ранжирования. Для очень быстрого сайта остается только один вариант - свое железо, а дальше уже кому какое по карману. Зависит от надежности и допустимого времени простоя.

Я про облака заговорил, потому что тенденции к тому, что от железных серверов надо отказываться и все переносить в облака. С одной стороны удобно должно быть. Как минимум, не будет указанных выше в статье проблем. А с другой стороны добавляется куча других проблем. Я пока сижу на железяках разного качества и стоимости. А у вас как?

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