31 мая 2011 г.

Контроль передачи данных в конвергентных сетях. часть 3

Часть 2 здесь

Давайте сравним методы контроля передачи данных в Fibre Channel и 10GE. Основная из задача – обеспечивать временную остановку передачи данных в случае нехватки входящих буферов портов-получателей. Напомню, что в FC используется механизм контроля счетчиков буферных кредитов. Объединяясь в фабрику, порты коммутаторов обмениваются информацией об общем количестве входных буферов и выставляют соответствующие значения счетчиков буферных кредитов (BB-credits). Отправив пакет, порт декрементирует свой счетчик. Если он обнуляется, отправитель должен остановить передачу. Порт-получатель в свою очередь, обязан явно сообщать о каждой освободившейся ячейке буфера посылкой слова-примитива Receiver Ready (R_RDY), Получив R_RDY, порт получатель инктеменитует значение BB credits.
Такой механизм гарантирует, что порты отправитель и получатель всегда имеют точную информацию о количестве свободных буферов на другом конце линка.


Очень важно отметить, что R_RDY является не FC фреймом (с заголовком, payload, CRC и т. д.), а 4byte (40bit) словом, т. е. объектом минимального размера, допустим для передачи по протоколу Fibre Channel. Соответственно, с точки зрения утилизации каналов накладные расходы контроля передачи данных практически не заметны.

Однако у каждой медали есть обратная сторона. Время между отправкой фрейма и получением сигнала R_RDY сильно зависит от расстояния между портами. Чем больше расстояние, тем дольше отправитель должен ждать инкрементации BB Credits. А это, в случае нехватки кредитов, приводит к задержкам передачи данных и падению загрузки линка.


На приведенном графике значение длины линка, при котором начинается падение утилизации канала, зависит от скорости передачи (Transfer Rate) и количества входных буферов. Увеличение количества доступных входных буферов, приводит к тому, счетчик буферных кредитов обнулится на больших расстояниях. Соответственно, точка перегиба на графике сдвигается вправо.


Давайте теперь рассмотрим протокол Ethernet. Он не имеет примитивов и предусматривает передачу данных в сети только фреймами. Минимальный размер фрейма 64bytes. Если бы в этом протоколе контроль передачи данных был реализован таким же образом, как и в FC, он был бы в 16 раз менее эффективным. Поэтому и был выбран другой метод. Вместо того чтобы постоянно сообщать о количестве свободных буферов, устройства в Ethernet явно сообщают только о событии, когда их не хватает. Таким образом, существенно экономится пропускная способность каналов.


Главным недостатком этого механизма является то, что как и в Fibre Channel, общая эффективность контроля передачи данных заметно падает с увеличением длины линка. Утилизация длинных линков становится низкой.


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


На самом деле это выбор без выбора, ведь с отключением Flow Control появится вероятность потери фреймов, что для трафика FCoE совершенно не приемлемо. Поэтому производители увеличивают количество буферных ячеек. На данный момент Cisco повысила максимальную длину линков между своими коммутаторами с 300м. до 3км. (NX-OS 5.0(2)N1.1).

  • Nexus 55xx - Nexus 55xx – 3км.
  • Nexus 50x0 - Nexus 50x0 - 3 км.
  • Nexus 50x0 - Nexus 55xx - 3 км.
  • Nexus 55xx - Nexus 2232 – 300м.
  • Nexus 50x0 - Nexus 2232 – 300м.

Brocade, вроде, пока ограничивает длину линков 300м.

18 мая 2011 г.

Контроль передачи данных в конвергентных сетях. часть 2

Часть 1 здесь
Использовалась статья Cisco

Итак, мы остановились на том, что чем длиннее кабель, тем раньше должна быть передана пауза. Насколько раньше? Для того чтобы не потерять ни одного фрейма данных, “запаса” свободных буферов должно быть достаточно для сохранения всех фреймов которые будут посланы, пока PAUSE дойдет до отправителя и будет им обработана. Пороговое значение количества свободных буферов, при котором высылается пауза должно быть установлено, учитывая следующие факторы:
  • Обмен данными возможен в обоих направлениях. Если порт получатель уже начал передавать какой-то пакет, то прерывать эту передачу для того, чтобы послать PAUSE не разумно. Поэтому будет задержка, достаточная для передачи данных объемом MTU-1bit (рассматриваем самый худший случай). Напоминаю, MTU = Maximum Transmission Unit. Так как MTU для различных CoS может быть разным, нужно брать максимальный.

  • Скорость распространения электромагнитного сигнала в меди составляет около 70% от скорости в вакууме. В оптическом кабеле она еще чуть меньше и составляет 65%. Поэтому каждые 100м. кабеля добавляют 476нс. (медь) или 513нс. (оптика) задержки. За время пока PAUSE путешествует по 100м. кабелю, порт-отправитель на 10Gbps передаст 641byte (берем худший случай более медленной оптики). А так как на момент отправки PAUSE по кабелю к получателю уже передавались какие-то данные, этот объем надо удвоить. Округленно получаем 1300bytes на каждые 100м.

  • При получении PAUSE порт получатель должен ее обработать и подать команду на остановку трафика. Протокол PFC предписывает это сделать не более чем за 60 квантов времени (кванты обсуждались в предыдущем посте), что эквивалентно передаче 512bits * 60 квантов = 3840bytes.


  • После того, как послана команда на остановку трафика, необходимо все-таки дождаться, пока пакет, который уже начался передаваться, полностью уйдет. Соответственно, опять будет задержка, достаточная для передачи данных объемом MTU-1bit (самый плохой случай). причем здесь должно приниматься во внимание MTU только CoS FCoE.



Суммарно, мы получаем постоянную задержку, эквивалентную 9216bytes (максимальное MTU Ethernet) + 3840bytes + 2240bytes (максимальное MTU FCoE) = 15296bytes, а также задержку, 1300bytes на каждые 100м. кабеля. На максимально допустимой в данный момент длине кабеля 300м. мы получим задержку эквивалентную 15296bytes + 3 * 1300bytes = 19196bytes.

Есть еще один момент, о котором не стоит забывать. Он заключается в том, что буферная память организована не как единое непрерывное хранилище данных, а виде отдельных ячеек или блоков. Размеры этих ячеек зависят от конкретной модели устройств. Так, Cisco в своих коммутаторах Nexus 5000 и экстендерах Nexus 2000 они составляют 160bytes и 80bytes соответственно.

Ethernet фрейм минимального размера 64bytes в буферах Nexus 5000 будет занимать всего 40% объема ячейки. А так как неиспользованная память в ячейках применяться для хранения других данных уже не может, оставшиеся 96bytes просто пропадают.


Итак, в самом худшем случае фреймов 64bytes мы имеем 60% накладные расходы на использованный объем буферной памяти. Наши 19196bytes поместятся в 300 пакетов размером 64bytes. Это, в свою очередь, приведет к использованию 300 * 160bytes = 48000bytes буферной памяти (около 1/10 от общего объема памяти в Nexus 5000).

Итак, в рассмотренном конкретном примере, пороговое значение, при котором высылается PAUSE на передачу FCoE, равно 300 буферных ячеек. Использование функциональности lossless Ethernet с другими сетевыми протоколами, например iSCSI, за счет снижения количества ретрансмитов данных дает дополнительные преимущества производительности. Однако, стоит учитывать, что в этом случае пороговое значение паузы будет еще выше. В случае Cisco Nexus 5000 оно будет равно 409 буферных ячеек.

В данный момент Cisco NX-OS поддерживает PFC только до 3 CoS:
  • 1x FCoE (mini Jumbo MTU 2240bytes)
  • 1x сетевой трафик с jumbo MTU 9216bytes
  • 1x сетевой трафик со стандартным MTU 1500bytes
Часть 3 здесь...

    16 мая 2011 г.

    Контроль передачи данных в конвергентных сетях. часть 1

    Использовалась статья Cisco

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

    Одной из причин ненадежности Ethernet заключается в отсутствии обратной связи между получателем данных и их отправителем. Проблема особенно критична в сетях с большим количеством хопов (hops). Часто бывает так, что отправитель передает данные с большей скоростью, чем получатель их обрабатывает. Это приводит к тому, что входные буферы получателя быстро заполняются (buffer overflow), а новые пакеты, которые хранить уже негде, просто отбрасываются (drop). Причем, никакого уведомления об этом отправитель не получает.

    В сетях передачи данных такая ситуация не является критичной. Обнаружив, что каких-то Ethernet фреймов не хватает (drop detection), протоколы сетевого (3) уровня просят переслать их заново. Получив недостающие пакеты, эти протоколы их упорядочивают (in-order) и передают выше по стеку.

    Ситуация значительно хуже в сетях хранения данных. Протокол Fibre Channel не осуществляет ретрансмиссию только отдельных фреймов (так же, как и не допускают доставку пакетов в неправильной последовательности - out of order delivery). В случае обнаружения потери части фреймов, устройствам приходится передавать заново всю последовательность (sequence). Естественно, это приводит к катастрофическому падению производительности.

    Для того, чтобы избежать возможность потери фреймов в связи с переполнением входных буферов принимающих устройств, реализован специальный механизм контроля передачи данных (flow control). В “чистом” Fibre Channel этот механизм работает на уровне FC2. Он построен на первоначальном обмене информацией о количестве имеющихся в наличии входных буферов, дальнейшем уменьшении значений счетчиков буферных кредитов (BB credits) при отправке данных и их инкрементации при получении от порта-соседа коротких сообщений R_RDY об освобождении буферов. Подробнее в 3 части.

    В конвергентных сетях на базе 10Gbps Ethernet при передаче FCoE трафика мы также обязаны использовать контроль передачи данных. Однако там для этого используется совсем другой подход. Порт-получатель данных постоянно следит за количеством своих свободных буферов. Как только он видит, что их количество достигает некого минимального уровня, порту-отправителю посылается специальный (MAC control frame) фрейм PAUSE, уведомляющий о необходимости на какое-то время приостановить передачу всех данных. Однако, такой подход не является оптимальным, так как в конвергентных сетях остановка FCoE трафика не должна приводить к задержке передачи данных других сетевых протоколов.
    Поэтому механизм контроля передачи данных на базе PAUSE расширен функциональностью PFC (Priority Flow Control). Различным протоколам назначаются соответствующие классы сервиса (Classes of Services, CoS). Значение CoS передается в одном из полей VLAN-тега пакетов (VLAN tag). Контроль передачи осуществляется независимо для каждого из 8x возможных CoS. Структура пакетов не использующих и использующих PFC показана на рисунке.



    Продолжительность паузы для каждого CoS определена в соответствующем 2byte поле количеством квантов времени. Один квант представляет собой время, необходимое для передачи 512bits данных на текущем Transfer Rate (в данном случае 10Gbps). Значение ноль принудительно снимает передачу данных с паузы.
    Насколько я понял, в данный момент коммутаторы Cisco не пытаются интеллектуально подходить к определению необходимой продолжительности паузы. Вместо этого выставляется очень большое значение PAUSE, а затем явным образом снимается контрольным фреймом со значением 0. Как это работает у других, я не знаю.

    Для того, чтобы установить паузу на передачу данных, порт получатель должен сгенерить управляющий фрейм, передать его по кабелям в виде оптического или электрического сигнала (ох, как я всем надоел своими сетованиями на то, что скорость распространения электромагнитной волны в нашей Вселенной такая маленькая ;) ), после чего этот фрейм должен быть обработан отправителем. Все это происходит отнюдь не мгновенно. Поэтому получатель должен постоянно следить за своими буферами и заранее (!) отправлять PAUSE, предполагая скорое переполнение своих буферов. Чем длиннее кабель, тем раньше должна быть передана пауза.

    Часть 2 здесь...

    6 мая 2011 г.

    Заполнители в FC

    Мой старый приятель и бывший коллега Юра Яворский описал интересный случай из практики траблшутинга SAN. С согласия Юры (большое спасибо!) делюсь с вами.

    "Столкнулся недавно с интересной особенностью при настройке оборудования у клиента. Система хранения IBM (LSI) ни в какую не виделась коммутатором Brocade, а инициаторы работали нестабильно, т.е. порты коммутатора то "видели" их, то нет. Ошибка явно была связана с потерей синхронизации в линке. Причем ручные настройки портов ни к чему не приводили. Оказалось, что в новых версиях прошивки FOS значения примитивов заполнителей на каждом порту по умолчанию стоят в ARB. Помогает в этой ситуации смена значения на IDLE при помощи команды portCfgFillWord. Смена значения по умолчанию производителем тоже была не случайна. Дело в том, что по стандарту FC-FS-3 действительно должен использоваться примитив ARBff. Вот выдержка из указанного стандарта:

    10.3.5 Emission Lowering Protocol
    An FC-0 standard (e.g., FC-PI-3) may specify the use of Emission Lowering Protocol when using the 8B/10B transmission code.
    When Emission Lowering Protocol is used, the Fill Word shall be the ARBff Ordered Set.
    When Emission Lowering Protocol is not used, the Fill Word shall be the Idle Ordered Set.

    Причина кроется в интерференции волн при использовании слов заполнителей IDLE. Таким образом на частотах 8,5GHz использование ARBff строго рекомендовано. Источники ниже:


    Почему же порты некоторых оконечных устройств продолжают работать в несовместимом формате? Ответ думаю прост – несоблюдение стандартов. Хотя вопрос может быть тонким и рекомендация все равно остается рекомендацией. Поэтому именно для возможности гибкой настройки примитивов в FOS и была добавлена команда portCfgFillWord."

    Я честно говоря не предполагал, что использование ARB дает заметные преимущества еще и с точки зрения уменьшения EMI (в документах по ссылкам даны графики). Интересно.

    На всякий случай напомню, что изначально примитивы ARB() применялись только для арбитража доступа устройств в топологии FC_AL. Однако Brocade нашла еще одно применение для них. Они используются для идентификации Virtual Channels (VC). Коммутатор следит за адресом AL_PA заполнителя ARB(). Фрейм, идущий за ARB() с неким AL_PA, считается принадлежащим соответствующему VC. Соответствие AL_PA и номера виртуального канала показано в таблице.

    Тип порта
    Кол-во
    VC
    VC
    Приоритет
    AL_PA
    Описание
    F
    1
    VC7
    2 или 3 (по умолчанию 3)
    0xda
    Подключение к N-порту
    FL
    1
    VC7
    2 или 3 (по умолчанию 3)
    0xda
    Подключение к NL-порту
    E
    FC_SW2
    1
    VC0
    0
    0xef
    Подключение к E-порту в режиме совместимости (InterOp)
    E
    8
    VC0
    0
    0xef
    Служебный трафик (класса F)
    VC1
    1
    0xe8
    Служебный трафик (F_BSY и F_RJT, опционально контроль линка трафика класса 2)
    VC2
    2 или 3 (по умолчанию 2)
    0xe4
    Данные оконечных устройств (класса 2 или 3)
    VC3
    2 или 3 (по умолчанию 2)
    0xe2
    Данные оконечных устройств (класса 2 или 3)
    VC4
    2 или 3 (по умолчанию 2)
    0xe1
    Данные оконечных устройств (класса 2 или 3)
    VC5
    2 или 3 (по умолчанию 2)
    0xe0
    Данные оконечных устройств (класса 2 или 3)
    VC6
    2 или 3 (по умолчанию 3)
    0xdc
    Multicast трафик (класса 3)
    VC7
    2 или 3 (по умолчанию 3)
    0xda
    Multicast и broadcast трафик (класса 3)
    C
    17



    Используется только при прямом соединении ASIC Condor друг с другом.

    15 апреля 2011 г.

    A great place to work

    Пятница вечер. Настроение уже не рабочее. Предлагаю расслабить мозг и потратить три минуты на что-нибудь бессмысленное. Например, посмотреть драйвовый клип про мою родную Мега-корпорацию.

    Народ, по моему, делает это с удовольствием :) Даже Туччи, Холлис и другие генералы отметились.


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

    Добавлено:  в этом году мне представилась возможность побывать в Лас Вегасе на главном стораджевом событии года EMC World  Однозначно, лучшая техническая конференция из всех, на которых я побывал! Соотношение правильных знаний и минимального количества бул-шит маркетинга превзошло все ожидания.
    Ну, да не об этом речь. В предпоследний день конференции EMC организовало пьянку-гулянку с группой The Fray на сцене. Они сыграли и песню, которая была в клипе. Так вот, в качестве гитариста на сцену вышел сам Генералисимус Джо Тучи. Есть еще порох у чувака! Я честно удивился. Было драйвово...

    7 апреля 2011 г.

    Нюансы работы Principal switch

    В комментариях к посту Приостановка передачи в SAN Виктор (кстати, огромное спасибо) задал очень интересные вопросы. Чтобы их не потерять, я решил ответить в отдельном посте.

    Вопросы синим, ответы зеленым.


    1) В той статье, на стр.51 указывается, что если Fabric стабильна и если подключается новый switch, то выборы Principal switch не происходят. Что означает "стабильна"? 

    “Стабильна” в данном контексте означает, что в фабрике не происходит процессов перевыборов Principal коммутатора или других переходных процессов.

    Правда ли, что если Fabric имеет несколько switch-ей, и если на них выключено питание, а затем включено, то 1-й из них, кто загрузится быстрее будет Principal switch?

    Да, если они заранее соединены ISLs между ними.

    Тогда, как в этом случае форсировать выборы другого Principal switch-а, когда все остальные switch-и загрузятся если мне этого захочется и кстати: а какая может быть объективная причина это сделать, если Fabric работает без проблем?

    Principal коммутатор рекомендуется загружать в первую очередь. Форсировать можно выключением текущего Principal, тогда назначится коммутатор с установленным флагом Principal Selection Mode или с минимальным WWN.
    Если все работает без проблем, я считаю, форсировать ничего не надо. Однако поставить флаг все же стоит. Эта процедура совершенно безопасная, а соответствующий Principal коммутатор будет выбран (важно, что здесь используется “жесткий” термин selected, а не “справедливый” elected) после следующей модернизации микрокода.

    2) Можно ли более подробно пояснить: как выполняется сравнение WWN как операция над ASCII строками при выборе Principal switch? Вы сравниваете два WWN: 10:00:00:0d:ec:01:00:00 и 10:00:00:0d:ec:0a:00:00. ASCII код a (97) больше, чем ASCII код 1 (49). Выигрывает меньшее по идее.

    Да, вы правы. В статье ошибка, должно быть наоборот.
    Так как свои статьи я обычно перечитываю достаточно редко, то обнаружил ее совершенно случайно только прошлым летом. Интересно, что до вас ее никто еще не заметил ;) или поленился сказать.

    3) Могли бы ли вы пояснить ситуацию со временем: одна из функций Principal switch – синхронизация времени во всей Fabric. Как тогда следует пользоваться командами «tsclockserver ip_addr_ntp_server» и «date»? По идее я должен дать их только на Principal switch?

    Команда tsclockserver используется для синхронизации Principal коммутатора с NTP сервером, соответственно пользоваться ей надо только на Principal switch.

    Как тогда Principal switch заставит другие switch-и синхронизировать время с его собственным?

    Principal switch будет периодически (каждые 64 сек.) рассылать другим коммутаторам ELS фреймы с адреса FFFFF6.

    Надо ли что-то делать на других switch-ах?

    Нет, все распространение апдейтов времени на остальные коммутаторы происходит автоматически. На всех коммутаторах есть свой локальный Time Server daemon (LOCL), однако с NTP сервером соединяется и бродкастит время только Principal switch. Получив апдейт, коммутатор переписывает свои локальные установки времени.

    Что произойдет со временем, если произойдут перевыборы Principal switch-а?

    При присоединении к фабрике новый коммутатор получает от Principal switch IP адреса всех NTP серверов и сохраняет их где-то во flash памяти. Я предполагаю, что после перевыборов новый Principal switch просто синхронизируется с NTP сервером.

    4) Насчет zoning: если я хочу использовать только лишь zoning на основе PID, то мне следует опасаться перевыборов Principal switch? Тогда единственный способ избежать проблем – это включить на каждом switch-е Insistent Domain ID Mode командой «configure» ?

    Включенный флаг Insistent Domain ID Mode вообще является best practice не зависимо от способа зонирования. В случае использования в любых настройках фабрики или адресации оконечных устройств 24-битных адресов PID, этот параметр становится критичным и обязательным к применению.

    5) В целом: в чем заключается весь полезный функционал Principal switch? Только лишь в автоматическом назначении Domain ID и синхронизации времени?

    Это основные его функции. Замете, принципиально важные для функционирования фабрики.

    Также Principal switch участвует в выборе Principal ISLs, по которым в дальнейшем будет передаваться информация об изменении конфигурации фабрики. Spanning tree гарантирует невозможность “закольцовывания” служебного трафика.

    Сейчас точно не припомню в каких коммутаторах (Brocade, Cisco или McData) (где-то записано, но на бумажных носителях Ctrl-F не работает ;( ) управление и мониторинг фабрикой осуществляется только через Principal switch. Т. е. даже когда вы задаете команду с какого-то другого коммутатора, она по протоколу IPFC (не путать с FCIP) засылается на Management server,находящийся на Principal switch, который, в свою очередь, формирует ответ и посылает обратно на коммутатор, с которого пришел запрос. Именно по этому рекомендуется “рулить” фабрикой с Principal коммутатора.

    Добавлено в ответ на комментарий все-таки нашел в своих записях упоминание о том, что так работают коммутаторы Cisco. Источник - общение за кофе с преподавателем курсов по Cisco MDS в 2006 г. Если это правда, то и в современных коммутаторах так.

    Какова ситуация с Brocade не знаю. При случае спрошу (важно знать кого   ;)   ).

    В документации по Cisco упоминание про Principal switch так найти и не смог.Есть более пространное: "An NMS (network management systems) host running IP protocol over a FC interface can access the switch using the IPFC functionality. If the NMS does not have a Fibre Channel HBA, in-band management can still be performed using one of the switches as an access point to the fabric."



    28 марта 2011 г.

    Самый эффективный протокол

    Недавно попались на глаза расчеты эффективности различных протоколов. Как-то они мне показались не убедительными: то поле в хедере забудут, то из максимального payload не вычтут часть накладных расходов. В общем, решил все пересчитать сам и свести в одну табличку, пригодится в качестве шпаргалки по протоколам.
    Может тоже что-нибудь забыл, зато с честной совестью и ощущением полной собственной правоты  ;)

    Напомню, "эффективность" считается как отношение максимального объема полезных данных к сумма всех передаваемых данных.

    Размеры в байтах.  Аббревиатуры: SOF - Start Of Frame, EOF - End Of Frame, IFG - Iner-Frame Gap.

    Поле
    Ethernet (Untagged Standard  Frames)
    Ethernet (Tagged Standard  Frames)
    Ethernet (Tagged Jumbo  Frames)
    iSCSI  (Tagged Standard  Frames)
    iSCSI (Tagged Jumbo Frames)
    FCIP  (Untagged Baby Jumbo  Frames)
    FCoE (Untagged Baby Jumbo  Frames)
    Fibre Channel (FCP, Class3)
    SAS
    Preamble
    7
    7
    7
    7
    7
    7
    7


    Ethernet SOF
    1
    1
    1
    1
    1
    1
    1


    Ethernet Header
    14
    16
    16
    16
    16
    14
    14


    IP Header



    20
    20
    20



    TCP Header



    20
    20
    20



    iSCSI Header



    48
    48




    FCIP Header





    24



    FCoE Header






    16


    SOF





    4
    4
    4
    4
    FC Header





    24
    24
    24

    SAS Header








    24
    Maximum payload
    1500
    1500
    9000
    1412
    8912
    2112
    2112
    2112
    1024
    CRC
    4
    4
    4
    4
    4
    4
    4
    4
    4
    EOF + Padding





    4
    4
    4
    4
    IFG
    12
    12
    12
    12
    12
    12
    12
    24
    2
    SAS R_RDY and ACK overhead








    8
    Efficiency
    97,98%
    97,85%
    99,63%
    92,11%
    98,66%
    94,33%
    96,39%
    97,24%
    95,70%

    Пятиминутная медитация на таблицу в качестве сатори дает общее понимание структуры протоколов...  Для совсем ленивых прилагаю уже пережеванную картинку...  ;)



    В общем, получается, что самый "выгодный" стораджевый протокол все-таки Jumbo iSCSI...
    Ему бы еще и остальные достоинства FC или хотя бы FCoE....   ;)   но это тема отдельного разговора.

    Кстати, понравилась эта статья про Etherner фреймы, кратко и очень толково. В контексте активного продвижения 10G CEE в мир storage, все дружно вспоминаем уже позабытую. сетевую теорию...  :)