Службы корпуса 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 данную команду.

Примечания

  1. INCITS 518-2017 — Информационные технологии — SCSI Enclosure Services — 3 (SES-3). webstore.ansi.org. Дата обращения: 20 декабря 2023.