Temos que copiar regularmente arquivos enormes do Solaris para o Linux (usando rede). Atualmente, leva quase meio dia para um arquivo. Os arquivos no Solaris estão em um sistema de arquivos ZFS.
Então pensei que droga - provavelmente poderíamos montar aquele ZFS no Linux.
Mas o ZFS não é um sistema de arquivos clusterizado (ou clusterizável).
Hipótese: Então pensei que poderíamos, já que estamos apenas copiando do Solaris - podemos montar o mesmo sistema de arquivos ZFS somente leitura, para que não precise ser agrupado neste caso? As gravações serão apenas no lado do Solaris (não podemos desmontá-lo lá).
Essa caixa Solaris está muito ocupada e as NICs de rede quase sempre também estão muito ocupadas. Portanto, mover a cópia do arquivo para FC deve ser muito mais rápido.
Essa caixa Linux é um convidado virtual em um host VMWare. Então sim, é possível apresentar a mesma estrutura FC para aquele convidado Linux.
Pensamentos? Acho que essa parte da hipótese é onde procuro feedback. Não tenho certeza se é possível fazer a montagem somente leitura do ZFS no Linux + montagem simultânea de leitura e gravação no Solaris.
Responder1
Isso não é de todo possível. O ZFS não permite ser montado em dois hosts ao mesmo tempo, independentemente das permissões de leitura/direito. Se você tentar montá-lo no Linux enquanto estiver montado no Solaris, você terá que forçá-lo. Se você fizer isso, o Solaris irá travar com kernel panic. Isso aconteceu com dois Solaris ao forçar a importação na segunda caixa do Solaris enquanto ela estava montada na primeira caixa. Além disso, a versão ZFS também terá um papel importante se você puder importar ou não o zpool no Linux. Se você quiser tentar, sugiro o seguinte:
- Clone o lun no armazenamento
- Mapeie o lun clonado para a caixa do Linux
- Tente montar o zpool no linux
Responder2
O que impede isso é o fato de que o ZFS armazena em cache os metadados na memória porque assume que é o único que altera o estado do disco. Qualquer que seja o host montado para leitura/gravação, deve funcionar bem. Em outro host montado como somente leitura, os metadados serão alterados e, em algum momento (rapidamente), ele lerá um bloco do disco em um local que pensava ter metadados válidos, mas foi substituído por o outro sistema.
Você pode tentar o método de clonagem lun descrito por BitsOfNix ou pode tentar configurar um script periódico de instantâneo/envio/recebimento para tentar se manter atualizado. Ou você pode tentar compartilhar o conjunto de dados do host Solaris e montá-lo via NFS no host Linux.