Добавить в корзинуПозвонить
Найти в Дзене

Windows — меняем NVMe диски динамического массива на лету

Снова большая задача на несколько дней. У нас имеется динамический зеркальный массив в Windows Server 2016, собранный из двух одинаковых NVMe дисков. Объём массива около 3 ТБ и используется под 1С. Естественно, места стало не хватать. Были закуплены два других NVMe диска на 6 ТБ. Нужно перенести динамический массив на новые диски. Проблема в том, что сервер, на котором всё это работает, поддерживает установку только двух NVMe дисков, все слоты заняты. Нам придётся по очереди заменить диски в массиве и расширить его. Вторая проблема состоит в том, что сервер нельзя отключать, и 1С нельзя останавливать. Всё как мы любим. Удалось договориться о возможной кратковременной остановке служб, не более 5 минут. Disk Management (Управление дисками), здесь можно посмотреть на наш массив. Диск D: находится на двух физических NVMe дисках: NVMe диск WD Ultrastar DC SN840 3.2TB — 0TS1876 Состояние массива Healthy. Забегая вперёд. Мне удалось без остановки сервисов заменить диски на двух таких серверах
Оглавление

Снова большая задача на несколько дней. У нас имеется динамический зеркальный массив в Windows Server 2016, собранный из двух одинаковых NVMe дисков. Объём массива около 3 ТБ и используется под 1С. Естественно, места стало не хватать. Были закуплены два других NVMe диска на 6 ТБ. Нужно перенести динамический массив на новые диски.

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

Вторая проблема состоит в том, что сервер нельзя отключать, и 1С нельзя останавливать. Всё как мы любим. Удалось договориться о возможной кратковременной остановке служб, не более 5 минут.

Disk Management (Управление дисками), здесь можно посмотреть на наш массив.

-2

Диск D: находится на двух физических NVMe дисках:

NVMe диск WD Ultrastar DC SN840 3.2TB — 0TS1876

Состояние массива Healthy.

Забегая вперёд. Мне удалось без остановки сервисов заменить диски на двух таких серверах, но есть нюанс, о котором будет рассказано далее. Шансы обойтись без остановки сервисов: 50/50, это связано с одной неприятной особенностью динамических массивов, которая мне непонятна, неприятна и просто вредна.

Диск D: свободен на 49%, но это только потому, что часть баз данных я смог перенести временно на соседний сервер.

Пришли новые диски:

Intel SSD 6.4 ТБ U.2 — SSDPF2KE064T1

-3

Подготовка к замене первого диска

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

-4

Нажимаем правой копкой на любой из дисков D:, не имеет значения на какой. Выбираем Break Mirrored Volume.

-5

Нас предупреждают, что после этого процесса данные на дисках перестанут быть идентичны. Yes.

-6

Наш динамический зеркальный массив перестал быть массивом и разбился на два отдельных динамических диска, один из них остался диском D:, а второй теперь стал E:.

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

В нашем случае нам без разницы какой из дисков остался D:. Сейчас это Disk 1, с ним продолжает работать база данных, его мы не трогаем.

-7

Диск E: нам не нужен.

-8

Нажимаем правой кнопкой на том E:, Delete Volume...

-9

Данные на диске E: будут удалены, но они нам и не нужны. Yes.

-10

На Disk 0 теперь неразмеченная область, этот физический диск мы будем менять первым.

Перед нами возникает вторая трудность, нам нужно узнать серийный номер того диска, который будем извлекать, а именно серийный номер Disk 0. К сожалению, стандартными средствами операционной системы я не смог узнать серийник, пришлось воспользоваться сторонним ПО.

-11

CrystalDiskInfo

-12

Нужный диск так и отмечен Disk 0, записываем серийный номер A07B8F5A.

-13

Windows Server 2016 поддерживает горячее извлечение дисков. В трее нажимаем соответствующую кнопку и даём команду на извлечение диска. Не перепутайте с диском D:, модель та же, но он подписан. Eject.

-14

Нам сообщают, что устройство может быть извлечено.

И вот тут снова какой-то косяк. Диск остался в режиме Online, а это нехорошо. Непонятно, почему диск не отключился, придётся поработать руками.
-15

Нажимаем правой кнопкой на Disk 0 и переводим его в Offline.

-16

Disk 0 в статусе Offline. Теперь можно извлекать диск.

Замена первого диска

Приезжаю в ЦОД с новым диском. Возникает вопрос, что вытаскивать?

-17

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

Почти во всех серверах и СХД есть механизм, позволяющий "подсветить диск". Где-то это реализовано в веб-интерфейсе для управления сервером (IMM, iLO, IPMI, и прочих BMC). Где-то есть возможность включить подсветку через команду CLI.

В последних серверах Supermicro в web-интерфейсе управления IPMI для управления NVMe дисками имеется отдельный раздел Server Health → Storage Monitoring. Во вкладке Physical View как раз можно посмотреть список имеющихся дисков и информацию о них: модель, производителя, серийный номер, температуру и пр. Дополнительно имеется возможность выполнить ряд операций с этими дисками. Мы просто находим нужный диск по серийному номеру и подсвечиваем его.

В моей модели сервера была проблема, диск не хотел подсвечиваться, решение в отдельной статье:

Supermicro — подсвечиваем NVMe диск

-18

Находим по серийному номеру нужный диск.

-19

И подсвечиваем, Blink.

Диск замигал, теперь мы знаем его местоположение.

В выпадающем списке Available Actions выбираем Eject, выделяем галкой нужный диск и нажимаем Apply. Но есть один нюанс, кнопка не активна, не нажимается, не работает. Проблема та же самая, что и с подсветкой, решаем её.

Supermicro — извлекаем NVMe диск

-20

Eject. Yes.

-21

Индикатор диска станет зелёным, можно извлекать.

🚥 Индикация дисков

🔵 solid on — диск установлен
🔵 blinking — I/O активность

🔴 solid on — сбой
🔴 blinking 1 Гц — перестроение
🔴 blinking 2+1 1 Гц — hot spare
🔴 blinking 1 на 5 сек — drive power on
🔴 blinking 4 Гц — идентификация 👈

🟢 solid on — можно извлечь

🟠 blinking 1 Гц — внимание, не извлекать

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

-22

Disk 0 пропал в системе.

-23

Ждём 5 минут, перекручиваем салазки на новый диск и вставляем его.

-24

Убеждаемся что диск отобразился в веб-интерфейсе IPMI. Если диска там нет и на вставленном диске продолжает гореть зелёный светодиод, то снова извлекаем диск и вставляем через пару минут. У меня такое случалось на одном из серверов.

-25

В оснастке управления дисками появляется новый Disk 0 уже побольше объёмом.

-26

Нажимаем на диск правой кнопкой и инициализируем его.

-27

Поскольку диск больше 2 ТБ, то выбираем GPT. OK.

-28

Диск инициализирован.

-29

Теперь нам нужно заново создать зеркальный динамический массив. Нажимаем правой кнопкой на диск D:, Add Mirror...

-30

Выбираем Disk 0. Add Mirror.

-31

Данная операция сконвертирует Disk 0 в динамический. Yes.

-32

Создаётся RAID1 зеркальный массив. Но данные, естественно, не синхронизированы. Запускается процедура синхронизации, побежали проценты. Процесс занимает некоторое время, достаточно продолжительное. Disk 0 помечен восклицательным знаком, поскольку данные на нём не совпадают с основным диском.

-33

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

Первый диск заменён, пол дела сделано.

Подготовка к замене второго диска

И снова нам нужно разобрать наш динамический массив.

-34

Нажимаем правой копкой на любой из дисков D:, не имеет значения на какой. Выбираем Break Mirrored Volume.

-35

Нас предупреждают, что после этого процесса данные на дисках перестанут быть идентичны. Yes.

-36

Наш динамический зеркальный массив перестал быть массивом и разбился на два отдельных динамических диска, один из них остался диском D:, а второй теперь стал E:. Но мне не повезло, диском D: стал тот диск, который я планировал извлечь.

-37

Заново собираю массив.

-38

Во второй раз ткнул правой кнопкой на другой диск, хотя это и не имеет значения. И теперь мне повезло, диск D: остался на уже заменённом диске.

Теперь все действия нужно повторить для Disk 1.

-39

Удаляем ненужный диск E:, извлекаем Disk 1. На этот раз диск сам ушёл в Offline.

Замена второго диска

Беру диск, еду в ЦОД.

-40

В вуб-интерфейсе IPMEI извлекаем диск, Eject. Нам уже не нужен серийный номер, так как диски уже не спутать.

-41

Вытаскиваю диск из сервера. Диск пропадает из системы. Все сервисы продолжают работать нормально.

-42

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

-43

Диск отобразился в системе.

-44

Инициализируем его.

-45

GPT. OK.

-46

Оба физических диска заменены. Дальше всё просто:

  1. Расширяем массив на весь Disk 0.
  2. Делаем зеркальный массив, добавляя Disk 1.

Windows — расширение динамического зеркального массива

-47

И мы с вами без простоя на лету заменили два NVMe диска на сервере и расширили массив.

P.S.

При замене NVMe дисков ни один пользователь 1С не пострадал.

Источник:

Windows — меняем NVMe диски динамического массива на лету | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.