В предыдущей части мы говорили о том как создавать и удалять SDRS Anti-Affinity правила. Чтобы закрыть тему, нам осталось редактировать/реконфигурировать существующие правила. Логично предположить, что это будет функция Set-SdrsAntiAffinityRule.
Set-SdrsAntiAffinityRule
Функция позволяет редактировать как Inter-VM, так и VMDK правила. Давайте сразу перейдём к примерам.
Реконфигурировать Inter-VM Anti-Affinity правила
Добавим 2 ВМ к Inter-VM правилу. Здесь мы используем параметр -VM. Значение по умолчанию для параметра -Action равно Add. Я указал его только для большей наглядности.
Для VMDK правил мы будем использовать параметр -HardDisk. Давайте добавим один HardDisk для ВМ. Обратите внимание, на этот раз мы не использовали параметр -Action. Действие по умолчанию - добавлять объекты к правилу.
PS C:\> Get-DatastoreCluster DEV | Get-SdrsAntiAffinityRule | Set-SdrsAntiAffinityRule -HardDisk 3
Если вы не укажете параметр -HardDisk, функция добавит все диски ВМ к правилу!
PS C:\> Get-DatastoreCluster DEV | Get-SdrsAntiAffinityRule | Set-SdrsAntiAffinityRule
Этот подход не сработает для удаления дисков из-за ограничений, накладываемых API. Каждое VMDK правило должно содержать как минимум один HardDisk! Для массового удаления дисков из VMDK правил есть другое решение. Это простейшие PowerShell операции с массивами.
Вы хотите исключить некоторые диски из длинного массива? Нет проблем. Следующий пример передаст в функцию диски с 10-го по 30-й, за исключением 15-го и 21-го.
Вы хотите исключить некоторые диски из длинного массива и добавить несколько дисков, не относящихся к пулу? Это тоже не проблема! Следующий пример передаст в функцию диски с 10-го по 30-ый за исключением 15-го и 21-го и ещё два диска - 32-ой и 45-ый.
Любое VMDK правило должно содержать как минимум один HardDisk! Это в какой-то мере бессмысленно - создавать правило, содержащее всего лишь один диск, но это разрешено. Любое VM правило должно содержать как минимум две VM!
Как всегда, ссылка на оригинал статьи с ps1code.com (English).