NFS vs iSCSI – qual protocolo você deve escolher para armazenar arquivos de máquinas virtuais VMware? Essa pergunta geralmente surge quando você precisa configurar armazenamento compartilhado para armazenar máquinas virtuais (VMs) que devem ser migradas entre hosts ESXi, para usar recursos de agrupamento, e quando não há slots livres para anexar discos físicos ao servidor.
Organizações que implantam VMware vSphere em um grande datacenter preferem usar Fibre Channel (FC) ou Fibre Channel over Ethernet (FCoE), que são caros. No entanto, NFS e iSCSI são atraentes para datacenters de pequeno e médio porte usados para infraestrutura VMware vSphere porque o hardware necessário para configurar compartilhamento de arquivos com esses protocolos de compartilhamento é mais acessível. Esta postagem de blog compara NFS vs iSCSI com foco em usá-los em uma infraestrutura virtual VMware vSphere.
O que é NFS?
Network File System (NFS) é um protocolo de rede que permite compartilhar arquivos armazenados em um disco ou uma matriz de disco de um servidor com outros computadores na rede. NFS foi desenvolvido pela SUN Microsystems e a primeira versão foi apresentada em 1984. No momento da redação deste post, a implementação mais recente do NFS é a versão 4.1. A versão 4.2 está em desenvolvimento e ainda não foi apresentada para uso em produção.
Novos recursos e melhorias foram adicionados com cada nova versão do NFS, incluindo recursos úteis para armazenamento de virtualização. O NFS v4.1 fornece um mecanismo para permitir que vários usuários compartilhem o mesmo arquivo e garantam a consistência dos dados (acesso paralelo). Operações com várias threads são suportadas.
NFS é o protocolo que opera na camada de aplicação do modelo Open Systems Interconnect (OSI). Os clientes acessam arquivos enviando solicitações de Chamada de Procedimento Remoto (RPC) para um servidor NFS para fazer operações com arquivos e diretórios no servidor NFS.
As solicitações RPC são transmitidas para o protocolo XDR (eXternal Data Representation) que funciona na camada de apresentação e é o padrão para abstração de dados entre plataformas. XDR descreve a forma unificada e canônica de representação de dados que não depende da arquitetura do sistema de computação. Quando um cliente transmite dados, o cliente RPC transforma os dados locais em uma forma canônica, e o servidor realiza a operação inversa.
Uma vez concluída a unificação de dados, o serviço RPC no lado do cliente garante a solicitação de procedimentos remotos e sua execução no servidor (fornecendo recursos da camada de Sessão). Nesta fase, a explicação das camadas específicas do NFS é concluída. Em seguida, os dados são encapsulados em unidades de dados TCP ou UDP padrão e são transferidos para as camadas subjacentes do modelo OSI.
Camadas OSI | Protocolos |
Aplicação | NFS |
Apresentação | XDR |
Sessão | RPC |
Transporte | TCP |
Rede | IP |
Link de Dados | Ethernet |
Física | – |
O NFS compartilha dados no nível de arquivo. Adaptadores de rede padrão com interface Ethernet e porta RJ-45 podem ser usados para implementar armazenamento compartilhado NFS.
As versões mais antigas do NFS funcionam via UDP pela rede IP, e as versões mais recentes (NFS v2 e v3) podem funcionar via TCP e UDP. NFS 4.0 e 4.1 usam TCP sobre IPv4 como padrão. O NFS v4 funciona através de firewalls e pela Internet.
O VMware vSphere ESXi 6.0 e versões superiores do ESXi suportam NFS 3.0 e NFS 4.1. O ESXi contém um cliente NFS embutido que se conecta a um servidor NFS via TCP/IP. Dois clientes NFS diferentes são usados para se conectar via NFS versões 3.0 e 4.1. Você pode selecionar qual versão do NFS usar ao criar um novo datastore NFS. O VMware não suporta os seguintes recursos quando o NFS v.4.1 é usado:
- Storage DRS
- Controle de E/S de Armazenamento
- Site Recovery Manager
O uso de datastores NFS é conveniente ao armazenar modelos de VM e imagens ISO para instalar sistemas operacionais em máquinas virtuais.
O que é iSCSI?
Internet Small Computer Interface (iSCSI) é um protocolo de rede que garante a interação de objetos (iniciadores e alvos) na rede para compartilhamento de dados. Um iniciador iSCSI é configurado no lado do cliente e o alvo iSCSI é configurado no lado do servidor.
Os iniciadores iSCSI podem ser baseados em software e em hardware. Os baseados em hardware ajudam a descarregar a unidade central de processamento (CPU ou processador) na máquina cliente e exigem a instalação de um adaptador de barramento de host (HBA) de hardware. Um HBA iSCSI de hardware é um controlador de interface de rede (NIC) com uma interface Ethernet. Nesta comparação entre iSCSI e NFS, considero o uso de iniciadores iSCSI baseados em software. O iSCSI foi introduzido em 2003 e é descrito no RFC 3720.
O iSCSI é o protocolo da camada de sessão (funciona na camada 5 do modelo OSI) que opera sobre o TCP/IP. Os dados são compartilhados no nível de bloco, ao contrário do NFS, mas de forma semelhante ao FC. Este é um ponto importante na comparação entre iSCSI e NFS. Os comandos SCSI são encapsulados em unidades de dados TCP/IP e são transferidos usando redes Ethernet padrão. Como resultado, um computador pode enviar comandos SCSI para dispositivos de bloco de armazenamento localizados em outro computador usando uma rede.
Camadas | Descrição |
Aplicação | Sistema de arquivos, banco de dados, etc. |
SCSI | Dados SCSI, comandos SCSI, status SCSI |
iSCSI | Serviços de protocolo iSCSI, Nome Qualificado iSCSI (IQN), Serviço de Nome de Armazenamento na Internet (iSNS), autenticação CHAP, etc. |
TCP | Um protocolo com mecanismo de controle de erro (normalmente funciona em uma pilha TCP/IP) |
IP | Um protocolo para comunicação e roteamento de rede |
Ethernet | Switches, cabos, portas (conectores), protocolos |
Nota: Há um fato interessante sobre como o iSCSI pode ser usado para recuperação de VMs VMware. Quando você usa a Recuperação Instantânea de VM no NAKIVO Backup & Replication, por exemplo, para executar uma VM em um host ESXi diretamente de um backup, a VM é criada no host ESXi selecionado e os discos virtuais são montados na VM usando o protocolo iSCSI como discos RDM em um modo de compatibilidade virtual.
VMware NFS vs iSCSI – Diferenças Chave
Ambos NFS e iSCSI podem funcionar em redes Ethernet de 1 gigabit e 10 gigabits (1GbE e 10GbE) implantadas usando fios de cobre. Maior velocidade de rede é melhor. Leia mais sobre topologias de rede. Ao usar um datastore compartilhado no VMware vSphere para armazenar arquivos VM, ambas as implementações (NFS e iSCSI) podem ser usadas para migração ao vivo de VM, balanceamento de carga e migração de VM entre datastores. Ambos os protocolos de compartilhamento têm overhead significativo causado pelo mecanismo de encapsulamento de dados em várias camadas sobre redes TCP/IP.
O NFS é suportado na maioria dos dispositivos NAS de fornecedores, por exemplo, Synology e QNAP. No entanto, não é difícil selecionar um NAS com suporte para iSCSI nos dias de hoje.
Vamos analisar essa comparação entre VMware NFS e iSCSI com mais detalhes.
Balanceamento de carga
Quando um caminho de rede falha ou está sobrecarregado, o multipathing fornece a capacidade de balanceamento de carga entre um servidor e armazenamento se houver vários caminhos.
O NFS 4.1 suporta multipathing se o trunking de sessão estiver disponível nos servidores (mas não o trunking de ID do cliente). Como resultado, você pode acessar um único volume NFS a partir de vários endereços IP. Se você usar NFS v3, use o round-robin DNS para balanceamento de carga de rede.
No VMware vSphere, o multipathing de iSCSI funciona no nível de um adaptador de rede VMkernel. Para balanceamento de carga de iSCSI no vSphere, você pode usar o vínculo de porta.
Caching
Ao usar NFS, um sistema de arquivos com cache de sistema de arquivos está localizado em um servidor NFS e uma máquina cliente deve verificar metadados no servidor NFS de forma consistente. Gravações de dados assíncronas são suportadas pelo NFS v3 e v4, mas as atualizações de metadados são síncronas.
Ao usar iSCSI, um sistema de arquivos é criado pelo dispositivo cliente após ter acesso ao armazenamento compartilhado no nível de bloco (como no caso do VMware vSphere, um host ESXi cria o sistema de arquivos VMFS em um LUN iSCSI). Uma política de cache é definida por um sistema de arquivos para armazenamento compartilhado iSCSI e o cache do sistema de arquivos está localizado no lado do cliente. Por exemplo, se você usar iSCSI como protocolo de compartilhamento e ext3 como sistema de arquivos, terá o cache completo de escrita de dados e atualizações de metadados.
Os sistemas de arquivos mais modernos usam atualização de metadados assíncronos e o registro baseado em log é usado para recuperação de dados. Em geral, a atualização assíncrona de dados (usada no iSCSI) é menos confiável em termos de persistência de dados e metadados em comparação com a atualização síncrona, como a usada no NFS.
Confiabilidade
NFS. O agrupamento de NICs pode ser usado para se proteger contra falhas de rede. Se uma NIC falhar, outra NIC pode continuar funcionando.
iSCSI. A Arquitetura de Armazenamento Plugável (PSA) da VMware usa o plugin de Tipo de Matriz de Armazenamento para a implementação de failover ao trabalhar com matrizes iSCSI. O binding iSCSI requer mapear vários destinos iSCSI em sub-redes diferentes para o iniciador iSCSI.
Como tanto o iSCSI quanto o NFS usam TCP para encapsulamento, a entrega de dados é verificada no nível de rede.
O VMFS no armazenamento iSCSI pode ser frágil se você armazenar discos virtuais provisionados de forma fina para VMs. Uma falha de energia pode tornar um volume irreparável. O comportamento dos datastores NFS em tais situações é ligeiramente mais confiável. Você pode mitigar esses problemas se realizar backups do VMware regularmente.
Segurança
O tráfego iSCSI geralmente não é criptografado, mas isso não significa que você não possa proteger o tráfego iSCSI. Usar um nome e senha é suportado para autenticação de compartilhamentos iSCSI. O Protocolo de Autenticação de Handshake de Desafio (CHAP) permite que o servidor e o cliente garantam que confiem um no outro.
O NFS usa autenticação baseada em host. A configuração padrão do NFS não fornece criptografia (sys=sistema), mas ao usar NFSv4 com Kerberos habilitado (sec=krb5p), a conexão é segura. Na configuração do servidor NFS, você tem que definir o endereço IP do host que está autorizado a acessar o compartilhamento NFS. Você também pode definir vários hosts ou a sub-rede inteira. Por exemplo, o protocolo de compartilhamento de arquivos SMB amplamente conhecido depende de autenticação baseada em usuário.
Configurar uma VLAN dedicada ou usar uma rede física separada (privada) é a prática recomendada para usar armazenamento compartilhado iSCSI e NFS no VMware vSphere. Esse enfoque permite isolar o tráfego de armazenamento de outros tipos de tráfego. O NFS v3 não tem recursos de segurança similares aos do NFS v4.1. Um servidor ESXi monta um compartilhamento NFS com acesso root (quando o Kerberos não é utilizado). Portanto, tenha isso em mente ao fazer uma configuração segura. Leia também sobre VLAN e VXLAN.
O NFS v.4.1 suporta autenticação Kerberos com mecanismos de criptografia além do Padrão de Criptografia de Dados (DES). Os algoritmos criptográficos no Kerberos impedem que usuários não autorizados acessem o tráfego NFS. O ESXi suporta as implementações krb5 e krb5i do Kerberos. ESXi 7.0 suporta a Criptografia Kerberos do NFS 4.1 e o mecanismo de segurança AUTH_SYS (mas não simultaneamente).
VMware NFS vs iSCSI – Mapeamento de Dispositivo Bruto
Ao usar o iSCSI como armazenamento compartilhado, você pode configurar o mapeamento de dispositivo bruto para uma VM. O mapeamento de dispositivo bruto (RDM) é um recurso que permite anexar todo o disco físico ou LUN iSCSI a uma VM como um dispositivo diretamente (em vez de anexar um disco virtual na configuração da VM). A abordagem baseada em RDM difere da abordagem tradicional quando você cria um datastore em uma LUN (Número de Unidade Lógica), cria o sistema de arquivos VMFS e armazena discos virtuais usados pelas VMs nesse datastore. O RDM é possível ao usar o iSCSI porque um compartilhamento iSCSI funciona no nível de bloco, e uma VM pode formatar um disco RDM de bloco anexado com um sistema de arquivos personalizado usado por um sistema operacional convidado instalado na VM.
No caso do NFS, usar um compartilhamento NFS para anexar como um disco RDM não é suportado porque os compartilhamentos NFS funcionam no nível de arquivo, e o RDM requer que dispositivos de bloco sejam anexados às VMs. Com compartilhamentos NFS, você só pode criar datastores NFS e armazenar arquivos de disco virtual VMDK nos datastores. Você pode montar um compartilhamento NFS e um compartilhamento iSCSI no nível de um sistema operacional convidado se o sistema operacional convidado tiver um cliente NFS ou iniciador iSCSI. Assim, na categoria de mapeamento de dispositivo bruto na comparação VMware iSCSI vs NFS, o vencedor é o iSCSI.
Desempenho do iSCSI vs NFS
Em uma implementação de iSCSI de software, o desempenho é ligeiramente maior, mas a carga da CPU no host cliente também é maior. O iSCSI também coloca uma carga mais alta na rede. O iSCSI gera mais tráfego e carga na rede, enquanto o uso do NFS é mais suave e mais previsível. Quando um grande número de operações de gravação é realizado, você pode notar degradação de desempenho com um compartilhamento NFS.
Ao usar NFS no vSphere, é melhor usar NFS com suporte para API de Armazenamento Virtual para Integração de Array (VAAI) no lado do armazenamento. O VAAI permite criar discos virtuais com provisionamento grosso em datastores NFS. Discos provisionados finamente são criados por padrão em datastores NFS. Tanto NFS quanto iSCSI suportam quadros Jumbo para melhorar o desempenho da rede.
Ao final desta comparação de velocidade entre iSCSI e NFS, deve-se mencionar que o desempenho também depende do fornecedor do array de armazenamento.
Acesso Concorrente
O iSCSI não suporta acesso de dados concorrente ou paralelo a um dispositivo de bloco. Os dados precisam ser compartilhados entre dois saltos. No entanto, o acesso paralelo é permitido no nível de um sistema de arquivos que suporta acesso paralelo a arquivos, por exemplo, VMFS ou GFS. Ao usar compartilhamentos iSCSI no VMware vSphere, o acesso concorrente aos compartilhamentos é garantido no nível do VMFS.
O NFS suporta acesso concorrente a arquivos compartilhados usando um mecanismo de bloqueio e um mecanismo de consistência próximo-para-abrir para evitar conflitos e preservar a consistência dos dados. O NFS v3 e o NFS v4.1 usam mecanismos diferentes. O NFS v3 pode usar o protocolo Network Lock Manager (NLM), e o NFS v4.1 usa bloqueio especificado por protocolo nativo. Se o NFS v3 for usado no VMware ESXi para acessar compartilhamentos de arquivos, o ESXi não usará o protocolo NLM porque a VMware fornece seu próprio protocolo de bloqueio neste caso. Arquivos de bloqueio com nome .lck-file_id são criados em um compartilhamento de arquivos ao usar compartilhamentos NFS v3 no VMware vSphere.
NFS v4.1 usa reservas para bloquear arquivos para acesso simultâneo. Se você criar uma partilha de arquivos NFS, todos os clientes devem usar a mesma versão do protocolo NFS (todos os hosts ESXi se conectam à partilha via NFS v.4.1, por exemplo). Se dois clientes incompatíveis usarem diferentes versões do NFS para acessar arquivos em um servidor NFS, pode haver comportamento inconsistente e corrupção de dados.
Dificuldade de configuração
Ao usar NFS, é mais fácil configurar um servidor e um cliente. Usar iSCSI para configurar um armazenamento compartilhado é mais difícil. Você precisa configurar IQNs para armazenamento e hosts; fazer uma configuração do serviço iSCSI, LUNs e mascaramento; e configurar várias VLANs por motivos de segurança (isolando segmentos de rede usados para comunicação iSCSI para fornecer um nível de segurança mais alto).
Leia sobre VMware virtual volumes que podem ser usados para armazenar dados de VM.
NFS vs iSCSI no VMware vSphere – Tabela Resumo
Vamos destacar as principais características de cada protocolo de compartilhamento de dados nesta comparação entre iSCSI e NFS no VMware na tabela resumo.
iSCSI | NFS | |
Partilha de dados | Nível de bloco | Nível de arquivo |
Mapeamento de Dispositivo Bruto para VMs | Sim | Não |
Dificuldade de configuração | Média | Fácil |
Inicialização a partir de SAN | Sim | Não |
Verificação de erros | Sim | Sim |
Recursos de segurança | CHAP | Kerberos |
Storage vMotion | Sim | Sim |
DRS de Armazenamento | Sim | Sim |
Conclusão
Ambos os protocolos de compartilhamento são maduros o suficiente para serem usados no VMware vSphere. A principal diferença entre iSCSI e NFS é que o iSCSI compartilha dados no nível de bloco, enquanto o NFS compartilha dados no nível de arquivo. O desempenho é quase o mesmo, mas, em algumas situações, o iSCSI pode fornecer melhores resultados. Discos RDM para VMs podem ser usados com iSCSI, mas não com NFS.
Ambos os protocolos de compartilhamento de rede são confiáveis. No entanto, você ainda precisa usar uma solução de proteção de dados de terceiros para evitar perda de dados e tempo de inatividade. Evite falhas de energia e outras falhas de hardware para evitar perda de dados no seu armazenamento compartilhado. Use unidades de alimentação ininterrupta e crie backups regulares.
Source:
https://www.nakivo.com/blog/nfs-vs-iscsi-for-accessing-vm-data/