Стандартная, вроде бы, ситуация с добавлением нового узла (из другого датацентра) в DAG вываливается ошибкой:
Error: An error occurred while attempting a cluster operation. Error: Cluster API '"AddClusterNode() (MaxPercentage=12) failed with 0x35. Error: The network path was not found
DagTask ситуацию не особо проясняет:
[] ClusterSetupProgressCallback( eSetupPhase = ClusterSetupPhaseValidateNodeState, ePhaseType = ClusterSetupPhaseStart, ePhaseSeverity = ClusterSetupPhaseInformational, dwPercentComplete = 12, szObjectName = MBX3, dwStatus = 0x0 ) [] ClusterSetupProgressCallback( eSetupPhase = ClusterSetupPhaseValidateNodeState, ePhaseType = ClusterSetupPhaseContinue, ePhaseSeverity = ClusterSetupPhaseFatal, dwPercentComplete = 12, szObjectName = MBX3, dwStatus = 0x35 ) [] ClusterSetupProgressCallback( eSetupPhase = ClusterSetupPhaseValidateNodeState, ePhaseType = ClusterSetupPhaseEnd, ePhaseSeverity = ClusterSetupPhaseFatal, dwPercentComplete = 12, szObjectName = MBX3, dwStatus = 0x35 ) [] ClusterSetupProgressCallback( eSetupPhase = ClusterSetupPhaseFailureCleanup, ePhaseType = ClusterSetupPhaseStart, ePhaseSeverity = ClusterSetupPhaseInformational, dwPercentComplete = 12, szObjectName = MBX3, dwStatus = 0x0 ) [] ClusterSetupProgressCallback( eSetupPhase = ClusterSetupPhaseFailureCleanup, ePhaseType = ClusterSetupPhaseEnd, ePhaseSeverity = ClusterSetupPhaseInformational, dwPercentComplete = 12, szObjectName = , dwStatus = 0x0 ) [] The preceding log entry comes from a different process running on computer 'MBX2.domain.ru' [] The operation wasn't successful because an error was encountered. You may find more details in log file "C:ExchangeSetupLogsDagTasksdagtask____.log". [] WriteError! Exception = Microsoft.Exchange.Cluster.Replay.DagTaskOperationFailedException: A database availability group administrative operation failed. Error: The operation failed. CreateCluster errors may result from incorrectly configured static addresses. Error: An error occurred while attempting a cluster operation. Error: Cluster API '"AddClusterNode() (MaxPercentage=12) failed with 0x35. Error: The network path was not found"' failed. ---> Microsoft.Exchange.Cluster.Replay.AmClusterApiException: An Active Manager operation failed. Error An error occurred while attempting a cluster operation. Cluster API '"AddClusterNode() (MaxPercentage=12) failed with 0x35. Error: The network path was not found"' failed.. ---> System.ComponentModel.Win32Exception: The network path was not found
Видно, что добавление в DAG прерывается на фазе проверки (eSetupPhase = ClusterSetupPhaseValidateNodeState). Ради интереса попробовал запустить проверку узлов из оснастки Failover Cluster. Проверка проходит.
Потом подумал на проблему с разным количеством сетевых интерфейсов на Primary Active Manager и новом узле DAG. В Planning for High Availability and Site Resilience явно не указано, что количество сетевых интерфейсов на всех узлах DAG должно быть одинаково. Однако, знающие люди сказали, что в DAG можно добавлять серверы с разным количеством сетевых интерфейсов, хотя, вроде бы, это и не поддерживаемая конфигурация.
Пришлось слушать трафик. Тут пошли более интересные результаты. например:
1027 ip2 ip3 SMB2 SMB2:C TREE CONNECT (0x3), Path=\MBX3IPC$ 1028 ip3 ip2 SMB2 SMB2:R TREE CONNECT (0x3), TID=0x11 1029 ip2 ip3 SMB2 SMB2:C IOCTL (0xb), FID=0xFFFFFFFFFFFFFFFF 1030 ip3 ip2 SMB2 SMB2:R - NT Status: System - Error, Code = (34) STATUS_ACCESS_DENIED IOCTL (0xb)
PAM пытается подключиться к IPC$ на новом узле и получает ACCESS_DENIED. Согласно спецификации SMB3 запрос IOCTL, в котором содержится FID=0xFFFFFFFFFFFFFFFF фактически является запросом на согласование Security-диалектов между узлами перед разрешением SMB-сессии. Подробнее эта процедура описана тут. ACCESS_DENIED возвращается, в частности, когда сервер не может подтвердить запрос, и, скорее всего, это является следствием того, что возникла ошибка аутентификации.
Тут внезапно оказывается, что между датацентрами есть небольшое расхождение во времени (около минуты). Это быстро исправляют. Ошибка уходит…
Полезные ссылки:
SMB3 Secure Dialect Negotiation
Planning for High Availability and Site Resilience
[MS-SMB2]: Server Message Block (SMB) Protocol Versions 2 and 3
Добрый день! А каким инструментом слушали трафик?
netsh. Подробнее, как его использовать в качестве инструмента для записи трафика можно посмотреть тут – http://blogs.msdn.com/b/canberrapfe/archive/2012/03/31/capture-a-network-trace-without-installing-anything-works-for-shutdown-and-restart-too.aspx
Потом этот файл можно подсунуть Network Monitor.