Espelho ZFS na mesma unidade para redundância?

3

O dispositivo que eu gostaria de usar como servidor doméstico tem apenas um único compartimento de disco rígido interno de 2,5 '' atualmente equipado com 1TB. O armazenamento de dados real (2x 1TB) será anexado às portas USB 3.0 externas.

As unidades externas são 3,5 server-grade, anunciadas para 24/7. A unidade interna 2.5 é somente de mesa.

Depois de experimentar o BTRFS, estou explorando minhas opções com o ZFS, devido à maior maturidade do ZFS.

A primeira ideia foi espelhar apenas os dados nas unidades externas e instalar o sistema operacional (debian 8) na unidade interna. Isso é bastante fácil, mas deixa o SO vulnerável à falha do disco.

A próxima ideia é inicializar a partir do espelho externo e deixar a unidade interna sem uso ou para tmp, trocar coisas sem importância.

Próxima ideia: crie um espelho de 3 direções a partir das unidades externas internas e duplas únicas e inicialize a partir do espelho. Isso parecia ser barato o suficiente já que eu já tenho as unidades e poderia ter alguma confiabilidade e possivelmente ler o desempenho praticamente sem custo. A capacidade total ainda seria de 1 TB, obviamente.

Esse espelho de 3 vias limita as opções em termos de extensibilidade, porque o ZFS exige que todas as unidades em um espelho sejam do mesmo tamanho e, portanto, quando eu quiser aumentar a matriz, ficarei com as unidades 2,5 '. do. Unidades de 2,5 '' aparentemente só estão disponíveis até 2TB, enquanto as unidades de 3,5 '' até 4TB parecem já bastante comuns. Além disso, com um espelho bidirecional de unidades externas, eu poderia duplicar minha capacidade mais tarde, criando um RAID10 com mais 2 unidades ...

Também estou um pouco inseguro se o sistema operacional e os dados em um pool são realmente uma boa ideia. Ainda não sinto que deixar o sistema operacional desprotegido na unidade menos confiável na minha configuração parece um pouco complicado.

Isso me deixa com uma opção um pouco estranha: espelhar meus dados do sistema operacional na única unidade interna. Isso é criar duas partições no disco rígido interno de 2,5 '' e combiná-las em um espelho. Espero que isso tenha me dado um aviso antecipado, caso a unidade esteja prestes a falhar, supondo que as unidades não sejam queimadas, mas falhem gradualmente. Ao mesmo tempo, as unidades externas teriam filmes, fotos, músicas, etc. separadas do SO.

Qual opção você escolheria? O último deles é eficaz ou o meu raciocínio está simplesmente errado?

    
por Arne 28.05.2015 / 17:45

2 respostas

2

Para adicionar algumas informações além da copies=2 solution:

This 3-way mirror however limits by options in terms of extensibility because ZFS requires all drives in a mirror to be equal size and thus when I want to grow the array I am stuck with what 2.5'' drives I can get hold of. 2.5'' drives are seemingly only available up to 2TB while 3.5'' drives up to 4TB seem already common enough. Also, with a 2-way mirror of external drives only I could doubly my capacity later by creating a RAID10 with an additional 2 drives...

Isso não é 100% correto.

  • Todos os dispositivos em um vdev espelhado precisam ter o mesmo tamanho ou tamanho maior que o menor dispositivo nesse vdev. A capacidade de armazenamento do vdev será exatamente o tamanho desse menor dispositivo. Portanto, para 3 discos com 1, 1,5 e 2 TB, você pode ter um tamanho de vdev de 1 TB. Se você tivesse apenas os discos de 1,5 e 2 TB com um tamanho de 1,5, não poderá adicionar o disco menor de 1 TB mais tarde (mas poderá adicionar discos maiores a qualquer momento).
  • Os espelhos são flexíveis: em contraste com o raidz, em que você deve atualizar todos os discos do vdev para o tamanho maior, em um espelho, é possível remover discos a qualquer momento. Então, novamente com o exemplo dos discos de 1, 1,5 e 2 TB no espelho, você remove os dois primeiros discos e adiciona um novo disco de 2 TB. Você perde alguma redundância, mas não precisa restaurar o pool inteiro ou ter a mesma quantidade de discos de antes.
  • Ao olhar para o nível do pool, você pode emparelhar qualquer um e todos os tamanhos e tipos do vdev, embora isso geralmente não seja recomendado por motivos de desempenho e redundância. Mas é perfeitamente possível criar um pool de 3 vdevs - um único disco de 4TB, um raidz3 com 3 discos de 3TB cada e um espelho com 2 discos de 2TB cada, resultando em 4 + 6 + 2 = 12 TB de pool utilizável espaço. É claro que, se o disco de 4TB morrer, todos os seus dados serão perdidos, independentemente do nível de redundância dos outros 2 vdevs ... então isso não é recomendado. Observe também que o ZFS não reequilibra os dados existentes antigos, como ocorre com os controladores RAID de hardware.

Also I am slightly unsure whether miggling OS and data in one pool is really a good idea. Still I don't feel that leaving the OS unprotected on the least reliable drive in my setup seems a bit of a gambit.

Eu proponho quatro soluções diferentes (em ordem de como eu as escolheria no seu caso):

  1. Compre um cartão de memória SLC USB 3.0 com 8, 16 ou 32 GB, dependendo das suas necessidades, e instale o sistema operacional (eu recomendo o OmniOS + napp-it, mas você também pode usar o Linux). Será um pouco mais lento que um disco rígido ou SSD real, mas economiza seus slots valiosos. Você também pode fazer isso através de cabeçalhos de pinos internos para remover o acesso ao bastão. Então você poderia comprar outro exatamente assim e espelhar a unidade de inicialização. Dessa forma, você pode até fazer um backup de imagem manual de tempos em tempos, ou substituir o hardware sem desligar o sistema ou precisar de controladores SATA / SAS compatíveis com hotplug.
  2. Use um sistema que vive inteiramente na RAM e salva toda a sua configuração e dados no próprio pool. Você pode inicializar isso através de um pendrive barato ou via rede (PXE). SmartOS vem à mente, você pode querer ler sobre isso aqui
  3. Dependendo do seu hardware, pode ser possível encaixar 2 drives slim de 2,5 polegadas no slot (algumas modificações podem ser necessárias). Existem inversores de 1TB com drives de 7 mm e 2TB com 9 mm de altura. precisa de 2 portas SATA para isso.
  4. Não se preocupe com a unidade do sistema operacional. Como o ZFS contém a maior parte das coisas interessantes que já estão na própria piscina, você pode ficar perfeitamente bem sem nenhum espelho. Faça um scrub regular (ele detectará erros, embora não possa corrigi-los) e, se o scrub estiver sem erros, copie o sistema importante e os arquivos de configuração para um sistema de arquivos no pool de dados (espelhado). Como alternativa, você pode fazer uma imagem do sistema de arquivos e armazená-la no pool de dados. Em caso de falha no disco, use um Live CD para importar seu pool de dados e restaurar o backup salvo.
por 24.02.2016 / 15:18
1

Qual opção eu escolheria?

Isso dependeria da importância dos seus dados. E quando uma unidade morre (até mesmo o disco corporativo mais caro que você pode comprar falhará em algum momento. Afinal de contas, está apenas girando ferrugem.), Você pode viver sem o dados se você não tiver um backup dele?

Você encontrará várias sugestões por aí, mas a maioria recodificará usando um espelho, ou até mesmo um espelho triplo - para evitar o tempo de reconstrução de paridade de uma configuração do tipo RAID5. As unidades continuam ficando maiores e, felizmente, o custo delas é razoável. O espelho também oferece um caminho de atualização mais fácil, pois você precisa de uma unidade do mesmo tamanho ou maior.

Uma prática comum é tentar e não espelhar duas unidades da mesma construção de fabricantes. Eu tenho um amigo que vai além e substitui suas unidades após um período de tempo (2 anos?), Assumindo que irá falhar.

Também esqueci de observar que outra vantagem de usar o ZFS para espelhar duas unidades do sistema ao usar o hw raid no servidor é que o ZFS pode detectar e corrigir possíveis erros encontrados.

    
por 01.02.2017 / 23:50

Tags