Как узнать размер сектора жесткого диска linux
Оригинал: How To Find Hard Disk Drive Details In Linux
Автор: SK
Дата публикации: 11 мая 2020 г.
Перевод: В.Костромин
Дата перевода: 14 мая 2020 г.
В этой статье перечислены различные методы поиска сведений о жестких дисках в операционной системе Linux. Используя приведенные ниже методы, вы можете определить марку жесткого диска, тип жесткого диска, его размер, версию прошивки и другие параметры оборудования. Сначала мы рассмотрим, как определить данные жесткого диска с помощью утилиты командной строки hdparm.
4.1. Определение параметров жесткого диска в Linux с помощью Smartctl
Чтобы получить полную информацию о жестком диске в вашей Linux-системе, запустите следующую команду:
Пример вывода:
Подробности опять же ищите на странице руководства man.
Прочее ПО
-
. поддерживает диски Advanced Format (512E и 4KN) начиная с версии 2012 revision 1798 Service Pack 2. Более ранние выпуски могут работать с дисками 512E, но Symantec утверждает, что подобное сочетание не поддерживается официально. не поддерживает диски 4KN.
1.2. Определение параметров жесткого диска в Linux с помощью Hdparm
Чтобы отобразить подробную информацию о жестком диске, просто запустите hdparm от имени root-а или используя sudo, как показано ниже:
Здесь sda - это мой жесткий диск. Замените sda на указание вашего жесткого диска. В примере я использовал утилиту “less” для того, чтобы ограничить количество выводимой на экран информации. Чтобы увидеть весь объем этой информации, используйте клавиши ENTER или клавиши UP/DOWN. Если хотите завершить вывод, нажмите q.
Пример вывода этой команды в системе с Ubuntu:
Как вы можете видеть, hdparm отображает номер модели жесткого диска, серийный номер, версию прошивки, за которой следует конфигурация жесткого диска (количество цилиндров, головок, секторов), настройки DMA, список включенных функций, параметры безопасности и т.д. Вы видите, что в данном случае активны (задействованы) возможности, помеченные звездочкой .
Подобным образом вы можете получить информацию о других устройствах.
Если команда hdparm запускается без параметров, предполагается следующий их набор -acdgkmur. Посмотрите страницу руководства man, чтобы узнать, для чего служит каждая из этих опций.
Другие детали ищите в руководстве man.
Что такое Advanced Format
Увеличение размера сектора в 8 раз связано с необходимостью повышения эффективности размещения данных на современных дисках. Накладные расходы, связанные с 512-байтной разметкой, начинают мешать дальнейшему увеличению ёмкости HDD. Помимо служебных полей в каждом 512-байтном секторе присутствует поле с кодом коррекции ошибок (ECC) длиной в 50 байт. В 4096-байтном секторе длина ECC-поля составляет 100 байт. Общее эффективность хранения данных удалось улучшить примерно на 10%.
Естественно, поддержка нестандартных секторов требуется со стороны дисковых контроллеров и операционных систем. Для решения проблем с совместимостью был ввёден дополнительный стандарт 512E, который обозначает диски с физическим размером сектора 4096 байт, но при этом эмулирующие обычный размер сектора в 512 байт. Advanced Format диски без эмуляции обозначаются 4KN. Таким образом, сейчас существует три варианта разметки:
Формат | Логический размер сектора | Физический размер сектора |
| 512 байт | 512 байт |
| 512 байт | 4096 байт (4КиБ) |
| 4096 байт (4КиБ) | 4096 байт (4КиБ) |
3.1. Инсталляция inxi в Linux
Inxi также представлена по умолчанию в репозиториях большинства Linux-дистрибутивов.
В Arch Linux она доступна в AUR. Вы можете установить ее с помощью любых вспомогательных программ AUR, например, Yay.
В Debian, Ubuntu:
В CentOS и RHEL:
Задействуйте репозиторий [EPEL], используя следующую команду:
3. inxi
Inxi - еще один полнофункциональный инструмент командной строки для получения системной информации. Она показывает информацию о системном оборудовании, процессоре, драйверах, Xorg, рабочем столе, ядре, версии GCC, процессах, использовании оперативной памяти и множество других полезных сведений. Идет ли речь о жестком диске или CPU, материнской плате или полной детализации вашей системы, inxi предоставит вам нужные данные в течение нескольких секунд.
Итоги
Для того чтобы получить сведения о дисках в Linux можно применить десятки различных инструментов. Собственно говоря, нечто подобное справедливо и для решения многих других задач. Если вам интересны подробности о том, что именно выводит htop (похожие данные формируют, кроме того, top и atop ) — взгляните на этот материал.
Казалось бы, что про диски Advanced Format за последние 4 года успели узнать все. Публикаций действительно много, но настало время рассмотреть все технические подробности и подводные камни в одной большой статье. Речь пойдёт об использовании AF-дисков в серверах, и я заметил, что для большинства администраторов даже в крупных компаниях знание предмета в большинстве случаев сводится к «это как-то связано с современными дисками, но у меня всё работает».
5. GNOME Disks
Disks или Gnome-disk-utility - это программа с графическим интерфейсом для просмотра, изменения и настройки доступных устройств хранения и носителей в системе Linux. Если вас не устраивает способ использования командной строки, вы можете использовать GNOME Disks для создания и восстановления образов дисков, для создания разделов, для форматирования дисков, проверки скорости дисков, тестирования дисков, проверки состояния и т.д. GNOME Disks предустановлен во всех дистрибутивах Linux, которые имеет рабочую среду GNOME.
5.1. Определение параметров жесткого диска в Linux с помощью GNOME Disks
Запустите Disks либо через меню, либо из панели. Будет выведена информация о всех доступных дисках и носителях в вашей Linux-системе.
Надеюсь, что эта статья оказалась вам полезной.
Вы можете найти на нашем сайте другие статьи о программах для получения информации о вашем оборудовании:
сабжо. Хочу узнать где зарыта собака и сделать разметку разделов так, что бы битые сектора остались за пределами разметки.
badblocks - (man 8 badblocks)
mkfs - ключ -с для (-t ext2/ext3/ext4)
Внезапно запускаешь под виндой Victoria режим DMA, тест типа Verify, включить Remap. Фигачишь весь жёсткий диск, охлаждая его обязательно. Все битые сектора заремапятся на уровне харда и выпадут из списка доступных, будешь беззаботен и радостен. Ни под виртальной машиной, ни под Вайном не заработает. Увы, такой штуки в линуксе еще не придумали.
0. Обеспечь винчестеру хорошее охлаждение (отодвинь от других, вентилятор поставь и т. д.)
1. Установи smartmontools
2. smartctl --test=long /dev/твой_битый_диск
3. Ждёшь некоторое время (какое smartctl сказал)
4. smartctl --all /dev/твой_битый_диск
5. Смотришь, что вывел SMART. Ищи слова «PASSED» или «FAILED» (если FAILED - лучше заменяй диск) и смотри пункт Reallocated_Sectors_Count (сколько секторов заменены на другие с резервных дорожек самим винтом)
6. dd if=/dev/zero of=/dev/твой_битый_диск
Зануление - это некая разновидность «битья в бубен», от которого может активизироваться замена битых секторов резервными.
7. smartctl --test=long /dev/твой_битый_диск
8. Ждёшь некоторое время (какое smartctl сказал)
9. smartctl --all /dev/твой_битый_диск
10. Смотришь, что вывел SMART. Ищи слова «PASSED» или «FAILED» (если FAILED - лучше заменяй диск) и смотри пункт Reallocated_Sectors_Count (сколько секторов заменены на другие с резервных дорожек самим винтом) - количество может увеличиться.
11. badblocks -v -s /dev/твой_битый_диск > файл_список_битых_секторов
12. fdisk -l /dev/твой_битый_диск - смотришь геометрию
13. По номерам блоков в файле_списке_битых_секторов вычисляешь номера цилиндров (делением на количество секторов и количество головок)
14. fdisk'ом размечаешь диск так, чтобы битые цилиндры оказались в неразмеченной области.
15. badblocks -s -v -w /dev/твой_битый_диск1 >список_битых_секторов_на_1_разделе
badblocks -s -v -w /dev/твой_битый_диск2 > список_битых_секторов_на_1_разделе
Проверяешь разделы. Если много битых секторов - повтори разбиение fdisk'ом
16. smartctl --test=long /dev/твой_битый_диск
17. Ждёшь некоторое время (какое smartctl сказал)
18. smartctl --all /dev/твой_битый_диск
19. Смотришь, что вывел SMART. Ищи слова «PASSED» или «FAILED» (если FAILED - лучше заменяй диск) и смотри пункт Reallocated_Sectors_Count (сколько секторов заменены на другие с резервных дорожек самим винтом. Сильно ли увеличилось ли количество заменённых секторов? Если да, то винт разваливается на ходу и использовать его опасно.
Все битые сектора заремапятся на уровне харда и выпадут из списка доступных,
Вообще-то это не Victoria делает, а сам жёсткий диск. При попытке записи на битый сектор контроллер заменит его на один из резервных. Тот же эффет должен быть в линуксе от
Командная строка
Если вы истинный линуксоид, самый легкий и быстрый способ – использовать команду «df» в командной строке. Просто напечатать:
в терминале, и он покажет вам загрузку жесткого диска в процентах
Как видно из представленного выше скриншота, способ может служить лишь в качестве быстрого просмотра доступного места на диске и определенно не является самым удобным для проведения анализа жесткого диска.
Baobab
Большинство линукс-дистрибутивов с Gnome(в частности Убунту), используют Baobab в качестве дефолтного приложения для просмотра диска.Это замечательное приложение, способное до последней папки разделить и проанализировать структуру хранения данных на жестком диске. Просто укажите папки необходимые для сканирования, и в результате получите круговую диаграмму, отражающую количество занимаемого места каждым файлом.
KDirStat и GdMap
Если вы использовали WinDirStat в Windows, то согласитесь, что это очень удобное приложение, позволяющее анализировать и оптимизировать ваше дисковое пространство. Однако мало людей знают, что WinDirStat это на самом деле клон KDirStat. KDirStat обладает той же функциональностью что и WinDirStat (или может быть наоборот), за исключением того, что он предназначен для использования в Linux. Несмотря на то, что KDirStat разрабатывался для KDE, он также совместим с любым оконным менеджером X11.
KDirStat отображает ваши папки/файлы в виде прямоугольников. Чем больше размер файла, тем больше прямоугольник. Это позволяет вам быстро просмотреть файловую систему, и легко определить какая папка/файл занимают много места на жестком диске.
Gd Map это эквивалент KDirStat для Gnome, кроме того что он не отображает древовидную структуру папок, и не позволяет очищать жесткий диск.
Filelight
Подобно Baobab, Filelight, создает интерактивную карту концентрических, сегментированных колец, помогающих визуализировать использование диска на вашем компьютере.Вы легко можете приблизить нужные папки, путем клика на соответствующем сегменте колец.
Philesight
Philesight это реализация Filelight в качестве веб-приложения, может быть запущена на удаленном сервере, не имеющим графического интерфейса. Philesight использует командную строку для генерации PNG-файлов в браузере и включает CGI-скрипты для навигации по файловой системе. Одна из ее особенностей, красочная радуга концентрических колец, что делает ее весьма приятной на вид.
xdiskusage
xdiskusage маленькая программка, отображающая файловую систему иерархически, слева направо, прямоугольными фигурами, с размерами, соответствующими размеру файлов. Если вы сканируете домашнюю папку, слева будет находится прямоугольник, отображающий полностью папку home, а справа все файлы, находящиеся внутри нее.
Вы легко можете приближать/удалять, нужные папки, по двойному щелчку на соответствующем прямоугольнике.
Если, работая в Linux, нужно быстро взглянуть на сведения о работающих процессах — можно воспользоваться командой top , или — что немного лучше — командой htop . А как быть, если надо получить данные о состоянии дисковой подсистемы? Решить эту задачу помогут специализированные инструменты, некоторые из которых распространены далеко не так широко, как top .
Вывод сведений об открытых файлах с помощью lsof
Если нужно узнать о том, какие именно файлы открыты в системе, сделать это можно с помощью команды lsof . Она выводит подробную информацию, а в работающих системах обычно открыто очень много файлов. Поэтому lsof обычно используют, указывая имя файла, или комбинируя этот приём с grep . Это позволяет узнать сведения только о том, что нужно.
При использовании lsof нужно помнить о том, что шаблоны тут, по умолчанию, не работают. Поэтому следующая команда выведет лишь сведения о директории /home/alw . А вот, например, сведения о процессах, которые открыли какие-нибудь файлы в этой директории, такая команда не выведет.
Для того чтобы это изменить, можно запустить lsof с ключом -d или -D . Ключ, представленный буквой в нижнем регистре, приводит к поиску директорий и файлов на верхнем уровне. Ключ -D выполняет рекурсивный поиск. Эта команда поддерживает и много других опций, которые можно применять, например, для поиска файлов, открытых пользователем с заданным ID, или для поиска по заданному имени команды.
Контроллеры
- Диски 4KN и 512N/512E смешивать в одном массиве нельзя.
- У контроллеров Adaptec и LSI метаданные размещаются в конце диска, пользовательское пространство доступно с LBA0. Это означает, что проблем с выравниванием для 512E дисков не будет.
- Массив из 4KN дисков так же будет иметь физический/логический размер сектора 4КиБ, т.е. для загрузки с них нужны GPT и UEFI.
- Не забывайте вместе с прошивкой обновлять утилиты управления и драйверы.
- Как будет презентоваться LUN, созданный на 512E дисках — 512N или 512E? Из того, что удалось проверить: контроллеры LSI 9260, Adaptec 6-й серии, СХД Infortrend ESDS сообщают 512N (логический/физический блоки 512 байт), т.е. проблема с синхронной записью остаётся. Обязательно используйте write-back кэш (естественно, с защитой) и UPS. Причём не исключено, что при смене прошивки СХД и контроллер могут внезапно повести себя «правильно», и LUN'ы превратятся в 512E со всеми вытекающими последствиями для совместимости.
Adaptec by PMC
- SAS HBA серий 5 и 6: поддерживают 512E, не поддерживают 4KN
- SAS HBA серий 6H и 7H: поддерживают 512E, 4KN — начиная с прошивки 10467.
- RAID контроллеры серий 7 и 8: поддерживают 512E, 4KN — начиная с прошивки 30862.
LSI/Avago
Это свойство как раз и отвечает за презентуемые хосту размеры блоков:
Default (0): при наличии в томе дисков 512E он презентуется как 512E. Если все диски — 512N, тогда том презентуется как 512N
Disabled (1): Том всегда презентуется как 512N несмотря на наличие дисков 512E
Forced (2): Том всегда презентуется как 512E даже при отсутствии дисков 512E
Emulation Type был портирован и на SAS2 контроллеры (LSI 2108/2208), но без значения Forced (2).
Программный RAID в чипсетах Intel (RST/RSTe)
4KN не поддерживается совсем, Intel RST на дисках 512E требует свежих драйверов.
4. Smartctl
Smartclt - это утилита командной строки, предназначенная для управления и мониторинга за SMART-дисками. Она основана на технологии самоконтроля, анализа и отчетности Self-Monitoring, Analysis and Reporting Technology (кратко SMART), встроенной в большинство жестких дисков ATA / SATA, SCSI / SAS и твердотельных накопителей. Команда Smartclt является частью пакета smartmontools, который предустановлен в большинстве версий Linux.
Дополнительный инструмент: atop
Одной из замен команды top является atop . Хотя эта команда и не нацелена исключительно на мониторинг дисковых операций, она даёт сведения о том, как процессы пользуются дисками, и, кроме того, предоставляет некоторые сводные сведения. Обычно после запуска atop в верхней части формируемого ей вывода имеется строка DSK , в которой присутствуют сведения о диске. Эти данные, по мере приближения уровня использования диска к 100%, выделяются красным цветом. Данные, выводимые в нижней части, похожи на те, что даёт команда top .
Работа с atop
Для сортировки процессов по уровню использования дисков можно воспользоваться клавишей D . Это — полезный инструмент.
Совместимость
Утилита iotop
Утилита iotop очень сильно похожа на top . Она выводит сведения об общем и текущем количестве операций обращения к диску для файловой системы. Кроме того, она сообщает о том, что именно интенсивнее всего нагружает диск. Экран iotop , на первый взгляд, переполнен информацией.
Работа с iotop
Вот совет по работе с этой утилитой. Если взглянуть на нижнюю часть экрана — там можно найти некоторые команды, вызываемые нажатиями на клавиши клавиатуры. Например, клавиша O скрывает (или отображает) все неактивные процессы. Это позволяет немного улучшить внешний вид сведений, выводимых iotop .
Сведения об использовании дисковой подсистемы активными процессами
Того же эффекта можно добиться, запустив iotop с ключом -o . Обратите внимание на то, что другие клавиатурные команды позволяют, например, выводить сведения о потоках, а не о процессах, менять режим вывода данных, задавать классы и приоритеты ввода-вывода процессов ( ionice ).
2.1. Установка lshw in Linux
lshw включена по умолчанию в состав некоторых дистрибутивов Linux, например, Ubuntu. Если вы ее не находите в составе дистрибутива, установите lshw в вашу Linux-систему, используя менеджер пакетов по умолчанию, как показано ниже.
В Arch Linux и его вариантах, например, в Manjaro Linux, выполните:
В Debian, Ubuntu, Linux Mint:
В Fedora, CentOS, RHEL:
Утилита duf
Вы, вероятно, не найдёте в своей системе утилиту duf . Если это так — можете установить её с GitHub. Те же результаты, правда, можно получить, воспользовавшись df и ещё некоторыми командами, но преимущество duf заключается в том, что эта программа представляет данные в удобном для просмотра виде.
Работа с duf
При запуске этой утилиты можно воспользоваться опциями командной строки, которые позволяют скрывать устройства, задавать ширину таблиц, выводимых на экране, по-разному сортировать выводимые данные. Ещё можно указать максимальную ширину таблиц, генерируемых программой. Подробности о работе с duf можно узнать, запустив утилиту с ключом --help .
Сервисы Microsoft
Hyper-V
Несмотря на то, что диски 512E поддерживаются в Windows Server 2008 и 2008 R2 (см. в таблице требования по установленным KB), в Hyper-V появляется проблема: формат файлов виртуальных дисков VHD использует 512-байтные структуры для динамических («тонких») и дифференциальных VHD, что, естественно приводит к регулярным read-modify-write. Ситуация усугубляется тем, что для гостевой ОС виртуальный диск выглядит как имеющий физические сектора 512 байт. Используйте фиксированные VHD, но по-возможности не используйте диски 512E для размещения VHD-файлов.
В Windows Server 2012 появился формат VHDX, который не имеет вышеописанных проблем (его можно создать в любом виде — 512N/512E/4KN).
Exchange Server
- Все диски, используемые в группе обеспечения доступности (Database Availability Group, DAG) Exchange для хранения баз и логов, должны использовать одинаковый физический размер сектора.
- Диски 4KN не поддерживаются
- Диски 512E поддерживаются начиная с Exchange 2010 Service Pack 2
SQL Server
Ситуация та же, что и для Exchange Server — в отказоустойчивых конфигурациях для баз и логов на всех узлах должы использоваться диски с одинаковым физическим размером сектора.
При использовании Storage Spaces возникает интересная ситуация: презентуемый размер физического сектора оказывается равным 4КиБ вне зависимости от того, из каких дисков собран Storage Spaces (том Storage Spaces можно создать из разных дисков — 512N и 512E, смешивать с 4KN, естественно, нельзя, кроме случаев использования tiering'а с SSD). Формат VHDX (виртуальный диск) по умолчанию создаётся как 512E. В этом можно убедиться, запустив fsutil fsinfo ntfsinfo :
При использовании VHDX на томе Storage Spaces (или аппаратном RAID), состоящем из 4KN дисков, сам VHDX тоже желательно сделать 4KN:
Безопасно ли это для SQL и других приложений, использующих синхронную запись? Ответ — да, так как большая гранулярность хранения не нарушает целостности данных, на производительность это тоже не влияет, так как 4096 делится на 512.
Сервисы, использующие ESENT
Не совсем актуальная проблема в Windows Server 2008. Сервисы, использующие в работе Extensible Storage Engine API (AD, WINS, DHCP) могут упасть при изменении размера физического сектора (например, при миграции с 512N-диска на 512E). Подробное описание и хотфикс смотрите тут.
1. Hdparm
Hdparm - это программа командной строки для получения или изменения аппаратных параметров для устройств PATA, SATA, SAS и SSD. Она рассматривает любое устройство как устройство хранения данных, подключенное к интерфейсам IDE, SATA, SAS, поэтому мы даже можем получать информацию о дисках CD / DVD. Используя утилиту hdparm, мы можем настроить жесткий диск или DVD-привод, узнать скорость жесткого диска или твердотельного накопителя, снизить уровень шума путем активации акустического режима, включить или выключить энергосберегающий режим, включить или отключить спящий режим, включить / отключить кэш диска и даже надежно стереть содержимое диска. Hdparm написан Марком Лордом (Mark Lord), ведущим разработчиком (E) IDE драйвера для Linux и текущим участником подсистемы «libata».
Advanced Format в дисках корпоративного класса. Что нас ждёт?
Речь пойдёт о дисках корпоративного класса последний серий. Десктопные HDD и позиционируемые для NAS или видеонаблюдения сюда не попали.
Вендор | Серия | Форм-фактор | Интерфейсы | Скорость вращения шпинделя, об/мин | Дополнительно | |||
Seagate | Enterprise Performance 10K HDD (10k.8) | 2.5" | SAS | 10000 | Y | Y | Y | для 512N ёмкость ограничена: 600/1200ГБ |
Seagate | Enterprise Performance 15K HDD (15k.5) | 2.5" | SAS | 15000 | Y | Y | Y | 32ГБ встроенного SSD-кэша |
Seagate | Enterprise Capacity 2.5 HDD (V.3) | 2.5" | SAS, SATA | 7200 | Y | Y | ||
Seagate | Enterprise Capacity 3.5 HDD (V.4) | 3.5" | SAS, SATA | 7200 | Y | Y | ||
Seagate | Archive HDD | 3.5" | SATA | 7200 | Y | Позиционируются для архивного применения, меньше MTBF и хуже BER | ||
Seagate | Terascale HDD | 3.5" | SATA | 5900/7200 | Y | Позиционируются для облачного применения, меньше MTBF и хуже BER | ||
HGST | Ultrastar C10K1800 | 2.5" | SAS | 10000 | Y | Y | Y | для 512N ёмкость ограничена: 300/600/900/1200ГБ |
HGST | Ultrastar C15K600 | 2.5" | SAS | 15000 | Y | Y | Y | |
HGST | Ultrastar C7K1000 | 2.5" | SAS | 7200 | Y | |||
HGST | Ultrastar He 8 | 3.5" | SAS, SATA | 7200 | Y | Y | ||
HGST | Ultrastar He 6 | 3.5" | SAS, SATA | 7200 | Y | |||
HGST | Ultrastar 7K6000 | 3.5" | SAS, SATA | 7200 | Y | Y | ||
HGST | MegaScale DC 4000.B | 3.5" | SATA | 5400 | Y | Позиционируются для облачного применения, меньше MTBF и хуже BER | ||
WD | Xe | 2.5"/3.5" | SAS | 10000 | Y | |||
WD | Re | 3.5" | SATA | 7200 | Y | |||
WD | Se | 3.5" | SATA | 7200 | Y | Позиционируются для облачного применения, меньше MTBF и хуже BER | ||
WD | Ae | 3.5" | SATA | 5760 | Y | ? | Позиционируются для архивного применения, меньше MTBF и хуже BER | |
Toshiba | AL13SE | 2.5" | SAS | 10000 | Y | |||
Toshiba | AL13SX | 2.5" | SAS | 15000 | Y | |||
Toshiba | AL13SEL | 3.5" | SAS | 10000 | Y | |||
Toshiba | MG03ACA/MG03SCA | 3.5" | SAS, SATA | 7200 | Y | |||
Toshiba | MG04ACA | 3.5" | SATA | 7200 | Y | Y | ||
Toshiba | MG04SCA | 3.5" | SAS | 7200 | Y | Y | ||
Toshiba | MC04ACA | 3.5" | SATA | 7200 | Y | Позиционируются для облачного применения, меньше MTBF и хуже BER |
SSD имеют свои особенности. Читать и записывать данные можно страницами, размер которых составляет 2–4–8–16КиБ в зависимости от архитектуры SSD. При этом для записи нужно обеспечить предварительное стирание ячеек, которое осуществляется не постранично, а блоками по несколько сотен страниц. Например, Samsung 840 EVO имеет блоки по 2МиБ, каждый из которых состоит из 256-ти страниц по 8КиБ. При этом, естественно, любой презентуемый хосту размер блока — 512 или 4096 байт — будет абстракцией.
Некоторые из современных SAS/SATA SSD эмулируют 512E-диск, но большая часть из соображений совместимости — 512N. Каких-либо особых мер в связи с этим предпринимать не требуется, так как в SSD корпоративного класса содержимое кэша обязательно защищается от потери питания. Достаточно обеспечить выравнивание по размеру страницы.
Некоторые PCI-E SSD, например, производства Fusion IO дают возможность при помощи фирменных утилит изменить при форматировании размер логического сектора, т.е. переключаться между 512E и 4KN режимами. Для некоторых SSD с интерфейсом SAS это тоже возможно, например, Seagate 1200 поддерживает изменение размера сектора обычным sg_format. Переход на 4КиБ сектор в некоторых сценариях может существенно поднять производительность.
Предупреждение
Хотя hdparm предоставляет возможности для увеличения производительности диска, эта программа также ЧРЕЗВЫЧАЙНО ОПАСНА . При неправильном использовании некоторых ее параметров очень высока вероятность массовой потери данных. Документация hdparm предупреждает, что Вы НЕ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ НЕКОТОРЫЕ КОМАНДЫ ПРИ ЛЮБЫХ ОБСТОЯТЕЛЬСТВАХ . Поэтому я не показываю такие опасные команды в этой статье. Что еще более важно, всегда рекомендуется сделать резервную копию вашего жесткого диска перед тестированием hdparm в вашей системе Linux.
1.1. Установка hdparm в Linux
Hdparm поставляется в составе большинства дистрибутивов Linux. Если она не включена в дистрибутив по каким-либо причинам, вы можете установить ее, используя имеющийся в вашей системем менеджер пакетов.
В Arch Linux и Manjaro Linux:
В Debian, Ubuntu, Linux Mint:
В Fedora, CentOS, RHEL:
3.2. Определение параметров жесткого диска в Linux с помощью Inxi
Чтобы получить подробную информацию об установленных жестких дисках в вашей системе Linux, запустите команду:
Пример вывода:
В отличие от программ Hdparm и lshw, inxi отображает только данные жесткого диска. Утилиты hdparm и lshw отобразят информацию обо всех дисководах, включая CD / DVD ROM.
Подробнее смотрите на man-странице.
2.2. Определение параметров жесткого диска в Linux с помощью lshw
После инсталляции lshw, просто запустите следующую команду, чтобы получить информацию о вашем жестком диске в Linux:
Пример вывода команды lshw:
Чтобы отобразить только название дисков, запустите:
Пример вывода:
Подробности ищите на странице руководства man.
Операционные системы
На первый взгляд кажется, что использование эмуляции 512-байтного сектора снимает все проблемы с совместимостью, но это не так. Во-первых, сразу же возникает проблема с производительностью. Что произойдет при записи блока размером 512 байт на диск с размером сектора 4096 байт (пусть и эмулирующий наличие секторов 512 байт)? Произойдёт классический процесс read-modify-write, вместо одной операции понадобится две: прочитать сектор 4096 байт, поменять в нём 512 байт (записываемый блок) и записать 4096 байт обратно. Аналогичная проблема проявляется и при отсутствии выравнивания, когда записываемый блок данных может быть достаточно большим и даже кратным 4096 байт, но при этом сдвинут относительно границ реальных секторов:
В современных условиях операции записи блоками меньше 4096 байт встречаются крайне редко, а вот проблема с выравниванием остаётся. Например, в старых Windows (до Windows Server 2008) при установке загрузочный раздел создаётся со смещением в 63 сектора. Так уж исторически сложилось с тех времён, когда BIOS использовал реальную геометрию диска вместо LBA. Разумеется, смещение в 63x512 не делится на 4096, что приводит к нарушению выравнивания для всех последующих разделов и снижению производительности. Впервые на данную проблему обратили внимание в связи с использованием RAID-контроллеров и необходимостью выравнивания разделов по границам страйпа и она была решена в Windows Vista/ Windows Server 2008 (и примерно в то же время — в других ОС) введением выравнивания по границам в 1024КиБ (1МиБ), т.е. первый раздел создается со смещением в 2048 512-байтных секторов.
Почему именно 1МиБ, если подойдёт меньшее смещение (главное — чтобы делилось на 4096 байт)? Просто потому, что нужен запас, ведь помимо физического диска в качестве блочного устройства могут выступать тома на RAID-контроллерах (с размером страйпа по умолчанию, например, у Adaptec в 256КиБ), SSD (с большим размером страниц) или образы дисков при использовании виртуализации, рекомендуемый размер NTFS-кластера для SQL или Exchange равен 64КиБ и т.д.
Проблема номер два — возможная потеря данных для сценариев с синхронной записью. Для ситуаций с записью блока меньше 4096 байт или невыравненного блока синхронной записи по факту не получится. Остаётся «научить» ОС не использовать при записи блоки меньше 4096 байт на диски 512E, но с этим есть определённые проблемы.
Microsoft
- Windows 8, 8.1
- Windows Server 2012, 2012 R2
- Windows 7 w/ MS KB 982018
- Windows 7 SP1
- Windows Server 2008 R2 w/ MS KB 982018
- Windows Server 2008 R2 SP1
- Windows Vista w/ MS KB 2553708
- Windows Server 2008 w/ MS KB 2553708
- Windows 8, 8.1
- Windows Server 2012, 2012 R2
Проверить выравнивание существующих разделов и задать смещение для новых разделов в Windows можно при помощи diskpart. Пример (раздел на диске 0 со смещением в 1024КиБ или 2048 512-байтных секторов):
Проверить проще всего через WMI (пример):
В колонке StartingOffset должно быть 1024КиБ для первого раздела, для остальных — должно делиться на 1024КиБ, это означает, что и на 4096 байт и все другие «хорошие числа» (размеры страйпов и NTFS-кластеров) всё будет делиться.
Напомню, что в современных Windows смещение в 1024КиБ и так используется по умолчанию, так что проверять/выставлять его вручную нужно лишь для ОС из «63-секторной» эпохи. При автоматическом создании GPT-разметки (через Disk Management) на 512N или 512E диске вы увидите смещение для первого раздела в 17КиБ. Это не повод для тревоги, так как это служебный раздел MSR. Первый стандартный раздел будет создан со смещением в 135266304 байт (129МиБ) — прекрасно делится на любое из наших «хороших чисел».
Linux
- RHEL 6.1
- SLES 11 SP2
- Ubuntu 13.10
- Ubuntu 12.04.4
- RHEL 6.1
- SLES 11 SP2
- Ubuntu 13.10
- Ubuntu 12.04.4
Посмотреть размеры физического и логического блоков можно в /sys/block/sdX/queue/physical_block_size и в /sys/block/sdX/queue/logical_block_size соответственно.
GNU Fdisk будет автоматически использовать смещение в 1МиБ при запуске с ключами -c и -u (отключить режим совместимости с DOS и использовать сектор в качестве единицы измерения). Обычный Fdisk не умеет работать с GPT, так что он бесполезен для дисков >2ТиБ, и нужно использовать Parted или GPT Fdisk. Последний по умолчанию использует для 512N/512E дисков нужное нам смещение в 2048 секторов:
Пример для GNU Parted (для 512N/512E дисков):
В LVM всё хорошо: смещение по умолчанию равно 1МиБ и размер PE (physical extent) кратен 1МиБ.
VMware
Статья в базе знаний VMware утверждает, что ни 512E, ни 4KN диски не поддерживаются. Поддержка дисков 4KN заявлена в vSphere 6.0.
С появлением VMFS-5 мы получили единый размер блока — 1МиБ и правильное 1МиБ-смещение для первого раздела. Раньше использовалось не всегда подходящее смещение в 64КиБ. Но всё это не отменяет заявления VMware о том, что 512E диски не поддерживаются. Видимо, это связано с тем, что формат VMDK хранит данные с гранулярностью 512 байт.
Прочие ОС
Mac OSX поддерживает Advanced Format начиная с Tiger. Остаются ещё FreeBSD и прочие *BSD, Oracle Solaris и множество других ОС, но детальное рассмотрение ситуации с Advanced Format дисками в них выходит за рамки данной статьи.
2. lshw
Lshw (Hardware Lister) - это это простая, но полнофункциональная утилита, которая предоставляет подробную информацию о конфигурации оборудования Linux-системы. Она может сообщить вам точную конфигурацию памяти, версию прошивки, конфигурацию материнской платы, версию и скорость процессора, информацию о жестком диске, конфигурацию кэша, скорость шины и многое другое.
Утилита iostat
Если вас больше интересуют данные, относящиеся к самим дискам, а не к процессам или потокам, можете попробовать команду iostat . Она тоже выводит некоторые данные о процессах, но они представлены в обобщённом виде.
Работа с iostat
Эта команда запускается, собирает данные и выводит их, не обновляя в режиме реального времени. Если нужно периодически её перезапускать — можно, при её запуске, указать промежуток времени между получениями новых отчётов, и, что необязательно, общее количество перезапусков. При этом, если нужно, можно воспользоваться ключом командной строки -t для получения сведений о времени.
Правда, это приводит к прокрутке выходных данных программы. Если вы занимаетесь мониторингом дисковой активности, то, возможно, вам лучше подойдёт такой вариант запуска iostat :
Если запустить утилиту с ключом -x — можно получить более подробные сведения о дисках. Флаг -z позволяет отключить вывод сведений об устройствах, на которых нет данных.
Читайте также: