Есть ли способ предотвратить автоматическое добавление дисков в Storage Spaces Direct?

8

Возникла проблема здесь на отказоустойчивом кластере Windows Server 2016 (WSFC), на котором размещен экземпляр отказоустойчивого кластера SQL (FCI) с использованием Storage Spaces Direct (S2D). На каждом сервере после успешного первоначального создания S2D автоматически добавлял неиспользуемый в противном случае RAID-том в пул хранения (хотя S2D не может быть создан на RAID-томах и абсолютно настаивает на неразделенных дисках). Теперь это сломано, из-за - насколько я мог понять - именно это. Как следствие, виртуальный диск находится в автономном режиме, уничтожая весь кластер. Он не вернется в оперативный режим из-за отсутствия ресурсов кластерной сети. Диски, о которых идет речь, могут быть удалены, но не удалены. Восстановление виртуального диска не выполняется, проверка совместимости кластера указывает на неверную конфигурацию.

Это новая настройка. Поэтому я мог просто удалить виртуальный диск, кластер или даже серверы и начать все сначала. Но прежде чем мы начнем работать продуктивно, я должен убедиться, что это никогда не повторится. Система, стреляющая в себя в виртуальном колене и приводящая к краху, просто без необходимости и ошибочно добавляя неподдерживаемый диск, не является платформой, которую мы можем развернуть. Поэтому в первую очередь мне нужен способ предотвратить это, а не ремонтировать его сейчас. Я предполагаю, что предотвращение захвата S2D установки большего количества дисков, чем было создано, поможет. Стоимость потенциально большего количества ручного взаимодействия при замене реального диска незначительна для кластера ... у нас есть здесь. Однако, пока я просматривал документацию, я не могу найти способ контролировать это. Если я не пропустил что-то, ни Set-StoragePool,

Любая помощь или подсказка будет принята с благодарностью.

Ниже приведено лишь несколько подробностей о вышеперечисленном: у нас есть 2 сервера HPE DL380 Gen9, дважды подключенные друг к другу через 10 ГБ Ethernet с поддержкой RDMA и через 1 ГБ к клиентской сети. Каждая особенность RAID-контроллера HP ??? а простой HBA контроллер HP ??? (поскольку S2D абсолютно необходим и работает только на непосредственно подключенных, неразделанных дисках). Конфигурация хранилища включает в себя OS-RAID на RAID-контроллере, Files-RAID на RAID-контроллере и набор напрямую подключенных дисков на HBA, предназначенных для S2D.

Я установил 2 версии Windows Server 2016 datacenter на OS-RAID, установил функцию WSFC, запустил и прошел тест на совместимость кластера, включая опцию S2D, создал кластер без хранилища, добавил свидетеля общего файлового ресурса (на отдельном компьютере), включил S2D в пуле хранения, который автоматически состоит из всех неразделенных дисков, и поверх этого пула создал виртуальный диск зеркального типа и использовал NTFS в качестве файловой системы, поскольку предполагается, что это предпочтительная FS для SQL FCI установка.

Затем я установил стандартную версию SQL 2016 в качестве FCI в этом кластере, импортировал базу данных и протестировал все это. Все было отлично. База данных была тут же и быстрее, чем когда-либо. Принудительное, а также автоматическое аварийное переключение было на одном дыхании. Все выглядело хорошо.

На следующий день мы попытались использовать оставшиеся файлы-RAID. Первым делом нужно было изменить уровень RAID, так как нам не понравилась предварительная конфигурация. Вскоре после удаления предварительно сконфигурированного тома RAID и создания нового (на каждом сервере) мы обнаружили, что кластер не работает. Из того, что я мог выяснить до сих пор, предварительно настроенный том Files-RAID тем временем автоматически добавлялся в пул, и, как только мы его удалили, он теперь отсутствовал в пуле. Пока я проверял, я обнаружил, что новый Files-RAID, который еще создается, уже отображается как физический диск пула. Таким образом, пул теперь включает 2 тома RAID на каждом сервере, один из которых даже не существует. Эти тома (но не их диски) перечислены в Get-PhysicalDisk вместе с собственно физическими дисками на HBA, не уверен, что это регулярно.

Мне удалось удалить эти физические диски (то есть те, которые на самом деле являются томами RAID), и теперь они помечены как удаленные. Но они все еще в пуле, и я не могу удалить их сейчас, но попытка сделать это не удалась. Repair-VirtualDisk должен восстановить виртуальный диск до надлежащего состояния только на оставшихся дисках (я пошел по этому адресу : https://social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2 / storage-Spaces-Remove-Physical-disk? forum = winserver8gen ), но эта работа немедленно завершена, «успешно», конечно, без какого-либо эффекта.

Попытка переключить виртуальный диск обратно в онлайн не удалась, заявив, что сетевой ресурс кластера недоступен. Насколько я понимаю, это может относиться только к (доступному) пулу хранения, поскольку отсутствующие диски не являются кластерными ресурсами. В пуле нет ошибок, которые нужно исправить. Запуск теста совместимости кластера требует конфигурации, не подходящей для кластера.

Я не могу найти ни одной детали, которая могла бы сдвинуться с места на дюйм, все это навсегда выглядит заблокированным. Любые идеи о том, как предотвратить запуск WSFC таким образом?

Я не сталкивался с сообщениями об ошибках, которые мне показались особенно поучительными, и я не хотел больше бомбить страницу, публикуя их все. Если кто-то хочет иметь какие-то конкретные детали, просто дайте мне знать.

Большое спасибо за ваше время, ребята!

Карстен

Обновление в соответствии с просьбой г-на Малины введите описание изображения здесь

Карстен Кепник
источник
3
Не могли бы вы поделиться с нами списком ваших дисков и их типов шин? Команда PoweShell: Get-PhysicalDisk -CanPool $true | Sort Model | ft FriendlyName, BusType, CanPool, OperationalStatus, HealthStatus, Usage, Sizeесть ли вероятность того, что вы допустили ошибку, когда перенастроили File-RAID, назначив диск S2D новому RAID?
Мистер Малина
2
Какой смысл в S2D + SQL Server? Почему вы хотите тратить деньги на виртуальные машины с неограниченным количеством лицензий, если вы не планируете (на самом деле не можете ...) их запускать? SQL Server 2016 может выполнять AlwaysOn Basic AG даже со стандартом, и вы можете сэкономить ОГРОМНОЕ количество денег, просто используя Windows Server Standard 2016. docs.microsoft.com/en-us/sql/database-engine/…
BaronSamedi1958
@Г-н. Малина: Я обновил запись со списком физических дисков. Обратите внимание, что я пропустил "-CanPool $ true", поскольку ни один из них не может быть объединен.
Карстен Копник
3
@ KarstenKöpnick: Ну, я бы посоветовал вам подумать о SQL Server AlwaysOn FCI + StarWind Virtual SAN Free. Эта конфигурация будет лучше работать в вашем случае двухузлового кластера при меньших затратах, и ее будет намного проще развернуть и управлять без таких проблем. starwindsoftware.com/…
Мистер Малина
1
«S2D - это путь, который мне показался». Ну ... Удачи с этим :)
BaronSamedi1958

Ответы:

5

Да, вы можете отключить режим автоматического пула. Опыт не очень хороший, но, безусловно, выполнимый и поддерживаемый. Имя параметра и пример синтаксиса командлета находятся в разделе «Настройки» этого открытого документа:

https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/health-service-overview

По сути, запустите это как администратор:

Get-StorageSubSystem Cluster * | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoPool.Enabled" -Value False

Надеюсь это поможет! - Космос (@cosmosdarwin), Microsoft PM

Космос Дарвин
источник
@CosmosDarvin: Спасибо! Похоже, это может помочь. Мне нужно немного глубже вникнуть в суть и понять последствия, тогда я попробую и доложу.
Карстен Кепник
@CosmosDarvin: Большое спасибо. Наконец-то у меня появилась возможность углубиться в тему, чтобы узнать о возможных последствиях. Насколько я могу судить, если эта опция отключена, единственным следствием будет то, что диски будут добавляться в пул вручную с помощью команды Add-PhysicalDisk. Что является хорошим компромиссом. Я не смог найти никаких указаний на другие осложнения или недостатки, поэтому я попробую. - Просто нужно документировать необходимость ручного добавления дисков в случае замены. - Я сообщу о результатах.
Карстен Кепник,
Отчет о результатах. Я хотел бы добавить, что я не смог собрать никакого реального опыта с этим подходом. Было решено добавить корпус диска и использовать его вместо S2D. Замена диска в RAID такого размера является частой задачей, и требование иметь в распоряжении кого-либо, обладающего достаточным опытом в любое время, чтобы выполнить вмешательство PowerShell, даже документированное, для простой замены диска, рассматривалось как ограничитель показа. Глядя на это таким образом, я полностью согласен. Таким образом, мы переустановили с помощью корпуса и не было никаких проблем с тех пор. - Спасибо всем за вашу помощь и помощь экспертов.
Карстен Кепник,
2

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

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

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SmartPqi \ Parameters

В моем случае я изменил раздел реестра, который соответствует SAS на RAID

«BusType» = 0x00000008 (RAID) (вместо 0x0000000a) (SAS)

перезагрузите машину

После этого изменения вы можете использовать пул хранения в подсистеме хранения Windows вместо кластерных пространств хранения.

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

DragosT
источник