Сети Fibre Channel SAN на больших расстояниях: Часть 2
Часть 1 | Часть 2
Расчет скорости данных на больших расстояниях
Прежде, чем вы начнете установку и использование сетей хранения данных Fibre Channel SAN, необходимо разобраться с некоторыми основными компонентами FC SAN, разрешениями на передачу очередного пакета данных в буфере и тем, как это все работает.
Кадр в Fibre Channel немного похож на пакет в IP. FC кадр (frame) по размеру равен примерно 2k. Если произвести некоторые математические подсчеты, с использованием скорости света, можно вычислить, что при пропускной способности в 1 Gbps FC кадр, при прохождении через оптический кабель, равен примерно 4 км в длину; при 2 Gbps FC кадр уменьшается до 2 км в длину.
Используя аналогию с машинами на шоссе, или с поездами на железной дороге, можно заметить, что пропускная способность, которую можно получить от кабеля зависит от того, насколько плотно и полно следуют друг за другом в кабеле FC кадры. Данный показатель довольно сильно отличается от времени ожидания (latency), которое зависит от длины кабеля и, конечно же, от любых задержек, вызванных различными устройствами, через которые проходит сигнал.
Fibre Channel работает через устройства, которые осуществляют коммуникацию друг с другом, сообщая о размерах буфера. Это означает, что каждое устройство “знает”, что оно может передать некоторое количество FC кадров без остановки. Как только устройство на другом конце получило данные и перенесло их из буфера, оно отсылает назад сигнал, сообщающий, что буфер вновь свободен. Отсюда термин - разрешение на передачу очередного пакета данных в буфере (buffer credit). Безусловно, это сообщение должно пройти весь путь по кабелю.
Это означает, что для того, чтобы кабель был всегда заполнен пересылаемой информацией (что в свою очередь означает максимальную пропускную способность), необходимое число разрешений на передачу очередного пакета данных в буфере (buffer credit) должно быть достаточным для пересылки данных туда и обратно по кабелю. Таким образом, для 10-километрового кабеля мы получаем 20-километровый путь туда и назад. Если используется 2 Gbps, длина FC кадра равна 2 км, следовательно, для достижения максимальной пропускной способности, необходимо 10 разрешений на передачу очередного пакета данных в буфере (buffer credit). Аналогично, для 100-километрового кабеля понадобится 100 разрешений на передачу очередного пакета данных в буфере (buffer credit) при 2 Gbps.
Ограничения на разрешение на передачу очередного пакета данных в буфере (buffer credits)
Первое, при работе на больших расстояниях, очень важно точно осознавать, зачем вам необходимо использовать это дальнее соединение. Если вы осуществляете 50-километровую синхронную репликацию критически важных баз данных, и 70% операций, осуществляемых базой данных, приходится на чтение, а остальные 30% - на запись, то та пропускная способность, которая вам действительно необходима, может составлять лишь долю 2 Gbps.
Итак, вернемся к математике: 2 Gbps и 50 км – это 100-километровый путь данных туда и назад по кабелю с кадрами FC, длиной 2 км. Таким образом, нам необходимо 50 разрешений на передачу очередного пакета данных в буфере (buffer credit) для полного использования пропускной способности в 2 Gbps. Если же мы даем соединению только 25 разрешений на передачу очередного пакета данных в буфере (buffer credit), мы используем кабель только наполовину. Это означает, что, несмотря на то, что данные передаются при пропускной способности в 2 Gbps, мы пересылаем данные только половину времени, таким образом, получается 1 Gbps. Конечно, если бы мы только попытались поработать с соединением в 1 Gbps, длина FC кадров составила бы 4 км. Это также дает 25 разрешений на передачу очередного пакета данных в буфере (buffer credit).
В реальности, результаты будут зависеть от многих факторов, некоторые из которых не просто учесть. Поэтому наилучшим способом является проследить и оценить, что происходит в вашей сети.
Существуют, безусловно, иные аспекты, которые могут ограничить использование разрешений на передачу очередного пакета данных в буфере (buffer credit). Например, соединение коммутатор – коммутатор: если дизайн коммутатора не всегда позволяет, чтобы FC кадры были мгновенно введены из порта ввода в буфер или выведены из буфера в порт вывода, то место в буфере освобождается далеко не сразу. Возможно, дело в загрузке объединительной платы; а возможно, и в координатной архитектуре коммутатора, в этом случае нужно подождать, пока будет установлено соединение с устройством на другой стороне кабеля. Все эти сложные факторы могут помешать вам получить максимальную пользу от разрешений на передачу очередного пакета данных в буфере (buffer credit), на которую вы рассчитываете.
В качестве еще одного примера можно привести следующую ситуацию – у вас медленный дисковый массив с ограниченным размером кэша, он не может достаточно быстро принять данные с коммутатора. Поэтому вы постепенно уменьшаете число разрешений на передачу очередного пакета данных в буфере (buffer credit), возвращающихся к источнику данных – это может легко вызвать проблемы с производительностью соединения.
Не очень распространенная проблема, особенно для DWDM (высокоплотное мультиплексирование с разделением по длинам волн - dense wavelength division multiplexing) – это потеря FC кадров, влекущая за собой потерю разрешений на передачу очередного пакета данных в буфере (buffer credit). Если DWDM система изменяет маршрут, то она, вероятнее всего, сделает это достаточно быстро для того, чтобы не потерять Fibre Channel соединение. Если речь идет о кадрах данных, то различные протоколы высокого уровня обнаружат и отправят данные вновь, сохраняя, таким образом, целостность данных. Однако, если теряется сообщение (о передаче очередного пакета данных), то мы можем никогда не получить разрешения на передачу очередного пакета. Действительно, даже обычные ошибки передачи могут вызвать подобное и без DWDM. Таким образом, со временем мы получаем все меньше и меньше разрешений на передачу очередного пакета данных в буфере (buffer credit) и, следовательно, пропускная способность соединения становится все меньше и меньше – до тех пор, пока мы не перезапустим систему вручную.
Организации, занимающиеся развитием стандартов Fibre Channel, работают над решением, которое позволит устройствам дважды сверятся друг с другом и таким образом восстанавливать потерянные разрешения на передачу очередного пакета данных в буфере (buffer credit), но разработка такого решения может занять достаточно долгое время. Для соединений, работающих на больших расстояниях, число разрешений на передачу очередного пакета данных в буфере (buffer credit) очень важно, и поэтому стоит время от времени наблюдать за производительностью в этом секторе.
Согласование скорости
Следует отметить, что если для соединений вы используете устройство, которое может работать на разных скоростях и осуществлять автоматическую коммуникацию, не используйте эти функции. Настройте скорость вручную. Существует несколько интересных, небольших, но важных деталей, которые могут вызвать проблемы и поэтому проще просто установить соединение на ту скорость, которую вы собираетесь использовать.
Еще одним хорошим советом может быть следующий – если у вас есть соединение, длиной в 500 метров и пара 2 Gbps коммутаторов, установите соответствующие порты на 1 Gbps и вы окажетесь в рамках правильной Fibre Channel спецификации.
Заключение
Таким образом, действительность заключается в том, что сети Fibre Channel, работающие на больших расстояниях, вовсе не так уж сложны, если вы понимаете несколько главных и основных моментов. Настоящие сложности наступают в результате невозможности одновременно быть двух разных местах одновременно (что, в общем-то, достаточно важно для 100-километрового соединения), понимания потоков данных (сервер на ленту, сервер на хранилище, хранилище на хранилище, синхронных, асинхронных и т.д.) и понимания природы операционных систем, приложений и массивов хранения.
Часть 1 | Часть 2