Agregar servidores o unidades a espacios de almacenamiento directo

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016

En este tema se describe cómo agregar servidores o unidades a espacios de almacenamiento directo.

Agregar servidores

Mediante la adición de servidores, también conocida como escalado horizontal, se agrega capacidad de almacenamiento y también se puede mejorar el rendimiento, así como mejorar la eficiencia del almacenamiento. Si tu implementación es hiperconvergida, la adición de servidores también proporciona más recursos de proceso para la carga de trabajo.

Animation of adding a server to a four-node cluster

Las implementaciones típicas son fáciles de escalar horizontalmente mediante la adición de nodos: Tan solo se necesitan realizar dos pasos:

  1. Ejecutar el asistente para validación de clúster usando el complemento de clústeres de conmutación por error o con el cmdlet Test-Cluster de PowerShell (ejecutar como administrador). Incluya el nuevo servidor <NewNode> que quiera agregar.

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

    Esto confirma que el nuevo servidor ejecuta Windows Server 2016 Datacenter Edition, se ha unido al mismo dominio de Active Directory Domain Services que los servidores existentes, dispone de todas las características y los roles necesarios y tiene las redes configuradas correctamente.

    Importante

    Si estás volviendo a usar las unidades que contienen datos antiguos o metadatos que ya no necesitas, desactívalos con Disk Management o el cmdlet Reset-PhysicalDisk. Si se detectan datos antiguos o metadatos, las unidades de disco no se agruparán.

  2. Ejecuta el cmdlet siguiente en el clúster para acabar de agregar el servidor:

Add-ClusterNode -Name NewNode

Nota

La agrupación automática depende de que solo tenga un grupo. Si ha sorteado la configuración estándar para crear varios grupos, tendrá que agregar unidades nuevas a su grupo preferido mediante Add-PhysicalDisk.

Entre 2 y 3 servidores: desbloquear un reflejo triple

adding a third server to a two-node cluster

Con dos servidores, solo puedes crear volúmenes reflejados bidireccionales (compáralo con un volumen RAID-1 distribuido). Con tres servidores, puedes crear volúmenes de reflejo triple para una mayor tolerancia a errores. Le recomendamos que use la creación de reflejo triple siempre que sea posible.

Los volúmenes de reflejos dobles no pueden actualizarse en contexto a los reflejos triples. En su lugar, puedes crear un nuevo volumen y migrar (copiar, como mediante el uso de la réplica de almacenamiento) los datos a la base de datos y, a continuación, eliminar el volumen antiguo.

Para empezar a crear volúmenes de reflejo triple, existen buenas opciones: Puedes usar lo que prefieras.

Opción 1

Especificar PhysicalDiskRedundancy = 2 en cada volumen nuevo tras la creación.

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

Opción 2

En su lugar, puedes establecer PhysicalDiskRedundancyDefault = 2 en el grupo de ResiliencySetting, en el objeto llamado Mirror. A continuación, los nuevos volúmenes reflejados utilizará automáticamente triple aunque no especifica de creación de reflejos.

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

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

Opción 3

Establece PhysicalDiskRedundancy = 2 en la plantilla StorageTier denominada Capacity y, después, crear volúmenes mediante referencias a la capa.

Set-StorageTier -FriendlyName Capacity -PhysicalDiskRedundancy 2

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

De 3 a 4 servidores: desbloqueo de la paridad doble

adding a fourth server to a three-node cluster

Con cuatro servidores puede usar la paridad dual, también denominada codificación de borrado (compárelo con un volumen RAID-6 distribuido). Esto proporciona la misma tolerancia a errores dual que la creación de reflejo triple, pero con una mejor eficiencia de almacenamiento. Para obtener más información, consulta Eficiencia de almacenamiento y la tolerancia a errores.

Si has trabajado en una implementación más pequeña, tienes algunas opciones para empezar a crear volúmenes de paridad doble. Puedes usar lo que prefieras.

Opción 1

Especificar PhysicalDiskRedundancy = 2 y ResiliencySettingName = Parity en los nuevos volúmenes tras crearlos.

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

Opción 2

Establece PhysicalDiskRedundancy = 2 en el grupo ResiliencySetting, en el objeto llamado Parity. A continuación, todos los nuevos volúmenes de paridad utilizarán automáticamente la paridad dual, incluso si no se especifica.

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 cuatro servidores también puede empezar a usar la paridad acelerada por reflejo, en cuyo caso un volumen individual es en parte reflejo y en parte paridad.

Para ello, debes actualizar la configuración de las plantillas StorageTier para tener las capas Performance y Capacity, tal y como se hubieran creado si hubieras ejecutado en primer lugar Enable-ClusterS2D en cuatro servidores. En concreto, las dos capas deben tener el valor de MediaType de los dispositivos de capacidad (por ejemplo, SSD o HDD) y PhysicalDiskRedundancy = 2. La capa Performance debe ser ResiliencySettingName = Mirror y la capa Capacity debe ser ResiliencySettingName = Parity.

Opción 3

Tal vez te resulte más sencillo eliminar la plantilla de capa y crear dos nuevas. Esto no afectará a los volúmenes existentes que se crearon haciendo referencia a la plantilla de capa: es solo una plantilla.

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

Eso es todo. Ya está listo para crear volúmenes de paridad acelerada por reflejo haciendo referencia a estas plantillas de nivel.

Ejemplo

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

Más allá de cuatro servidores: mayor eficiencia de paridad

A medida que escala más allá de cuatro servidores, los volúmenes nuevos se pueden beneficiar de una eficiencia de codificación de paridad cada vez mayor. Por ejemplo, entre seis y siete servidores, la eficiencia mejora de un 50,0 % a un 66,7 %, ya que se puede usar Reed-Solomon 4+2 (en lugar de 2+2). No es necesario realizar ningún paso para empezar a disfrutar de esta nueva eficiencia. La mejor codificación posible se determina automáticamente cada vez que se crea un volumen.

Pero los volúmenes ya existentes no se “convertirán” a la codificación nueva más amplia. Una razón es que, para hacerlo, sería necesario realizar un cálculo masivo que afectaría literalmente a cada fragmento de toda la implementación. Si quiere que los datos preexistentes se codifiquen con la eficiencia superior, puede migrarlos a volúmenes nuevos.

Para más información, consulta Tolerancia a errores y eficiencia del almacenamiento.

Agregar servidores al usar la tolerancia a errores de chasis o bastidor

Si la implementación usa la tolerancia a errores de chasis o bastidor, debes especificar el chasis o el bastidor de los servidores nuevos antes de agregarlos al clúster. Esto le indica a Espacios de almacenamiento directo la mejor forma de distribuir los datos para maximizar la tolerancia a errores.

  1. Cree un dominio de error temporal para el nodo. Para hacerlo, abra una sesión de PowerShell con privilegios elevados y, después, use el siguiente comando, donde <NewNode> es el nombre del nuevo nodo de clúster:

    New-ClusterFaultDomain -Type Node -Name <NewNode>
    
  2. Mueva este dominio de error temporal al chasis o al bastidor donde se encuentra en realidad el nuevo servidor, como se especifica en <ParentName>:

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

    Para obtener más información, consulte Fault domain awareness in Windows Server 2016 (Conocimiento de dominio de error en Windows Server 2016).

  3. Agrega el servidor al clúster como se describe en Agregar servidores. Cuando el servidor nuevo se une al clúster, se asocia automáticamente (mediante su nombre) al dominio de error del marcador de posición.

Agregar unidades

Mediante la adición de unidades (también conocida como escalado vertical) se agrega capacidad de almacenamiento y se puede mejorar el rendimiento. Si tienes ranuras disponibles, puedes agregar unidades a cada servidor para expandir la capacidad de almacenamiento sin agregar servidores. Puedes agregar unidades de caché o unidades de capacidad independientemente en cualquier momento.

Importante

Te recomendamos encarecidamente que todos los servidores tengan una configuración de almacenamiento idéntica.

Animation showing adding drives to a sytem

Para escalar verticalmente, conecte las unidades y compruebe que Windows las detecta. Deben aparecer en la salida del cmdlet Get-PhysicalDisk de PowerShell con la propiedad de CanPool establecida como True. Si se muestran como CanPool = False, puedes ver porqué echando un vistazo a la propiedad CannotPoolReason.

Get-PhysicalDisk | Select SerialNumber, CanPool, CannotPoolReason

Al poco tiempo, Espacios de almacenamiento directo reclamará automáticamente las unidades aptas, las agregará al grupo de almacenamiento y los volúmenes se redistribuirán automáticamente de manera uniforme entre todas las unidades. Ya ha terminado y está listo para ampliar los volúmenes o crear otros.

Si las unidades no aparecen, busque manualmente si se han producido cambios en el hardware. Esto puede hacerse mediante el Administrador de dispositivos en el menú Acción. Si contienen datos o metadatos antiguos, considere la posibilidad de volver a formatearlas. Esto puede hacerse con Disk Management o con el cmdlet Reset-PhysicalDisk.

Nota

La agrupación automática depende de que solo tenga un grupo. Si ha sorteado la configuración estándar para crear varios grupos, tendrá que agregar unidades nuevas a su grupo preferido mediante Add-PhysicalDisk.

Optimización del uso de unidades después de agregar unidades o servidores

Con el tiempo, a medida que se agregan o quitan unidades, la distribución de datos entre las distintas unidades del grupo puede llegar a ser desigual. En algunos casos, esto puede provocar que ciertas unidades se llenen, mientras que otras tienen un consumo mucho menor.

Para ayudar a mantener la asignación de unidades de forma homogénea en el grupo, Espacios de almacenamiento directo optimiza automáticamente el uso de unidades después de agregar unidades o servidores al grupo (se trata de un proceso manual para sistemas de Espacios de almacenamiento que usan gabinetes SAS compartidos). La optimización comienza 15 minutos después de agregar una unidad al grupo. La optimización del grupo se ejecuta como una operación en segundo plano de prioridad baja, por lo que puede tardar horas, o incluso días, en completarse, sobre todo si usa unidades de disco duro grandes.

La optimización usa dos trabajos( uno denominado Optimizar y otro denominado Reequilibrar) y el siguiente comando permite supervisar su progreso:

Get-StorageJob

El cmdlet Optimize-StoragePool permite optimizar manualmente un grupo de almacenamiento. Veamos un ejemplo:

Get-StoragePool <PoolName> | Optimize-StoragePool