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

Меняем размер логического сектора диска: 520, 524, 528, 512, 4k

Пришли SAS диски с неверным размером логического сектора в 520 байт. Диски заказывали для сервера HPE Proliant DL360 Gen9 с RAID контроллером Smart Array P440ar.

При установке такого диска в сервер получаем ошибку (В Smart Storage Administrator):

This physical drive does not support RAID and is not exposed to OS. It cannot be used for configuration on this controller.

hpe

Сам диск в списке отображается, его данные определяются. Однако мы видим:

Drive Configuration Type: Unsupported for RAID Configuration.

Logical / Physical Block Size: 520/4160

Я уже встречал подобный размер логического сектора в некоторых хранилищах. Лишние байты используются для дополнительного контроля целостности данных. Размер физического блока 4160 байт. Т.е. один физический блок разбит на восемь логических секторов по 520 байт.

hpe

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

hpe

А какой должен быть размер логического сектора, чтобы RAID контроллер смог с ним работать? Посмотрю на соседнем сервере информацию о каком-нибудь диске. Под руки попался HDD диск, он прекрасно работает в RAID массиве. Размер логического сектора 512 байт. Физического, кстати, тоже.

hpe

Со временем появились диски с увеличенным размером физического сектора, чтобы они определялись старыми RAID контроллерами, диск умеет эмулировать размер логического сектора и может отображаться , например, как 512/4096 или 512e/4096. Это так называемый Advanced Format — новый формат разметки секторов. Вместо традиционного сектора размером 512 байт используется 4096 байт. Для решения проблем с совместимостью был введён дополнительный стандарт 512E, который обозначает диски с физическим размером сектора 4096 байт, но при этом эмулирующие обычный размер сектора в 512 байт.

Обычные современные контроллеры поддерживают три формата разметки:

Формат Размер логического сектора Размер физического сектора
512N 512 байт 512 байт
512E 512 байт 4096 байт (4КиБ)
4KN 4096 байт (4КиБ) 4096 байт (4КиБ)

Я точно знаю что RAID контроллер Smart Array P440ar поддерживает форматы 512N и 512E. Не уверен, что он поддерживает 4KN, но это сейчас не важно. Для того чтобы наш диск заработал, нужно изменить размер логического сектора с 520 байт на 512 байт. Это возможно.

Режим HBA

Для начала нужно сделать так, чтобы диск был виден в операционной системе. Для этого переводим контроллер в режим HBA (Host Bus Adapter), в этом режиме контроллер не работает с массивами, а просто передаёт диски операционной системе.

hpe

Enable HBA Mode.

hpe

OK.

hpe

Контроллер перейдёт в режим HBA после перезагрузки. Finish.

Ubuntu Desktop

Менять размер логического сектора будем в Ubuntu. Скачиваем инсталляционный дистрибутив Ubuntu Desktop 20.04.2 — ISO образ. Монтируем к серверу и загружаемся с него.

hpe

Работаю удалённо, канал медленный, процесс длительный. А вот и Ubuntu.

hpe

Для работы нам понадобится Интернет, загрузим пару пакетов. Самый главный пакет для работы с дисками — sg3-utils.

http://sg.danny.cz/sg/sg3_utils.html

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

apt-get update

Работа с дисками

Давайте посмотрим, что у нас с дисками.

dmesg | grep -E "(mpt|scsi|sd)" | less

hpe

Я специально оставил в сервере только один диск, чтобы уменьшить количество информации.

hpe

Операционная система видит наш диск, но ругается:

Unsupported sector size 520

0 512-byte logical blocks: (0 B/0 B)

Для форматирования диска нужно узнать его имя, можно и в dmesg выловить, но проще воспользоваться вспомогательными пакетами, установим их.

apt-get install lsscsi
apt-get install sg3-utils

hpe

Узнаем имя диска с помощью lsscsi:

lsscsi -g

hpe

Имя нашего диска /dev/sg1. Имя также можно узнать с помощью утилиты sg_scan из пакета sg3-utils:

sg_scan -i

hpe

Проверить размер логического сектора:

sg_readcap /dev/sg1

hpe

Размер логического блока указанного диска /dev/sg1 520 байт, имя определили верно.

Приступаем к низкоуровневому форматированию:

sg_format --format --size=512 /dev/sg1

Не забываем указать новый размер логического сектора 512 байт.

hpe

Форматирование уничтожит все данные на диске!

Форматирование начинается не сразу, есть несколько секунд на то, чтобы нажать Ctrl+C для отмены операции.

hpe

Если ничего не нажимать, то форматирование начнётся.

hpe

Процесс долгий, мой SSD диск на 960 Гб форматировался около 20 минут.

hpe

FORMAT UNIT Complete. Форматирование завершено.

Посмотрим каким стал размер логического сектора:

sg_readcap /dev/sg1

512 байт, как и планировали.

hpe

Проверка

Перезагружаем сервер и входим в Smart Storage Administrator. 512e / 4096 Bytes. Диск прекрасно работает. При переключении контроллера в режим RAID диск может использоваться в RAID массивах.

hpe

Мы с вами изменили размер логического сектора диска с 520 байт на 512 байт.

P.S.

На видео к статье я прошиваю оставшиеся три диска точно таким же способом.

P.P.S

Если sg_format выдаёт ошибку вида:

Fixed format, current; Sense key: Illegal Request
Additional sense: Parameter list length error
Sense Key Specific: Error in Data parameters: byte 0
MODE SELECT command: Illegal request sense key, apart from Invalid opcode

то можно посмотреть в сторону атрибута -6 или --six:

--six|-6 use 6 byte MODE SENSE/SELECT to probe disk
(def: use 10 byte MODE SENSE/SELECT)

Например:

sg_format --format --size=512 --six /dev/sg1

Ссылки

HPE — сбой во время низкоуровневого форматирования диска

Теги

Цены

 

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

HPE ProLiant DL360 Gen10 — прошивка BIOS через iLO: U32 v2.10

С новым сервером HPE ProLiant DL360 Gen10 случилась беда. Неожиданно сервер стал перезагружаться несколько раз в сутки. SPP установлен последний. Поддержка HPE подсказала, что для данной модели сервера есть более новая версия BIOS, которая не входит в официальный Service Pack. Будем обновлять BIOS.

Теги