antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 1 Апрель , 2014

Fibre Channel

Всем тем, кто работает в сетях хранения хорошо известно, что такое Fibre Channel (FC). Но «классическим» сетевикам это понятие может быть в новинку. Если не углубляться в детали для чего он нужен, то на high-level FC можно представить как переход от дисков, которые подсоединяются по проводам к сетевому подключению. Т.е. FC по сути представляет собой целиковый стек протоколов, по которым осуществляется доступ от инициатора (сервера) к фабрике.

Каждый физический FC интерфейс на коммутаторе может работать в одном из доступных ему режимов.

1. FC Ports

  • E-port (expansion). Подсоединяется к другому Е-порту для создания межкоммутаторного линка (Inter-Switch Link, ISL). Е-порты переносят фреймы, которые предназначаются конечным серверам. По сути, это аналог 802.1Q в LAN сетях.
  • F-port (fabric). Подсоединяется к периферийному устройству (серверу или диску). Аналог access-порта.
  • N-port (node). Порт на сервере (дисковом устройстве), подсоединяется к F-порту.

Точно также, как в классических IP-сетях используются МАС и IP-адреса, в FC предусмотрена своя адресация. У каждого порта есть свой World Wide Name (WWN), который покупается производителем у IEEE.

WWN’ы бывают двух типов:

  • Node WWN (nWWN). Уникально идентифицирует устройство. Каждая FC сетевая плата, коммутатор, шлюз и FC диск имеют по одному уникальному nWWN.
  • Port WWN (pWWN). Идентифицирует конкретный порт на устройстве. Т.е. двойной HBA (Host Bus Adapter) имеет три WWN: один nWWN и два pWWN.

Помимо встроенных аппаратных адресов у устройств есть логический адрес – FC Identificator (FCID). Это 3-ех байтный адрес, который назначается устройству фабрикой (!). Адрес состоит из трех частей:

  • Domain ID. У каждого коммутатора DID свой и является уникальным в фабрике.
  • Area ID. Характеризует группу портов внутри логической зоны.
  • Port ID.

Собственно, FCID используется в Data Plane операциях на FC-коммутаторах. За назначение FCID на коммутаторы отвечает специальный коммутатор, который называется основным (principal switch). Он выбирается в сети автоматически и не требует никакой дополнительной конфигурации. Единственное его отличие от всех остальных коммутаторов в сети – ответственность за назначение FCID. Но если Вам очень захочется, то можете руками определить основной свитч с помощью команды fcdomain priority (меньше – лучше).

Прим. Важно: для увеличения стабильность фабрики, никакой новый коммутатор не может стать основным при подключении в сеть, если такой свитч уже был выбран.

После того, как principal свитч был выбран, посмотрим, что происходит, когда в фабрику подсоединяется новое устройство (будь то новый диск, сервер или коммутатор).

Fabric Channel Login

Прежде чем N-порт сможет обмениваться данными с другим N-портом, должна пройти некая последовательность действий:

  • N-порт должен присоединиться к фабрике. Это процесс называется Fabric Login (FLOGI)
  • О новом порту должно быть известно всем остальным устройствам в фабрике

Рассмотрим процесс FLOGI. Он начинается в тот момент, когда N-порт подсоединяется к F-порту.

  • F-порт высылает стартовое сообщение к N-порту (not-operational sequence, NOS)
  • Когда N-порт получает NOS, отвечает сообщением OLS (Offline State Sequence), тем самым начиная инициализацию линка.
  • Далее N-порт высылает Link Reset (LR) в сторону F-порта, на что последний отвечает сообщением LR Response (LRR).
  • После поднятия линка N-порт высылает FLOGI-сообщение на зарезервированный адрес 0xFFFFFE (который закреплен за Login Server’ом – аналог DNS сервера в IPv4/IPv6).
  • Login Server высылает сообщение Accept в сторону N-порта. В сообщении содержится FCID устройства.
  • Следующим шагом является общение N-порта с Fabric Name Server (это не какой-то конкретный коммутатор, а фабрика целиком). N-порт на него передает свои основные параметры: buffer2buffer кредиты, MTU, поддерживаемые CoS’ы и пр.

После завершения Fabric Login, в результате которого устройство регистрируется на фабрике, по требованию (когда хост хочет передать данные на другой диск) начинается процесс Port Login (PLOGI). Его целью является установление логической сессии между двумя интерфейсами для последующего обмена информацией (аналог установления TCP-сессии).

PLOGI начинается с порта устройства-инициатора.

  • Инициатор высылает PLOGI сообщение в сторону нужной «цели», внутри которого содержатся операционные параметры (аналог флага SYN).
  • Удаленный порт отвечает сообщением ACC, которое говорит о готовности к общения (аналог SYN+ACK).

После этого сессия считается установленной и в дело вступают протоколы более высокого уровня (напр. запись базы данных SQL на удаленный диск). Сей процесс известен как Process Login.

Fibre Channel Flow Control

В сетях хранения данных важнейшим условием является обеспечение lossless среды (т.е. среды передачи данных без потерь) при обмене данными между портами серверов (эта критичность связана с работой SCSI). Это так называемый FC Flow Control, в основу которого положена структура кредитов, которая заключается в том, что Tx порт высылает кадры только в том случае, если есть уверенность в том, что Rx порт в данный момент не перегружен и может этот кадр принять и обработать. Весь процесс устроен примерно следующим образом:

  • Когда Tx высылает PLOGI запрос, Rx отвечает ему сообщением ACC. ACC кадр содержит в себе информацию о размере и числе кадров, который могут поместиться в буфер (BB_Credit). Tx сохраняет эту информацию себе в таблицу.
  • Также Tx запоминается значение, которое называют Buffer-to-Buffer Credit Count (BB_Credit_CNT), которое символизирует размер используемых кредитов. BB_Credit_CNT в самом начале выставляется в нулевое значение.
  • Каждый раз когда Tx посылает кадры, он увеличивает BB_Credit_CNT.
  • При получении кадра, Rx обрабатывает его и помещает в свой буфер. После этого Rx высылает Receiver Ready (R_RDY), информируя Tx о том, что буфер свободен.
  • Когда Tx порт получает R_RDY, он декрементирует значение BB_Credit_CNT.

Tx никогда не допускает ситуации, при которой BB_Credit_CNT становится больше, чем BB_Credit. Т.е. если Tx не получил подтверждения от Rx о свободном буфере, то передача кадров приостанавливается.

FC Zoning

Одним из важнейших понятий в FC является понятие Zoning. По сути, это некий аналог ACL, который распространяется на всю фабрику целиком. Также, применения зонинга является обязательным.

Основой зонинга является разделение различных устройств в разные зоны. Хосты, которые относятся к разным зонам не могут общаться между собой.

 

Подробнее Zoning описан в этой статье: http://www.anticisco.ru/blogs/?p=2480

Базовая настройка Fibre Channel

У циски FC поддерживается на Nexus5K и MDS9K. В случае Nexus’а сейчас нам доступны модели двух поколений: 5500 и 5600. Почти все коммутаторы имеют в парт-номерах приставку UP (например, Nexus 5548UP). Это значит, что эти порты – унифицированные, т.е. могут работать как в режиме FC, так и в режиме Ethernet. По умолчанию, все порты – Ethernet. У MDS все порты исключительно Fibre Channel.

Прежде всего (если мы работаем с N5K) надо перевести часть портов в FC режим. Есть нюанс: мы не можем поменять роль произвольных портов. Номера FC портов всегда должны начинаться с последнего парта в коммутаторе (или же в модуле расширения). Например, для 5548UP мы можем перевести порты с №32-27, но не можем с №17-20.

Делается это с помощью следующей конструкции:

slot <SLOT NUMBER>

 port <PORT NUMBER> type fc

После этого перезагружаемся. Либо ребутаем модуль расширения командой poweroff module <MODULE NUMBER>.

Настраиваем F-порт на устройстве. Это очень просто:

interface fc <INTF ID>

 switchport mode f

Далее необходимо связать этот порт с VSAN’ой.

vsan database

 vsan <VSAN ID>

 vsan <VSAN ID> interface fc <INTF ID>

Теперь настраиваем транк (Е-порты) между коммутаторами.

interface fc <INTF ID>

 switchport mode E

 switchport trunk allowed vsan <VSANs IDs>

По идее, это все. В SAN сетях чаще всего не требуется применять Inter-VSAN роутинг (в отличие от повсеместного InterVlan роутинга в LAN), т.к. классический Best-Practice дизайн предполагает наличие 2ух фабрик, которые физически изолированы друг от друга. И каждая из которых работает по отдельности (очень часто их называют Фабрика А и Фабрика Б).

Верификация

Посмотреть какая VSAN с каким интерфейсом ассоциирована можно командой

N5K-1 # show vsan membership
vsan 1 interfaces:
        fc2/1   fc2/2   fc2/3   fc2/4
        san-port-channel 3  vfc3/1
vsan 2 interfaces:
        fc2/3 vfc4/1
vsan 7 interfaces:
vsan 100 interfaces:
vsan 4094(isolated vsan) interfaces:

Можно также посмотреть, какие VSAN разрешены на конкретном интерфейсе (бывает полезно, если этот интерфейс – транк)

N5K-1 # show vsan membership interface fc2/1
fc2/1
        vsan:1
        allowed list:1-4093

После настройки необходимо убедиться в отработке процесса FLOGI

MDS-1# show flogi database
---------------------------------------------------------------------------
INTERFACE  VSAN    FCID            PORT NAME               NODE NAME
--------------------------------------------------------------------------
fc9/13     1     0xb200e2  21:00:00:04:cf:27:25:2c  20:00:00:04:cf:27:25:2c
fc9/13     1     0xb200e1  21:00:00:04:cf:4c:18:61  20:00:00:04:cf:4c:18:61
fc9/13     1     0xb200d1  21:00:00:04:cf:4c:18:64  20:00:00:04:cf:4c:18:64
fc9/13     1     0xb200ce  21:00:00:04:cf:4c:16:fb  20:00:00:04:cf:4c:16:fb
fc9/13     1     0xb200cd  21:00:00:04:cf:4c:18:f7  20:00:00:04:cf:4c:18:f7
Total number of flogi = 5.

В этом выводе видно, что к порту fc9/13 подключены 5 дисков, а также указаны их pWWN. Если FLOGI не отрабатывает, а порт настроен корректно в F-режим, то это сигнализирует о какой-то низкоуровневой проблеме (битый кабель, ASIC и пр.)

Посмотреть какому pWWN какой FCID был выдан можно так

MDS-2# show fcns database
--------------------------------------------------------------------------
FCID        TYPE  PWWN                    (VENDOR)        FC4-TYPE:FEATURE
--------------------------------------------------------------------------
0x010000    N     50:06:0b:00:00:10:a7:80                   scsi-fcp fc-gs
0x010001    N     10:00:00:05:30:00:24:63 (Cisco)           ipfc
0x010002    N     50:06:04:82:c3:a0:98:52 (Company 1)       scsi-fcp 250
0x010100    N     21:00:00:e0:8b:02:99:36 (Company A)       scsi-fcp
0x020000    N     21:00:00:e0:8b:08:4b:20 (Company A)
0x020100    N     10:00:00:05:30:00:24:23 (Cisco)         ipfc
0x020200    N     21:01:00:e0:8b:22:99:36 (Company A)       scsi-fcp

Напоминаю, что FLOGI хранятся локальной на коммутаторе, а FCNS – целиком на фабрике.

 

Метки: ,
Опубликовано: Data Center , Unified Fabric

 

» Оставить комментарий

Вы должны войти чтобы прокомментировать.