Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece instruções passo a passo para implantar espaços de armazenamento diretos no Windows Server. Para implantar espaços de armazenamento diretos como parte do Azure Local, consulte Sobre o Azure Local.
Dica
Deseja adquirir uma infraestrutura hiperconvergente? Microsoft recomenda comprar uma solução de hardware/software local do Azure validada de nossos parceiros. Essas soluções são desenvolvidas, montadas e validadas em nossa arquitetura de referência para garantir a compatibilidade e a confiabilidade e você começar a trabalhar rapidamente. Para analisar um catálogo de soluções de hardware/software que funcionam com o Azure Local, consulte o catálogo local do Azure.
Dica
Você pode usar máquinas virtuais do Hyper-V, inclusive no Microsoft Azure, para avaliar Espaços de Armazenamento Diretos sem hardware. Você pode querer conferir os scripts práticos de implantação rápida de laboratório do Windows Server, que usamos para treinamento.
Antes de começar
Examine os requisitos de hardware diretos dos Espaços de Armazenamento para se familiarizar com a abordagem geral e as notas importantes associadas a algumas etapas.
Reúna as seguintes informações:
Opção de implantação: os Espaços de Armazenamento Diretos dão suporte a duas opções de implantação: hiperconvergentes e convergidas, também conhecidas como desagregadas. Familiarize-se com as vantagens de cada um para decidir qual opção é a certa para você. As etapas 1 a 3 neste artigo se aplicam às duas opções de implantação. A etapa 4 só é necessária para a implantação convergente.
Nomes de servidor: familiarize-se com as políticas de nomenclatura da sua organização para computadores, arquivos, caminhos e outros recursos. Você precisa provisionar vários servidores, cada um com nomes exclusivos.
Nome de domínio: familiarize-se com as políticas da sua organização para nomenclatura de domínio e ingresso no domínio. Você conecta os servidores ao seu domínio e precisa especificar o nome do domínio.
Rede RDMA: há dois tipos de protocolos RDMA: iWarp e RoCE. Observe qual os adaptadores de rede usam e, se for o RoCE, observe também a versão (v1 ou v2). Para RoCE, observe também o modelo do comutador topo de rack.
ID da VLAN: observe a ID da VLAN a ser usada para adaptadores de rede do sistema operacional de gerenciamento nos servidores, se houver. Você deve conseguir obter essas informações do administrador de rede.
Etapa 1: Implantar o Windows Server
Etapa 1.1: Instalar o sistema operacional
Primeiro, instale o Windows Server em todos os servidores do cluster. Os Espaços de Armazenamento Diretos exigem o Windows Server Datacenter Edition. Você pode usar a opção de instalação Server Core ou o Servidor com Experiência de Área de Trabalho.
Ao instalar o Windows Server usando o assistente de Instalação, você pode escolher entre o Windows Server (referindo-se ao Server Core) e o Windows Server (Servidor com Experiência de Área de Trabalho), que é o equivalente à opção de instalação Completa disponível no Windows Server 2012 R2. Se você não escolher, obterá a opção de instalação do Server Core. Para obter mais informações, consulte Instalar o Server Core.
Etapa 1.2: Conectar-se aos servidores
Este guia se concentra na opção de instalação do Server Core e na implantação e gerenciamento remoto de um sistema de gerenciamento separado. O sistema de gerenciamento deve ter:
- Uma versão do Windows Server ou do Windows 10 que é pelo menos tão nova quanto os servidores que está gerenciando, com as atualizações mais recentes.
- Conectividade de rede com os servidores que está gerenciando.
- Conectado ao mesmo domínio ou a um domínio totalmente confiável.
- RSAT (Ferramentas de Administração de Servidor Remoto) e módulos do PowerShell para Hyper-V e Cluster de Failover. As ferramentas RSAT e os módulos do PowerShell estão disponíveis no Windows Server e podem ser instaladas sem a instalação de outros recursos. Você também pode instalar as Ferramentas de Administração de Servidor Remoto em um PC de gerenciamento do Windows 10.
No sistema de gerenciamento, instale o Cluster de Failover e as ferramentas de gerenciamento do Hyper-V. Você pode fazer isso por meio do Gerenciador de Servidores usando o assistente Adicionar Funções e Recursos . Na página Recursos , selecione Ferramentas de Administração de Servidor Remoto e, em seguida, selecione as ferramentas a serem instaladas.
Insira a sessão do PowerShell e use o nome do servidor ou o endereço IP do nó ao qual você deseja se conectar. Você será solicitado a obter uma senha depois de executar este comando. Insira a senha de administrador especificada ao configurar o Windows.
Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator
Aqui está um exemplo de fazer a mesma coisa de uma maneira mais útil em scripts:
$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
Dica
Se você estiver implantando remotamente de um sistema de gerenciamento, poderá receber um erro como o WinRM não pode processar a solicitação. Para corrigir esse erro, use o Windows PowerShell para adicionar cada servidor à lista de Hosts Confiáveis no computador de gerenciamento:
Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server01 -Force
A lista de hosts confiáveis dá suporte a curingas, como Server*.
- Para exibir sua lista de Hosts Confiáveis, digite
Get-Item WSMAN:\Localhost\Client\TrustedHosts. - Para esvaziar a lista, digite
Clear-Item WSMAN:\Localhost\Client\TrustedHost.
Etapa 1.3: Ingressar no domínio e adicionar contas de domínio
Para gerenciar o Storage Spaces Direct, você precisa ingressar os servidores em um domínio e usar uma conta de domínio do Active Directory Domain Services que esteja no grupo Administradores em cada servidor.
No sistema de gerenciamento, abra o console do PowerShell com privilégios de Administrador. Use Enter-PSSession para se conectar a cada servidor e executar o seguinte cmdlet, substituindo seu próprio nome de computador, nome de domínio e credenciais de domínio:
Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force
Se sua conta de administrador de armazenamento não for membro do grupo Administradores de Domínio, adicione sua conta de administrador de armazenamento ao grupo administrador local em cada nó ou adicione o grupo que você usa para administradores de armazenamento. Você pode usar o comando a seguir ou criar um script do PowerShell para executar esta etapa. Para obter mais informações, consulte Usar o PowerShell para adicionar usuários de domínio a um grupo local.
Net localgroup Administrators <Domain\Account> /add
Etapa 1.4: Instalar funções e recursos
A próxima etapa é instalar funções de servidor em cada servidor por meio do Windows Admin Center, Server Manager ou PowerShell. Estas são as funções a serem instaladas:
- Clustering de failover
- Hyper-V
- Servidor de Arquivos (se você quiser hospedar compartilhamentos de arquivos, como para uma implantação convergente)
- Ponte de Data Center (se você estiver usando os adaptadores de rede de RoCEv2 em vez de iWARP)
- RSAT-Clustering-PowerShell
- PowerShell do Hyper-V
Para instalar funções por meio do PowerShell, use o cmdlet Install-WindowsFeature . Você pode usá-lo em um único servidor como este:
Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
Para executar o comando em todos os servidores no cluster ao mesmo tempo, execute esse script que modifica a lista de variáveis no início do script para se ajustar ao seu ambiente.
# 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
}
Etapa 2: Configurar a rede
Se você estiver implantando Espaços de Armazenamento Diretos em máquinas virtuais, ignore esta seção.
Os Espaços de Armazenamento Diretos exigem rede de alta largura de banda e baixa latência entre servidores no cluster. Você precisa de pelo menos 10 GbE de rede e o RDMA (acesso remoto à memória direta) é recomendado. Você pode usar iWARP ou RoCE, desde que ele tenha o logotipo do Windows Server que corresponda à versão do sistema operacional, mas o iWARP é mais fácil de configurar.
Importante
Dependendo do equipamento de rede e, especialmente, do RoCE v2, talvez seja necessário configurar o switch top-of-rack. A configuração correta do comutador é importante para garantir a confiabilidade e o desempenho dos Espaços de Armazenamento Diretos.
O Windows Server 2016 introduziu o SET (agrupamento incorporado de comutador) no comutador virtual do Hyper-V. Esse recurso permite que você use as mesmas portas nic (placa de interface de rede) físicas para todo o tráfego de rede ao usar RDMA, reduzindo o número de portas NIC físicas necessárias. Use o agrupamento com switch embutido para o Storage Spaces Direct.
- Comutado: você deve configurar os switches de rede corretamente para lidar com a largura de banda e o tipo de rede. Se você usar RDMA que implementa o protocolo RoCE, a configuração do dispositivo de rede e do comutador será ainda mais importante.
- Sem switch: você pode interconectar nós usando conexões diretas, evitando o uso de um switch. Cada nó deve ter uma conexão direta com todos os outros nós do cluster.
Para obter instruções sobre como configurar a rede para Espaços de Armazenamento Diretos, consulte o Guia de Implantação de RDMA do Windows Server 2016 e 2019.
Etapa 3: Configurar os Espaços de Armazenamento Diretos
Execute as etapas a seguir em um sistema de gerenciamento que executa a mesma versão dos servidores que você está configurando. Não execute essas etapas remotamente usando uma sessão do PowerShell. Em vez disso, execute-os em uma sessão local do PowerShell no sistema de gerenciamento, com permissões administrativas.
Etapa 3.1: Limpar as unidades
Antes de habilitar espaços de armazenamento diretos, verifique se suas unidades estão vazias sem partições antigas ou outros dados. Execute o script a seguir, substituindo os nomes do computador para remover quaisquer partições antigas ou outros dados.
Importante
Esse script remove permanentemente todos os dados em unidades diferentes da unidade de inicialização do sistema operacional!
# 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
}
}
A saída se parece com o exemplo a seguir, em que Count é o número de unidades de cada modelo em cada servidor:
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
Etapa 3.2: Validar o cluster
Nesta etapa, você executará a ferramenta de validação de cluster para garantir que os nós de servidor estejam configurados corretamente para criar um cluster usando espaços de armazenamento diretos. Quando você executa a validação de cluster (Test-Cluster) antes de criar o cluster, ele executa testes que verificam se a configuração é adequada para funcionar como um cluster de failover. O exemplo a seguir usa diretamente o -Include parâmetro e especifica as categorias específicas de testes. Essa abordagem garante que os testes específicos dos Espaços de Armazenamento Diretos sejam incluídos na validação.
Use o seguinte comando do PowerShell para validar um conjunto de servidores para uso como um cluster de Espaços de Armazenamento Diretos.
Test-Cluster -Node <MachineName1, MachineName2, MachineName3, MachineName4> -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
Etapa 3.3: criar o cluster
Nesta etapa, você criará um cluster com os nós validados para a criação do cluster na etapa anterior usando o cmdlet do PowerShell a seguir.
Ao criar o cluster, você recebe um aviso informando que "Houve problemas ao criar a função clusterizada que pode impedir que ela inicie. Para obter mais informações, consulte o arquivo de relatório abaixo." Você pode ignorar esse aviso com segurança. Ele ocorre devido a indisponibilidade dos discos para o quórum do cluster. Configure uma testemunha de compartilhamento de arquivos ou testemunha de nuvem após a criação do cluster.
Observação
Se os servidores usarem endereços IP estáticos, modifique o seguinte comando para refletir o endereço IP estático adicionando o seguinte parâmetro e especificando o endereço IP: -StaticAddress <X.X.X.X>.
No comando a seguir, substitua o ClusterName placeholder por um nome NetBIOS exclusivo de no máximo 15 caracteres.
New-Cluster -Name <ClusterName> -Node <MachineName1,MachineName2,MachineName3,MachineName4> -NoStorage
Depois de criar o cluster, pode levar tempo para que a entrada DNS referente ao nome do cluster seja replicada. O tempo depende do ambiente e da configuração de replicação de DNS. Se a resolução do cluster não for bem-sucedida, você pode usar o nome da máquina de um nó que seja um membro ativo do cluster em vez do nome do cluster.
Etapa 3.4: Configurar uma testemunha do cluster
Configure uma testemunha para o cluster permitindo que clusters com três ou mais servidores possam suportar a falha de dois servidores ou ficarem indisponíveis. Uma implantação de dois servidores requer uma testemunha de cluster; caso contrário, se um dos servidores ficar offline, o outro servidor ficará indisponível. Com esses sistemas, você pode usar um compartilhamento de arquivo como uma testemunha, ou usar uma testemunha de nuvem. Para obter mais informações, consulte Implantar uma testemunha de quorum.
Etapa 3.5: Habilitar os Espaços de Armazenamento Diretos
Depois de criar o cluster, use o cmdlet do Enable-ClusterStorageSpacesDirect PowerShell. Esse cmdlet coloca o sistema de armazenamento no modo Espaços de Armazenamento Diretos e executa automaticamente as seguintes tarefas:
Cria um pool: cria um único pool grande com um nome como "S2D no Cluster1".
Configura os caches do Storage Spaces Direct: Se mais de um tipo de mídia (unidade) estiver disponível para o uso do Storage Spaces Direct, habilitará o mais rápido como dispositivos de cache (leitura e gravação na maioria dos casos).
Cria duas camadas como camadas padrão: uma camada é chamada de "Capacidade" e a outra camada é chamada de "Desempenho". O cmdlet analisa os dispositivos e configura cada camada com a combinação de tipos de dispositivo e resiliência.
No sistema de gerenciamento, abra uma janela elevada do PowerShell e execute o comando a seguir. O nome do cluster é o nome do cluster que você criou nas etapas anteriores. Se você executar esse comando localmente em um dos nós, não precisará do -CimSession parâmetro.
Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>
Esse comando habilita espaços de armazenamento diretos. Você pode optar por usar o nome do nó em vez do nome do cluster. Usar o nome do nó pode ser mais confiável porque atrasos de replicação de DNS podem ocorrer com o nome do cluster recém-criado.
Quando esse comando for concluído, o que pode levar vários minutos, o sistema estará pronto para que os volumes sejam criados.
Etapa 3.6: Criar volumes
Use o New-Volume cmdlet para a experiência mais rápida e simples. Esse único cmdlet cria automaticamente o disco virtual, as partições e o formata. Ele cria o volume com um nome correspondente e adiciona-o a volumes compartilhados de cluster – tudo em uma etapa fácil.
Para obter mais informações, consulte Criando volumes no Storage Spaces Direct.
Etapa 3.7: Opcionalmente, habilitar o cache CSV
Você pode habilitar o cache CSV (volume compartilhado de cluster) utilizando a memória do sistema (RAM) como um cache de nível de bloco em modo write-through, destinado a operações de leitura que o gerenciador de cache do Windows não armazena. Esse recurso pode melhorar o desempenho de aplicativos como o Hyper-V. O cache CSV aumenta o desempenho de solicitações de leitura e também é útil para cenários de servidor de arquivos Scale-Out.
Habilitar o cache CSV reduz a quantidade de memória disponível para executar VMs em um cluster hiperconvergente, portanto, você precisa equilibrar o desempenho do armazenamento com a memória disponível para VHDs.
Para definir o tamanho do cache CSV, abra uma sessão do PowerShell no sistema de gerenciamento com uma conta que tenha permissões de administrador no cluster de armazenamento. Use o script a seguir, alterando as variáveis $ClusterName e $CSVCacheSize conforme apropriado (este exemplo define um cache CSV de 2 GB por servidor):
$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"
Para obter mais informações, confira Usar o cache de leitura na memória de CSV.
Etapa 3.8: Implantar máquinas virtuais para implantações hiperconvergentes
Se você estiver implantando um cluster hiperconvergente, a última etapa será provisionar máquinas virtuais no cluster dos Espaços de Armazenamento Diretos.
Armazene os arquivos da máquina virtual no namespace CSV do sistema (exemplo: c:\ClusterStorage\Volume1) assim como VMs clusterizados em clusters de failover.
Você pode usar as ferramentas nativas ou outras ferramentas para gerenciar o armazenamento e as máquinas virtuais, como o System Center Virtual Machine Manager.
Etapa 4: Implantar Servidor de Arquivos de Escalabilidade Horizontal para soluções convergentes
Se você estiver implantando uma solução convergida, a próxima etapa será criar uma instância do servidor de arquivos Scale-Out e configurar os compartilhamentos de arquivos.
Dica
Se você estiver implantando um cluster hiperconvergente, você já terá terminado e não precisará desta seção.
Selecione uma das guias a seguir para obter instruções sobre como criar uma função de servidor de arquivos Scale-Out usando o Gerenciador de Cluster de Failover ou o PowerShell.
Para criar uma função de servidor de arquivos Scale-Out usando o Gerenciador de Cluster de Failover:
No Gerenciador de Cluster de Failover, selecione o cluster, vá para Funções e selecione Configurar Função....
O Assistente para Alta Disponibilidade será exibido.Na página Selecionar Função , selecione Servidor de Arquivos.
Na página Tipo de Servidor de Arquivos , selecione Scale-Out Servidor de Arquivos para dados do aplicativo.
Na página Ponto de Acesso do Cliente, digite um nome para o Servidor de Arquivos de Escalabilidade Horizontal.
Verifique se a função foi configurada com êxito acessando Funções e confirmando que a coluna Status mostra Em execução ao lado da função de servidor de arquivos clusterizado que você criou, conforme mostrado na Figura 1.
Figura 1 Gerenciador de Cluster de Failover mostrando o Servidor de Arquivos de Expansão com o status Em execução
Observação
Depois de criar a função em cluster, os atrasos de propagação de rede podem impedir que você crie compartilhamentos de arquivos no cluster por alguns minutos, ou potencialmente por mais tempo.
Criar compartilhamentos de arquivo
Depois de criar seus discos virtuais e adicioná-los a CSVs, crie compartilhamentos de arquivos neles. Crie um compartilhamento de arquivo por CSV por disco virtual. O System Center Virtual Machine Manager (VMM) é a maneira mais fácil de fazer essa tarefa porque ele manipula permissões para você. Se você não o tiver em seu ambiente, poderá usar o Windows PowerShell para automatizar parcialmente a implantação.
Use os scripts incluídos nesta seção para automatizar parcialmente o processo de criação de grupos e compartilhamentos. Os scripts são escritos para cargas de trabalho Hyper-V. Se você estiver implantando outras cargas de trabalho, talvez seja necessário modificar as configurações ou executar etapas adicionais depois de criar os compartilhamentos. Por exemplo, se você estiver usando o Microsoft SQL Server, deverá conceder controle total sobre o compartilhamento e o sistema de arquivos à conta de serviço do SQL Server.
Observação
Você precisa atualizar a associação de grupo ao adicionar nós de cluster, a menos que use o System Center Virtual Machine Manager para criar seus compartilhamentos.
Para criar compartilhamentos de arquivos usando scripts do PowerShell, execute as seguintes etapas:
Expanda cada uma das seções a seguir e salve o conteúdo de cada uma como um arquivo separado
.ps1com o nome relevante na mesma pasta, comoC:\Scripts\SetupSMBSharesWithHyperV, em um dos nós do cluster do servidor de arquivos:Expanda esta seção para 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) }Expanda esta seção para 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 $FullAccessExpanda esta seção para 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} }Abra uma sessão do Windows PowerShell com credenciais de Administrador de Domínio no sistema de gerenciamento. Use o script
ADGroupSetup.ps1para criar um grupo do Active Directory para os objetos de computador Hyper-V. Altere os valores das variáveis conforme apropriado para seu ambiente:# 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 $HyperVClusterNameUse o script
FileShareSetup.ps1para criar compartilhamentos para cada CSV e conceder permissões administrativas para os compartilhamentos para o grupo administradores de domínio e o cluster de computação.# 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 }Habilite a delegação restrita de Kerberos para gerenciamento de cenário remoto e maior segurança de Migração Ao Vivo. Em um dos nós do cluster de armazenamento, use o script
KCDSetup.ps1. Aqui está um pequeno wrapper para o script:$HyperVClusterName = "Compute01" $ScaleOutFSName = "SOFS" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" CD $ScriptFolder .\KCDSetup.ps1 -HyperVClusterName $HyperVClusterName -ScaleOutFSName $ScaleOutFSName -EnableLMReinicie todos os nós no cluster Hyper-V para garantir que as novas configurações de delegação restrita de Kerberos tenham efeito. Quando os nós estiverem online novamente, você poderá começar a implantar máquinas virtuais nos compartilhamentos de arquivos que você criou.
Referências adicionais
- Visão geral dos Espaços de Armazenamento Diretos
- Noções básicas sobre o cache nos Espaços de Armazenamento Diretos
- Planejamento de volumes nos Espaços de Armazenamento Diretos
- Tolerância a falhas de Espaços de Armazenamento
- Requisitos de hardware de Espaços de Armazenamento Diretos
- To RDMA, or not to RDMA – that is the question (blog do TechNet)