Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этой статье приведены пошаговые инструкции по развертыванию хранилища пространства Direct на Windows Server. Чтобы развернуть Storage Spaces Direct в составе локальной среды Azure, см. статью "Сведения о локальной среде Azure".
Tip
Хотите получить гиперконвергированную инфраструктуру? Корпорация Майкрософт рекомендует приобрести проверенное аппаратное или программное решение Azure Local от наших партнеров. Эти решения разработаны, собраны и проверены на основе нашей эталонной архитектуры, чтобы гарантировать их совместимость и надежность, что позволяет вам быстро начать работу. Чтобы ознакомиться с каталогом аппаратных и программных решений, совместимых с Azure Local, см. каталог Azure Local.
Tip
Виртуальные машины Hyper-V, включая те, которые работают в Microsoft Azure, можно использовать для оценки Storage Spaces Direct без оборудования. Кроме того, вам может потребоваться просмотреть удобные скрипты быстрого развертывания лаборатории Windows Server, которые мы используем для обучения.
Перед началом работы
Ознакомьтесь с требованиями к оборудованию Storage Spaces Direct, чтобы понять общий подход и важные примечания, относящиеся к некоторым шагам.
Соберите следующие сведения:
Вариант развертывания: локальные дисковые пространства поддерживают два варианта развертывания: гиперконвергентные и конвергентные, также известные как дезагрегированные. Ознакомьтесь с преимуществами каждого из них, чтобы решить, какой вариант подходит для вас. Шаги 1-3 в этой статье применяются к обоим вариантам развертывания. Шаг 4 необходим только для конвергентного развертывания.
Имена серверов: знакомство с политиками именования вашей организации для компьютеров, файлов, путей и других ресурсов. Необходимо подготовить несколько серверов с уникальными именами.
Доменное имя. Знакомство с политиками вашей организации для присоединения к домену и присоединению к домену. Вы присоединяете серверы к домену и укажите доменное имя.
Сеть RDMA: существует два типа протоколов RDMA: iWarp и RoCE. Обратите внимание, какой из сетевых адаптеров используется, а если RoCE, также обратите внимание на версию (версии 1 или 2). Для RoCE также обратите внимание на модель верхнего переключателя стойки.
VLAN ID: Обратите внимание на VLAN ID, который используется для сетевых адаптеров ОС управления на серверах, если такие имеются. Эти сведения можно получить от администратора сети.
Шаг 1. Развертывание Windows Server
Шаг 1.1. Установка операционной системы
Сначала установите Windows Server на каждом сервере в кластере. Для Storage Spaces Direct требуется Windows Server Datacenter Edition. Вы можете использовать вариант установки Server Core или сервер с полноценным графическим интерфейсом.
При установке Windows Server с помощью мастера установки можно выбрать Windows Server (ссылающийся на Server Core) и Windows Server (Сервер с возможностью рабочего стола), что эквивалентно Полной установке, доступной в Windows Server 2012 R2. Если вы не сделаете выбор, вам будет предоставлена установка Server Core. Дополнительные сведения см. в разделе "Установка ядра сервера".
Шаг 1.2. Подключение к серверам
В этом руководстве основное внимание уделяется параметру установки основных серверных компонентов и развертыванию и удаленному управлению из отдельной системы управления. Система управления должна иметь следующие функции:
- Версия Windows Server или Windows 10, которая по крайней мере является новой, как и серверы, которыми он управляет, с последними обновлениями.
- Сетевое подключение к серверам, которые он управляет.
- Присоединено к тому же домену или полностью доверенному домену.
- Средства удаленного администрирования сервера (RSAT) и модули PowerShell для Hyper-V и отказоустойчивой кластеризации. Средства RSAT и модули PowerShell доступны в Windows Server и могут быть установлены без установки других компонентов. Вы также можете установить средства удаленного администрирования сервера на компьютере управления Windows 10.
В системе управления установите отказоустойчивый кластер и средства управления Hyper-V. Это можно сделать с помощью диспетчера серверов с помощью мастера добавления ролей и компонентов . На странице "Компоненты" выберите средства удаленного администрирования сервера, а затем выберите средства для установки.
Введите сеанс PowerShell и используйте имя сервера или IP-адрес узла, к которому требуется подключиться. После выполнения этой команды появится запрос на ввод пароля. Введите пароль администратора, указанный при настройке Windows.
Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator
Ниже приведен пример выполнения одной и той же задачи таким образом, что более полезно в сценариях:
$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
Tip
При удаленном развертывании из системы управления может возникнуть ошибка, например WinRM, не может обработать запрос. Чтобы устранить эту ошибку, используйте Windows PowerShell для добавления каждого сервера в список надежных узлов на компьютере управления:
Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server01 -Force
Список доверенных хостов поддерживает подстановочные знаки, например Server*.
- Чтобы просмотреть список надежных узлов, введите
Get-Item WSMAN:\Localhost\Client\TrustedHosts. - Чтобы очистить список, введите
Clear-Item WSMAN:\Localhost\Client\TrustedHost.
Шаг 1.3. Присоединение к домену и добавление учетных записей домена
Чтобы управлять локальными дисковыми пространствами, необходимо присоединить серверы к домену и использовать учетную запись домена доменных служб Active Directory, которая находится в группе администраторов на каждом сервере.
В системе управления откройте консоль PowerShell с правами администратора. Используйте Enter-PSSession для подключения к каждому серверу и выполнения следующего командлета, заменив собственное имя компьютера, доменное имя и учетные данные домена:
Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force
Если учетная запись администратора хранения не входит в группу "Администраторы домена", добавьте учетную запись администратора хранения в группу локальных администраторов на каждом узле или добавьте группу, используемую для администраторов хранилища. Для выполнения этого шага можно использовать следующую команду или создать скрипт PowerShell. Дополнительные сведения см. в статье "Использование PowerShell для добавления пользователей домена в локальную группу".
Net localgroup Administrators <Domain\Account> /add
Шаг 1.4. Установка ролей и компонентов
Следующим шагом является установка ролей сервера на каждом сервере с помощью Центра администрирования Windows, диспетчера серверов или PowerShell. Ниже приведены роли для установки:
- Кластеризация для обеспечения отказоустойчивости
- Hyper-V
- Файловый сервер (если требуется разместить все общие папки, например для конвергентного развертывания)
- Data-Center-Bridging (если вы используете RoCEv2 вместо сетевых адаптеров iWARP)
- RSAT-Clustering-PowerShell
- Hyper-V-PowerShell
Чтобы установить роли с помощью PowerShell, используйте командлет Install-WindowsFeature . Его можно использовать на одном сервере следующим образом:
Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
Чтобы запустить команду на всех серверах кластера одновременно, выполните этот скрипт, который изменяет список переменных в начале скрипта для соответствия вашей среде.
# Fill in these variables with your values
$ServerList = "Server01", "Server02", "Server03", "Server04"
$FeatureList = "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
# This part runs the Install-WindowsFeature cmdlet on all servers in $ServerList, passing the list of features into the script block with the "Using" scope modifier so you don't have to hard-code them here.
Invoke-Command ($ServerList) {
Install-WindowsFeature -Name $Using:Featurelist
}
Шаг 2. Настройка сети
Если вы внедряете Storage Spaces Direct на виртуальных машинах, пропустите этот раздел.
Для Storage Spaces Direct необходима высокоскоростная с низкой задержкой сеть между серверами в кластере. Вам потребуются как минимум сети 10-гигабитного Ethernet, а также рекомендуется использовать удаленный прямой доступ к памяти (RDMA). Вы можете использовать iWARP или RoCE до тех пор, пока он имеет логотип Windows Server, соответствующий вашей версии операционной системы, но iWARP проще настроить.
Important
В зависимости от вашего сетевого оборудования, и особенно когда используется RoCE версии 2, может потребоваться настроить коммутатор верхнего уровня. Правильная конфигурация коммутатора важна, для обеспечения надежности и производительности Storage Spaces Direct.
Windows Server 2016 внедрила встроенное объединение сетевых адаптеров (SET) в виртуальном коммутаторе Hyper-V. Эта функция позволяет использовать одни и те же порты физической сетевой карты (NIC) для всего сетевого трафика при использовании RDMA, уменьшая количество необходимых портов физического сетевого адаптера. Используйте teaming с встроенным коммутатором для Storage Spaces Direct.
- Коммутаторы: Необходимо правильно настроить сетевые коммутаторы для обработки пропускной способности и типа сети. Если используется RDMA, реализующий протокол RoCE, сетевое устройство и конфигурация коммутатора еще более важна.
- Без переключения. Вы можете взаимодействовать с узлами с помощью прямых подключений, избегая использования коммутатора. Каждый узел должен иметь прямое подключение к каждому другому узлу кластера.
Для получения инструкций по настройке сети для Локальные дисковые пространства (Storage Spaces Direct) см. Руководство по развертыванию RDMA на Windows Server 2016 и 2019.
Шаг 3. Настройка дисковых пространств Direct
Выполните следующие действия в системе управления, которая выполняет ту же версию, что и серверы, которые вы настраиваете. Не выполняйте эти действия удаленно с помощью сеанса PowerShell. Вместо этого запустите их в локальном сеансе PowerShell в системе управления с административными разрешениями.
Шаг 3.1. Очистка дисков
Перед включением Storage Spaces Direct убедитесь, что диски пусты, без старых разделов или других данных. Выполните следующий сценарий, заменив имена компьютеров, чтобы удалить старые секции или другие данные.
Important
Этот скрипт окончательно удаляет все данные на дисках, отличных от загрузочного диска операционной системы!
# Fill in these variables with your values
$ServerList = "Server01", "Server02", "Server03", "Server04"
foreach ($server in $serverlist) {
Invoke-Command ($server) {
# Check for the Azure Temporary Storage volume
$azTempVolume = Get-Volume -FriendlyName "Temporary Storage" -ErrorAction SilentlyContinue
If ($azTempVolume) {
$azTempDrive = (Get-Partition -DriveLetter $azTempVolume.DriveLetter).DiskNumber
}
# Clear and reset the disks
$disks = Get-Disk | Where-Object {
($_.Number -ne $null -and $_.Number -ne $azTempDrive -and !$_.IsBoot -and !$_.IsSystem -and $_.PartitionStyle -ne "RAW")
}
$disks | ft Number,FriendlyName,OperationalStatus
If ($disks) {
Write-Host "This action will permanently remove any data on any drives other than the operating system boot drive!`nReset disks? (Y/N)"
$response = read-host
if ( $response.ToLower() -ne "y" ) { exit }
$disks | % {
$_ | Set-Disk -isoffline:$false
$_ | Set-Disk -isreadonly:$false
$_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false -verbose
$_ | Set-Disk -isreadonly:$true
$_ | Set-Disk -isoffline:$true
}
#Get-PhysicalDisk | Reset-PhysicalDisk
}
Get-Disk | Where-Object {
($_.Number -ne $null -and $_.Number -ne $azTempDrive -and !$_.IsBoot -and !$_.IsSystem -and $_.PartitionStyle -eq "RAW")
} | Group -NoElement -Property FriendlyName
}
}
Выходные данные выглядят следующим образом, где Count — это количество дисков каждой модели на каждом сервере:
Count Name PSComputerName
----- ---- --------------
4 ATA SSDSC2BA800G4n Server01
10 ATA ST4000NM0033 Server01
4 ATA SSDSC2BA800G4n Server02
10 ATA ST4000NM0033 Server02
4 ATA SSDSC2BA800G4n Server03
10 ATA ST4000NM0033 Server03
4 ATA SSDSC2BA800G4n Server04
10 ATA ST4000NM0033 Server04
Шаг 3.2. Проверка кластера
На этом этапе вы запускаете средство проверки кластера, чтобы убедиться, что серверные узлы правильно настроены для создания кластера с помощью Storage Spaces Direct. При выполнении проверки кластера (Test-Cluster) перед созданием кластера он выполняет тесты, которые проверяют, подходит ли конфигурация для работы в качестве отказоустойчивого кластера. В следующем примере используется -Include параметр напрямую, а затем указываются определенные категории тестов. Этот подход гарантирует, что в проверку включены специфические тесты для Storage Spaces Direct.
Используйте следующую команду PowerShell, чтобы проверить набор серверов для их использования в качестве кластера Storage Spaces Direct.
Test-Cluster -Node <MachineName1, MachineName2, MachineName3, MachineName4> -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
Шаг 3.3. Создание кластера
На этом шаге вы создадите кластер с узлами, проверенными для создания кластера на предыдущем шаге, с помощью следующего командлета PowerShell.
При создании кластера вы получите предупреждение о том, что при создании кластерной роли возникли проблемы, которые могут препятствовать запуску кластера. Дополнительные сведения см. в приведенном ниже файле отчета". Это предупреждение можно безопасно игнорировать. Из-за отсутствия доступных дисков для кворума кластера. Настройте свидетель файлового ресурса или облачный свидетель после создания кластера.
Note
Если серверы используют статические IP-адреса, измените следующую команду, чтобы отразить статический IP-адрес, добавив следующий параметр и указав IP-адрес: -StaticAddress <X.X.X.X>
В следующей команде замените ClusterName заполнитель уникальным именем NetBIOS длиной не более 15 символов.
New-Cluster -Name <ClusterName> -Node <MachineName1,MachineName2,MachineName3,MachineName4> -NoStorage
После создания кластера может потребоваться время, чтобы запись в системе доменных имен (DNS) для имени кластера реплицировалась. Время зависит от конфигурации среды и репликации DNS. Если не удалось разрешить кластер, можно использовать имя компьютера узла, который является активным узлом в кластере, вместо имени кластера.
Шаг 3.4. Настройка кластерного свидетеля
Настройте следящий сервер для кластера таким образом, чтобы кластеры с тремя или более серверами могли противостоять сбою или отключению двух серверов. Для развертывания с двумя серверами требуется свидетель кластера; В противном случае, если любой сервер переходит в автономный режим, другой сервер становится недоступным. В этих системах в качестве свидетеля можно использовать файловое хранилище или облачный свидетель. Дополнительные сведения см. в статье Развертывание свидетеля кворума.
Шаг 3.5. Включение Storage Spaces Direct
После создания кластера используйте командлет PowerShell Enable-ClusterStorageSpacesDirect. Этот командлет переводит систему хранения в режим Storage Spaces Direct и автоматически выполняет следующие задачи:
Создает пул: создает один большой пул с именем, например S2D в Cluster1.
Настраивает кэши для Storage Spaces Direct: Если для использования Storage Spaces Direct доступно несколько типов носителей, самые быстрые из них используются в качестве устройств кэша (как для чтения, так и для записи в большинстве случаев).
Создает два уровня в качестве уровней по умолчанию: один уровень называется "Емкость", а другой — "Производительность". Командлет анализирует устройства и настраивает каждый уровень, используя сочетание типов устройств и их устойчивости.
В системе управления откройте окно PowerShell с повышенными привилегиями и выполните следующую команду. Нужно указать имя кластера, созданного при выполнении предыдущих действий. Если эта команда выполняется локально на одном из узлов, параметр не нужен -CimSession .
Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>
Эта команда включает Система хранения Spaces Direct. Вместо имени кластера можно использовать имя узла. Использование имени узла может быть более надежным, так как задержки репликации DNS могут возникать с новым именем кластера.
По завершении этой команды, которая может занять несколько минут, система готова к созданию томов.
Шаг 3.6. Создание томов
Используйте командлет New-Volume для самого быстрого и простого использования. Этот один командлет автоматически создает виртуальный диск, секции и форматирует его. Он создает том с соответствующим именем и добавляет его в общие тома кластера — все на одном простом шаге.
Дополнительные сведения см. в статье "Создание томов в Storage Spaces Direct".
Шаг 3.7. При необходимости включите кэш CSV
Кэш общего тома кластера (CSV) можно включить с помощью системной памяти (ОЗУ) в качестве сквозного кэша на уровне блоков для операций чтения, которые не кэширует диспетчер кэша Windows в обычном режиме. Эта функция может повысить производительность таких приложений, как Hyper-V. Кэш CSV повышает производительность запросов на чтение и также полезен для сценариев Scale-Out файлового сервера.
Включение кэша CSV сокращает объем памяти, доступной для запуска виртуальных машин в гиперконвергентном кластере, поэтому необходимо сбалансировать производительность хранилища с памятью, доступной для виртуальных жестких дисков.
Чтобы задать размер кэша CSV, откройте сеанс PowerShell в системе управления с учетной записью, которая имеет разрешения администратора в кластере хранилища. Используйте следующий скрипт, изменив переменные $ClusterName и $CSVCacheSize соответствующим образом (в этом примере задается кэш CSV по 2 ГБ на сервер).
$ClusterName = "StorageSpacesDirect1"
$CSVCacheSize = 2048 #Size in MB
Write-Output "Setting the CSV cache..."
(Get-Cluster $ClusterName).BlockCacheSize = $CSVCacheSize
$CSVCurrentCacheSize = (Get-Cluster $ClusterName).BlockCacheSize
Write-Output "$ClusterName CSV cache size: $CSVCurrentCacheSize MB"
Дополнительные сведения см. в разделе "Использование кэша чтения в памяти CSV".
Шаг 3.8. Развертывание виртуальных машин для гиперконвергентных развертываний
При развертывании гиперконвергентного кластера последним шагом является создание виртуальных машин в кластере Storage Spaces Direct.
Сохраните файлы виртуальной машины в пространстве имен CSV системы (например, c:\ClusterStorage\Volume1), как и кластеризованные виртуальные машины в отказоустойчивых кластерах.
Вы можете использовать встроенные средства или другие средства для управления хранилищем и виртуальными машинами, такими как System Center диспетчер виртуальных машин.
Шаг 4. Развертывание масштабируемого файлового сервера для конвергентных решений
Если вы развертываете конвергентное решение, следующим шагом является создание экземпляра файлового сервера Scale-Out и настройка общих папок.
Tip
Если вы развертываете гиперконвергентный кластер, завершите работу и не нуждаетесь в этом разделе.
Выберите одну из следующих вкладок, чтобы узнать, как создать роль Scale-Out файлового сервера с помощью диспетчера отказоустойчивых кластеров или PowerShell.
Создание роли масштабируемого файлового сервера с помощью диспетчера отказоустойчивых кластеров:
В диспетчере отказоустойчивости кластеров выберите кластер, перейдите в раздел "Роли", а затем выберите "Настройка роли...".
Мастер настройки высокой доступности открывается.На странице "Выбор роли" выберите файловый сервер.
На странице Тип файлового сервера выберите Scale-Out файловый сервер для данных приложения.
На странице точки доступа клиента введите имя файлового сервера вертикального масштабирования.
Убедитесь, что роль была успешно настроена, перейдя к ролям и убедившись, что столбец "Состояние " отображается рядом с созданной ролью кластеризованного файлового сервера, как показано на рисунке 1.
Рис. 1 Диспетчер отказоустойчивости кластеров с Scale-Out файлового сервера с состоянием "Выполнение"
Note
После создания кластеризованной роли задержки распространения сети могут препятствовать созданию общих папок в ней в течение нескольких минут или потенциально больше.
Создание общих папок
После создания виртуальных дисков и добавления их в CSVs создайте общие папки на них. Создайте один файловый ресурс для каждого CSV на каждый виртуальный диск. System Center Virtual Machine Manager (VMM) — самый простой способ сделать эту задачу, так как она обрабатывает разрешения для вас. Если у вас нет его в среде, вы можете использовать Windows PowerShell для частичной автоматизации развертывания.
Используйте скрипты, включенные в этот раздел, для частичной автоматизации процесса создания групп и общих папок. Скрипты записываются для рабочих нагрузок Hyper-V. При развертывании других рабочих нагрузок может потребоваться изменить параметры или выполнить дополнительные действия после создания ресурсов для совместного использования. Например, если вы используете Microsoft SQL Server, необходимо предоставить полный доступ к общей папке и файловой системе учетной записи службы SQL Server.
Note
При добавлении узлов в кластер необходимо обновить членство в группе, если только вы не используете System Center Virtual Machine Manager для создания общих ресурсов.
Чтобы создать общие папки с помощью скриптов PowerShell, выполните следующие действия.
Разверните каждый из следующих разделов и сохраните содержимое каждого из них в виде отдельного
.ps1файла с соответствующим именем в той же папке, напримерC:\Scripts\SetupSMBSharesWithHyperVна одном из узлов кластера файлового сервера:Разверните этот раздел для ADGroupSetup.ps1.
Param( [Parameter(Mandatory=$true)] [string] $HyperVClusterName, [Parameter(Mandatory=$true)] [string] $HyperVObjectADGroupSamName ) # Add and import needed features if ((Get-WindowsFeature | ? Name -Like "RSAT-AD-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-AD-PowerShell" } if ((Get-WindowsFeature | ? Name -Like "RSAT-Clustering-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-Clustering-PowerShell" } Import-Module -Name ActiveDirectory Import-Module -Name FailoverClusters # Check for group and create if necessary $adGroup = @() $adGroup = Get-ADGroup -Filter {samAccountName -eq $HyperVObjectADGroupSamName} if ($adGroup.Count -ne 1) { $adGroup = New-ADGroup -DisplayName $HyperVObjectADGroupSamName -Name $HyperVObjectADGroupSamName -SamAccountName $HyperVObjectADGroupSamName -GroupScope Global -GroupCategory Security -PassThru } # Build array of Hyper-V servers $HyperVNodes = (Get-ClusterNode -Cluster $HyperVClusterName).Name | Get-ADComputer # Add nodes to group if not already members for ($i = 0; $i -lt $HyperVNodes.Count; $i++) { if (!(Get-ADGroupMember $adGroup | ? Name -ieq $HyperVNodes[$i].Name)) { Add-ADGroupMember $adGroup -Members $HyperVNodes[$i] } } # Add Hyper-V cluster object to group if not already present if (!(Get-ADGroupMember $adGroup | ? Name -ieq $HyperVClusterName)) { Add-ADGroupMember $adGroup -Members (Get-ADComputer $HyperVClusterName) }Разверните этот раздел для FileShareSetup.ps1.
Param( [Parameter(Mandatory=$true)] [string] $HyperVClusterName, [Parameter(Mandatory=$true)] [string] $ScaleOutFSName, [Parameter(Mandatory=$true)] [string] $ShareName, [Parameter(Mandatory=$true)] [string] $HyperVObjectADGroupSamName, [int] $CSVVolumeNumber = 1, [string] $VHDFolderName = "VHDs", [string] $VMFolderName = "VMs" ) # Create the share folder New-Item -ItemType Directory -Path C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName # Create folders in share New-Item -ItemType Directory -Path "C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName\$VHDFolderName" New-Item -ItemType Directory -Path "C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName\$VMFolderName" # Get the domain name $DomainName = Get-Content env:userdnsdomain # Grant the Hyper-V group permission $cmdString = "ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName --% /Grant $DomainName\$HyperVObjectADGroupSamName" $cmdString += ':(CI)(OI)F' Invoke-Expression -Command $cmdString # Grant domain admins permission $DomainAdmins = "Domain Admins" $cmdString = "ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName" $cmdString += ' --% /Grant "' $cmdString += "$DomainName\$DomainAdmins" $cmdString += ':(CI)(OI)F"' Invoke-Expression -Command $cmdString # Remove inheritance (optional) ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName /Inheritance:R # Create new share and set matching Share permissions $FullAccess = ("$DomainName\$HyperVObjectADGroupSamName","$DomainName\Domain Admins") New-SmbShare -Name $ShareName -Path C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName -FullAccess $FullAccessРазверните этот раздел для KCDSetup.ps1.
Param( [Parameter(Mandatory=$true)] [string] $HyperVClusterName, [Parameter(Mandatory=$true)] [string] $ScaleOutFSName, [switch] $EnableLM = $true ) # Add and import needed features if ((Get-WindowsFeature | ? Name -Like "RSAT-AD-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-AD-PowerShell" } if ((Get-WindowsFeature | ? Name -Like "RSAT-Clustering-PowerShell") | ? InstallState -NotLike Installed) { Install-WindowsFeature "RSAT-Clustering-PowerShell" } Import-Module -Name ActiveDirectory # Build array of Hyper-V servers $HyperVNodes = (Get-ClusterNode -Cluster $HyperVClusterName).Name # Enable LM and CD $SMBServerAD = Get-ADComputer -Filter {Name -eq $ScaleOutFSName} $AllowedToDelegateToSMB = @( ("cifs/"+$SMBServerAD.Name), ("cifs/"+$SMBServerAD.DNSHostName)) for ($serverCounter = 0; $serverCounter -lt $HyperVNodes.Count; $serverCounter++) { $AllowedToDelegateTo = $AllowedToDelegateToSMB if ($EnableLM) { for ($delegateCounter = 0; $delegateCounter -lt $HyperVNodes.Count; $delegateCounter++) { if ($delegateCounter -ne $serverCounter) { $delegationServer = $HyperVNodes[$delegateCounter] | Get-ADComputer $AllowedToDelegateTo += @( ("Microsoft Virtual System Migration Service/"+$delegationServer.Name), ("Microsoft Virtual System Migration Service/"+$delegationServer.DNSHostName)) } } } ($HyperVNodes[$serverCounter] | Get-ADComputer) | Set-ADObject -Add @{"msDS-AllowedToDelegateTo"=$AllowedToDelegateTo} }Откройте сеанс Windows PowerShell с учетными данными администратора домена в системе управления. Используйте скрипт
ADGroupSetup.ps1для создания группы Active Directory для объектов Hyper-V компьютеров. Измените значения переменных в соответствии с вашей средой:# Replace the values of these variables $HyperVClusterName = "Compute01" $HyperVObjectADGroupSamName = "Hyper-VServerComputerAccounts" <#No spaces#> $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" # Start of script itself CD $ScriptFolder .\ADGroupSetup.ps1 -HyperVObjectADGroupSamName $HyperVObjectADGroupSamName -HyperVClusterName $HyperVClusterNameИспользуйте сценарий
FileShareSetup.ps1для создания общих папок для каждого CSV-файла и предоставления административных разрешений для общих папок группе администраторов домена и вычислительному кластеру.# Replace the values of these variables $StorageClusterName = "StorageSpacesDirect1" $HyperVObjectADGroupSamName = "Hyper-VServerComputerAccounts" <#No spaces#> $SOFSName = "SOFS" $SharePrefix = "Share" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" # Start of the script itself CD $ScriptFolder Get-ClusterSharedVolume -Cluster $StorageClusterName | ForEach-Object { $ShareName = $SharePrefix + $_.SharedVolumeInfo.friendlyvolumename.trimstart("C:\ClusterStorage\Volume") Write-host "Creating share $ShareName on "$_.name "on Volume: " $_.SharedVolumeInfo.friendlyvolumename .\FileShareSetup.ps1 -HyperVClusterName $StorageClusterName -CSVVolumeNumber $_.SharedVolumeInfo.friendlyvolumename.trimstart("C:\ClusterStorage\Volume") -ScaleOutFSName $SOFSName -ShareName $ShareName -HyperVObjectADGroupSamName $HyperVObjectADGroupSamName }Включите ограниченное делегирование Kerberos для удаленного управления техническими сценариями и повышения безопасности Live Migration. С одного из узлов кластера хранилища используйте
KCDSetup.ps1скрипт. Вот небольшая обертка для скрипта:$HyperVClusterName = "Compute01" $ScaleOutFSName = "SOFS" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" CD $ScriptFolder .\KCDSetup.ps1 -HyperVClusterName $HyperVClusterName -ScaleOutFSName $ScaleOutFSName -EnableLMПерезапустите все узлы в кластере Hyper-V, чтобы новые параметры ограниченного делегирования Kerberos вступили в силу. Когда узлы возвращаются в сети, можно начать развертывание виртуальных машин в созданных общих папках.