Мультисоединение каналом с FibreChannel на Mac OS X
Описывает то, что требуется целевых драйверов аппаратных средств и шинного контроллера FibreChannel использовать в своих интересах мультисоединение каналом на Mac OS X
Введение
Цель мультисоединить каналом состоит в том, чтобы позволить единому устройству быть подключенным к главному компьютеру больше чем одним путем, обеспечив и избыточность и выравнивание нагрузки для увеличенной производительности. Этот technote объясняет, что требуется, чтобы делать Ваши драйверы шинного контроллера (HBA) и целевые устройства FibreChannel совместимыми с поддержкой мультисоединения каналом в Mac OS X.
Поддержка мультисоединения каналом начала поставлять с Mac OS X 10.3.5. Важно знать, что реализация мультисоединения каналом Apple отличается значительно от того из других поставщиков систем хранения. Много поставщиков реализуют поддержку мультисоединения каналом на уровне логической единицы тогда как мультисоединение каналом реализаций Mac OS X на уровне целевого устройства. В результате мультисоединение каналом в настоящее время не становится включенным на Mac OS X для многих решений для хранения других производителей
Мультисоединение каналом Реализации используется Mac OS X
Mac OS X предоставляет поддержку мультисоединения каналом на основе на цель. Мультисоединение каналом на уровне ЛУНА в настоящее время не поддерживается. Поддержка мультисоединения каналом предоставлена IOSCSIArchitectureModelFamily KEXT и будет автоматически включена для устройств, реализующих требуемые характеристики во встроенном микропрограммном обеспечении.

IOSCSIArchitectureModelFamily требует, чтобы все цели с помощью многопутевой поддержки показали ту же конфигурацию ЛУНА. RAID-контроллеры и другие аппаратные средства, широковещательно передающие то же глобальное имя узла (WWNN) для многократных целевых интерфейсов, но не публикующие их LUNs симметрично, не совместимы с этим подходом мультисоединения каналом и покажут нежелательные характеристики и поведение.
Выравнивание нагрузки через доступные пути к устройству сделано с помощью основанного на давлении алгоритма. Этот алгоритм пытается сохранить сумму выдающегося I/O равной через все соединения с устройством путем присвоения новых запросов I/O порту с наименьшим количеством суммы выдающегося I/O.
Несмотря на то, что ее первичная функция должна предоставить поддержку мультисоединения каналом через FibreChannel, эта та же технология реализована как часть Mac OS X поддержка SCSI и могла потенциально использоваться через другие реализации SCSI также. Для поддержки различного интерфейса Вы должны будете или извлечь или синтезировать WWNN для каждой цели, с которой Вы соединяетесь. На FibreChannel WWNN является частью информации, доступной для каждого узла, присоединенного к матрице.
Поддержка Мультисоединяющий каналом в Драйвере HBA
Если Вы реализуете шинный контроллер (HBA), имеете Ваш набор HBA kIOPropertyFibreChannelNodeWorldWideNameKey свойство для каждого целевого устройства. Это свойство является обязательным для контроллеров FibreChannel и дополнительным для большинства других интерфейсов.
Если Ваш HBA не должен динамично обнаруживать, что цели, добавленные после начальной загрузки (т.е., возвращает false от DoesHBAPerformDeviceManagement и полагается на IOSCSIParallelFamily для обнаружения любых целей, когда HBA становится активным), можно вызвать SetTargetProperty изнутри InitializeTargetForID добавить kIOPropertyFibreChannelNodeWorldWideNameKey свойство к новой цели.
Перечисление 1 , Устанавливающее kIOPropertyFibreChannelNodeWorldWideNameKey ключ для неуправляемых целей.
bool
com_foo_sampleAdapter::DoesHBAPerformDeviceManagement ( void )
{
// Report that we *DO NOT* manage our own devices - we rely on the OS to discover targets for us
return false;
}
bool
com_foo_sampleAdapter::InitializeTargetForID ( SCSITargetIdentifier targetID )
{
bool retVal = false;
OSData *targetWWNN = NULL;
// [...]
// Do any other target-specific setup here
// Set the WWNN to a hard-coded value for demonstration purposes
// In the real world, you would obtain the WWNN for each target node
// from your FibreChannel HBA
targetWWNN = OSData::withBytes("12345678", 8); // 64-bit WWNN
SetTargetProperty(targetID, kIOPropertyFibreChannelNodeWorldWideNameKey, targetWWNN);
targetWWNN->release();
retVal = true;
return retVal;
} |
Также, если Ваш HBA обрабатывает создание и уничтожение целей само, найдите WWNN для цели и передайте его CreateTargetForID как элемент словаря свойств.
Перечисление 2 , Устанавливающее kIOPropertyFibreChannelNodeWorldWideNameKey ключ для управляемых целей.
bool
com_foo_sampleAdapter::DoesHBAPerformDeviceManagement ( void )
{
// Report that we *DO* manage our own devices - we will query all possible targets ourselves
return true;
}
bool
com_foo_sampleAdapter::addNewTarget ( SCSITargetIdentifier targetID )
{
bool retVal = false;
OSDictionary *targetDictionary = NULL;
OSData *targetWWNN = NULL;
targetDictionary = OSDictionary::withCapacity(2); // Just a small dict
// [...]
// Do any other target-specific setup here
// Set the WWNN to a hard-coded value for demonstration purposes
// In the real world, you would obtain the WWNN for each target node
// from your FibreChannel HBA
targetWWNN = OSData::withBytes("12345678", 8); // 64-bit WWNN
targetDictionary-> setObject(kIOPropertyFibreChannelNodeWorldWideNameKey, targetWWNN);
targetWWNN->release();
CreateTargetForID(targetID, targetDictionary);
targetDictionary->release();
retVal = true;
return retVal;
} |
Поддержка Мультисоединяющий каналом в Целевом устройстве SCSI
При реализации целевого устройства устройство должно опубликовать результаты для 83-й страницы INQUIRY, Девайс Идентификэйшн Пэйдж, в двоичном формате и обеспечить или EUI-64 или FCNameIdentifier.
LUNs, не представленные симметрично, в настоящее время не поддерживаются на Mac OS X. Рекомендуется обеспечить механизм, чтобы позволить пользователю конфигурировать целевые устройства так, чтобы обо всех LUNs сообщили симметрично.
Соответствующая информация
Технический комитет T10, интерфейсы хранения SCSI
Дарвинский Исходный код, особенно источник IOSCSIArchitectureModelFamily и IOSCSIParallelFamily
История версии документа
| Дата | Примечания |
|---|---|
| 23.03.2007 | Добавленные важные примечания о требовании для установки физического взаимосвязанного свойства в характеристиках протокола к Волоконно-оптическому каналу и о требовании уникальных идентификаторов домена SCSI для каждого соединения. |
| 23.02.2007 | Новый документ, что объяснение, на как FibreChannel, мультисоединяющий работы каналом над Mac OS X и как разработать оборудование систем хранения для использования в своих интересах его |