Fibre channel как подключить к компьютеру

Обновлено: 04.07.2024

Поддержка этой версии Virtual Machine Manager (VMM) прекращена. Рекомендуем перейти на VMM 2019.

В этой статье описывается настройка виртуального адаптера Fibre Channel Hyper-V в структуре хранилища System Center Virtual Machine Manager (VMM).

Виртуальный адаптер Fibre Channel позволяет виртуальным машинам Hyper-V напрямую подключаться к хранилищу на основе Fibre Channel. Hyper-V предоставляет порты Fibre Channel в операционных системах на виртуальных машинах, что позволяет виртуализировать приложения и рабочие нагрузки, которые имеют зависимости от хранилища Fibre Channel. Кроме того, можно кластеризовать операционные системы на виртуальных машинах по Fibre Channel.

Перед началом работы

  • VMM поддерживает следующие развертывания виртуальных адаптеров Fibre Channel.
    • Один массив хранения данных, подключенный к одной структуре (состоящей из одного коммутатора или нескольких), подключенной к одной виртуальной сети хранения данных (vSAN). Виртуальная сеть хранения данных — это именованная группа портов физических адаптеров шины Fibre Channel в узле, к которому подключается виртуальная машина для доступа к запоминающим устройствам Fibre Channel.
    • Один массив хранения данных, подключенный к нескольким структурам (состоящим из одного или нескольких коммутаторов), подключенных к одной виртуальной сети хранения данных.
    • Несколько массивов хранения данных, подключенных к одной структуре (состоящей из одного или нескольких коммутаторов), подключенной к одной виртуальной сети хранения данных.
    • Несколько массивов хранения данных, подключенных к нескольким структурам (состоящим из одного или нескольких коммутаторов), подключенных к нескольким виртуальным сетям хранения данных. Такая конфигурация обеспечивает дублирование путей к массивам хранения.

    Вам потребуется следующее.

    • На каждом узле может быть создана одна или несколько виртуальных сетей хранения данных. Виртуальные сети хранения данных могут включать адаптеры шины только из одной структуры.
    • Для массивов хранения данных, коммутаторов и адаптеров шин должны быть установлены последние версии драйверов и встроенного ПО.
    • Убедитесь, что массивы хранения данных могут представлять логические единицы.
    • Включите NPIV на коммутаторах Fibre Channel и адаптерах шин.
    • Узлы Hyper-V могут работать под управлением Windows Server 2012 или более поздней версии.
    • Убедитесь, что установлен поставщик SMI-S. VMM управляет структурами Fibre Channel и устройствами сети SAN с помощью поставщика SMI-S. Поставщик SMI-S необходимо установить не на сервере VMM, а на сервере, к которому сервер VMM может подключаться, используя полное доменное имя или IP-адрес.

    Развертывание виртуального адаптера Fibre Channel

    Необходимо сделать следующее:

    1. Выполнить обнаружение и классификацию структур Fibre Channel.
    2. Создать сети vSAN для каждого узла путем группировки портов адаптеров шин узлов.
    3. Создать виртуальную машину, которая может получать доступ к хранилищу виртуального адаптера Fibre Channel.
    4. Создать зоны, которые подключают виртуальный адаптер шины каждого узла или виртуальной машины к массиву хранения данных. Зоны используются для подключения массива Fibre Channel к виртуальной машине узла.
    5. Создать номера LUN и зарегистрировать их для узла, виртуальной машины или уровня службы.
    6. Создать шаблон службы и добавить в него шаблоны виртуальных машин. Для каждого виртуального адаптера шины потребуется указать динамическое или статическое назначение WWPN-имен и выбрать классификацию. Создайте и разверните уровень службы на основе шаблона службы для доступа к хранилищу виртуального адаптера Fibre Channel. Вам потребуется привязать массив Fibre Channel к уровню службы, добавить диск, создать LUN и зарегистрировать LUN в уровне.

    Обнаружение и классификация структур Fibre Channel

    Создание виртуальных сетей хранения данных (vSAN) и назначение адаптеров шины

    Вы можете создать виртуальные сети хранения данных и назначить для них адаптеры шины. На каждом узле может быть создана одна или несколько виртуальных сетей хранения данных. Каждая виртуальная сеть хранения данных может содержать только адаптеры шины, принадлежащие одной и той же структуре.

    Виртуальные адаптеры шины, представляющие виртуализацию адаптеров шины Fibre Channel, используются виртуальными машинами для подключения к виртуальным сетям хранения данных. Каждый виртуальный адаптер шины имеет имя узла в Интернете (WWNN), отличающееся от WWNN адаптера шины узла. С помощью NPIV адаптер шины главного компьютера можно сопоставить с несколькими виртуальными адаптерами шины. Порты адаптеров шины, назначенные виртуальной сети хранения данных, при необходимости могут добавляться или удаляться.

    Создание шаблона виртуальной машины

    Виртуальные адаптеры шины используются виртуальными машинами для подключения к виртуальным сетям хранения данных. Чтобы подключить виртуальные адаптеры шины к виртуальным сетям хранения данных, сначала необходимо их добавить в профиль оборудования шаблона виртуальной машины.

    1. С помощью мастера создания виртуальных машин создайте виртуальную машину, а затем добавьте новый адаптер Fibre Channel (виртуальный адаптер шины) на странице Настройка оборудования шаблона виртуальной машины. Для каждого созданного виртуального адаптера шины укажите динамические или статические назначения WWPN и выберите классификацию структуры.
    2. Также с помощью мастера создания виртуальных машин разместите и разверните виртуальную машину на конечном узле. Убедитесь, что узел содержит виртуальную сеть хранения данных, соответствующую структуре хранилища.

    После развертывания виртуальной машины в узле можно соотнести зоны массива хранения данных виртуального адаптера Fibre Channel с виртуальной машиной. Затем необходимо создать LUN и зарегистрировать его (снять маску) на виртуальной машине.

    Создание зон

    Зоны используются для подключения массива Fibre Channel к узлу или виртуальной машине. Целевые порты массива хранения данных сопоставляются с портами адаптеры шины на узле или портами виртуального адаптера шины на виртуальной машине. Вы можете создать зоны для узла, виртуальной машины или их обоих. Для отказоустойчивых кластеров Hyper-V зона необходима для каждого узла в кластере. Обратите внимание на следующее.

    • Зоны группируются в наборы зон, которые совместно используют устройства структуры Fibre Channel. Набор зон можно активировать после добавления всех зон в набор, их изменения или удаления при необходимости. При активации набора зон сведения для каждой зоны передаются в коммутаторы Fibre Channel в выбранной структуре.
    • Взаимодействовать друг с другом могут только участники одной и той же зоны.
    • Вам потребуется создать зоны и активировать набор зон. Активация набора зон может вызвать некоторый простой в структуре, пока все изменения не будут переданы на все коммутаторы.
    • Если требуется добавить массив хранения данных в кластер Hyper-V, сначала необходимо разделить на зоны массив на каждом узле. Подобным образом, если требуется добавить массив в гостевой кластер, сначала необходимо разделить на зоны массив на каждой виртуальной машине.

    Настройте зоны следующим образом.

    1. Щелкните Виртуальные машины (VM) и службы > Службы, щелкните правой кнопкой мыши подходящую виртуальную машину и выберите Свойства > Хранилище > Добавить > Добавить массив Fibre Channel.
    2. На странице Добавить массив Fibre Channel > Свойства выберите Создать зону, укажите имя зоны, выберите массив хранения данных и в разделе Структура выберите коммутатор. В группе Целевые порты массива хранения данных выберите подходящее WWPN-имя порта или портов. В группе Инициатор виртуальной машины выберите подходящее WWPN-имя порта или портов. Затем нажмите кнопку Создать. Щелкните Показать псевдонимы, чтобы просмотреть доступные псевдонимы зон.
    3. Чтобы активировать набор зон, щелкните Структура > Имя, выберите неактивный набор зон > Активировать набор зон.
    4. Наборы зон можно просмотреть для структуры на странице Структура > Структура Fibre Channel > Имя, щелкните правой кнопкой мыши подходящую структуру и выберите пункт Свойства > Наборы зон.
    5. Если вы хотите изменить зоны для массива хранения данных, щелкните Виртуальные машины (VM) и службы > подходящий узел > Свойства > Хранилище > Массивы Fibre Channel > Изменить > применимый массив и измените параметры зоны.

    Создание и регистрация LUN

    Захотелось приобрести ленточный накопитель LTO-5. Модели накопителей, которые могу найти идут с FC или c SAS-интерфейсом.

    Никогда на практике не имел с ними дела. SAS к SATA подключится? А что с FC - надо платы с ним покупать, но там вообще дешевые вариант имеются или по-цене сопоставимо с накопителем?

    И как это все в Linux, в том числе современном, работает?


    Самое дешёвое наверно USB->PCIe райзер + б/у PCIe SAS контроллер. Только надо смотреть, чтобы не подсунули SuperCoool SAS/SATA - оно может ничего кроме дисков не понимать вообще, нужен настоящий, полноценный Serial attached SCSI контроллер умеющий ленты. Обычно про поддержку SAS tape написано у производителя на сайте в характеристиках девайса. Т.е. сначала проверить, умеет ли, и только потом покупать, а не наоборот. :) Полноценные SAS контроллеры называются SAS Host Bus Adapter (SAS HBA). Но найти занедорого б/у достаточно сложно, а новые стоят от $300. Однако, многие SAS RAID кнтроллеры, массово стоявшие в широко распространённых серверах HP/IBM и теперь имеющиеся на рынке за копейки тоже умеют работать с лентами.

    А так, линуксы отлично работают с лентами. Будет девайс /dev/nstX с которым общаешься при помощи tapeinfo, mt и tar.

    Stanson ★★★★★ ( 05.06.21 05:29:15 )
    Последнее исправление: Stanson 05.06.21 05:36:36 (всего исправлений: 5)

    Не знаю как с ленточным накопителем, а вот обычные sas накопители предполагают наличие райдконтролёра и хотя и будут работать с sata, но при ошибках могут уйти в долгое ожидание ответа sas контролёра.

    Где ты видел девайс sas чтобы с sata работал? Наоборот возможно.

    Тут только отдельный контроллер брать, причём как уже сказано, смотреть, чтобы мог не только с дисками работать

    Нужен отдельный контроллер в любом случае.


    Даже не знал, что такое бывает. Думал PCIe райзер с PCIe идет. Он там полноценный с USB получается или в любом случае хватит?

    Кстати, контроллеры, наверное могут и драйверов требовать, как у них с поддержкой в Linux?

    Но найти занедорого б/у достаточно сложно.

    Весь ebay в них занедорого. Также на авито урвать можно, я как-то 9300-8i за 5000р купил.

    zemidius ★ ( 05.06.21 13:15:04 )
    Последнее исправление: zemidius 05.06.21 13:17:36 (всего исправлений: 1)

    USB в райзерах - просто удобный разъем. Подключаются они, разумеется, по PCIe x1.

    Весь ebay в них занедорого. Также на авито урвать можно, я как-то 9300-8i за 5000р купил.

    А RAID умеющий SAS tape но не являющийся полноценным SAS HBA к которому можно подключать вообще любые SCSI девайсы, не только диски и ленты, но и всё остальное, можно найти гораздо дешевле 5 тыр. Можно даже даром найти, если заморочится.

    Stanson ★★★★★ ( 05.06.21 13:58:42 )
    Последнее исправление: Stanson 05.06.21 13:59:14 (всего исправлений: 1)

    можно найти гораздо дешевле 5 тыр

    Я для примера, что за 5тр можно взять 9300-8i.

    Тот же 9211-4i в брендированном варианте (hp/ibm/fs) можно действительно найти почти бесплатно, т.к. они уже никому не нужны.


    Зачем ему райзер, может у него есть свободный 16x слот?

    ТСу для LTO-5 хватит SAS-1 или нужно как минимум SAS-2?

    ТС'у. У SAS кабеля разъём отличается от SATA, и со стороны контроллера вобще другой разъём. Так что покупая контроллер сразу и кабель ищите/заказывайте.

    mky ★★★★★ ( 06.06.21 01:15:18 )
    Последнее исправление: mky 06.06.21 01:16:06 (всего исправлений: 1)

    Зачем ему райзер, может у него есть свободный 16x слот?

    Ну может у него «обычный комп» - ноутбук, например.

    ТСу для LTO-5 хватит SAS-1 или нужно как минимум SAS-2?

    А вот это надо в доках на LTO-5 смотреть, я сходу не скажу. Но обычно SAS-2 девайсы работают на SAS без проблем, просто медленнее, а лента и так не особо быстрый носитель.

    Всякие HP/IBM нормально работают в обычных ПК, или нужно как у DELL изолировать два контакта в PCIe?

    HP - могут ерепенится, но шаманство всякое в инетах находится. IBM - неработающих в обычных ПК не встречал и не слышал.

    Stanson ★★★★★ ( 06.06.21 03:07:02 )
    Последнее исправление: Stanson 06.06.21 03:20:29 (всего исправлений: 3)

    да то наверное простой пассивный pci-e райзер у которого USB3 кабель тупо в качестве физики юзается. так переходников USB->PCIe в природе по-моему и не существует, да и навряд они вообще возможны.

    Полноценные SAS контроллеры называются SAS Host Bus Adapter (SAS HBA). Но найти занедорого б/у достаточно сложно

    наоборот, их валом за копейки, те самые софтрэйды умеющие только RAID0/1. типа LSI1068E.

    те самые софтрэйды умеющие только RAID0/1

    А эти копеечные платы с LSI1068E на борту точно умеют SAS tape? Ведь все микрухи контроллеров SAS умеют в полноценный SCSI, вот только далеко не на всех BIOS (или как там сейчас называется прошивка карточки) реализована поддержка всех SCSI команд. Поэтому одна карточка с LSI1068E может быть полноценным HBA, а другая кроме SAS disk ничего уметь не будет.

    Дело не в микрухе, дело в прошивке.

    Тоже понять не могу, что они несут. Самое близкое к USB->PCIe - это Thunderbolt. Он не входил в стандартный USB, но в USB4 добавят. И сейчас коробки для eGPU так подключают. Со стороны ноутбука на чип Thunderbolt 3 разведены pcie и displayport выход, вроде, а он их инкапсулирует и коммутируется на usb порту по Alternate Mode (а в прошлых на DP порту). На другой стороне другой чип thunderbolt распаковывает.

    boowai ★★★★ ( 06.06.21 15:41:40 )
    Последнее исправление: boowai 06.06.21 15:42:30 (всего исправлений: 1)

    это HBA с фэйкрэйдом (dm_raid). если что - зашивается IT прошивка (в которой выпилен рэйд вообще), и получается голый HBA.


    А чтобы два раза не спрашивать, что примерно посоветуешь искать из самих стримеров? Всякие ленточные библиотеки не нужны, естественно.

    Ну вот насчёт заливки прошивки я не в курсе. Если в курсе, то присоветуйте ТСу что и как куда заливать в дармовую карточку.

    Продолжаю вещать на тему прояснения основных представлений об FC SAN. В комментариях к первому посту меня попрекнули тем, что копнул недостаточно глубоко. В частности — мало сказал о непосредственно FC и ничего о BB credits, IP и multipathing. Multipathing и IP — темы для отдельных публикаций, а про FC, пожалуй, продолжу. Или начну, как посмотреть.

    Для начала, небольшое терминологическое отступление (навеянное опять же комментарием к предыдущему посту).

    Fibre or Fiber?: Изначально технология Fibre Channel предполагала поддержку только волоконно-оптических линий (fiber optic). Однако, когда добавилась поддержка меди, было принято решение название в принципе сохранить, но для отсылки на стандарт использовать британское слово Fibre. Американское Fiber сохраняется преимущественно для отсылки на оптоволокно.
    Fibre Channel was originally designed to support fiber optic cabling only. When copper support was added, the committee decided to keep the name in principle, but to use the UK English spelling (Fibre) when referring to the standard. The US English spelling (Fiber) is retained when referring generically to fiber optics and cabling.

    IBM Redbook «Introduction to SAN and System Networking»

    Начало

    По аналогии с сетевой моделью OSI, Fibre Channel состоит из пяти уровней. Каждый уровень обеспечивает определённый набор функций.




    FC-0 — уровень физических интерфейсов и носителей. Описывает физическую среду: кабели, коннекторы, HBA, трансиверы, электрические и оптические параметры.

    • Fibre Channel Protocol for SCSI-3 (SCSI-FCP) — проброс SCSI
    • Fibre Channel Link Encapsulation (FC-LE) — проброс TCP/IP

    А теперь подробнее об этих и других непонятных словосочетаниях. В данной статье рассмотрим только нижние три уровня, как наиболее значимые при создании и управлении инфраструктурой FC SAN.

    Отдельно хочу упомянуть про такой термин как тёмная оптика (dark fiber). Сей термин не значит, что она как-то специальным образом тонирована. Это просто выделенные оптические линии связи, как правило, для связи на больших расстояниях (между городами или далеко отстоящими зданиями), которые берутся в аренду, и для использования которых не требуется дополнительное оборудования усиления сигнала (его обеспечивает владелец). Однако, так как это просто оптический кабель, отданный в ваше полновластное распоряжение, до тех пор пока вы не пустите по нему свой световой сигнал, он остаётся «тёмным».

    ASIC (аббревиатура от англ. application-specific integrated circuit, «интегральная схема специального назначения») — интегральная схема, специализированная для решения конкретной задачи. В отличие от интегральных схем общего назначения, специализированные интегральные схемы применяются в конкретном устройстве и выполняют строго ограниченные функции, характерные только для данного устройства; вследствие этого выполнение функций происходит быстрее и, в конечном счёте, дешевле. Примером ASIC может являться микросхема, разработанная исключительно для управления мобильным телефоном, микросхемы аппаратного кодирования/декодирования аудио- и видео-сигналов (сигнальные процессоры).
    • Encoder / Decoder — обеспечивает кодирование каждых 8 бит передаваемых данных в 10-битное представление. И декодирование обратно принимаемых данных.
    • SERDES (Serializer / Deserializer) — преобразует параллельный поток 10-битных порций данных в последовательный поток 10-битных порций данных.
    • Transceiver — преобразует электрические импульсы в световые сигналы.

    Transceivers, трансиверы или SFP — в случае FC-коммутаторов это отдельные модули, необходимые для подключения кабеля к порту. Различаются на коротковолновые (Short Wave, SW, SX) и длинноволновые (Long Wave, LW, LX). LW-трансиверы совместимы с многомодовым и одномодовым волокном. SW-трансиверы — только с многомодовым. И к тем и к другим кабель подключается разъёмом LC.
    Есть ещё SFP xWDM (Wavelenght Division Multiplexing), предназначенные для передачи данных из нескольких источников на дальние расстояния единым световым пучком. Для подключения кабеля к ним используется разъём SC.

    8/10 и 64/66

    Первое, что происходит на этом уровне — кодирование / декодирование информации. Это довольно мудрёный процесс, в ходе которого каждые 8 бит поступающей информации преобразуются в 10-битное представление. Делается это с целью повышения контроля целостности данных, отделения данных от служебных сигналов и возможности восстановления тактового сигнала из потока данных (сохранение баланса нулей и единиц).
    Это ведёт к заметному снижению полезной пропускной способности, ибо как можно подсчитать, 20% потока данных является избыточной служебной информацией. А ведь кроме всего прочего, немалую часть этого потока может занимать служебный трафик.
    Однако хорошая новость в том, что кодирование 8/10 используется в оборудовании 1G, 2G, 4G и 8G. В части реализаций 10G и начиная с 16G кодирование осуществляется по принципу 64/66, что существенно увеличивает полезную нагрузку (до 97% против 80% в случае 8/10).

    Ordered sets
    1. Разделители фреймов (Start-of-Frame, SOF и End-of-Frame, EOF).
    2. Два базовых сигнала — IDLE (порт готов принимать или передавать данные) и R_RDY (receiver ready — порт освободил буфер для приёма очередной порции данных)
    3. Базовые последовательности (primitive sequences):
      • NOS (Not Operational) — порт обнаружил разрыв / отсутствие соединения
      • OLS (Offline State) — порт инициирует установление соединения, или порт получил NOS, или порт переходит в состояние off-line
      • LR (Link Reset) — инициализация сброса соединения. Отправляется в случае получения OLS или каких-то ошибок приёма-передачи (как правило, на уровне Flow Control). Отправивший порт очищает свои буферы и их счётчики
      • LRR (Link Reset Response) — ответ на LR. Отправивший порт очищает свои буферы и их счётчики
    Инициализация соединения (Link initialization)



    При установлении физического соединения между портами A и B, между ними происходит следующий «обмен веществ»:


    Фреймы (Кадры, Frames)
    • SoF — 4 байта (1 tw) — идентификатор начала фрейма.
    • Header — 24 байта (6 tw) — заголовок. Содержит такую информацию как адрес источника и приёмника, тип фрейма (FT-0 — управляющий или FT-1 — данные), номер последовательности и порядковый номер фрейма в ней и прочая служебно-контрольная информация.
    • Data — 0-2112 байт (0-528 tw) — непосредственно данные (например, SCSI-команды).
    • CRC — 4 байта (1 tw) — контрольная сумма.
    • EoF — 4 байта (1 tw) — идентификатор конца фрейма.

    Промежутки между фреймами заполняются специальными «заполняющими словами» — fill word. Как правило, это IDLE, хотя начиная с FC 8G было стандартизовано использование ARB(FF) вместо IDLE, в целях снижения электрических помех в медном оборудовании (но по-умолчанию коммутаторами используется IDLE).

    Последовательности (Sequences)

    Чаще всего источник стремится передать приёмнику гораздо больше информации, чем 2112 байт (максимальный объём данных одного фрейма). В этом случае информация разбивается на несколько фреймов, а набор этих фреймов называется последовательностью (sequence). Чтобы в логическую последовательность фреймов не вклинилось что-то лишнее при параллельной передаче, заголовок каждого фрейма имеет поля SEQ_ID (идентификатор последовательности) и SEQ_CNT (номер фрейма в последовательности).

    Обмен (Exchange)

    Одна или несколько последовательностей, отвечающих за какую-то одиночную операцию, называется обменом. Источник и приёмник могут иметь несколько параллельных обменов, но каждый обмен в единицу времени может содержать только одну последовательность. Пример обмена: инициатор запрашивает данные (последовательность 1), таргет возвращает данные инициатору (последовательность 2) и затем сообщает статус (последовательность 3). В этот набор последовательностей не может вклиниться какой-то посторонний набор фреймов.
    Для контроля этого процесса заголовок каждого фрейма включает поля OX_ID (Originator Exchange ID — заполняется инициатором обмена) и RX_ID (Responder Exchange ID — заполняется получателем в ответных фреймах, путём копирования значения OX_ID).

    Классы обслуживания (Classes of Services)

    Различные приложения предъявляют разные требования к уровню сервиса, гарантии доставки, продолжительности соединения и пропускной способности. Некоторым приложениям требуется гарантированная пропускная способность в течение их работы (бэкап). Другие имеют переменную активность и не требуют постоянной гарантированной пропускной способности канала, но им нужно подтверждение в получении каждого отправленного пакета. Для удовлетворения таких потребностей и обеспечения гибкости, FC определяет следующие 6 классов обслуживания.

    Class 1

    Для этого класса устанавливается выделенное соединение, которое резервирует максимальную полосу пропускания между двумя устройствами. Требует подтверждения о получении. Требует чтобы фреймы попадали на приёмник в том же порядке, что вышли из источника. Ввиду того, что не даёт другим устройствам использовать среду передачи, используется крайне редко.

    Class 2

    Без постоянного соединения, но с подтверждением доставки. Не требует соответствия порядка отправленных и доставленных фреймов, так что они могут проходить через фабрику разными путями. Менее требователен к ресурсам, чем класс 1, но подтверждение доставки приводит к повышенной утилизации пропускной способности.

    Class 3

    Без постоянного соединения и без подтверждения доставки. Самый оптимальный с точки зрения использования ресурсов фабрики, но предполагает, что протоколы верхних уровней смогут собрать фреймы в нужном порядке и перезапросить передачу пропавших фреймов. Наиболее часто используемый.

    Class 4

    Требует постоянного соединения, подтверждение и порядок фреймов как и класс 1. Главное отличие — он резервирует не всю полосу пропускания, а только её часть. Это гарантирует определённое QoS. Подходит для мультимедиа и Enterprise-приложений, требующих гарантированного качества соединения.

    Class 5

    Ещё до конца не описан и не включен в стандарт. Предварительно, класс, не требующий соединения, но требующий немедленной доставки данных по мере их появления, без буферизации на устройствах.

    Class 6

    Вариант класса 1, но мультикастовый. То есть от одного порта к нескольким источникам.

    Class F

    Класс F определён в стандарте FC-SW для использования в межкоммутаторных соединениях (Interswitch Link, ISL). Это сервис без постоянного соединения с уведомлениями о сбое доставки, использующийся для контроля, управления и конфигурирования фабрики. Принцип похож на класс 2, но тот используется для взаимодейтсвия между N-портами (порты нод), а класс F — для общения E-портов (межкоммутаторных).

    Flow Control

    В целях предотвращения ситуации, когда отправитель перегрузит получателя избыточным количеством фреймов так, что они начнут отбрасываться получателем, FC использует механизмы управления потоком передаваемых данных (Flow Control). Их два — Buffer-to-Buffer flow control и End-to-End flow control. Их использование регламентируется классом обслуживания. Например, класс 1 использует только механизм End-to-End, класс 3 — Buffer-to-Buffer, а класс 2 — оба эти механизма.

    Buffer-to-Buffer flow control

    Принцип технологии — кредит в каждый дом отправка любого фрейма должна быть обеспечена наличием кредита на отправку.
    Все поступающие на вход порта фреймы помещаются в специальную очередь — буферы. Количество этих буферов определяется физическими характеристиками порта. Один буфер (место в очереди) соответствует одному кредиту. Каждый порт имеет два счётчика кредитов:
    TX BB_Credit — счётчик кредитов передачи. После отправки каждого фрейма, уменьшается на 1. Если значение счётчика стало равным нулю — передача невозможна. Как только от порта-приёмника получено R_RDY, счётчик увеличивается на 1.
    RX BB_Credit — счётчик кредитов приёма. Как только фрейм принят и помещён в буфер, уменьшается на 1. Когда фрейм обрабатывается или пересылается дальше, счётчик увеличивается на 1, а отправителю отправляется R_RDY. Если значение счётчика падает до 0, то в принципе, приём новых фреймов должен быть прекращён. На практике, из-за ошибок синхронизации кредитов может возникнуть ситуация, что источник прислал ещё один-несколько фреймов уже после того как RX BB_credit стал равен нулю. Данная ситуация называется buffer overflow. В большинстве реализаций порт обрабатывает такие ситуации «по-доброму» — за счёт резервных буферов. Хотя некоторое оборудование в таких случаях может сынициировать Link Reset.

    Отсюда исходит сильное влияние расстояния между портами на производительность. Чем выше расстояние и больше пропускная способность, тем больше фреймов будет отправлено (читай кредитов передачи потрачено) ещё до того как получатель получит хотя бы первый. Ситуацию облегчает особенность архитектуры FC-коммутаторов. Дело в том, что количество буферов не закреплено жёстко за каждым портом (кроме восьми обязательных), а является общим для всех. И в случае определения «дальних линков» (автоматически или вручную) количество выделяемых коммутатором буферов для этого порта увеличивается. Другой плюс общей памяти — не требуется гонять буферы от одного порта к другому внутри коммутатора.

    End-to-End flow control

    Конец

    Изначально мне казалось, что статья будет раза в два меньше, но в ходе написания всплыло много деталей, без которых счастье казалось не полным. Ещё кучу вещей, которые хотелось бы осветить, пришлось пока отбросить — процесс написания грозил стать бесконечным. Если у кого-то возникнут замечания, предложения и пожелания к тому, про что ещё стоит написать, буду признателен. И спасибо всем, кто дочитал до этого места.

    Были использованы материалы из следующих источников:
    IBM Redbook «Introduction to SAN and System Networking»
    EMC «Network Storage Concepts and Protocols»
    Brocade «SAN Fabric Administration Best Practices Guide»

    Конспект вебинара HonorCup E=DC2 для сдачи HCNA Storage. О вариантах подключениях устройств хранения к серверу тут.

    Примером FC SAN является даже прямое соединение между сервером и СХД т.к. на сервере используется FC HBA (подробнее в разделе Комоненты) внутри сервера. Недостаток direct – невозможно без остановки сервера подключить доп. СХД к серверу. Single-switch/dual-switch – подключение серверов к СХД через FC-коммутаторы, dual-switch, понятно, для отказоустойчивости/балансинга.


    Преимущества FC SAN

    Производительность (FC до 16гб/с), централизованное/гибкое управление, динамическая утилизация ресурсов, трафик не грузит LAN, масштабируемость, совместимость с SCSI устройствами хранения (особенно важно было при старте FC, не потребовало ничего менять на серверах).


    Fibre Channel

    FC описан в ряде стандартов, внизу скрин со стандартами в зависимости от уровня имплементации.

    В стеке FC 5 уровней с похожей на TCP/IP схемой инкапсуляции:


    Пример инкапсулиции SCSI команд в стек FC.


    Адресация

    Каждое устройство в сети Fiber Channel имеет уникальный номер WWN. WNN бывает двух видов, под оба выделено 64 бита, со своей частью под Vendor ID:

    Не проверенная инфа из вебинара: при подключении устройства к сети FC на основе WWNN делается 24-битный адрес устройства WWPN из-за ограничения поля адреса в FC в 24 бита. Сопоставлением имен WWNN и WWPN занимаются FC-коммутаторы.


    Логические топологии

    В сетях FC бывают три варианта топологий:


    Типы портов

    Типы портов в FC-сетях:


    Компоненты сети хранения FC

    • Storage device – устройство хранения (СХД, ленточные библиотеки)
    • FC коммутаторы – промежуточные устройства (судя по вебинару есть так же FC роутеры), часто на них поднят iSNS сервер для работы (см. в статье SAN на базе IP)
    • HBA (Host Bus Adapter) – по сути NIC сервера в FC SAN. Обычно HBA подключаются в PCI-e интерфейс на сервере/контроллере СХД. В FC используется оптика, поэтому HBA, помимо прочего, выполняет функцию преобразования электрических сигналов в оптические (и наоборот).
    • Optical fiber – среда передачи


    Подключение устройств Storage device (СХД) к сети FC делается через специальные FC порты на FC платах СХД. Это могут быть обычные FC платы или платы FCoe, с возможностью передачи FC-кадров через Ethernet (инкапсуляция FC в Ethernet).


    FC коммутаторы имеют порты под SFP FC (или gbic/xfp). Только в редких случаях порты бывают не SFP, а с жесткой заточкой под определенный тип FC.



    FC коммутаторы имеют поддержку Zoning – зонирование сети FC, что-то типо VLAN на Ethernet коммутаторах. Позволяет делить сеть FC на отдельные участки. Используется для упрощения администрирования, улучшения безопасности, увеличения производительности. Одно устройство может входить сразу в несколько зон.

    Есть два основных режима зонирования:


    HBA бывают SCSI, FB. Имеют часто возможность вставления SFP. Бывают многопортовые HBA. Наиболее популярные вендоры: Brocade, Emulex, Qlogic.


    Скорость и расстояние в технологии FC в зависимости от используемой Optical fiber. Расстояние от 0.5 метра до 50км (без использования промежуточных FC свичей). Лимит на минимальное сделан во избежание слишком мощного сигнала, в противном случае нужно ставить аттенюаторы. Скорость до 16Gbit/s. Внутри ЦОД чаще всего используют многомод. На многомоде расстояние до 500м, причем уменьшение скорости пропорционально увеличению расстояния.



    Multipath



    Сравнение FC SAN с IP SAN и Конвергенция FC SAN и IP SAN

    Обновите операционную систему, скачайте с сайта, извлеките из архива, установите пакет QConvergeConsole CLI for Windows и пакет UltraPath for Windows.


    2. Выбрать пакет для загрузки:


    3. Установку пакета выполнять в режиме Custom:


    4. Отключить все кроме драйвераFC и консольных утилит QConvergeConsole CLI:


    Сервер подключается к СХД по такой схеме:


    Многопутевой ввод-вывод (Multipath I/O)

    Использовать много-путевой доступ необходимо даже в том случае если на вашем сервере используется 1 порт.

    Иначе, например, в случае обновления прошивки на одном из контроллеров СХД произойдет временное отключение вашего сервера от СХД и данные на вашем LUN могу быть повреждены.

    Многопутевой ввод-вывод (Multipath I/O) — технология подключения узлов сети хранения данных с использованием нескольких маршрутов. В случае отказа одного из контроллеров, операционная система будет использовать другой для доступа к устройству. Это повышает отказоустойчивость системы и позволяет распределять нагрузку.

    Multipath устройства объединяются в одно устройство с помощью специализированного программного обеспечения в новое устройство. Multipath обеспечивает выбор пути и переключение на новый маршрут при отказе текущего. Это происходит невидимо для программ и процессов использующих это устройство. Кроме того Multipath способен распределять передачу данных по разным путям посредством различных алгоритмов, например:

    round-robin - Цикл по всем маршрутам в группе маршрутов, посылая одинаковый поток в каждый) queue-length Посылать следующую порцию данных по маршруту с наименьшим количеством невыполненных запросов service-time - Посылать следующую порцию данных по маршруту с наименьшими задержками, которые определяются делением общего объема невыполненного ввода/вывода на каждом маршруте на их относительную пропускную способность.

    Без Ultrapath ваша система будет видеть 4 устройства вместо одного.

    Преимущества Huawei UltraPath


    6. После перезагрузки системы в менеджере устройств (Секция Storage Controllers)убедитесь что установлена актуальная версия драйвера Qlogic и Ultra-Path support


    7. Запустить консоль Ultra-Path, зайти в меню System > Global Settings и установить параметры как на этом снимке:


    8. Зайдите в менеджер дисков, активируйте диск, создайте раздел с файловой системой.


    9. В консоли Ultra-Path выберите все пути (1), запустите Performance Monitor (2), выберите тип измерений / measurement (3), запустите мониторинг (4), дайте нагрузку на диск и убедитесь что данные передаются по всем путям.

    Читайте также: