O storage array do ZFS é portátil entre sistemas operacionais e arquiteturas de CPU?

6

Eu sei que o ZFS está disponível em vários sistemas operacionais: Solaris, Illumos, Linux, BSD, etc.

Suponha que eu tenha um monte de discos que fazem parte do sistema de arquivos raid do ZFS que foi criado no Linux, essas unidades poderiam ser retiradas da máquina Linux e colocadas em uma máquina rodando o BSD ou o Illumos e funcionar? Há alguma coisa específica do SO gravada nos sistemas de arquivos ZFS que tornaria um disco entre diferentes implementações do ZFS um problema?

E se os discos formatados do ZFS fossem movidos através de arquiteturas de CPU, digamos, de uma máquina executando SPARC para x86. Os metadados do ZFS seriam afetados pelo endianess da arquitetura da CPU?

    
por ams 23.11.2013 / 21:56

2 respostas

5

O que realmente importa ao lidar com pools do ZFS e portabilidade de conjuntos de dados são suas versões. Você sempre pode importar um pool usando uma versão menor ou igual à que o sistema operacional suporta, e a mesma regra se aplica a conjuntos de dados (por exemplo, sistemas de arquivos, zvols e snapshots).

Portanto, se você planeja mover os pools do ZFS de alguns SOs para outros, certifique-se de selecionar a maior versão comum para pools, sistemas de arquivos e zvols que deseja compartilhar. por exemplo:

zpool create -o version=28 -O version=5 ...

Tenha também em atenção que o ramo Open Source do ZFS introduziu "sinalizadores de funcionalidades" que, quando activados, tornam os conjuntos incompatíveis com o Solaris. Eles definiram a versão do pool como 5000. Por outro lado, os flags de recursos foram projetados para permitir alguma flexibilidade ao mover um pool para um sistema operacional que não suporta alguns recursos.

Sobre as arquiteturas, os objetos do ZFS são gravados usando a ordenação nativa de bits da plataforma. Isso não é um problema, pois todas as implementações do ZFS são capazes de ler objetos big endian e little endian. O endianness é armazenado junto com todas as estruturas de dados. Não há, então, nenhum problema ao importar um pool de, digamos, x86 para SPARC e reciprocamente.

Por fim, você pode ter problemas ao lidar com pools criados em discos não inteiros. O sistema operacional de destino deve ser capaz de entender o particionamento do disco de origem. O pior cenário seria se você cria um pool com base em arquivos simples (o que não é recomendado fora do teste) e o sistema de arquivos usado não pode ser montado na plataforma de destino.

    
por 24.11.2013 / 03:55
3

Este artigo intitulado: Portabilidade do ZFS parece indicar que o ZFS é muito portátil em relação às diferentes implementações. Do Linux, FUSE, BSD, etc.

trecho # 1

I have found a few examples where people have migrated ZFS pools between operating systems but only as one-off experiences with their fingers firmly crossed. Here is what I discovered while moving two zpools created in FreeNAS to several other operating systems.

My zpools consist of a pair of mirrored 500GB drives named cft and a single 2TB drive named single. The first thing I learned is that you should keep careful track of your pool names because the ZFS utilities will not always recognize and import them automatically.

trecho # 2

Astonishingly, ZFS FUSE recognized the pools and automatically mounted them upon boot. The mount points changed from /mnt/cft/ and /mnt/single/ under FreeNAS to /cft and /single but simply worked.

Also quite astonishingly, this works using a Xubuntu live CD. Open a terminal, type the apt-get commands, hit enter when prompted and then start using zfs(8) and zpool(8) as you normally would.

trecho # 3

As you have probably noticed when installing FreeBSD 9.0, the installer now gives a choice of a shell and live CD. I found that the live CD and the PC-BSD command line ZFS tools behaved the same. This should be no surprise considering that they are both essentially FreeBSD 9.0. What was unexpected however was the fact that FreeBSD 9.0 did not automatically recognize the zpools for import. This was even after reformatting the single drive in case the Ubuntu ZFS FUSE tools made changes to it. The mismatch between ZFS versions may have something to do with this but it was not a problem under Ubuntu which is ZFS version 16. The leap from version 15 under FreeNAS to version 28 in FreeBSD 9.0 is probably the cause but the backwards compatibility could be slightly more elegant.

trecho # 4

I encourage you to experiment with ZFS journeys between more systems and will gladly publish your findings. The potential for universal ZFS pool portability just might take the pain out of RAID administration and broken mirror data interrogation once and for all.

    
por 23.11.2013 / 23:38