Найти тему

Меняем размер логического сектора диска: 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.
-2

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

Drive Configuration Type: Unsupported for RAID Configuration.Logical / Physical Block Size: 520/4160

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

-3

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

-4

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

-5

Со временем появились диски с увеличенным размером физического сектора, чтобы они определялись старыми 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), в этом режиме контроллер не работает с массивами, а просто передаёт диски операционной системе.

-6

Enable HBA Mode.

-7

OK.

-8

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

Ubuntu Desktop

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

-9

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

-10

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

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

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

apt-get update

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

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

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

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

-12

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

Unsupported sector size 5200 512-byte logical blocks: (0 B/0 B)

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

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

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

lsscsi -g
-14

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

sg_scan -i
-15

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

sg_readcap /dev/sg1
-16

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

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

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

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

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

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

-18

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

-19

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

-20

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

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

sg_readcap /dev/sg1

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

-21

Проверка

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

-22

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

Источник:

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

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

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