Мы уже выполняли низкоуровневое форматирование с изменением размера логического сектора с помощью утилиты sg_format из пакета sg3-utils.
Меняли размер сектора с 520 байт на 512 байт:
Меняем размер логического сектора диска: 520, 524, 528, 512, 4k
А также меняли размер сектора с 4k байт на 512 байт:
Меняем размер логического сектора диска: с 4k на 512b
В первом случае мы работали с SSD, процесс был довольно быстрым. Во втором случае нам попался жёсткий диск HDD большого объёма, процесс занял несколько дней. Иногда нет возможности долго ждать, в этом случае может прийти на помощь быстрое низкоуровневое форматирование.
Сегодня у нас диск IBM HDD SAS 4Kn 7.2K 10TB модель WUS721010AL4200. Размер логического сектора 4096 байт. Будем менять его на 512 байт с помощью быстрого низкоуровневого форматирования.
В помощь берём сервер HPE Proliant DL120 Gen9 с контроллером Smart HBA H240. Если честно, то использовать HPE контроллеры для изменения размера сектора диска — не самая лучшая идея по одной простой причине: если в процессе низкоуровневого форматирования произойдёт сбой, то такой контроллер перестанет видеть диск. HPE RAID контроллеры можно использовать для низкоуровневого форматирования диска. Для этого диск должен был виден в операционной системе, поэтому нужно перевести контроллер в режим HBA (Host Bus Adapter), в этом режиме контроллер не работает с массивами, а просто передаёт диски операционной системе. Enable HBA Mode.
Режимы HBA/RAID в контроллерах HPE H240, H240ar и H241 Smart HBA
Цепляем на диск салазки.
И подключаем к серверу.
Включаем сервер и переходим в Smart Storage Administrator.
Диск виден как 4Kn SAS HDD.
Режим HBA
Переводим контроллер в режим HBA. Enable HBA Mode.
Перезагружаем сервер и снова запускаем Smart Storage Administrator. Убедимся что контроллер перешёл в режим HBA.
Всё в порядке, контроллер работает в режиме HBA и передает управление дисками в ОС.
Ubuntu Desktop
Перезагружаем сервер и загружаемся в Linux. Менять размер логического сектора будем в Ubuntu. Скачиваем инсталляционный дистрибутив Ubuntu Desktop 20.04.2 — ISO образ. Монтируем к серверу и загружаемся с него.
А вот и Ubuntu.
Для работы нам понадобится Интернет.
Настраиваем сеть и обновляем репозиторий.
apt-get update
Работа с дисками
Загрузим пару пакетов. Самый главный пакет для работы с дисками — sg3-utils.
http://sg.danny.cz/sg/sg3_utils.html
apt-get install sg3-utils
Имя диска можно узнать с помощью утилиты sg_scan из пакета sg3-utils:
sg_scan -i
Диск /dev/sg0.
Если бы мы просто меняли размер сектора низкоуровневым форматированием, то написали бы команду:
sg_format --format --size=512 /dev/sg0
Однако, этот вариант будет выполняться слишком долго. Ускорим процедуру:
sg_format --format --size=512 --ffmt=1 /dev/sg0
Обращаем внимание на атрибут ffmt. FFMT (fast format) — по умолчанию значение этого параметра равно нулю, что приводит к полной перезаписи всех блоков на диске. При большой ёмкости диска процесс форматирования с перезаписью всех блоков может занимать дни. При FFMT равном единице перезапись всех блоков не происходит. Процесс форматирования в этом случае сокращается до минут. При FFMT равном двум перезапись всех блоков тоже не происходит, операция считывания может привести к состоянию проверки состояния с ключом sense, установленным на "аппаратная ошибка", "ошибка среды" или "команда прервана". Двойка нас не интересует.
У каждого способа есть свои плюсы и минусы. При быстром низкоуровневом форматировании мы не проверяем сектора на бэд-блоки.
Форматирование уничтожит все данные на диске! Форматирование начинается не сразу, есть несколько секунд на то, чтобы нажать Ctrl+C для отмены операции.
FORMAT unit Complete.
Проверим что получилось. Находим диск.
sg_scan -i
Диск /dev/sg0. Проверим размер сектора.
sg_readcap /dev/sg0
Размер логического сектора диска 512 байт.
Форматируй с нами.
Форматируй как мы.
Форматируй лучше нас!