Aparelhos

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!



Source link