Как предотвратить отказоустойчивый кластер Windows 2012 R2 от роли при использовании автоматизированного приложения C#?
Мы используем собственное приложение для добавления и удаления дисков в отказоустойчивом кластере Windows 2012 R2 с помощью вызовов wmi. Большую часть времени вызовы работают отлично, но время от времени я удаляю диск из роли через вызовы wmi, и он освобождает всю роль; все диски из роли помещаются в доступное хранилище, сервисы нигде не существуют. Исправление, которое я нашел для этого, состоит в том, чтобы вернуть диски обратно в роль, и каким-то образом сервисы волшебным образом появляются снова и все возвращается к нормальной жизни.
Детали: нам нужно что-то вроде 10 дисков в кластер, и поэтому мы запускаем приложение с несколькими потоками. Приложение C# делает WMI-вызовы в пространство имен root\MSCluster. Мы добавляем диски через объекты MSCLUSTER_AvailableDisks и вызываем метод AddToCluster для этих объектов. Мы пытаемся спать в течение 100 мс между изменениями вызовов (вызовами кластера, которые что-то изменят), чтобы дать кластеру время для репликации изменений.
Как предотвратить повреждение роли кластера, но при этом использовать вызовы wmi для автоматизации добавления и удаления дисков в мой кластер?
1 ответ
Итак, я копался и обнаружил, что если у вас есть ЛЮБЫЕ зависимости от удаленного ресурса, вы удалите все, что зависит от ресурса или зависит от ресурса. Поэтому, чтобы не допустить полного опустошения моих ролей, я должен перепроверить, что все мои зависимости отключены от моих дисков.