У меня следующая конфигурация: две невиртуальные машины Windows Server 2008 (сервер базы данных и сервер приложений) подключены к одной сети через два сетевых адаптера, быстрый (1 Гбит / с) и медленный (100 Мбит / с) . У них разные IP-адреса, но одинаковая конфигурация.
Сервер приложений запрашивает данные с другого сервера либо из базы данных, либо из общих файловых ресурсов. Он подключается к общим ресурсам, используя имя компьютера: \\DataServer01\<FileName>
. Первый IP-адрес, связанный с \\DataServer01
в DNS-сервере - 192.168.1.19 (используется адаптером 1 Гбит / с). Я хочу, чтобы он использовался каждый раз, а медленный - только в случае отказа быстрого.
Иногда сервер приложений загружает файлы из общего ресурса на максимальной скорости, но иногда при передаче по-прежнему используется быстрый 192.168.1.22 на стороне сервера приложений, но медленный 192.168.1.18 на стороне сервера базы данных, ограничивая скорость до ≈11 МБ / с.
У меня нет точных показателей, но из того, что я видел, я полагаю, что в половине случаев случайным образом не удается использовать соединение по умолчанию.
Если я уточню \\192.168.1.19\<FileName>
вместо того \\DataServer01\<FileName>
, все работает хорошо и на максималке.
Как диагностировать происходящее? Есть ли политика, которая заставляет Windows выбирать случайные сетевые адаптеры при отправке файлов из общего ресурса? Есть ли настройки для проверки на DNS-сервере (роль Windows Server 2008)?
Как сказал devicenull, это проблема разрешения имен.
Я подозреваю, что происходит то, что вы используете разрешение имен NetBIOS. Без работающего в сети WINS-сервера это разрешение имен работает через сетевое вещание.
Какая бы карта на сервере ни ответила на эту широковещательную рассылку первой, она будет использоваться до тех пор, пока не истечет срок действия записи в кэше разрешения имен (10 или 15 минут, я думаю), а затем будет еще одна трансляция.
Подробнее об этом можно прочитать здесь: http://www.techrepublic.com/article/how-netbios-name-resolution-really-works/5034239
Ну, во-первых, это не является избыточным, если второе соединение не может справиться с нагрузкой первичного соединения. Что произойдет, если основная карта выйдет из строя, когда она выдавала 500 Мбит / с трафика? Ваша вторичная карта не сможет за ней поспевать. Почему вы это делаете? Возможно, вам лучше подойдет какая-нибудь другая технология.
Проблема, которую вы здесь видите, вероятно, связана с тем, что вы используете имена хостов вместо IP-адресов. Какая бы карта ни зарегистрируется в сети первой, ей будет назначено имя хоста. Это будет случайным образом (это зависит от времени включения компьютера, появления карт и т. Д.).
Здесь нет действительно умного решения. Если вы не сможете убедить компьютеры всегда сначала объявлять свое имя хоста на основном адаптере, вы не сможете выполнять эту работу так, как хотите. Гигабитные адаптеры Ethernet стоят около 13 долларов каждый, почему бы просто не взять еще два и не использовать 100-мегабитные Oens.
Во-первых, ваши адаптеры не избыточны. У вас есть два отдельных адаптера, которые даже близко не то же самое, что резервные. Вам необходимо настроить объединение адаптеров. Oни должен быть от того же поставщика, используя инструменты объединения этих поставщиков. Oни должен также иметь одинаковую скорость, он может работать с разными скоростями, но есть причины, по которым такая установка не рекомендуется.
Как только они будут объединены, вы можете указать первичный с резервированием при отказе. Ваша текущая установка не является отказоустойчивой, вы можете быстро проверить это, отключив используемую сетевую карту (тестирование, подобное этому, является частью настройки сервера, любая функция, которая, по вашему мнению, у вас есть, но которая не была протестирована, должна считаться нефункциональной: избыточность, решения для резервного копирования, производительность, все).