Руководство по использованию R.tester
Находится в процессе дополнения. Текущая версия от 31.08.2020г.
Если после прочтения данного руководства у вас остаются или возникают вопросы по использованию R.tester, пожалуйста, задайте их в соответствующем разделе форума.
Функциональные особенности
- Для работы функции быстрой автоматической диагностики в настройках должна быть включена поддержка Lua.
- Диагностический дамп позволяет изучить состояние носителя информации не имея к нему доступа. Ранее сохранённый файл дампа можно импортировать в R.tester, в результате чего в списке носителей информации главного окна появится новое виртуальное устройство.
Сохранить дамп можно двумя способами. По нажатию кнопки «Diag dump...» главного окна, либо по нажатию кнопки «Diag dump...» в окне с отображением результатов быстрой диагностики. Во втором случае, в дамп попадут также результаты выполненных тестов. - CERT Tool предназначен для *осознанных* экспериментов и всегда собирает информацию о производительности с максимальной детализацией. Поэтому, например, выполнение теста линейного чтения/записи на накопителе 4ТБ и больше с очень мелким блоком (64КБ и меньше) может привести к нехватке памяти.
- С целью защиты от случайного повреждения системных накопителей, все *известные стандартные* операции записи по умолчанию запрещены для обоих протоколов (SCSI и ATA).
Разблокируется запись в меню Options -> Unlock Write Operations. - Системные накопители в тестовой машине рекомендуется «спрятать», чтобы исключить случайные операции с ними и не повредить ОС.
В дереве устройств, двойной клик мыши на нужном накопителе и «Hide by - SERIAL». Выбранный S/N будет добавлен в INI-файл и данное устройство в дальнешйем всегда будет скрываться из дерева.
Показ скрытых устройств можно разрешить через Options -> Show Hidden Devices. - Распространённые в настоящий момент ОС работают с накопителями всех типов через слой SCSI.
Для ненативных SCSI-устройств всю трансляцию SCSI-команд в команды реального интерфейса (ATA, USB, NVMe, ...) выполняет либо драйвер контроллера, либо FW (HBA, USB-моста, ...).
Поэтому, R.tester реализует два режима доступа для функций R/W - через ОС и через SATL (прямая подача АТА команд через SCSI-обёртку).
Включение режима прямого доступа управляется опцией Options -> Prefer Direct I/O.
* В режиме Direct I/O драйвером контроллера всегда накладывается ограничение на максимальный размер данных для передачи.
* Текущий лимит на размер передачи при Direct I/O можно посмотреть в логе поиска устройств после старта R.tester - в центре окна внизу есть чек-бокс "[ ] Event Log":
...
[2020-08-31 15:51:22.488]
\\?\scsi#disk&ven_hgst&prod_huc101212css600#5&2d249843&1&010000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
-> PCI\VEN_1000&DEV_0087&SUBSYS_30501000&REV_05\4&38AC18AC&0&0009
[2020-08-31 15:51:22.488] Vendor [ HGST ] Model [ HUC101212CSS600 ] FW [ V580 ] S/N [ KZJRL123 ] VS [ ]
** selected nMaxTransfer= 2101248 (2052Kb, 0x201000)
В данном примере для текущего HBA доступно до 2МБ за одну команду. Это уже хорошо :)
По умолчанию, SATA-драйвера под Windows позволяют передачи лишь от 128КБ до 512КБ, что сильно ограничивает манипуляции в ручном режиме (включая работу с инженерными командами). - В текущей версии доступен почти неограниченный функционал для работы с ATA- и SCSI-командами в ручном режиме.
ATA commander разрешен сейчас только для контроллеров, либо USB мостов, которые поддерживают SAT.
Если позволяет HBA / USB-мост, для ATA также доступны все DMA-команды (но блокируется NCQ, его сложно отлаживать и в публичной версии это лишнее).
Toolbox -> PATA / SATA -> ATA Command Exerciser
и
Toolbox -> SCSI / SAS / FCAL -> SCSI Command Exerciser
Оба диалога учитывают текущий режим блокировки операций записи и не позволят случайно напортачить с командами записи, формата и т.п.
Так же, в обоих диалогах реализован относительно интеллектуальный анализатор команд, который не позволит выполнить заведомо опасные или неадекватные действия.
Пояснения к интерфейсу
Считаем, что необходимости в полном описании интерфейса приложения нет. Приведённые ниже комментарии, в совокупности с представлениями о современных концепциях UI и работе носителей информации, должны дать достаточно понимания для его использования.
Отдельные усложнения и отступления от распространённых практик организации интерфейсов сделаны намеренно, для того, чтобы пользователь действовал осознанно, а не «на автомате».
Интерфейс главного окна
Двойной клик левой кнопкой на элементе списка устройств выведет контекстное меню для данного элемента.
Одинарный клик правой кнопкой в области со списком устройств позволит загрузить диагностический дамп, который будет отображаться как отдельный накопитель в ветке «Offline Containers».
«Diag dump...» — сохранение диагностического дампа.
«Quick DIAG!» — запуск процедуры автоматической диагностики для жёстких дисков.
«Toolbox» — набор инструментов.
Галочка в чекбоксе «Event Log» переключит интерфейс на отображение содержимого лога.
Интерфейс CERT Tool
В ближайшем будущем планируется существенное изменение интерфейса. Обозначенные ниже недостатки текущей версии интерфейса устраняться уже не будут, поскольку их причина будет устранена при обновлении.
Загрузка скрипта с тестами возможна двумя способами
- По нажатию «AddTask» будет загружен предустановленный скрипт.
- Нажатие «Load Script» позволит загрузить ранее сохранённый набор скриптов. Эта кнопка становится активной только в случае пустого списка тестов.
Список тестов очищается нажатием кнопки «Remove Task».
Примеры скриптов, которые можно использовать для тестирования и редактирования, находятся в папке CERT корневой директории программы.
Редактирование скриптов
Для добавления нового пункта в список тестов требуется кликнуть на список и нажать кнопку «ins» на клавиатуре. После чего выбираем тест из списка и задаём его параметры.
Удаление осуществляется нажатием на клавиатуре кнопки «del».
Редактирование параметров тестов осуществляется в окне «CERT Command Editor», появляющемся в момент добавления нового теста, либо после двойного клика правой кнопкой по строке в списке тестов.
Значения параметров редактируются путём выбора соответствующей строки в списке и внесения изменений в появившееся поле ввода или выпадающий список, с последующим нажатием кнопки «set» для передачи нового значения из поля ввода в список.
* Кнопка «set» добавлена в интерфейс с целью дополнительной защиты от случайных ошибок.
Для завершения редактирования параметров теста и сохранения изменений в скрипте следует нажать кнопку «Apply».
После завершения выполнения скрипта двойной клик по строке с тестом приведёт к появлению окна с дополнительной информацией о ходе процесса.
Другие особенности
Самое интересное в CERT Tool в случае тестов линейного чтения или записи — график Access Time.
Режимы отображения Performamce (MiB/sec) или Access Time (msec/cmd request) переключаются галочкой «Performance Mode».
График можно зумировать в реальном времени: левый клик мышки выбирает регион, правый клик возвращает оригинальный масштаб.
Важно принять к сведению! Недостатки текущей версии интерфейса
Невозможно добавление нового пункта в начало или середину списка. Можно добавить только в конец.
Нет возможности изменить порядок выполнения тестов в уже созданном скрипте.
Не все алгоритмы из выпадающего списка режимов тестирования в окне «CERT Command Editor» присутствуют в коде приложения. В случае выбора алгоритма, реализация которого отсутствует в приложении, соответствующая команда будет мгновенно завершена со статусом «no_code».
Скрипт имеет смысл сохранять только до его первого запуска на выполнение. После запуска теста, в структуру данных скрипта попадает много дополнительной информации, которая неверно обрабатывается при редактировании и последующем запуске. И такой скрипт будет глючить. Не сохраняйте скрипты после запуска. Вносите изменения и сохраняйте их до первого запуска.
Интерфейс ATA Command Exerciser
ATA команда подаётся с помощью таск-файла, который формируется из содержимого полей соответствующей формы.
Переключатели над столбцом полей ввода предназначены для возможности задания трёх вариантов содержимого формы и переключения между ними.
При вводе команды в поле «Command», в интерфейсе может появиться подсказка с названием команды, а также вспомогательные поля, упрощающие заполнение остальных полей таск-файла.
Для того, чтобы произошло заполнение таск-файла на основе значения вспомогательного поля, требуется нажатие соответствующей кнопки «set».
Столбец «reply» отображает содержимое таск-файла после выполнения команды.
Подача ряда команд подразумевает использования буфера для отправки или получения данных из диска.
Элементы управления буфером сгруппированы и помечены как «Data I/O».
Для создания буфера требуется указать его размер, в соответствующем поле нажать кнопку «Create». Он должен быть кратен размеру блока и задаётся в байтах.
«Save» и «Load», соответственно, позволят сохранить и загрузить его содержимое. «Dump» – открыть его в шестнадцатеричном редакторе.
При исполнении отдельных команд предварительное создание буфера не требуется. Утилита создаст его сама.
Переключатель позволяет оперировать тремя буферами.
Установка галочки в чекбоксе CK_COND указывает на необходимость отдельного запроса содержимого регистра состояния, если драйвер не сообщил эту информацию после выполнения команды.
Выпадающий список вверху окна предназначен для использования в качестве подсказки по именам команд и правильному заполнению таск-файла. Соответствующие поля будут заполнены после выбора строки из списка и нажатия кнопки «select».
Кнопка «X» используется для очистки содержимого полей ввода таск-файла.
Для отправки команды служит кнопка « > GO < ».
Интерфейс SCSI Command Exerciser
Принцип организации интерфейса аналогичен таковому для АТА коммандера.
Отзывы о статье Руководство по использованию R.tester