Aggiunta di server o unità a Spazi di archiviazione direttaAdding servers or drives to Storage Spaces Direct

Si applica a: Windows Server 2019, Windows Server 2016Applies to: Windows Server 2019, Windows Server 2016

Questo argomento descrive come aggiungere server o unità a Spazi di archiviazione diretta.This topic describes how to add servers or drives to Storage Spaces Direct.

Aggiunta di serverAdding servers

L'aggiunta di server (spesso chiamata anche scalabilità orizzontale) consente di aggiungere capacità di archiviazione, di migliorarne le prestazioni e di sbloccare una migliore efficienza di archiviazione.Adding servers, often called scaling out, adds storage capacity and can improve storage performance and unlock better storage efficiency. Se la distribuzione è iperconvergente, l'aggiunta di server rende disponibili altre risorse di calcolo per il carico di lavoro.If your deployment is hyper-converged, adding servers also provides more compute resources for your workload.

Animazione dell'aggiunta di un server a un cluster a quattro nodi

Per le distribuzioni tipiche è facile eseguire la scalabilità orizzontale tramite l'aggiunta di server.Typical deployments are simple to scale out by adding servers. La procedura include solo due passaggi:There are just two steps:

  1. Eseguire la procedura guidata per la convalida dei cluster utilizzando lo Snap-in cluster di failover o con il cmdlet Test-Cluster in PowerShell (Esegui come amministratore).Run the cluster validation wizard using the Failover Cluster snap-in or with the Test-Cluster cmdlet in PowerShell (run as Administrator). Includere il nuovo server <NewNode> che si desidera aggiungere.Include the new server <NewNode> you wish to add.

    Test-Cluster -Node <Node>, <Node>, <Node>, <NewNode> -Include "Storage Spaces Direct", Inventory, Network, "System Configuration"
    

    Questo comando conferma che il nuovo server esegue Windows Server 2016 Datacenter Edition, è stato aggiunto allo stesso dominio Active Directory Domain Services dei server esistenti, dispone di tutti i ruoli e di tutte le funzionalità richiesti e che le funzioni di rete sono configurate correttamente.This confirms that the new server is running Windows Server 2016 Datacenter Edition, has joined the same Active Directory Domain Services domain as the existing servers, has all the required roles and features, and has networking properly configured.

    Importante

    Se si stanno riutilizzando unità che contengono dati o metadati obsoleti non più necessari, cancellarli con Gestione disco o con il cmdlet Reset-PhysicalDisk.If you are re-using drives that contain old data or metadata you no longer need, clear them using Disk Management or the Reset-PhysicalDisk cmdlet. Se vengono rilevati dati o metadati obsoleti, le unità non sono messe in pool.If old data or metadata is detected, the drives aren't pooled.

  2. Eseguire il seguente cmdlet sul cluster per completare l'aggiunta del server:Run the following cmdlet on the cluster to finish adding the server:

Add-ClusterNode -Name NewNode

Nota

Il pooling automatico dipende dalla presenza di un unico pool.Automatic pooling depends on you having only one pool. Se la configurazione standard per la creazione di più pool è stata aggirata, sarà necessario aggiungere le nuove unità al pool preferito usando Add-PhysicalDisk.If you've circumvented the standard configuration to create multiple pools, you will need to add new drives to your preferred pool yourself using Add-PhysicalDisk.

Da due a tre server: sblocco del mirroring a 3 vieFrom 2 to 3 servers: unlocking three-way mirroring

Aggiunta di un terzo server a un cluster a due nodi

Con due server è possibile creare solo volumi con mirroring a 2 vie (confrontare con RAID–1 distribuito).With two servers, you can only create two-way mirrored volumes (compare with distributed RAID-1). Con tre server è possibile creare volumi con mirroring a 3 vie per una migliore tolleranza di errore.With three servers, you can create three-way mirrored volumes for better fault tolerance. È consigliabile usare il mirroring a 3 vie ogni volta che sia possibile.We recommend using three-way mirroring whenever possible.

Non è possibile eseguire l'aggiornamento sul posto dei volumi con mirroring a 2 vie al mirroring a 3 vie.Two-way mirrored volumes cannot be upgraded in-place to three-way mirroring. È possibile invece creare un nuovo volume e migrare (copiare, ad esempio usando Replica archiviazione) i dati in esso e quindi rimuovere il vecchio volume.Instead, you can create a new volume and migrate (copy, such as by using Storage Replica) your data to it, and then remove the old volume.

Per iniziare la creazione di volumi con mirroring a 3 vie sono disponibili diverse opzioni.To begin creating three-way mirrored volumes, you have several good options. È possibile utilizzare quella preferita.You can use whichever you prefer.

Opzione 1Option 1

Specificare PhysicalDiskRedundancy = 2 per ogni nuovo volume al momento della creazione.Specify PhysicalDiskRedundancy = 2 on each new volume upon creation.

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2

Opzione 2Option 2

Oppure, è possibile impostare PhysicalDiskRedundancyDefault = 2 nell'oggetto ResiliencySetting denominato Mirror del pool.Instead, you can set PhysicalDiskRedundancyDefault = 2 on the pool's ResiliencySetting object named Mirror. Quindi, tutti i nuovi volumi con mirroring utilizzeranno automaticamente il mirroring a 3 vie anche se non è specificato.Then, any new mirrored volumes will automatically use three-way mirroring even if you don't specify it.

Get-StoragePool S2D* | Get-ResiliencySetting -Name Mirror | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size>

Opzione 3Option 3

Impostare PhysicalDiskRedundancy = 2 per il modello StorageTier denominato Capacity e quindi creare i volumi facendo riferimento al livello.Set PhysicalDiskRedundancy = 2 on the StorageTier template called Capacity, and then create volumes by referencing the tier.

Set-StorageTier -FriendlyName Capacity -PhysicalDiskRedundancy 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Capacity -StorageTierSizes <Size>

Da tre a quattro server: sblocco della doppia paritàFrom 3 to 4 servers: unlocking dual parity

Aggiunta di un quarto server a un cluster a tre nodi

Con quattro server è possibile usare la doppia parità, detta anche codifica di cancellazione (confrontare con RAID–6 distribuito).With four servers, you can use dual parity, also commonly called erasure coding (compare to distributed RAID-6). Ciò consente la stessa tolleranza di errori del mirroring a 3 vie, ma con una migliore efficienza di archiviazione.This provides the same fault tolerance as three-way mirroring, but with better storage efficiency. Per ulteriori informazioni, vedere Tolleranza di errore ed efficienza di archiviazione.To learn more, see Fault tolerance and storage efficiency.

Se si passa a questa distribuzione da una distribuzione più ridotta, sono disponibili diverse opzioni per la creazione di volumi a doppia parità.If you're coming from a smaller deployment, you have several good options to begin creating dual parity volumes. È possibile utilizzare quella preferita.You can use whichever you prefer.

Opzione 1Option 1

Specificare PhysicalDiskRedundancy = 2 e ResiliencySettingName = Parity per ogni nuovo volume al momento della creazione.Specify PhysicalDiskRedundancy = 2 and ResiliencySettingName = Parity on each new volume upon creation.

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity

Opzione 2Option 2

Impostare PhysicalDiskRedundancyDefault = 2 nell'oggetto ResiliencySetting denominato Parity del pool.Set PhysicalDiskRedundancy = 2 on the pool's ResiliencySetting object named Parity. Quindi, tutti i nuovi volumi con parità utilizzeranno automaticamente la parità doppia anche se non è specificataThen, any new parity volumes will automatically use dual parity even if you don't specify it

Get-StoragePool S2D* | Get-ResiliencySetting -Name Parity | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -ResiliencySettingName Parity

Con quattro server, è anche possibile iniziare a usare la parità con accelerazione con mirroring, in cui un singolo volume è parte del mirror e della parità della parte.With four servers, you can also begin using mirror-accelerated parity, where an individual volume is part mirror and part parity.

A tale scopo, sarà necessario aggiornare i modelli StorageTier per avere sia il livello Performance che il livello Capacity, come sarebbero stati creati se prima si fosse eseguito Enable–ClusterS2D su quattro server.For this, you will need to update your StorageTier templates to have both Performance and Capacity tiers, as they would be created if you had first run Enable-ClusterS2D at four servers. In particolare, entrambi i livelli devono avere MediaType dei dispositivi di capacità (quali, ad esempio SSD o HDD) e PhysicalDiskRedundancy = 2.Specifically, both tiers should have the MediaType of your capacity devices (such as SSD or HDD) and PhysicalDiskRedundancy = 2. Il livello Performance deve corrispondere a ResiliencySettingName = Mirror e il livello Capacity deve corrispondere a ResiliencySettingName = Parity.The Performance tier should be ResiliencySettingName = Mirror, and the Capacity tier should be ResiliencySettingName = Parity.

Opzione 3Option 3

La cosa più semplice potrebbe essere rimuovere il modello del livello esistente e crearne due nuovi.You may find it easiest to simply remove the existing tier template and create the two new ones. Questa operazione non influirà sui volumi preesistenti creati facendo riferimento al modello di livello: si tratta semplicemente di un modello.This will not affect any pre-existing volumes which were created by referring the tier template: it's just a template.

Remove-StorageTier -FriendlyName Capacity

New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Mirror -FriendlyName Performance
New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity -FriendlyName Capacity

Ecco fatto!That's it! A questo punto è possibile creare volumi di parità con accelerazione speculare facendo riferimento a questi modelli di livello.You are now ready to create mirror-accelerated parity volumes by referencing these tier templates.

EsempioExample

New-Volume -FriendlyName "Sir-Mix-A-Lot" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes <Size, Size>

Oltre quattro server: maggiore efficienza della paritàBeyond 4 servers: greater parity efficiency

Man mano che si esegue il ridimensionamento oltre i quattro server, i nuovi volumi possono avvalersi di un'efficienza di codifica della parità ancora maggiore.As you scale beyond four servers, new volumes can benefit from ever-greater parity encoding efficiency. Ad esempio, tra sei e sette server l'efficienza migliora dal 50,0% al 66,7%, poiché è ora possibile usare Reed–Solomon 4+2, anziché 2+2.For example, between six and seven servers, efficiency improves from 50.0% to 66.7% as it becomes possible to use Reed-Solomon 4+2 (rather than 2+2). Non sono previsti passaggi da eseguire per usufruire di questa nuova efficienza. La codifica più efficiente viene determinata automaticamente ogni volta che si crea un volume.There are no steps you need to take to begin enjoying this new efficiency; the best possible encoding is determined automatically each time you create a volume.

Tuttavia, i volumi esistenti non vengono "convertiti" alla nuova codifica più ampia.However, any pre-existing volumes will not be "converted" to the new, wider encoding. Un valido motivo è che questa operazione richiederebbe un calcolo di grandissima portata, che interesserebbe letteralmente ogni singolo bit dell'intera distribuzione.One good reason is that to do so would require a massive calculation affecting literally every single bit in the entire deployment. Se si vuole che i dati preesistenti siano codificati con una maggiore efficienza, è possibile eseguire la migrazione a nuovi volumi.If you would like pre-existing data to become encoded at the higher efficiency, you can migrate it to new volume(s).

Per ulteriori dettagli, vedere Tolleranza di errore ed efficienza di archiviazione.For more details, see Fault tolerance and storage efficiency.

Aggiunta di server con la tolleranza di errore chassis o rackAdding servers when using chassis or rack fault tolerance

Se la distribuzione usa la tolleranza di errore chassis o rack, è necessario specificare lo chassis o il rack dei nuovi server prima di aggiungerli al cluster.If your deployment uses chassis or rack fault tolerance, you must specify the chassis or rack of new servers before adding them to the cluster. Questo comunica a Spazi di archiviazione diretta il modo più efficiente per distribuire i dati ottimizzando la tolleranza di errore.This tells Storage Spaces Direct how best to distribute data to maximize fault tolerance.

  1. Creare un dominio di errore temporaneo per il nodo aprendo una sessione di PowerShell con privilegi elevati e quindi usando il comando seguente, dove <NewNode> è il nome del nuovo nodo del cluster:Create a temporary fault domain for the node by opening an elevated PowerShell session and then using the following command, where <NewNode> is the name of the new cluster node:

    New-ClusterFaultDomain -Type Node -Name <NewNode>
    
  2. Spostare questo dominio di errore temporaneo nello chassis o nel rack in cui si trova il nuovo server nel mondo reale, come specificato da <ParentName> :Move this temporary fault-domain into the chassis or rack where the new server is located in the real world, as specified by <ParentName>:

    Set-ClusterFaultDomain -Name <NewNode> -Parent <ParentName>
    

    Per altre informazioni, vedere Fault domain awareness in Windows Server 2016 (Informazioni sulla presenza di un dominio di errore in Windows Server 2016).For more information, see Fault domain awareness in Windows Server 2016.

  3. Aggiungere il server al cluster come descritto in Aggiunta di server.Add the server to the cluster as described in Adding servers. Quando si aggiunge il nuovo server al cluster, viene automaticamente associato, tramite il nome, al dominio di errore segnaposto.When the new server joins the cluster, it's automatically associated (using its name) with the placeholder fault domain.

Aggiunta di unitàAdding drives

L'aggiunta di unità, detta anche scalabilità verticale, consente di aggiungere capacità di archiviazione e può anche garantire prestazioni migliori.Adding drives, also known as scaling up, adds storage capacity and can improve performance. Se sono disponibili slot liberi, è possibile aggiungere unità a ogni server per espandere la capacità di archiviazione senza aggiungere server.If you have available slots, you can add drives to each server to expand your storage capacity without adding servers. È possibile aggiungere unità di cache o unità di capacità, in modo indipendente in qualsiasi momento.You can add cache drives or capacity drives independently at any time.

Importante

È consigliabile configurare tutti i server con configurazioni di archiviazione identiche.We strongly recommend that all servers have identical storage configurations.

Animazione che mostra l'aggiunta di unità a un oggetto

Per eseguire la scalabilità verticale, connettere le unità e verificare che Windows le individui.To scale up, connect the drives and verify that Windows discovers them. Queste unità dovrebbero essere visualizzate nell'output del cmdlet Get-PhysicalDisk in PowerShell con la proprietà CanPool impostata su True.They should appear in the output of the Get-PhysicalDisk cmdlet in PowerShell with their CanPool property set to True. Se vengono visualizzate con CanPool = False, è possibile capirne il motivo controllando la proprietà CannotPoolReason.If they show as CanPool = False, you can see why by checking their CannotPoolReason property.

Get-PhysicalDisk | Select SerialNumber, CanPool, CannotPoolReason

Entro un breve periodo di tempo, le unità idonee verranno rivendicate automaticamente da Spazi di archiviazione diretta, aggiunte al pool di archiviazione e i volumi verranno automaticamente ridistribuiti in modo uniforme in tutte le unità.Within a short time, eligible drives will automatically be claimed by Storage Spaces Direct, added to the storage pool, and volumes will automatically be redistributed evenly across all the drives. A questo punto, si è pronti per estendere i volumi o crearne di nuovi.At this point, you're finished and ready to extend your volumes or create new ones.

Se le unità non vengono visualizzate, eseguire manualmente l'analisi per rilevare le modifiche hardware.If the drives don't appear, manually scan for hardware changes. Per eseguire questa operazione usare Gestione dispositivi nel menu Azione.This can be done using Device Manager, under the Action menu. Se le unità contengono dati o metadati obsoleti, considerare la possibilità di riformattarle.If they contain old data or metadata, consider reformatting them. A tale scopo è possibile utilizzare Gestione disco o il cmdlet Reset-PhysicalDisk.This can be done using Disk Management or with the Reset-PhysicalDisk cmdlet.

Nota

Il pooling automatico dipende dalla presenza di un unico pool.Automatic pooling depends on you having only one pool. Se la configurazione standard per la creazione di più pool è stata aggirata, sarà necessario aggiungere le nuove unità al pool preferito usando Add-PhysicalDisk.If you've circumvented the standard configuration to create multiple pools, you will need to add new drives to your preferred pool yourself using Add-PhysicalDisk.

Ottimizzazione dell'utilizzo delle unità dopo l'aggiunta di unità o serverOptimizing drive usage after adding drives or servers

Nel tempo, man mano che le unità vengono aggiunte o rimosse, la distribuzione dei dati tra le unità del pool può diventare non uniforme.Over time, as drives are added or removed, the distribution of data among the drives in the pool can become uneven. In alcuni casi, questo può comportare la piena presenza di determinate unità mentre altre unità nel pool hanno un consumo molto più basso.In some cases, this can result in certain drives becoming full while other drives in pool have much lower consumption.

Per garantire l'allocazione delle unità anche nel pool, Spazi di archiviazione diretta ottimizza automaticamente l'utilizzo delle unità dopo l'aggiunta di unità o server al pool (si tratta di un processo manuale per i sistemi di spazi di archiviazione che usano enclosure SAS condivise).To help keep drive allocation even across the pool, Storage Spaces Direct automatically optimizes drive usage after you add drives or servers to the pool (this is a manual process for Storage Spaces systems that use Shared SAS enclosures). L'ottimizzazione viene avviata 15 minuti dopo l'aggiunta di una nuova unità al pool.Optimization starts 15 minutes after you add a new drive to the pool. L'ottimizzazione del pool viene eseguita come operazione in background con priorità bassa, quindi può richiedere ore o giorni per il completamento, soprattutto se si usano dischi rigidi di grandi dimensioni.Pool optimization runs as a low-priority background operation, so it can take hours or days to complete, especially if you're using large hard drives.

L'ottimizzazione usa due processi, uno denominato optimize e uno denominato rebalance , ed è possibile monitorarne lo stato con il comando seguente:Optimization uses two jobs - one called Optimize and one called Rebalance - and you can monitor their progress with the following command:

Get-StorageJob

È possibile ottimizzare manualmente un pool di archiviazione con il cmdlet optimize-StoragePool .You can manually optimize a storage pool with the Optimize-StoragePool cmdlet. Ecco un esempio:Here's an example:

Get-StoragePool <PoolName> | Optimize-StoragePool