Во время обучения на сертификаты Cisco и Microsoft я много читал о NIC Teaming, Etherchannels и подобных вещах.
Я знаю, что вы можете выполнять статическую группировку в MS Windows Server или создавать порт-канал в Cisco или использовать динамические протоколы, такие как LACP и PAgP. Но все они предлагают балансировку нагрузки, используя MAC-адрес источника или назначения или IP-адрес, комбинацию XOR вместе или похожие вещи, верно? И кажется, что нет никакого способа увеличить вашу фактическую пропускную способность, если у вас есть длинная длинная передача файлов с одного сервера на другой (например, если 4 GigE соединены вместе, чтобы увеличить его до 4 Гбит / с).
Интересно, правда ли это? Есть ли способ использовать всю пропускную способность связанных интерфейсов? Из нескольких источников я слышал, что есть что-то вроде SLB (Switch-Assisted Load Balancing с Fault Tolerance), который поддерживает полную балансировку нагрузки и позволяет использовать полную пропускную способность (например, 4 Гбит / с из моего примера между двумя серверами в одной транзакции).
Я слышал много противоречивых вещей об этом, и я совершенно сбит с толку. Помоги мне, ребята!
Ответы:
На уровне 2 вся балансировка нагрузки, в лучшем случае, выполняется с помощью XOR или хэша MAC-адреса источника и назначения, и, если вам повезет, он может даже считывать данные на уровне 3 и хэшировать эти данные.
Однако на третьем уровне, где мы в основном говорим о нескольких шлюзах (то есть, фактически, о двух физических каналах с уникальным следующим переходом через каждый), вы можете максимизировать пропускную способность между ссылками, если вы готовы на балансировка пакетов.
Прежде чем я продолжу, балансировка для каждого пакета, как правило, плохо, потому что это может привести к неупорядоченной доставке пакетов, это может быть особенно ужасно с TCP-соединениями, но это, конечно, сводится к реализации и большинство современных стеков могут переносить это относительно хорошо.
Чтобы выполнить балансировку для каждого пакета, очевидно, одно требование состоит в том, чтобы исходные и конечные IP-адреса вообще не были подключены к устройствам, которые имеют несколько путей, поскольку они должны маршрутизироваться для обеспечения возможности балансировки. Избыточность может быть достигнута с помощью протокола маршрутизации, такого как BGP, OSPF, ISIS, RIP или, альтернативно, BFD или простого обнаружения состояния канала.
Наконец, существует, конечно, решение транспортного уровня - протоколы, такие как SCTP, поддерживают подключение к нескольким конечным точкам, и в TCP уже есть черновики, в которых будут добавлены опции для выполнения аналогичных действий. Или ... вы можете просто заставить ваше приложение открывать несколько сокетов.
источник
Во-первых, давайте будем реалистичны в отношении производительности вашей системы; Вы должны убедиться, что ваша система может последовательно распределять требуемую пропускную способность от диска до сетевых адаптеров (см. нижнюю часть ответа) ...
Если вы готовы использовать FTP для передачи файлов, вы можете использовать клиент, который поддерживает сегментацию файла с помощью
REST
команды FTP для загрузки, и сервер, который поддерживает команду FTPCOMB
для сегментированной загрузки. Используя FTP-клиенты, которые поддерживают сегментирование, вы можете открывать несколько сеансов FTP для каждой передачи файла и использовать преимущества хэширования LACP Layer4, поддерживаемого многими поставщиками коммутаторов ... независимо от того, используете ли вы соединения 1GE или 10GE, сегментированные передачи повышают вашу производительность через LACP.CuteFTP для Windows поддерживает передачу REST, а Filezilla поддерживает команду COMB . Это только два из нескольких вариантов, которые вы можете использовать.
Системные ограничения
Я не знаю, какой у вас диск, но часто единственным ограничением системы является дисковый ввод-вывод ... здесь есть несколько интересных моментов ... с точки зрения контроллера ...
Другим возможным ограничением является скорость диска / шпинделя / руки ... если вы не используете SSD.
Наконец, вам нужны сетевые карты с достаточной емкостью для материнской платы ... проверьте, сколько линий на вашей сетевой карте PCIe. Я предполагаю, что вы находитесь в локальной сети, и что потеря / перегрузка пакетов не будет проблемой. Возможно, вы захотите включить jumbos, если обнаружите, что процессор является ограничивающим фактором для ваших переводов.
источник