Какой бы быстрой ни была ваша система хранения данных, всегда хочется еще быстрее. Растет как объем хранимых данных, так и количество сервисов, работающих с ними. И все это требует скорости. Скорость становится ключевой характеристикой и порой даже объектом вожделения. Поэтому сегодня мы поговорим о некоторых способах ускорения производительности (и не только) в СХД Qsan.

В целом, способы увеличения производительности можно условно разделить на два типа:
"экстенсивный" подход, когда производительность растет за счет увеличения количества тех или иных компонентов;
"интеллектуальный" подход, когда производительность меняется благодаря дополнительным программным алгоритмам.
"Интеллектуальным" подходом является, например, применение SSD кэша или алгоритмы Auto Tiering, о чем мы ранее уже писали. В данной же статье давайте рассмотрим примеры "экстенсивного" подхода, тем более что на практике они, порой, более востребованы.
Samba Multichannel
Одним из часто используемых методов увеличения производительности является использование более одного физического соединения. В таком случае становится очевидным, что, распределив траффик между линками, мы сможем преодолеть лимит пропускной способности одного линка и в теории кратно увеличить скорость передачи данных. Обычно здесь применяют различные типы link aggregation и MPIO (который, кстати, применим также и в Fibre Channel). Однако, существует и чуть менее распространенный алгоритм распределения траффика по сетевым линкам - Samba Multichannel.
Данная технология отнюдь не является новинкой. Она появилась вместе SMB 3.0 более 10 лет назад. И сейчас поддерживается широким кругом операционных систем и NAS различных производителей. Начиная с версии FW 4.2.0 данная технология стала также доступна и в Unified СХД Qsan. Причем, поддерживается она как в одноконтроллерных NAS, так и в двухконтроллерных системах серии NXT.
При обычной работе протокола SMB при обращении к сетевой папке клиент создает единичное TCP подключение к серверу. Как понятно из названия, Samba Multichannel применима только к работе с сетевыми папками через протокол SMB. Поэтому при использовании данной технологии при обращении к сетевой папке создается сразу несколько TCP подключений с клиента на сервер. И если с обоих сторон имеется несколько физических линков, то соединения распределяются между ними. В результате появляется возможность увеличить пропускную способность между клиентом и сервером.
Разумеется, чтобы такой режим заработал, необходимо соблюсти ряд условий, а также произвести некоторую настройку.
Все порты на СХД и клиенте, планируемые к использованию с Samba Multichannel, должны быть в одной IP подсети;
В случае использования двухконтроллерной СХД, такие порты должны быть на одном и том же контроллере. Возможно использование Cluster IP, но они также должны располагаться в пределах одного контроллера;
Физическая скорость портов должна быть одинаковой. Если скорость будет разной, то пострадает итоговая производительность;
-
На стороне клиента Samba Multichannel должна быть включена:
На Windows командой "Set-SmbClientConfiguration -EnableMultiChannel $true" в Powershell;
На Linux (Ubuntu) командой "sudo mount -t cifs //<NAS IP>/<CIFS_share> /mnt/your_mount_point -o username=your_id,password=your_pw,vers=3.0,max_channels=2" в терминале. Здесь max_channels – это количество используемых линков;
На стороне СХД необходимо включить Samba Multichannel на вкладке System -> Service -> CIFS -> SMB Multi-channel.
Также не стоит забывать о некоторых особенностях/ограничениях Samba Multichannel, происходящих от самого протокола SMB 3.
Включение Samba Multichannel не влияет на уже открытые соединения к сетевым папкам. Для активации режима необходимо подключиться к папке заново;
Если в процессе работы произойдет отказ одного из активных линков, работа продолжится по оставшимся путям. Однако, при восстановлении пути он не будет включен в работу до момента переподключения к сетевой папке;
Не рекомендуется использовать Samba Multichannel поверх соединений с Link aggregation во избежание конфликтов при распределении трафика.
Мы провели быстрый тест для того, чтобы оценить производительность при активации режима Samba Multichannel. Сервер был подключен двумя линками 10GbE к СХД, после чего был запущен fio с параметрами на cache hit (сверхмалый размер тестируемой области), когда оценивается скорость ответа СХД, а не ее дисковая подсистема.
Без использования Samba Multichannel производительность достигала 1.1ГБ/с;
С использованием Samba Multichannel производительность достигала 2.1ГБ/с.
Итог очевиден. Использование Samba Multichannel позволяет увеличить пропускную способность при доступе к CIFS папке. Поэтому для ряда сценариев использования СХД функция может оказаться весьма полезной.
QScale
Другим способом увеличения производительности является горизонтальное масштабирование. Т.е., к существующей СХД добавляется еще одна такая же. В результате мы увеличиваем количество линков, контроллеров и накопителей. Вполне очевидно, что при параллельном доступе со стороны хостов должен быть заметный выигрыш в итоговой производительности.
В СХД Qsan поддержка данного режима – QScale, будет доступна начиная с версии FW 4.2.1. На первоначальном этапе горизонтальное масштабирование можно будет применить только к файловым протоколам. Блочный доступ обещают добавить позднее с выходом новых версий FW.
Суть технологии QScale заключается в создании единого пространства имен (namespace) поверх существующих файловых томов, расположенных на СХД. Такой том – Cluster file volume – будет единым для всех систем, входящих в кластер. Содержимое кластерного тома синхронизируется между СХД посредством протокола NFS. Также в такой структуре расширяется доступное пространство хранения. Т.е., емкости файловых ресурсов отдельных СХД складываются.

С точки зрения организации доступа к данным, клиенты могут обращаться к любой СХД по ее IP. Если требуемые данные находятся на той же СХД, к которой произошло обращение, то доступ к ним организуется, по сути, локально. Если запрошенные данные хранятся на другой СХД, то запрос транслируется к ней. С записью новых данных все несколько проще. Данные записываются на ту СХД, к которой произошел доступ, при условии, что там имеется свободное место. Иначе происходит перенаправление на соседнюю систему.
Исходя из такого принципа работы QScale, производительность, которая является предметом обсуждения данной статьи, будет улучшена только в том случае, когда происходит доступ к данным с разных клиентов, запрошенные данные физически расположены на разных СХД и эти клиенты обращаются напрямую именно к СХД-владельцам. Во всех остальных случаях QScale обеспечит лишь распределение данных между системами и соответствующее удобство при доступе к этим данным.
Также нелишним будет отметить некоторые особенности/требования организации работы Qscale:
Поддерживается до 8 СХД в составе кластера. СХД не обязаны быть одной модели и иметь идентичную дисковую конфигурацию. Однако, для наилучшей производительности, как минимум порты ввода/вывода должны иметь одинаковую пропускную способность;
Каждая СХД может входить в состав только одного кластера;
В составе кластера только одна СХД имеет статус Primary (т.е. координирует действия других). Если Primary СХД становится недоступной, выбирается другая СХД на эту роль путем жеребьевки;
У всех СХД должны быть синхронизированы время (в том числе Time zone) и они должны использовать один и тот же AD/LDAP (если применимо);
Двухфакторная авторизация не поддерживается при работе в составе кластера;
Для работы QScale требуется платная лицензия, которая применяется для каждой СХД, входящей в кластер.
Для управления QScale также необходимо установить ПО Xinsight на любом PC/VM. Его роль – исключительно для настроек процесса. Т.е., при отказе Xinsight, существующие scale-out папки продолжат работать.
Хотя добавление очередной ноды может при удачном стечении обстоятельств почти линейно увеличить общую производительность, из-за синхронизации их работы при помощи NFS, логично ожидать некоторые потери относительно использования аналогичных СХД в режиме standalone. Поэтому, согласно проведенным тестами, добавление новой ноды позволяет привнести в общую копилку только ~70% ее истинной производительности. Результат провальным не назовешь. Однако, есть еще поле для деятельности у инженеров Qsan в плане улучшения алгоритмов работы QScale.
Разумеется, в рамках данной статьи были рассмотрены далеко не все возможные методы увеличения общей производительности. В арсенале Qsan для этого есть и другие технологии. Также не стоит забывать, что сама по себе СХД – это не "сферический конь в вакууме". И потому она работает в связке с прочим оборудованием и ПО. Поэтому подходить к задаче необходимо комплексно. Мы – старейший дистрибьютор Qsan в РФ, как никто другой знаем все нюансы и особенности использования данных СХД в различных сферах задач. И с радостью готовы предоставить свои опыт и знания в проектах наших заказчиков.