Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce istruzioni dettagliate per distribuire Storage Spaces Direct su Windows Server. Per distribuire Spazi di archiviazione diretta come parte di Azure Locale, vedere Informazioni su Locale di Azure.
Tip
Si vuole acquisire un'infrastruttura iperconvergente? Microsoft consiglia di acquistare una soluzione locale di Azure hardware/software convalidata dai partner. Queste soluzioni sono progettate, assemblate e convalidate in base all'architettura di riferimento per garantire la compatibilità e l'affidabilità, in modo da essere operativi rapidamente. Per consultare un catalogo di soluzioni hardware/software che funzionano con Azure Local, vedere il Azure Local Catalog.
Tip
È possibile usare macchine virtuali Hyper-V, anche in Microsoft Azure, per valutare Spazi di archiviazione diretta senza hardware. È anche possibile esaminare gli utili script di distribuzione del lab rapido di Windows Server, che vengono usati per scopi di formazione.
Prima di iniziare
Esaminare i requisiti hardware di Spazi di archiviazione diretta, per acquisire familiarità con l'approccio generale e le note importanti associate ad alcuni passaggi.
Raccogliere le seguenti informazioni:
Opzione di distribuzione: Spazi di archiviazione diretta supporta due opzioni di distribuzione: iperconvergente e convergente, note anche come disaggregate. Acquisire familiarità con i vantaggi di ognuno per decidere quale opzione è adatta per te. I passaggi da 1 a 3 di questo articolo si applicano a entrambe le opzioni di distribuzione. Il passaggio 4 è necessario solo per la distribuzione convergente.
Nomi dei server: acquisire familiarità con i criteri di denominazione dell'organizzazione per computer, file, percorsi e altre risorse. È necessario effettuare il provisioning di più server, ognuno con nomi univoci.
Nome di dominio: acquisire familiarità con i criteri dell'organizzazione per la denominazione del dominio e l'aggiunta a un dominio. I server vengono aggiunti al dominio ed è necessario specificare il nome di dominio.
Rete RDMA: esistono due tipi di protocolli RDMA: iWarp e RoCE. Annotare quale adattatore di rete viene utilizzato e, se si tratta di RoCE, annotare anche la versione (v1 o v2). Per quanto riguarda RoCE, annotare anche il modello del commutatore top-of-rack.
ID VLAN: annota l'ID VLAN da utilizzare per gli adattatori di rete del sistema operativo di gestione sui server, se presenti. Dovrebbe essere possibile ottenere queste informazioni dall'amministratore di rete.
Passaggio 1: Distribuire Windows Server
Passaggio 1.1: installare il sistema operativo
Prima di tutto, installare Windows Server in ogni server del cluster. Gli Spazi di archiviazione diretta richiedono Windows Server Datacenter Edition. È possibile usare l'opzione di installazione Server Core o Server con Esperienza desktop.
Quando si installa Windows Server tramite l'Installazione guidata, è possibile scegliere tra Windows Server (che fa riferimento a Server Core) e Windows Server (Server con Esperienza desktop), che equivale all'opzione Installazione completa disponibile in Windows Server 2012 R2. Se non si sceglie, si ottiene l'opzione di installazione Server Core. Per altre informazioni, vedere Installare Server Core.
Passaggio 1.2: connettersi ai server
Questa guida è incentrata sull'opzione di installazione Server Core e sulla distribuzione e la gestione remota da un sistema di gestione separato. Il sistema di gestione deve avere:
- Una versione di Windows Server o Windows 10 che è almeno nuova come i server che gestisce, con gli aggiornamenti più recenti.
- Connettività di rete ai server che gestisce.
- Collegato allo stesso dominio o a un dominio completamente attendibile.
- Strumenti di amministrazione remota del server (RSAT, Remote Server Administration Tools) e moduli PowerShell per Hyper-V e per il clustering failover. Gli strumenti RSAT e i moduli di PowerShell sono disponibili in Windows Server e possono essere installati senza installare altre funzionalità. È anche possibile installare Strumenti di amministrazione remota del server in un PC di gestione di Windows 10.
Nel sistema di gestione installare gli strumenti di gestione del cluster di failover e di Hyper-V. A tale scopo, è possibile usare Server Manager tramite la procedura guidata Aggiungi ruoli e funzionalità . Nella pagina Funzionalità selezionare Strumenti di amministrazione remota del server e quindi selezionare gli strumenti da installare.
Immettere la sessione di PowerShell e usare il nome del server o l'indirizzo IP del nodo a cui connettersi. Dopo aver eseguito questo comando, viene richiesta una password. Immettere la password dell'amministratore specificata durante la configurazione di Windows.
Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator
Ecco un esempio di come eseguire la stessa operazione in modo più utile negli script:
$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
Tip
Se si esegue la distribuzione in remoto da un sistema di gestione, è possibile che venga visualizzato un errore simile a WinRM non è in grado di elaborare la richiesta. Per correggere questo errore, usare Windows PowerShell per aggiungere ogni server all'elenco Host attendibili nel computer di gestione:
Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server01 -Force
L'elenco di host attendibili supporta metacaratteri, ad esempio Server*.
- Per visualizzare l'elenco host attendibili, digitare
Get-Item WSMAN:\Localhost\Client\TrustedHosts. - Per svuotare l'elenco, digitare
Clear-Item WSMAN:\Localhost\Client\TrustedHost.
Passaggio 1.3: aggiungere il dominio e gli account di dominio
Per gestire Spazi di archiviazione diretta, è necessario aggiungere i server a un dominio e usare un account di dominio di Servizi di dominio Active Directory che si trova nel gruppo Administrators in ogni server.
Dal sistema di gestione, aprire una console di PowerShell con privilegi di amministratore. Usare Enter-PSSession per connettersi a ogni server ed eseguire il cmdlet seguente, sostituendo il nome del computer, il nome di dominio e le credenziali di dominio:
Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force
Se l'account amministratore di archiviazione non è membro del gruppo Domain Admins, aggiungere l'account amministratore di archiviazione al gruppo Administrators locale in ogni nodo o aggiungere il gruppo usato per gli amministratori di archiviazione. Per eseguire questo passaggio, è possibile usare il comando seguente oppure creare uno script di PowerShell. Per altre informazioni, vedere Usare PowerShell per aggiungere utenti di dominio a un gruppo locale.
Net localgroup Administrators <Domain\Account> /add
Passaggio 1.4: installare ruoli e funzionalità
Il passaggio successivo consiste nell'installare i ruoli del server in ogni server tramite Windows Admin Center, Server Manager o PowerShell. Devono essere installati i seguenti ruoli:
- Raggruppamento di Failover
- Hyper-V
- File server (se si desidera ospitare condivisioni file, ad esempio per una distribuzione convergente)
- Data-Center-Bridging (se stai utilizzando adattatori di rete RoCEv2 invece di iWARP)
- RSAT-Clustering-PowerShell
- Hyper-V-PowerShell
Per installare i ruoli tramite PowerShell, usare il cmdlet Install-WindowsFeature . È possibile usarlo in un singolo server come illustrato di seguito:
Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"
Per eseguire il comando in tutti i server del cluster contemporaneamente, eseguire questo script che modifica l'elenco di variabili all'inizio dello script per adattarlo all'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
}
Passaggio 2: Configurare la rete
Se stai distribuendo Storage Spaces Direct all'interno delle macchine virtuali, ignora questa sezione.
Storage Spaces Direct richiedono una larghezza di banda elevata e una rete a bassa latenza tra i server nel cluster. È necessario disporre di una rete 10-GbE e si consiglia l'accesso diretto alla memoria remota (RDMA). È possibile usare iWARP o RoCE purché abbia il logo di Windows Server corrispondente alla versione del sistema operativo, ma iWARP è più semplice da configurare.
Important
A seconda delle apparecchiature di rete e soprattutto con RoCE v2, potrebbe essere necessario configurare il commutatore top-of-rack. La corretta configurazione del commutatore è importante per garantire affidabilità e prestazioni di Spazi di archiviazione diretta.
Windows Server 2016 ha introdotto il SET (switch-embedded teaming) all'interno del commutatore virtuale Hyper-V. Questa funzionalità consente di usare le stesse porte NIC (Physical Network Interface Card) per tutto il traffico di rete usando RDMA, riducendo il numero di porte NIC fisiche necessarie. Usare il raggruppamento switch-embedded per Spazi di archiviazione diretta.
- Switch: È necessario configurare correttamente gli switch di rete per gestire il tipo di rete e la larghezza di banda. Se si usa RDMA che implementa il protocollo RoCE, la configurazione del dispositivo di rete e del commutatore è ancora più importante.
- Switchless: è possibile interconnettere i nodi usando connessioni dirette, evitando l'uso di un commutatore. Ogni nodo deve avere una connessione diretta con ogni altro nodo del cluster.
Per istruzioni su come configurare la rete per Spazi di archiviazione diretta, vedere Guida alla distribuzione RDMA di Windows Server 2016 e 2019.
Passaggio 3: Configurare Spazi di archiviazione diretta
Eseguire i passaggi seguenti in un sistema di gestione che esegue la stessa versione dei server configurati. Non eseguire questi passaggi in remoto usando una sessione di PowerShell. Al contrario, eseguirli in una sessione di PowerShell locale nel sistema di gestione, con autorizzazioni amministrative.
Passaggio 3.1: pulire le unità
Prima di abilitare Spazi di archiviazione diretta, assicurarsi che le unità siano vuote senza partizioni obsolete o altri dati. Eseguire lo script seguente, sostituendo i nomi dei computer per rimuovere le partizioni precedenti o altri dati.
Important
Questo script rimuove definitivamente tutti i dati nelle unità diverse dall'unità di avvio del sistema operativo.
# 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
}
}
L'output è simile all'esempio seguente, dove Count è il numero di unità di ogni modello in ogni server:
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
Passaggio 3.2: convalidare il cluster
In questo passaggio si esegue lo strumento di convalida del cluster per assicurarsi che i nodi del server siano configurati correttamente per creare un cluster usando Spazi di archiviazione diretta. Quando si esegue la convalida del cluster (Test-Cluster) prima di creare il cluster, vengono eseguiti test che verificano che la configurazione sia adatta per funzionare come cluster di failover. Nell'esempio seguente viene usato direttamente il -Include parametro e quindi vengono specificate le categorie specifiche di test. Questo approccio garantisce che i test specifici di Spazi di archiviazione diretta siano inclusi nella convalida.
Usare il comando seguente di PowerShell per convalidare un set di server per l'uso come cluster di Spazi di archiviazione diretta.
Test-Cluster -Node <MachineName1, MachineName2, MachineName3, MachineName4> -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
Passaggio 3.3: creare il cluster
In questo passaggio viene creato un cluster con i nodi convalidati per la creazione del cluster nel passaggio precedente usando il cmdlet di PowerShell seguente.
Quando si crea il cluster, viene visualizzato un avviso che indica che si sono verificati problemi durante la creazione del ruolo cluster che potrebbero impedire l'avvio. Per altre informazioni, vedere il file di report riportato di seguito. È possibile ignorare questo avviso in modo sicuro. È causato dalla non disponibilità di dischi per il quorum del cluster. Configurare un testimone di condivisione file o un testimone cloud dopo la creazione del cluster.
Note
Se i server usano indirizzi IP statici, modificare il comando seguente per riflettere l'indirizzo IP statico aggiungendo il parametro seguente e specificando l'indirizzo IP: -StaticAddress <X.X.X.X>.
Nel comando seguente sostituire il ClusterName segnaposto con un nome NetBIOS univoco e minore di 15 caratteri.
New-Cluster -Name <ClusterName> -Node <MachineName1,MachineName2,MachineName3,MachineName4> -NoStorage
Dopo aver creato il cluster, può trascorrere del tempo prima che la voce DNS (Domain Name System) relativa al nome del cluster venga replicata. Il tempo dipende dall'ambiente e dalla configurazione della replica DNS. Se la risoluzione del cluster non riesce, è possibile usare il nome del computer di un nodo membro attivo del cluster anziché il nome del cluster.
Passaggio 3.4: configurare un testimone del cluster
Configurare un testimone per il cluster in modo che i cluster con tre o più server possano resistere alla mancanza di due server. Una distribuzione a due server richiede un server di controllo del cluster; in caso contrario, se uno dei due server diventa offline, l'altro server diventa non disponibile. Con questi sistemi, è possibile utilizzare una condivisione di file come testimone oppure utilizzare un testimone nel cloud. Per altre informazioni, vedere Distribuire un testimone di quorum.
Passaggio 3.5: Abilitare Spazi di archiviazione diretta
Dopo aver creato il cluster, usare il Enable-ClusterStorageSpacesDirect cmdlet di PowerShell. Questo cmdlet inserisce il sistema di archiviazione nella modalità Spazi di archiviazione diretta ed esegue automaticamente le attività seguenti:
Crea un pool: crea un singolo pool di grandi dimensioni con un nome simile a "S2D in Cluster1".
Configura le cache degli Spazi di archiviazione diretti: se sono disponibili più tipi di supporti (unità) per Spazi di archiviazione diretti, abilita i più veloci come dispositivi cache (nella maggior parte dei casi per la lettura e la scrittura).
Crea due livelli come livelli predefiniti: un livello è denominato "Capacità" e l'altro è denominato "Prestazioni". Il cmdlet analizza i dispositivi e configura ogni livello con una combinazione di tipi di dispositivi e resilienza.
Dal sistema di gestione aprire una finestra di PowerShell con privilegi elevati ed eseguire il comando seguente. Il nome del cluster corrisponde al cluster creato nei passaggi precedenti. Se si esegue questo comando in locale in uno dei nodi, non è necessario il -CimSession parametro .
Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>
Questo comando abilita Spazi di archiviazione diretta. È possibile scegliere di usare il nome del nodo anziché il nome del cluster. L'uso del nome del nodo potrebbe essere più affidabile perché i ritardi di replica DNS potrebbero verificarsi con il nome del cluster appena creato.
Al termine di questo comando, che potrebbe richiedere alcuni minuti, il sistema è pronto per la creazione dei volumi.
Passaggio 3.6: Crea volumi
Usare il New-Volume cmdlet per l'esperienza più rapida e più semplice. Questo singolo cmdlet crea automaticamente il disco virtuale, le partizioni e lo formatta. Crea il volume con un nome corrispondente e lo aggiunge ai volumi condivisi del cluster, tutto in un unico semplice passaggio.
Per altre informazioni, vedere Creazione di volumi in Spazi di archiviazione diretta.
Passaggio 3.7: abilitare facoltativamente la cache CSV
È possibile abilitare la cache del volume condiviso cluster (CSV) usando la memoria di sistema (RAM) come cache a livello di blocco per operazioni di lettura che il gestore della cache di Windows non memorizza nella cache. Questa funzionalità può migliorare le prestazioni per applicazioni come Hyper-V. La cache CSV migliora le prestazioni delle richieste di lettura ed è utile anche per gli scenari di file server Scale-Out.
L'abilitazione della cache CSV riduce la quantità di memoria disponibile per l'esecuzione di macchine virtuali in un cluster iperconvergente, quindi è necessario bilanciare le prestazioni di archiviazione con la memoria disponibile per i dischi rigidi virtuali.
Per impostare le dimensioni della cache CSV, aprire una sessione di PowerShell nel sistema di gestione con un account con autorizzazioni di amministratore nel cluster di archiviazione. Usare lo script seguente, modificando le variabili $ClusterName e $CSVCacheSize in base alle esigenze (in questo esempio viene impostata una cache CSV da 2 GB per server):
$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"
Per ulteriori informazioni, vedere Uso della cache di lettura in memoria di CSV.
Passaggio 3.8: distribuire macchine virtuali per distribuzioni iperconvergenti
Se si distribuisce un cluster iperconvergente, l'ultimo passaggio consiste nell'effettuare il provisioning di macchine virtuali nel cluster Spazi di archiviazione diretta.
Archiviare i file della macchina virtuale nello spazio dei nomi CSV del sistema ,ad esempio c:\ClusterStorage\Volume1, esattamente come le macchine virtuali in cluster nei cluster di failover.
È possibile usare strumenti integrati o altri strumenti per gestire l'archiviazione e le macchine virtuali, tra cui System Center Virtual Machine Manager.
Passaggio 4: Distribuire il File Server a Scalabilità Orizzontale per soluzioni convergenti
Se si distribuisce una soluzione convergente, il passaggio successivo consiste nel creare un'istanza di file server Scale-Out e configurare le condivisioni file.
Tip
Se stai implementando un cluster iperconvergente, hai finito e non hai bisogno di questa sezione.
Selezionare una delle schede seguenti per istruzioni su come creare il ruolo Scale-Out File Server usando Gestione cluster di failover o PowerShell.
Per creare un ruolo file server Scale-Out tramite la Gestione del cluster di failover:
In Gestione cluster di failover selezionare il cluster, passare a Ruoli e quindi selezionare Configura ruolo....
Verrà visualizzata la Procedura guidata per l'alta disponibilità.Nella pagina Seleziona ruolo selezionare File Server.
Nella pagina tipo di file server selezionare Scale-Out file server per i dati dell'applicazione.
Nella pagina Punto di accesso client, digitare un nome per il File Server di Scalabilità Orizzontale.
Verificare che il ruolo sia stato configurato correttamente passando a Ruoli e confermando che la colonna Stato mostra In esecuzione accanto al ruolo del file server cluster creato, come illustrato nella figura 1.
Figura 1 Gestione cluster di failover che mostra il file server di Scale-Out con lo stato In esecuzione
Note
Dopo aver creato il ruolo cluster, i ritardi di propagazione della rete potrebbero impedire la creazione di condivisioni file su di esso per alcuni minuti o per durate potenzialmente più lunghe.
Creare condivisioni di file di rete
Dopo aver creato i dischi virtuali e aggiunto ai CSV, creare condivisioni di file su di essi. Creare una condivisione file per ogni CSV per disco virtuale. System Center Virtual Machine Manager (VMM) è il modo più semplice per eseguire questa attività perché gestisce automaticamente le autorizzazioni. Se non è disponibile nell'ambiente, è possibile usare Windows PowerShell per automatizzare parzialmente la distribuzione.
Usare gli script inclusi in questa sezione per automatizzare parzialmente il processo di creazione di gruppi e condivisioni. Gli script vengono scritti per i carichi di lavoro Hyper-V. Se si distribuiscono altri carichi di lavoro, potrebbe essere necessario modificare le impostazioni o eseguire passaggi aggiuntivi dopo aver creato le condivisioni. Ad esempio, se si usa Microsoft SQL Server, è necessario concedere il controllo completo alla condivisione e al file system all'account del servizio SQL Server.
Note
È necessario aggiornare l'appartenenza al gruppo quando si aggiungono nodi del cluster, a meno che non si usi System Center Virtual Machine Manager per creare le condivisioni.
Per creare condivisioni file usando script di PowerShell, seguire questa procedura:
Espandere ognuna delle sezioni seguenti e salvare il contenuto di ogni file come file separato
.ps1con il nome pertinente nella stessa cartella, ad esempioC:\Scripts\SetupSMBSharesWithHyperV, in uno dei nodi del cluster di file server:Espandere questa sezione per 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) }Espandere questa sezione per 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 $FullAccessEspandere questa sezione per 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} }Aprire una sessione di Windows PowerShell con le credenziali di amministratore di dominio nel sistema di gestione. Usare lo script
ADGroupSetup.ps1per creare un gruppo di Active Directory per gli oggetti computer Hyper-V. Modificare i valori per le variabili in base alle esigenze dell'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 $HyperVClusterNameUsare lo script
FileShareSetup.ps1per creare condivisioni per ogni CSV e concedere autorizzazioni amministrative per le condivisioni al gruppo Domain Admins e al cluster di calcolo.# 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 }Abilitare la delega vincolata Kerberos per la gestione degli scenari remoti e aumentare la sicurezza di Live Migration. Da uno dei nodi del cluster di archiviazione usare lo
KCDSetup.ps1script. Ecco un piccolo wrapper per lo script:$HyperVClusterName = "Compute01" $ScaleOutFSName = "SOFS" $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV" CD $ScriptFolder .\KCDSetup.ps1 -HyperVClusterName $HyperVClusterName -ScaleOutFSName $ScaleOutFSName -EnableLMRiavviare tutti i nodi nel cluster Hyper-V per assicurarsi che le nuove impostazioni di delega vincolata Kerberos siano effettive. Quando i nodi sono di nuovo online, puoi iniziare a distribuire macchine virtuali nelle condivisioni di file create.