NFS vs iSCSI – qual protocolo você deve escolher para armazenar arquivos de VM VMware? Essa pergunta geralmente surge quando você precisa configurar armazenamento compartilhado para armazenar máquinas virtuais (VMs) que precisam ser migradas entre hosts ESXi, para usar recursos de clusterização, e quando não há slots livres para anexar discos físicos ao servidor.
Organizações que implantam o VMware vSphere em um grande data center preferem usar Fibre Channel (FC) ou Fibre Channel over Ethernet (FCoE), que são caros. No entanto, NFS e iSCSI são atraentes para data centers de pequeno e médio porte usados para infraestrutura VMware vSphere porque o hardware necessário para configurar o compartilhamento de arquivos com esses protocolos de compartilhamento é mais acessível. Esta postagem no blog compara NFS vs iSCSI com foco em usá-los em uma infraestrutura virtual VMware vSphere.
O que é NFS?
O 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. O NFS foi desenvolvido pela SUN Microsystems e a primeira versão foi apresentada em 1984. No momento da redação desta postagem, 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 consistência de dados (acesso paralelo). Múltiplos threads para operações são suportados.
O NFS é o protocolo que opera na camada de aplicação do modelo de Interconexão de Sistemas Abertos (OSI). Os clientes acessam arquivos enviando solicitações de Chamada de Procedimento Remoto (RPC) a um servidor NFS para realizar operações com arquivos e diretórios no servidor NFS.
As solicitações RPC são transmitidas para o protocolo XDR (Representação de Dados Externos), que trabalha na camada de apresentação e é o padrão para a abstração de dados entre plataformas. O XDR descreve a forma canônica e unificada 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 executa a operação inversa.
Depois que a unificação de dados é concluída, 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). Neste ponto, a explicação das camadas específicas do NFS é concluída. Em seguida, os dados são encapsulados em unidades padrão de dados TCP ou UDP e são transferidos para as camadas inferiores do modelo OSI.
Camadas OSI | Protocolos |
Aplicação | NFS |
Apresentação | XDR |
Sessão | RPC |
Transporte | TCP |
Rede | IP |
Link de Dados | Ethernet |
Físico | – |
O NFS compartilha dados no nível do arquivo. Adaptadores de rede padrão com interface Ethernet e porta RJ-45 podem ser usados para implementar o armazenamento compartilhado NFS.
As versões mais antigas do NFS funcionam sobre UDP através da rede IP, e as versões mais recentes (NFS v2 e v3) podem funcionar sobre TCP e UDP. NFS 4.0 e 4.1 usam TCP sobre IPv4 como padrão. NFS v4 funciona através de firewalls e via 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 integrado 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. A 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 System Interface (iSCSI) é um protocolo de rede que garante a interação de objetos (iniciadores e destinos) na rede para compartilhamento de dados. Um iniciador iSCSI é configurado no lado do cliente e o destino iSCSI é configurado no lado do servidor.
Os iniciadores iSCSI podem ser baseados em software e 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 no topo da pilha TCP/IP. Os dados são compartilhados no nível de bloco, ao contrário do NFS, mas 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 (geralmente funciona em uma pilha TCP/IP) |
IP | Um protocolo para comunicação em rede e roteamento |
Ethernet | Switches, cabos, portas (conectores), protocolos |
Nota: Há um fato interessante sobre como o iSCSI pode ser usado para recuperação de VM do VMware. Quando você utiliza a Recuperação Instantânea de VM no NAKIVO Backup & Replicação, por exemplo, para executar uma VM em um host ESXi diretamente de um backup, a VM é criada no host ESXi selecionado e 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
Tanto NFS quanto iSCSI podem funcionar em redes Ethernet de 1 gigabit e 10 gigabits (1GbE e 10GbE) implementadas usando cabos de cobre. Uma velocidade de rede mais alta é melhor. Leia mais sobre topologias de rede. Ao usar um datastore compartilhado no VMware vSphere para armazenar arquivos de VM, ambas as implementações (NFS e iSCSI) podem ser usadas para migração ao vivo de VMs, balanceamento de carga e migração de VM entre datastores. Ambos os protocolos de compartilhamento têm um 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 NAS com suporte para iSCSI nos dias de hoje.
Vamos examinar esta comparação VMware NFS vs 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 de múltiplos endereços IP. Se você usar NFS v3, use DNS round-robin para balanceamento de carga de rede.
No VMware vSphere, o multipathing iSCSI funciona no nível de um adaptador de rede VMkernel. Para balanceamento de carga iSCSI no vSphere, você pode usar a vinculação 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 consistentemente. 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 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, você tem o cache completo de gravação para atualizações de dados e metadados.
Os sistemas de arquivos mais modernos usam atualização de metadados assíncrona e o registro baseado em log é usado para recuperação de dados. Em geral, a atualização de dados assíncrona (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 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 do Tipo de Array de Armazenamento para implementação de failover ao trabalhar com arrays iSCSI. O binding iSCSI requer mapeamento de 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.
VMFS no armazenamento iSCSI pode ser frágil se você armazenar discos virtuais thin provisioned para VMs. Uma falha de energia pode tornar um volume irrecuperável. O comportamento dos datastores NFS em tais situações é ligeiramente mais confiável. Você pode mitigar esses problemas se realizar backups regulares do VMware.
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 Desafio de Aperto de Mão (CHAP) permite que o servidor e o cliente garantam que confiam 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ê precisa definir o endereço IP do host que tem permissão para acessar o compartilhamento NFS. Você também pode definir vários hosts ou a sub-rede inteira. Por exemplo, o amplamente conhecido protocolo de compartilhamento de arquivos SMB baseado em usuário depende de autenticação baseada em usuário.
A configuração de uma VLAN dedicada ou o uso de uma rede física (privada) separada é a prática recomendada ao usar armazenamento iSCSI e NFS compartilhado no VMware vSphere. Essa abordagem permite isolar o tráfego de armazenamento de outros tipos de tráfego. O NFS v3 não possui recursos de segurança semelhantes aos do NFS v4.1. Um servidor ESXi monta um compartilhamento NFS com acesso de raiz (quando o Kerberos não é usado). Portanto, tenha isso em mente ao configurar de forma segura. Leia também sobre VLAN e VXLAN.
O NFS v.4.1 dá suporte à autenticação Kerberos com mecanismos de criptografia além do Data Encryption Standard (DES). Os algoritmos criptográficos do 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 dá suporte à criptografia Kerberos do NFS 4.1 e ao 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 o disco físico inteiro 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 iSCSI porque um compartilhamento iSCSI trabalha 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.
Quanto ao 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 maior na rede. O iSCSI gera mais tráfego e carga na rede, enquanto o uso do NFS é mais suave e 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 utilizar NFS no vSphere, é melhor usar NFS com suporte para a API de Integração de Matrizes de Armazenamento (VAAI) no lado do armazenamento. O VAAI permite criar discos virtuais espessos provisionados em 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 hops. 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 travamento e um mecanismo de consistência de fechar-abrir para evitar conflitos e preservar a consistência dos dados. NFS v3 e NFS v4.1 usam mecanismos diferentes. NFS v3 pode usar o protocolo Network Lock Manager (NLM), e NFS v4.1 usa travamento especificado por protocolo nativo. Se o NFS v3 for usado no VMware ESXi para acessar compartilhamentos de arquivos, o ESXi não usa o protocolo NLM porque a VMware fornece seu próprio protocolo de travamento neste caso. Arquivos de travamento com nome .lck-file_id são criados em um compartilhamento de arquivos ao usar compartilhamentos NFS v3 no VMware vSphere.
NFS v4.1 utiliza reservas para bloquear arquivos para acesso simultâneo. Se você criar um compartilhamento de arquivos NFS, todos os clientes devem usar a mesma versão do protocolo NFS (todos os hosts ESXi se conectam ao compartilhamento via NFS v.4.1, por exemplo). Se dois clientes incompatíveis usarem versões diferentes do NFS para acessar arquivos em um servidor NFS, pode haver comportamento inconsistente e corrupção de dados.
A dificuldade de configuração
Ao usar NFS, é mais fácil configurar um servidor e um cliente. Usar iSCSI para configurar armazenamento compartilhado é mais difícil. Você precisa configurar IQNs para armazenamento e hosts; fazer uma configuração do serviço iSCSI, LUNs e máscaras; e configurar várias VLANs por motivos de segurança (isolar segmentos de rede usados para comunicação iSCSI para fornecer um nível de segurança mais alto).
Leia sobre volumes virtuais VMware 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 iSCSI vs NFS VMware na tabela resumo.
iSCSI | NFS | |
Compartilhamento de dados | Nível de bloco | Nível de arquivo |
Mapeamento de Dispositivo Bruto para VMs | Sim | Não |
Dificuldade de configuração | Médio | 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 |
Storage DRS | 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, ainda é necessário 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 outros problemas de hardware para evitar perda de dados no seu armazenamento compartilhado. Use unidades de alimentação ininterrupta e faça backups regulares.
Source:
https://www.nakivo.com/blog/nfs-vs-iscsi-for-accessing-vm-data/