ZFS em cima do iSCSI

ZFS em cima do iSCSI

Estou planejando construir um servidor de arquivos usando ZFS e BSD, e esperava torná-lo mais expansível anexando unidades armazenadas em outras máquinas no mesmo rack via iSCSI (por exemplo, uma máquina está executando ZFS e outras têm iSCSI alvos disponíveis para serem conectados pela caixa ZFS e adicionados aos zpools).

Procurar outras pessoas que tentaram isso me levou a recursos sobre a exposição de compartilhamentos iSCSI no ZFS, mas nada sobre o contrário. Principalmente tenho as seguintes perguntas:

  • O iSCSI sobre Ethernet gigabit é rápido o suficiente para essa finalidade ou eu teria que mudar para 10 GbE para obter um desempenho decente?
  • O que aconteceria quando uma das máquinas que executam alvos iSCSI se desconectasse da rede?
  • Existe uma maneira melhor de fazer isso que eu simplesmente não sou inteligente o suficiente para ter percebido?

Em termos de capacidade, inicialmente seriam cerca de 10 TB de dados (sem levar em conta a redundância), e uma meta razoável para o futuro previsível seria escalar para 20 TB, portanto, com redundância, provavelmente cerca de 40-50 TB de armazenamento total. Se possível, também queremos manter todos os dados criptografados com GELI.

Obrigado por qualquer ajuda.

Responder1

Qual é o seu objetivo em termos de capacidade? Isso é definitivamente possível, pois o ZFS seria capaz de ver seus alvos e agregá-los em pools. No entanto, você está deixando uma boa quantidade de desempenho e confiabilidade na mesa.

Minha recomendação para dimensionamento (no que presumo serem suas necessidades de capacidade) é investir em um gabinete de unidade SAS multipath-cabale externo e em controladores compatíveis com ZFS. Se esta for uma situação em que você precisa de mais do que dizer, os 24 TB de armazenamento RAID 1+0 utilizável fornecidos pelaumgabinete externo preenchido com discos de 2 TB, então você está no reino onde se beneficiaria com conselhos de design especializados. Nesse nível, o iSCSI usando discos presentes em outros sistemas não tornará as coisas mais rápidas.

O design iSCSI falhará por motivos de latência, confiabilidade e capacidade de suporte.

Responder2

Quanto à sua pergunta sobre iSCSI sobre Ethernet - iSCSI é praticamente o protocolo mais rápido que você encontrará. É basicamente um acesso direto ao bloco de disco por meio de um fio. Isso saturará uma NIC gigabit decente.

Com relação à perda de alvos na rede, (quase) todas as implementações de alvo iSCSI que vi suportam vários tipos de caminhos múltiplos. Acho que o open-ietd ainda pode não suportar multipathing. Na pior das hipóteses, você está usando um sistema de arquivos com registro em diário; talvez você precise reproduzir o diário quando o alvo voltar a ficar online. Ainda não corrompei um sistema de arquivos sobre iSCSI ao derrubar um servidor de armazenamento.

Responder3

Observação: na verdade, não fiz isso, então considere isso com uma pitada de sal. Já vi menção disso enquanto lia sobre o ZFS, mas não consigo encontrar essas referências agora...

Você deseja exportar cada disco físico como um LUN separado para que o ZFS tenha visibilidade total do layout físico. Isso é necessário para que ele tome as decisões corretas sobre agendamento e replicação de IO.

O iSCSI sobre Ethernet gigabit é rápido o suficiente para essa finalidade ou eu teria que mudar para 10 GbE para obter um desempenho decente?

Depende da velocidade dos discos, de quantos discos existem e do desempenho que você deseja alcançar. Discos de 15k RPM podem transferir até 105MiB/s, que é 840Mbit/s. Acessar mais de um desses discos em um único link Gigabit saturará o link e tornará sua rede um gargalo. Encontre a velocidade máxima dos discos que deseja usar, multiplique pelo número de discos e você obterá a largura de banda de rede necessária para suportar isso.

É claro que isso pressupõe que você deseja o máximo desempenho possível do servidor ZFS. Se você tiver apenas alguns clientes conectados a mais de 100 Mbit/s, isso não será necessário, então calcule qual é a demanda máxima esperada. Lembre-se de que a largura de banda dos discos é um pouco maior que a largura de banda do cliente se você estiver usando RAIDZ1/2/3 e, claro, se o servidor acessar os discos pela mesma NIC que os clientes acessam o servidor, essa largura de banda precisa ser compartilhado.

O que aconteceria quando uma das máquinas que executam alvos iSCSI se desconectasse da rede?

O ZFS veria o disco como indisponível. Se você estiver usando RAID1/2/3, isso não deverá interromper o serviço aos clientes. Se você configurou um hot spare, o ZFS começará a ressincronizar os dados com ele. Quando o destino iSCSI retornar, o ZFS deverá começar a usá-lo novamente, presumindo que o iniciador se reconecte automaticamente. (Isso é algo que você deve testar.)

informação relacionada