Implante o cluster Lustre HA e os clientes
Prepare o sistema operacional, instale NVIDIA DOCA-OFED, implemente o cluster Lustre HA e configure os clientes Lustre usando os playbooks do Ansible da NetApp.
Antes de começar, complete e assegure o inventário descrito em "Personalize o inventário do Lustre Ansible".
Implante o cluster Lustre HA
-
A partir do
building_blocks/playbooks`diretório na sua cópia de trabalho, prepare o sistema operacional nos servidores Lustre. Substitua `<inventory_path>pelo caminho para o seu diretório de inventário personalizado:ansible-playbook -i <inventory_path>/lustre_inventory.yml deploy_lustre_os/deploy_lustre_os_playbook.yml -
Instale o NVIDIA DOCA-OFED em cada servidor Lustre. Compile os módulos do kernel usando o kernel que foi instalado na etapa anterior. Siga o procedimento para o seu kernel em "Instalação e atualização do NVIDIA DOCA-Host". O exemplo a seguir mostra uma instalação do DOCA-OFED no RHEL ou Rocky Linux.
-
Instale o pacote do repositório do host DOCA e atualize o cache de pacotes. Substitua
<doca_host_package>pelo pacote do host DOCA correspondente ao seu sistema operacional e arquitetura:dnf install -y wget tar wget https://www.mellanox.com/downloads/DOCA/<doca_host_package>.rpm rpm -i <doca_host_package>.rpm dnf clean all dnf makecache -
Compile os módulos do kernel DOCA para o kernel em execução. O script imprime o caminho do pacote que cria:
dnf install -y doca-extra /opt/mellanox/doca/tools/doca-kernel-support -
Instale o pacote do repositório de módulos do kernel criado pelo script e, em seguida, atualize o cache de pacotes. Substitua
<doca_kernel_repo>pelo caminho obtido na etapa anterior:rpm -Uvh <doca_kernel_repo>.rpm dnf makecache -
Instale os pacotes DOCA-OFED para espaço de usuário, kernel e NVMe. Substitua
<kernel_version>pela versão do kernel em execução:dnf install -y doca-ofed-userspace dnf install -y --disablerepo=doca doca-kernel-<kernel_version> dnf install -y kmod-mlnx-nvme
-
-
Execute o playbook de implantação principal:
ansible-playbook -i <inventory_path>/lustre_inventory.yml lustre_playbook.ymlAjuste --forksde acordo com o tamanho da implantação para controlar quantos hosts o Ansible configura em paralelo. Por exemplo, adicione--forks 20para um cluster maior.
O playbook provisiona grupos de volumes E-Series ou pools e volumes DDP, configura a conectividade de host NVMe-oF, formata e monta os targets Lustre, configura o LNet, aplica ajuste de desempenho e configura os recursos HA do Pacemaker.
|
|
Uma implantação com um único bloco de construção forma um cluster Pacemaker de dois nós. O nó A recebe um voto extra em caso de failover. Para garantir quorum em um cluster de dois nós, considere configurar um qdevice. Quando uma implantação contém vários blocos de construção, cada bloco contribui com um par de servidores de dois nós para o cluster Pacemaker maior, até o limite documentado do cluster. Revise a configuração de fencing e quorum no "Guia do usuário de administração de HA" para que o cluster possa recuperar os alvos com segurança durante uma falha de nó. |
Implantar clientes Lustre
Implante clientes Lustre em qualquer sistema que exija acesso ao sistema de arquivos, personalizando o modelo de implantação do cliente e executando o playbook do cliente.
-
Selecione um sistema operacional de cliente e kernel compatíveis no "Matriz de suporte Lustre". Compile e instale os pacotes de cliente Lustre para esse kernel a partir de "netapp-lustre" caso ainda não estejam instalados.
-
Crie uma cópia de trabalho do `clients`diretório de template, incluindo seu `passwords.yml`arquivo compartilhado, e selecione o template que corresponde à sua fabric:
-
InfiniBand: "IB_lustre_cluster_clients"
-
-
Personalize
lustre_client_inventory.yml,host_varsegroup_varspara seus clientes. As referências de linha na tabela apontam para os arquivos de modelo de cliente RoCE na tagansible-lustrerelease/1.0.0; o modelo de cliente InfiniBand usa as mesmas variáveis, exceto quando indicado.Campo Variável Ansible Arquivo de modelo ( release/1.0.0)Escopo Notas Hosts do cliente
lustre_clientsPor cliente
Liste o nome do host de cada cliente.
Usuário SSH do cliente e senha become
ssh_client_user/ssh_client_become_passEm todo o cluster
Defina a senha "become" somente se o usuário SSH não for
root.Interfaces LNet
eseries_lustre_lnetEm todo o cluster
Nomes de interface LNet do lado do cliente (valores na L13).
Montar NIDs do MGS
lustre_client_mounts.mgsnodeEm todo o cluster
NIDs do MGS usados para montar o sistema de arquivos (valores em L20).
Nome do sistema de arquivos
lustre_client_mounts.fsnameEm todo o cluster
Deve corresponder ao cluster
fsname.Ponto de montagem
lustre_client_mounts.mount_pointEm todo o cluster
Diretório de montagem do cliente.
IP de gerenciamento do cliente
ansible_hostRepita para cada cliente
Um `host_vars/client_NN.yml`arquivo por cliente.
Interfaces de malha de armazenamento
eseries_roce_interfacesRepita para cada cliente
Endereços da interface de front-end (valores na linha 15). O InfiniBand template usa
eseries_ipoib_interfacesaqui.Repita as configurações para cada cliente. Crie um arquivo
host_vars/client_NN.ymlpara cada cliente e adicione o host correspondente alustre_client_inventory.yml. Preencha o arquivo compartilhadoclients/passwords.ymle criptografe-o com o Ansible Vault antes de executar o playbook do cliente. -
Execute o playbook do cliente a partir do diretório de modelos do cliente:
ansible-playbook -i lustre_client_inventory.yml lustre_client_playbook.yml
O playbook do cliente configura as interfaces de rede do cliente e o LNet, e pode criar uma unidade de montagem systemd persistente para o sistema de arquivos Lustre.