Службы корпуса SCSI
Службы корпуса SCSI (англ. SCSI Enclosure Services, SES) — это протокол, применяемый в современных корпусах накопителей с интерфейсом SCSI. Инициатор может взаимодействовать с корпусом с помощью специализированного набора SCSI-команд для управления питанием, охлаждением и другими не связанными с передачей данных характеристиками устройства[1].
Устройства SES
Существует два основных класса SES-устройств:
- Встроенные службы корпуса позволяют осуществлять SES-взаимодействие через логическую единицу внутри одного из SCSI-дисков, размещённых в корпусе. Такой диск далее связывается с корпусом по другому протоколу, чаще всего по Enclosure Services Interface (ESI). В отказоустойчивых корпусах несколько слотов дисков могут иметь включённую ESI для обеспечения работы SES даже при выходе из строя одного из дисков. Определение протоколов ESI принадлежит комитету ANSI и формализовано в спецификациях ANSI SFF-8067 и SFF-8045.
- Автономные службы корпуса реализуются через отдельный процессор SES, занимающий собственный адрес на SCSI-шине. В данном случае протокол использует прямые SCSI-команды. Для достижения отказоустойчивости возможно наличие двух SES-процессоров в корпусе.
Команды SES
Инициатор SCSI взаимодействует с SES-устройством с помощью двух команд: Send Diagnostic и Receive Diagnostic Results. Некоторые универсальные SCSI-команды, например Inquiry, также применяются с автономными службами корпуса для выполнения базовых функций, таких как обнаружение устройств.
Элементы SES
Команды Send Diagnostic и Receive Diagnostic Results адресуются конкретному элементу SES в корпусе. Определено множество различных кодов элементов для поддержки широкого спектра устройств. Наиболее распространённые элементы SES — это блок питания, вентилятор охлаждения, датчик температуры и ИБП. Протоколы SCSI исходят из того, что в системе может быть несколько элементов одного типа, поэтому каждый получает отдельный 8-битный адрес.
При опросе контроллера SES на предмет статуса элемента в ответе содержится 4-битный код состояния элемента. Наиболее часто встречающиеся коды: 1h — норма, 2h — критическое состояние, 3h — предупреждение, 5h — не установлен.
Пороги элементов SES
Некоторые элементы SES, такие как датчики напряжения, тока и температуры, поддерживают функцию контроля пороговых значений. Это позволяет корпусу обнаруживать и сигнализировать о недопустимых параметрах среды. Стандарт SCSI определяет два типа порогов: некритический (предупреждение) и критический, причём для каждого из них задаются минимальное и максимальное значения. Например, пороги для 12-вольтового блока питания могут быть установлены так:
- Минимальный критический — 10,8 В
- Минимальный некритический — 11,4 В
- Максимальный некритический — 12,6 В
- Максимальный критический — 13,2 В
Пороговые значения устанавливаются командой Send Diagnostic, отправленной на диагностическую страницу Threshold Out (05h). Значения порогов можно получить командой Receive Diagnostic Results, обращённой к странице Threshold In (05h) с установленным битом PCV.
Подкорпуса
Крупный SCSI-корпус хранения может содержать несколько подкорпусов. Подкорпус с адресом 00h считается основным и способен возвращать сведения о других подкорпусах.
Встроенные службы корпуса SCSI
Встроенные службы корпуса SCSI — это компьютерный протокол, применяемый в основном в дисковых корпусах. Он позволяет управляющему компьютеру обращаться к корпусу для мониторинга и управления питанием, охлаждением и другими не связанными с передачей данных параметрами.
Обмен между управляющим компьютером и дисками корпуса осуществляется по SCSI-интерфейсу, который может быть представлен как Parallel SCSI, оптоволоконной петлёй FC-AL, Serial Attached SCSI или Serial Storage Architecture. Один из дисковых устройств в корпусе настраивается для пропуска обмена по SCSI Enclosure Services (SES), используя отдельную логическую единицу. Такой диск далее взаимодействует с SES-процессором корпуса, обычно через Enclosure Services Interface (ESI), либо по протоколу DSI для систем SSA. Передаваемые по линиям ESI или DSI данные представляют собой содержимое SCSI-команды и ответ на неё.
Встроенные службы корпуса реализуют всего две SCSI-команды:
| SCSI-команда | Код операции | Примечание |
|---|---|---|
| RECEIVE DIAGNOSTIC RESULTS | 1Ch | Обязательная |
| SEND DIAGNOSTIC | 1Dh | Обязательная |
Автономные службы корпуса SCSI
Автономные службы корпуса SCSI — это протокол, используемый преимущественно в дисковых корпусах. Он предоставляет управляющему компьютеру доступ к питанию, охлаждению и другим не связанным с передачей данных характеристикам корпуса.
Обмен происходит между управляющим компьютером и одним или несколькими контроллерами SES внутри корпуса по SCSI-интерфейсу (Parallel SCSI, FC-AL, SAS либо SSA). Каждый контроллер SES обладает уникальным адресом на шине SCSI и может принимать команды SCSI напрямую.
Контроллеры автономных служб корпуса поддерживают следующий набор SCSI-команд:
| SCSI-команда | Код операции | Примечание |
|---|---|---|
| ACCESS CONTROL IN | 86h | Опционально |
| ACCESS CONTROL OUT | 87h | Опционально |
| CHANGE ALIASES | A4h | Опционально |
| INQUIRY | 12h | Обязательная |
| LOG SELECT | 4Ch | Опционально |
| LOG SENSE | 4Dh | Опционально |
| MAINTENANCE IN | A3h | См. примечание 1 |
| MAINTENANCE OUT | A4h | См. примечание 1 |
| MODE SELECT | 15h/55h | Опционально |
| MODE SENSE | 1Ah/5Ah | Опционально |
| PERSISTENT RESERVE IN | 5Eh | Опционально |
| PERSISTENT RESERVE OUT | 5Fh | Опционально |
| READ BUFFER | 3Ch | Опционально |
| RECEIVE DIAGNOSTIC RESULTS | 1Ch | Обязательная |
| REDUNDANCY GROUP IN | BAh | См. примечание 1 |
| REDUNDANCY GROUP OUT | BBh | См. примечание 1 |
| REPORT ALIASES | A3h | Опционально |
| REPORT DEVICE IDENTIFIER | A3h | Опционально |
| REPORT LUNS | A0h | Обязательная |
| REPORT PRIORITY | A3h | Опционально |
| REPORT SUPPORTED OPERATION CODES | A3h | Опционально |
| REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS | A3h | Опционально |
| REPORT TARGET PORT GROUPS | A3h | Опционально |
| REPORT TIMESTAMP | A3h | Опционально |
| REQUEST SENSE | 03h | Обязательная |
| SEND DIAGNOSTIC | 1Dh | Обязательная |
| SET DEVICE IDENTIFIER | A4h | Опционально |
| SET PRIORITY | A4h | Опционально |
| SET TARGET PORT GROUPS | A4h | Опционально |
| SET TIMESTAMP | A4h | Опционально |
| SPARE IN | BCh | См. примечание 1 |
| SPARE OUT | BDh | См. примечание 1 |
| TEST UNIT READY | 00h | Обязательная |
| VOLUME SET IN | BEh | См. примечание 1 |
| VOLUME SET OUT | BFh | См. примечание 1 |
| WRITE BUFFER | 3Bh | Опционально |
Примечание 1: Инициатор должен выполнить команду INQUIRY для опроса бита SCCS, указывающего, поддерживает ли контроллер SES данную команду.
Примечания
- ↑ INCITS 518-2017 — Информационные технологии — SCSI Enclosure Services — 3 (SES-3). webstore.ansi.org. Дата обращения: 20 декабря 2023.