Перейти к основному содержанию

Ubuntu и Intel RST

Ubuntu

Провёл исследование по установке Ubuntu на программный RAID1 массив Intel RST, собранный на сервере Supermicro. Другие названия:

  • Intel RST (Intel Rapid Storage Technology)
  • Intel RSTe (Intel Rapid Enterprise)
  • Intel VROC (Virtual RAID on CPU)

Если на вашей материнской плате стоит чип Intel, поддерживающий технологию Intel RST (Rapid Storage Technology), Intel RSTe (Intel Rapid Enterprise) или Intel VROC (Virtual RAID on CPU), то вы можете собрать RAID массив из жёстких дисков SATA или PCIe и обеспечить отказоустойчивость данных. Если из строй выйдет один диск, то вы продолжаете работать.

Собрал я такой массив RAID1 на сервере Supermicro и проверил, какие последние версии Ubuntu на него ставятся без проблем.

Версии Ubuntu 22 и Ubuntu 23 установиться смогли, но загрузиться — нет. Загружается только initramfs. Это означает, что ядро не может загрузить корневой раздел. Загруженная в этом режиме файловая система не имеет ничего общего с обычной операционной системой, это содержимое образа initramfs, которое содержит только самые необходимые компоненты, используемые ядром для загрузки.

linux

Последняя версия Ubuntu Server или Ubuntu Desktop, которая нормально установилась на программный массив, это версия 20.04.6. А теперь ложка дёгтя. После установки обновлений и пакета mdadm сервер перезагрузился и снова попал в initramfs. RAID массивы видятся, но разделы не отображаются.

Поиски решения в Интернет не увенчались успехом. Что, никто не использует RST? Да ладно, у Supermicro программные массивы сплошь и рядом, на каждой материнке по два контроллера с поддержкой RAID массивов. Но решения не увидел.

Реанимируем.

Ubuntu 20

Продолжаем тестирование на Ubuntu Desktop 20.04.6. У нас всё загружено с нуля, ставим mdadm.

apt install mdadm

mdadm

Перезагружаемся, и...

mdadm

Система не грузится, диск не найден. Попадаем в initramfs.

cat /proc/mdstat
mdadm --detail /dev/md126

mdadm

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

cd /dev
ls

raid

Диск есть, а разделов нет. Давайте смонтируем RAID массив не через mdadm, а через dmraid. Останавливаем массивы mdadm.

mdadm --stop /dev/md126
mdadm --stop /dev/md127
cat /proc/mdstat

raid

Монтируем массивы через dmraid.

dmraid  -ay  -f  isw

raid

Проверяем.

cd /dev
ls

raid

Ага, у нас появились разделы dm-1 и md-2.

cd /dev/mapper
ls

raid

И в mapper тоже разделы видны. Пробуем продолжить загрузку: Ctrl + d.

raid

Великолепно. Система загрузилась. Скорее сносим mdadm.

apt remove mdadm
apt purge mdadm

Ubuntu 20 полечили. По результатам работы с Ubuntu 20.04.6 была написана статья:

Ubuntu 20 на Intel RST не грузится после установки mdadm

А всё-таки? Как насчёт Ubuntu 22 и 23?

Меня терзают смутные сомнения насчёт более старших версий... Пробуем снова ставить Ubuntu 22.

Установка Ubuntu Desktop 22.04.3 LTS на сервер Supermicro

Загружаем сервер и получаем в бубен:

raid

По умолчанию Ubuntu использует для определения программных массивов dmraid (Device-Mapper Software RAID support tool). Утилита dmraid обнаруживает, активирует, деактивирует и показывает свойства программных RAID массивов. Поддерживаются массивы:

dmraid -l
asr     : Adaptec HostRAID ASR (0,1,10)
ddf1    : SNIA DDF1 (0,1,4,5,linear)
hpt37x  : Highpoint HPT37X (S,0,1,10,01)
hpt45x  : Highpoint HPT45X (S,0,1,10)
isw     : Intel Software RAID (0,1,5,01)
jmicron : JMicron ATARAID (S,0,1)
lsi     : LSI Logic MegaRAID (0,1,10)
nvidia  : NVidia RAID (S,0,1,10,5)
pdc     : Promise FastTrack (S,0,1,10)
sil     : Silicon Image(tm) Medley(tm) (0,1,10)
via     : VIA Software RAID (S,0,1,10)
dos     : DOS partitions on SW RAIDs

В нашем случае используется isw: Intel Software RAID (0,1,5,01).

Если заглянуть в папку /dev, то можно увидеть, что массив собрался, у нас имеется устройство dm-0.

raid

А вот никаких разделов не найдено. Не видишь разделы? А они есть. Давайте просто вручную добавим разделы. Смотрим в /dev/mapper.

ls /dev/mapper

У нас имеется массив isw_dgdiggbfff_SYSTEM. Как раз при создании массива я указывал ему имя "SYSTEM". Добавляем все разделы массива.

kpartx -a /dev/mapper/isw_dgdiggbfff_SYSTEM

kpartx — инструмент на основе partx util-linux, который создаёт карту устройств (device map) для разделов блочного устройства.

Снова смотрим в /dev/mapper.

ls /dev/mapper

И у нас добавились два раздела isw_dgdiggbfff_SYSTEM1 и isw_dgdiggbfff_SYSTEM2.

raid

Пробуем продолжить загрузку: Ctrl + d. Операционная система загрузилась нормально.

Теперь нам нужно автоматизировать этот процесс. Переходим в директорию, работаем под рутом.

cd /etc/initramfs-tools/scripts/local-top

raid

Создаём свой скрипт.

touch forceraid

Содержимое скрипта:

#!/bin/sh
PREREQS=""
prereqs()
{
    echo $PREREQS
}
case $1 in
# get pre-requisites
prereqs)
    prereqs
    exit 0
    ;;
esac
/sbin/kpartx -a /dev/mapper/isw_dgdiggbfff_SYSTEM

raid

Дадим право на исполнение.

chmod +x ./forceraid

Собираем initramfs.

update-initramfs -u -k all

raid

Перезагружаемся и радуемся.

Я так понимаю, Ubuntu 23 лечится таким же образом. Расходимся.

Теги

 

Похожие материалы

Ubuntu 20 на Intel RST не грузится после установки mdadm

Поймал очень интересный и опасный баг. Если у вас имеется операционная система Ubuntu Desktop 20.04.6, которая установлена на программный массив Intel RST, и вы установили утилиту mdadm, то ОС после перезагрузки не может распознать системный диск.

Теги