Приложение B. Диски iSCSI

Протокол iSCSI (Internet Small Computer System Interface) позволяет компьютеру взаимодействовать с устройствами хранения за счет обмена запросами и ответами SCSI по TCP/IP. Так как в основу iSCSI положены стандартные протоколы SCSI, он использует терминологию SCSI. Устройство на шине SCSI, которому направляются запросы и которое на них отвечает, называется целью или сервером iSCSI. Устройство, отправляющее запросы, называется инициатором или клиентом iSCSI. Другими словами, диск iSCSI представляет собой цель, а программный аналог SCSI-контроллера или адаптера HBA представляет собой инициатор. В этом приложении рассматривается роль Linux только в качестве инициатора, то есть будет рассмотрено как Linux использует диски iSCSI, а не обслуживает и предоставляет доступ к дискам iSCSI.
Программный инициатор iSCSI Linux включен в состав ядра и заменяет HBA-драйвер SCSI, что позволяет Linux использовать диски iSCSI. Но так как iSCSI является сетевым протоколом, то поддержка инициатора iSCSI должна включать возможность отправки пакетов SCSI по сети. Прежде чем Linux сможет использовать цель iSCSI, эта цель должна быть найдена в сети и к ней нужно подключиться. В некоторых случаях потребуется отправить данные авторизации для получения доступа к цели. Системы Linux должны определять любые сбои сетевого подключения и устанавливать новое соединение при необходимости.
Обнаружение, подключение и авторизация — все эти действия обрабатываются приложением iscsiadm в пространстве пользователя. За обработку ошибок отвечает iscsid.
И iscsiadm, и iscsid входят в состав пакета iscsi-initiator-utils.

B.1. Диски iSCSI в anaconda

Anaconda может определять диски iSCSI (и обращаться к ним) двумя способами:
  1. При запуске anaconda проверяет, поддерживает ли BIOS (или другая система загрузки) таблицы iBFT (iSCSI Boot Firmware Table) — расширение BIOS для систем, которые способны загружаться с iSCSI. Если BIOS поддерживает iBFT, anaconda прочитает из BIOS сведения о цели iSCSI для настроенного загрузочного диска и подключится к нему, тем самым подготовив его к установке.
  2. Для добавления цели iSCSI выберите Специальные устройства хранения в окне выбора накопителей и нажмите Добавить. В открывшемся окне можно определить адрес IP, который anaconda будет проверять и подключаться ко всем обнаруженным по этому адресу накопителям. Раздел 9.6.1.1, «Дополнительные параметры накопителей» содержит подробную информацию.
В то время как для доступа и авторизации целей iSCSI программа anaconda использует iscsiadm, iscsiadm автоматически сохраняет сведения о целях в базе данных iSCSI. Затем anaconda копирует базу данных в устанавливаемую систему и отмечает все цели iSCSI, которые не используются для / для автоматической авторизации в них при запуске системы. Если / размещается в цели iSCSI, initrd авторизуется в этой цели, а anaconda не станет включать ее в сценарии запуска во избежание параллельных попыток авторизации в этой цели.
Если / размещается на цели iSCSI, anaconda заставит NetworkManager игнорировать активные в процессе установки сетевые интерфейсы. initrd настроит их при запуске системы. Их повторная настройка приложением NetworkManager привела бы к потере соединения с /.