Reequilibrar discos rígidos em um pool de espaço de armazenamento?

13

Eu tenho 2x unidades de 1,5 TB em um (pool de armazenamento espelho bidirecional). Recentemente, esse pool atingiu 100% da capacidade, o que significa que ambas as unidades tinham 0% de espaço restante.

Adicionei 2 unidades de 4 TB ao pool de armazenamento, mas o espaço de armazenamento não tenta reequilibrar a utilização do disco. Depois que adicionei, agora vejo:

My storage space pool : Physical drives
1.5 TB HDD-1 : 100% used
1.5 TB HDD-2 : 100% used
4.0 TB HDD-3 : 0% used
4.0 TB HDD-4 : 0% used

Parece que todas as gravações futuras agora estarão concentradas nas unidades mais recentes. Eu esperava que o Storage Space get busyvisse as novas unidades e iniciasse o reequilíbrio - mas não tive essa sorte.

Como posso reequilibrar o uso para que minhas leituras / gravações sejam distribuídas aproximadamente proporcionalmente / igualmente entre todas as unidades no meu pool de armazenamento?

FYI, isso é no Windows Server 2012 R2, mas é o mesmo espaço de armazenamento do Windows 8.1

DeepSpace101
fonte

Respostas:

10

Ressuscitar essa pergunta antiga com algo que finalmente funcionará nos próximos sistemas operacionais Windows 10 e Windows Server 2016.

A Microsoft adicionou um Optimize-StoragePoolcomando do PowerShell no Windows 10 e no Windows Server 2016 que reequilibra os espaços de armazenamento para um pool inteiro.

É tão fácil quanto abrir um console administrativo do PowerShell e executar Optimize-StoragePool -FriendlyName "TheNameOfYourStoragePool"

Eu escrevi sobre isso aqui .

A Microsoft anunciou o recurso há alguns dias como parte do novo Storage Spaces Direct, mas também funciona bem com os Storage Spaces normais.

Stefán Jökull Sigurðarson
fonte
Muito obrigado por isso, passamos anos pesquisando como isso funcionará no Windows 10 e fico feliz em ver que ele foi atualizado!
topherg
1
Pareceu funcionar bem para os testes que fiz. Eu vi algum comportamento estranho com paridades, mas não descartaria que estava simplesmente fazendo algo errado. Em breve, configurarei o meu "NAS" (antigo equipamento HP MediaSmart Server adaptado) e atualizarei o blog com mais informações.
Stefán Jökull Sigurðarson
@ StefánJökullSigurðarson: Você pode colocar uma frase ou duas sobre o comportamento estranho até o seu blog ficar online?
DeepSpace101
1
Eu acho que sua duvidosa Microsoft já teria backport ou forneceria funcionalidade semelhante ao Windows 8 / 8.1 / 2012/2012 R2? Seria bom poder fazer isso em 2012 R2, pois tenho um problema semelhante.
James White
3
"Pool Optimize é suportado apenas com espaços simples ou Espelho; Espaços de paridade não são suportadas "
Ian Boyd
7

Eu tive um problema semelhante quando descobri os Espaços de Armazenamento (no Windows 8.1) e estava migrando meus arquivos existentes. Comecei com as unidades:

  • Aaron: 500GB, 95% usado
  • Bruce: 1 TB, 70% usado
  • Craig: 1 TB, 55% usado
  • Devin: 1 TB, 30% usado
  • Ethan: 3 TB, 50% usado
  • Felix: 3 TB, 0% usado

Então, depois de mudar tudo para as 2 unidades de 3 TB, conectei as 4 unidades restantes aos Espaços de Armazenamento, criei um espaço e copiei os arquivos das 2 unidades preenchidas no espaço (resiliência de paridade). Depois de adicionar as duas unidades de volta ao espaço (sequencialmente), todas as unidades estavam com cerca de 50% de uso, mas as unidades de 3 TB estavam em 20% e 0%, respectivamente, quando foram limpas e adicionadas ao pool.

Tentei esperar alguns dias para ver se o sistema se reequilibraria, mas nada aconteceu.

Eventualmente, o que eu descobri foi que eu tinha duas opções:

  1. Crie um segundo espaço e copie e exclua sequencialmente os arquivos de um para o outro (não tenho certeza se o corte faz o mesmo, mas eu estava operando com o entendimento de que, se um corte fosse realizado, o sistema detectaria isso e simplesmente rotularia novamente. as lajes em vez de movê-las, mas não posso garantir a validade dessa declaração)
  2. Coloque um disco offline e o apresente novamente (EXIGE ALGUMA RESILIÊNCIA)

Eu fui com a segunda opção, mas em testes anteriores, a primeira opção parecia funcionar, mas muito lentamente.

Assim, quando todos os meus arquivos e discos estavam no pool, eu desconectei fisicamente (USB no meu caso, no seu caso, você provavelmente poderia apenas desativar o dispositivo) um dos discos mais completos. Os Espaços de Armazenamento começaram a mostrar um erro sobre "Resiliência Reduzida" e me deram a opção de remover o disco do pool, o que eu fiz.

Esperei várias horas (comecei de manhã, fui trabalhar, voltei para uma tela finalizada) enquanto os Espaços de Armazenamento reparavam os espaços. Depois que o espaço foi reparado, reconectei o disco, formatei-o e reintroduzi-o no pool.

Repeti esta etapa para todas as unidades que desejava reequilibrar, trabalhando em uma ordem da maior para a menor em capacidade, para que minha pequena unidade de 500 GB fosse a última a ser adicionada novamente.

Sim, isso significa que, em última análise, resta uma unidade com 0% de uso, mas, com o tempo, ela foi rapidamente preenchida com a% média de uso de todo o pool

Topherg
fonte
Supondo que você tenha apenas um disco rígido virtual, a opção 1 exigiria um espaço em disco livre que corresponda ao dobro do seu volume, pois mesmo se você estiver usando provisionamento dinâmico, o vhdd "antigo" não liberará nenhum espaço em disco até que seja excluído. Portanto, em vários cenários, isso não é possível. A opção 2 não fornece realmente um reequilíbrio real , porque o disco que você reintroduz por último sempre será mais vazio que os outros discos.
dognose
@dognose, embora ambos os pontos tenham mérito, até que a Microsoft introduza uma maneira mais nativa de reequilibrar as lajes, que é a mais próxima que conseguiremos, infelizmente. Com relação à Opção 2, acabei descartando Aaron (devido a falha no disco), e o reparo final, ficou as lajes bem reequilibrado, mas sim, longe do ideal ...
topherg
1

O Windows 10 tem o comando Otimizar pool disponível diretamente na GUI:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Windows Server

A capacidade de otimizar um pool foi adicionada ao Windows Server 2016. Mas, diferentemente do sistema operacional da estação de trabalho baseada em GUI, o Windows Server não tem GUI para gerenciar a otimização do espaço de armazenamento. Em vez disso, você deve usar o PowerShell:

> Get-StoragePool

FriendlyName              OperationalStatus HealthStatus IsPrimordial IsReadOnly     Size AllocatedSize
------------              ----------------- ------------ ------------ ----------     ---- -------------
Primordial                OK                Healthy      True         False      10.23 TB       5.46 TB
Silk Road Pool            OK                Healthy      False        False       5.45 TB       4.11 TB

> Optimize-StoragePool -FriendlyName "Silk Road Pool"

Mas observe também que no Windows Server, os dados serão reequilibrados automaticamente 30 minutos após a adição de uma unidade.

imagem

Você pode obter o status da otimização através do PowerShell (novamente, a Microsoft odeia interfaces gráficas de usuário):

> Get-StorageJob

Name      IsBackgroundTask ElapsedTime JobState PercentComplete BytesProcessed BytesTotal
----      ---------------- ----------- -------- --------------- -------------- ----------
Optimize  False            00:12:21    Running  11
Rebalance True             00:00:00    Running  11              114085068800   1020323168256

Nota: A capacidade de compensar / otimizar funciona apenas em espaços do Windows Server 2016 / Windows 10. Se você estiver usando um espaço criado no Windows Server 2012 / Windows 8: terá que "Atualizar" o espaço.

Ian Boyd
fonte