Storage Spaces Direct (S2D), criando na unha! [LV400]

Vida longa e próspera pessoal!
Esse é um post avançado, +- LV400.
Eu peguei um problema crítico em um cenário com o Storage Spaces Direct em modo Hyper-Converged.
Cada servidor tinha 4x SSD de 1TB + 2 HDD de 1TB.
Só que assim o cluster automagicamente (amo essa palavra) tenta definir o ambiente como SSD = cache e HDD = capacity.
Claro que é uma grande besteira nesse meu cenário, pois eu tenho mais capacidade de armazenamento (e velocidade) nos SSD’s do que nos HDD’s.
Cheguei a perguntar ao
Elden Christensen (Principal PM Manager of High-Availability & Storage – Microsoft) sobre isso e ele recomendou remover os HDD’s e ser feliz 😉
E claro que eu fiz o que ele recomendou, afinal no mundo não há alguém mais capacitado do que ele para falar de cluster, já que ele é O responsável por essa área na Microsoft, rsrsrs.
Mas fiquei com a pulga atrás da orelha…
Será que não é possível alterar o modo dos dispositivos após a configuração do cluster S2D? Será que não dá para fazer tudo na mão?
Claro que dá! Achei o post do http://www.checkyourlogs.net/?p=22141
E vou explicar o script dele aqui, passo a passo!
 
#Comando para criar o cluster, sem storage anexado

New-Cluster
-Name
S2DCluster
-Node
sh-va-r4,sh-va-r5
-NoStorage
-StaticAddress
192.168.110.99
#Com esse comando você permitirá que TODOS os tipos de controladores (mesmo as não suportadas) a funcionar no S2D (cenário não suportado)
 
(
Get-Cluster
).S2DBusTypes=0x100
#Agora você habilita o S2D sem a configuração automática e sem cache
Enable-ClusterStorageSpacesDirect
-SkipEligibilityChecks
-Autoconfig
:0
-confirm
:
$false
-PoolFriendlyName
S2DPool
-CacheState
Disabled
-verbose
#E aqui criando o Storage Pool com todos os discos que estão liberados (canpool = true) em modo Mirror (espelhamento) e espaço fixo
Get-StorageSubSystem
*cluster* |
New-StoragePool
-FriendlyName
S2DPool
-WriteCacheSizeDefault
0
-ProvisioningTypeDefault
Fixed
-ResiliencySettingNameDefault
Mirror
-PhysicalDisks
(
Get-PhysicalDisk
| ? CanPool
-EQ
$true
)
#Aqui o autor do post define que todos os discos de X tamanho serão do tipo HDD ou SSD. No meu caso eu precisei usar outro atributo do disco, que foi o ID. Eu defini disco a disco qual era para ser identificado como SSD e HDD, fica a seu critério de como vai usar/precisar.
Get-Physicaldisk
| where size –eq 999653638144|
Set-PhysicalDisk
–MediaType HDD
Get-Physicaldisk
| where size –eq 524522881024|
Set-PhysicalDisk
–MediaType SSD
#Com esse comando você define que TODO SSD será no modo Journal (cache). Como eu falei, não utilizei isso pois eu defini quais SSD’s seriam cache quais seriam para armazenamento.
Get-Storagepool
S2DPool |
Get-PhysicalDisk
| ? MediaType
-EQ
SSD |
Set-PhysicalDisk
-Usage
Journal
#Comando apenas para listar os discos e o tipo de uso. Vale lembrar que o comando lista os discos do SO também.
Get-PhysicalDisk
|
Sort-Object
FriendlyName | ft FriendlyName,HealthStatus,Size,BusType,MediaType,usage
#Comando para habilitar o cache do S2D. Por padrão já viria habilitado, mas nesse script definimos que não haveria cache no início.
Get-ClusterStorageSpacesDirect
(
Get-Cluster
).S2DCacheDesiredState = 2
#Agora pode verificar as alterações.
Get-PhysicalDisk
|
Sort-Object
FriendlyName | ft FriendlyName,HealthStatus,Size,BusType,MediaType,usage
#Criação dos volumes no S2D
New-Volume
-StoragePoolFriendlyName
S2DPool
-FriendlyName
Volume1
-PhysicalDiskRedundancy
1
-FileSystem
CSVFS_ReFS
-Size
500GB
New-Volume
-StoragePoolFriendlyName
S2DPool
-FriendlyName
Volume2
-PhysicalDiskRedundancy
1
-FileSystem
CSVFS_ReFS
-Size
500GB
#Verificação final
Get-ClusterStorageSpacesDirect
Eu listei todos os comandos pois eu sei que você pode precisar de algum (ou variação de algum) desses. E foi difícil de achar quando eu precisei, então fica aqui para referência futura.
Como eu avisei, o post é avançado e se não tem familiaridade com o powershell/cluster é melhor deixar tudo no automático sempre!
Se precisar de consultoria sobre isso, só chamar 😉
Valeu!
Share

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    © 2019 All Rights Reserved. Cooperati.