Общий ресурс Windows: указанное сетевое имя больше не доступно

8

У нас есть EMC NX4 SAN, обслуживающий общий ресурс CIFS для нескольких серверов приложений Windows Server 2008 R2. Серверы приложений используют общий ресурс CIFS для обслуживания большого количества файлов изображений (~ 2500 операций в секунду на общем ресурсе), однако ни SAN, ни серверы приложений не показывают каких-либо явных признаков стресса.

Время от времени сервер приложений, по-видимому, внезапно прерывает соединение с SAN. Любой код .NET, пытающийся обслуживать файл из SAN, завершается неудачно с:

System.IO.IOException: The specified network name is no longer available

Если я RDP к серверу приложений и пытаюсь получить доступ к "\ san-name" через проводник, я получаю ту же ошибку. Все остальные серверы приложений могут получить к нему доступ просто отлично. Я также могу получить доступ к "\ ip-of-san" просто отлично, пинг также работает.

Перезагрузка сервера приложений решает проблему, но это несколько радикальная мера этой проблемы, учитывая, что кажется, что SAN работает нормально, и компьютер может получить к нему доступ - это просто похоже на то, что доступ "\ san-name" имеет срыгнул

Это произошло с двумя различными серверами приложений за последнюю неделю, поэтому я не подозреваю, что причиной этого является один сервер приложений. На данный момент не обращая внимания на причину - как мне восстановить соединение «\ san-name» без перезагрузки компьютера? И могу ли я как-то спросить, что пошло не так?

Журналы событий ничего не показывают (кроме связанных ошибок ASP.NET, вызванных этой проблемой), ни на серверах приложений, ни в SAN.

Обновление:
на основе предложений я попытаюсь перезапустить службу рабочей станции в следующий раз и посмотреть, поможет ли это решить проблему. Определенно, это не исправление, но гораздо быстрее, чем перезагрузить всю машину, как я делал в настоящее время. Любой способ запросить состояние соединений, которые поддерживает служба рабочей станции?

Обновление 2.
Подтверждено, что перезапуск службы рабочей станции «устраняет» проблему. Следующий шаг - попытаться изменить reg, чтобы увеличить значение MaxCmds. Не сможет подтвердить, является ли это проблемой, можно предположить, только если она работает в течение длительного периода без проблем.

Марк С. Расмуссен
источник
Существуют ли какие-либо указания в журналах событий на серверах приложений, в частности в системном журнале, которые указывают либо на временный сбой, либо на запуск какого-либо другого механизма (например, защита DOS в LanManagerService, как описано здесь blog.mreza.info/archive/ 2007/09/26 /… ). Кроме того, какие настройки AV находятся на месте и как Celerra интегрирована с этим.
Хелвик
@Helvick Нет соответствующих записей в журналах событий, ни приложение, ни система. Мы не запускаем AV ни на серверах, ни на Celerra. Я также искал в журнале событий событие защиты LanManagerService DOS, но оно вернулось пустым.
Марк С. Расмуссен

Ответы:

7

Похоже, что MaxCmds закончились. Вот две хорошие статьи об этом: здесь и здесь .

Вот теперь, чтобы изменить это. Создайте файл с именем update.reg и поместите в него следующее:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters] 
"MaxCmds"=dword:00000800 

Сохраните, а затем дважды щелкните и примите приглашение. Требуется перезагрузка.

Скотт Форсайт - MVP
источник
Поскольку награда вот-вот истечет, я награжу ее вашим ответом, поскольку это лучшая ставка imho, хотя мне придется проверить ее, прежде чем принять. Ранее я изменил FCNMode, чтобы регистрировать только каталог bin, поскольку у меня были ошибки «достигнут предел команды bios» в некоторых приложениях, размещенных на другом общем ресурсе UNC. Но я полагаю, что настройка FCNMode не влияет на каталоги вне каталога приложения.
Марк С. Расмуссен
FCNMode также может помочь, но большая структура диска по сравнению с UNC может привести к тому, что оба войдут в игру. Я «верю», что FCN против всего дерева каталогов для .NET 2.0 и выше.
Скотт Форсайт - MVP
В дополнение к этому: я видел, как MaxCmds исчерпал несколько узлов переднего плана и несколько пользователей, используемых для разных папок. MaxCmds - это настройка, которую я применяю ко всем моим веб-сайтам UNC. Я никогда не видел недостатка в этом изменении. Существует также настройка сервера, если целью общего ресурса CIFS является сервер Windows, но это не относится к вам.
Скотт Форсайт - MVP
Просто чтобы уточнить мой комментарий, реальные .NET-приложения хранятся на локальном диске. Основная цель приложений - обслуживать данные изображений, которые хранятся на общих ресурсах UNC. Настройка FCNMode, насколько я понимаю, применяется только к каталогу приложения, поэтому в моем случае это никак не повлияет. MaxCmds - все еще возможный преступник все же. Все приложения работают под одной учетной записью, но при наличии более 500 веб-приложений на каждом сервере, скорее всего, у меня заканчивается.
Марк С. Расмуссен
Поведение по умолчанию в ASP.NET для FCN - обход всей структуры каталогов. Раздел реестра HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode может иметь значение 0, 1 или 2. Значение по умолчанию 0, для которого имеется объект FCN для каждой папки. Если вы измените его на 2, он будет использовать один объект для корня и всех подкаталогов. Установка в 1 выключает его полностью. support.microsoft.com/kb/911272 . Вы также можете найти это сообщение в блоге и обсуждение полезным: weblogs.asp.net/owscott/archive/2006/02/21/ASP.NET-v2.0- 2D00 -AppDomain-recycles_2C00_-more-common-than-before.aspx ,
Скотт Форсайт - MVP
1

возможно перезапустите сервис рабочей станции на сервере приложений!

Тони Рот
источник
если это действительно теряет разрешение имен, вы можете попробовать в качестве эксперимента использовать файл hosts для короткого замыкания процесса разрешения имен.
Тони Рот
Я попытался перезапустить службу, но она не работала, но затем я перезагружаю сервер, и после этого он начинает работать.
Круг Сяо
0

У меня были такие случаи раньше, но не с бэкэндом EMC. Для пользовательских приложений принудительное закрытие соединения с удаленным сервером и повторное его открытие вернет его, хотя вам, возможно, придется попробовать пару раз, прежде чем оно начнет действовать. Для серверных приложений работает утилизация пула приложений для этой службы. Если это не удается, утилизация службы рабочей станции может избежать перезагрузки, но это почти так же радикально.

sysadmin1138
источник
0

По источнику:

Не могли бы вы дать более подробную информацию о программном обеспечении, установленном на сервере приложений? В сети вы обнаружите, что обычно это проблема с AV, но поскольку вы не запускаете ни одного ... может быть, другое приложение в режиме ядра, например, программное обеспечение для резервного копирования?

Брандмауэр активен? Вы проверили журналы событий на контроллере домена для неисправного сервера приложений?

Вы также должны прослушивать сетевой трафик CIFS, когда возникает проблема, чтобы увидеть, что происходит.

Единственный раз, когда я сталкивался с этой ошибкой, был случай, когда сервер / рабочая станция как-то «потеряли» свою связь с доменом. Преобразование членства в домене сделало свое дело (netdom / resetpwd). Можно ли получить доступ к другим сетевым ресурсам (от сеанса RDP до сервера приложений) при возникновении проблемы?

Renik
источник
Единственное программное обеспечение, работающее на сервере, - это IIS, в котором работает веб-приложение .NET. Брандмауэр не активен, так как он находится за нашей DMZ. Я попытаюсь проверить журналы AD в следующий раз, когда это произойдет. Хороший совет относительно CIFS - в следующий раз я попытаюсь добавить ISCSI LUN, чтобы посмотреть, связано ли это только с CIFS или это общая проблема с подключением с использованием имени хоста. Я могу получить доступ ко всем остальным машинам и общим ресурсам, используя CIFS, пока происходит эта ошибка.
Марк С. Расмуссен
0

Может ли это быть проблемой с разрешением имени. Можете ли вы проверить с вашим DNS-сервером? Если это не позволяет разрешить имя и после перезагрузки сервера приложений он разрешит доступ.

У меня была такая же проблема, когда некоторые пользователи рабочей станции жалуются на то, что они не могут получить доступ к приложению, хранящемуся на другом сервере, мы сделали то же самое, пытаясь получить доступ к ip-серверу, который работал бы, но не по имени, поэтому мы проверили DNS. Мы внесли изменения в приложение для доступа к другому серверу с использованием IP-адреса, поскольку у нас есть статическая IP-сеть.

Дайте мне знать, если мое предложение работает для вас.

maniargaurav
источник
В то время как я получаю сообщение об ошибке, я могу нормально выполнить nslookup, возвращая правильный IP из нашей локальной AD DNS. Я также могу пинговать, используя имя хоста и IP-адрес.
Марк С. Расмуссен
0

Я столкнулся с аналогичной проблемой. Я не смог сопоставить общий ресурс для Windows Server 2012 с сервера Windows 2003.

В сетевой группе была реализована политика AD, которая изолировала версии более низких окон от контейнера AD, который не позволял более низкой версии TLS подключаться к серверам, использующим более высокие версии TLS. Перемещение сервера назад или отключение политики для соединения с более низкой версией TLS исправило эту проблему.

Вот некоторые ошибки, с которыми я столкнулся в системном журнале:

Сертификат, полученный от удаленного сервера, был выдан ненадежным центром сертификации. Из-за этого ни одна из данных, содержащихся в сертификате, не может быть проверена. Запрос на соединение SSL не выполнен. Вложенные данные содержат сертификат сервера.

Сгенерировано фатальное предупреждение и отправлено на удаленную конечную точку. Это может привести к разрыву соединения. Протокол фатальной ошибки, определенный протоколом TLS, - 48. Состояние ошибки Windows SChannel - 552.

Надеюсь, это поможет решить вашу проблему.

info_tech
источник