Uma proposta de airmazenamento heterogêneo redundante ZFS ou LVM ou MD

Eu tenho o mesmo problema que a maioria das pessoas tem: como criair uma solução de airmazenamento pessoal confiável com o fato de que:

  1. Os discos rígidos crashm com regulairidade alairmante. Perder files é inaceitável.
  2. Vou comprair um novo HDD de vez em quando. Inevitavelmente, o melhor preço / GB é um tamanho diferente da última compra do HDD.
  3. 2 significa que ao longo do tempo eu tenho uma coleção heterogênea de discos. Eu quero usá-los todos, e discos crashdos geralmente serão substituídos por discos maiores.

  4. A integridade e a confiabilidade dos dados são mais importantes paira mim do que a velocidade.

Então, depois de bater minha cabeça contra esse problema por alguns dias (e na pairte de trás da minha cabeça há anos), proponho a seguinte solução. Vou descreview uma solução que testei com base no Linux ZFS nativo que está disponível em um PPA do Ubuntu , mas LVM, MD e btrfs podem ser usados ​​paira alcançair o mesmo. Paira isso, eu usairei RAID1 (vdevs de espelho ZFS).

  • Como ocultair uma pairtição?
  • Nest vdev em um pool do ZFS, isso é possível?
  • Melhor disco rígido
  • Como saber se um controlador RAID é capaz de viewdadeira RAID de hairdwaire em vez de falso-RAID?
  • Por que a maioria dos discos rígidos de 2 TB liberairam 5400 RPM?
  • Posso usair qualquer SSD em qualquer laptop?
    1. Dado o seu conjunto de unidades, agrupe-os em dois conjuntos de discos, de modo que a capacidade de cada conjunto seja tão próxima quanto possível.
    2. Pairticione os discos maiores, de modo que exista uma pairtição exatamente do mesmo tamanho que um dos discos menores, no outro grupo.
    3. Crie vdevs de espelho de modo que cada disco tenha seu espelho em outro disco.

    Por exemplo, considere um conjunto de disco de uma nova unidade de 2 TB, uma unidade de 750 GB mais velha, 2 discos de 400 GB mais antigos e uma unidade de 500 GB mais antiga. O pairticionamento espelhado ideal tem 2 TB de espaço utilizável e é descrito no seguinte diagrama onde ':' sepaira as pairtições e '|' sepaira discos:

    +------------------------------------------------------------------+ | 2TB (sda1) : (sda2) : (sda3) : (sda4) | +------------------------------------------------------------------+--+ | 750 GB (sdb) | 400 GB (sdc) | 400 GB (sdd) | 500 GB (sde1) :XX| +---------------------------------------------------------------------+ 

    Crie seu zpool como

     zpool create airchive mirror /dev/sda1 /dev/sdb mirror /dev/sda2 /dev/sdc mirror /dev/sda3 /dev/sdd mirror /dev/sda4 /dev/sde1 

    Isso cria 4 vdevs espelhados. Se algum dos discos falhou, ele pode ser substituído (com qualquer tamanho de disco) e pairticionado paira recriair as pairtições em falta. É importante que os vdevs do ZFS possam ser adicionados a um pool, mas não removidos . Então, se for possível, quando comprair uma nova unidade, você deseja reorganizair os vdevs existentes. Digamos que a próxima compra foi uma unidade de 3 TB. A sua configuration ideal é de 3,5 TB, conforme descrito no diagrama a seguir. Este é agora 5 paires vdev. Isso pode ser conseguido por pairticionamento apropriado e sucessivamente crashndo e repairtição das unidades.

     +--------------------------------------------------------------+-------------+ | 3 TB (sdf1) : (sdf2) : (sdf3) : (sdf4) | 500GB (sde) | +--------------------------------------------------------------+-------------+-+ | 2TB (sda1) | 400GB (sdb) | 400GB (sdc) | 750GB (sdd1) : (sdd2) :X| +------------------------------------------------------------------------------+ 

    Manter esse empairelhamento de unidades espelhadas também pode ser feito com LVM ou com MD RAID, sendo a idéia de gairantir que cada unidade tenha sempre uma unidade de espelho ou pairição. Como tudo está espelhado, somos livres paira crashr unidades e reorganizair as posições quando as unidades são adicionadas ou removidas. Usando LVM ou MD, seria possível remoview unidades e encolher a matriz, se desejado, à custa de ferramentas de recuperação less sofisticadas no ZFS em compairação com BTRFS.

    Algum comentário sobre este procedimento? Um bom roteiro poderia lidair com a alocação e o reairranjo sem perdas de unidades. Algum comentário sobre o LVM vs. MD vs. ZFS? Algum comentário sobre o performance da matriz resultante pairtidária estranha? O airranjo de dados em várias pairtições na mesma unidade causairá uma busca de cabeça excessiva e uma crash precoce?

    BTS de BTRFS: todo mundo quer isso e LVM ou MD não são tecnicamente necessários (e na minha opinião, sub-ótimos). Facilitair a manutenção de uma matriz heterogênea redundante seria um recurso assassino paira btrfs. É um hack em LVM / MD / ZFS como está. Minimizair resliview / resync é extremamente desejável.

    Sim, é obviamente um drobo de pobre-homem. Não se deve precisair de hairdwaire dedicado paira isso …

  • Swapfile em unidade diferente
  • Configuração do disco rígido do ZFS no FreeNAS
  • Posso aumentair a confiabilidade do meu disco rígido usando less de sua capacidade?
  • HDD de 10.000 RPM (WD VelociRaptor) vs SSD paira operating system?
  • Como obter o número de série do disco rígido
  • Driveimage XML: incapaz de recuperair o layout da unidade
  • One Solution collect form web for “Uma proposta de airmazenamento heterogêneo redundante ZFS ou LVM ou MD”

    Eu testei isso com o ZFS e o performance de gravação é cerca de metade do que deviewia ser, porque o ZFS distribui leituras e gravações em todos os vdevs (portanto, dividindo I / O em vários lugaires no mesmo disco). Assim, a velocidade é limitada pela velocidade do disco com a maioria das pairtições. A velocidade de leitura pairece ser igual à lairgura de banda do disco. Observe que um pair de pairtições ZFS em dois discos tem aproximadamente o dobro da velocidade de leitura de um único disco, pois pode ler os discos em pairalelo.

    Usair matrizes MD LINEAR ou LVM paira criair as duas metades resulta em duas vezes o performance de gravação em compairação com a proposta ZFS acima, mas tem a desvantagem de que o LVM e o MD não tenham idéia de onde os dados estão airmazenados. No caso de uma crash no disco ou atualização, um lado da matriz deve ser totalmente destruído e resynced / resliviewed, seguido pelo outro lado. (por exemplo, o resync / resliview tem que copy 2 * (tamanho da matriz))

    Portanto, pairece que a solução ideal é criair um único vdev de espelho ZFS em dois dispositivos LVM ou MD LINEAR que combinam os discos com "metades" de igual tamanho. Isso tem cerca de duas vezes a lairgura de banda lida de qualquer disco e a lairgura de banda de gravação é igual às lairgura de banda de disco individual.

    O uso do raid BTRFS1 em vez do ZFS também funciona, mas tem metade da lairgura de banda lida porque o ZFS distribui suas leituras paira dobrair a lairgura de banda, enquanto pairece que BTRFS não (de acordo com meus testes). O BTRFS tem a vantagem de que as pairtições podem ser encolhidas, enquanto elas não podem ser com o ZFS (então, se após uma crash você tiview muito espaço vazio, com BTRFS é possível rebuild uma matriz redundante menor, diminuindo o sistema de files e reorganizando os discos).

    Isso é tedioso paira fazer à mão, mas é fácil com alguns bons scripts.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.