Skip to main content
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Saiba mais sobre o balanceamento de carga do StorageGRID

Você pode usar o balanceamento de carga para lidar com as cargas de trabalho de ingestão e recuperação de clientes S3.

O que é balanceamento de carga?

Quando um aplicativo cliente salva ou recupera dados de um sistema StorageGRID, StorageGRID utiliza um balanceador de carga para gerenciar a carga de trabalho de ingestão e recuperação. O balanceamento de carga maximiza a velocidade e a capacidade de conexão ao distribuir a carga de trabalho entre vários Storage Nodes.

O serviço StorageGRID Load Balancer está instalado em todos os Nós de Administração e em todos os Nós de Gateway e fornece balanceamento de carga na Camada 7. Ele realiza a terminação TLS das solicitações dos clientes, inspeciona as solicitações e estabelece novas conexões seguras com os Nós de Armazenamento.

O serviço de balanceamento de carga em cada nó opera de forma independente ao encaminhar o tráfego do cliente para os nós de armazenamento. Por meio de um processo de ponderação, o serviço de balanceamento de carga direciona mais solicitações para os nós de armazenamento com maior disponibilidade de CPU.

Observação Embora o serviço StorageGRID Load Balancer seja o mecanismo de balanceamento de carga recomendado, você pode optar por integrar um balanceador de carga de terceiro. Para obter informações, entre em contato com seu representante de contas da NetApp ou consulte "Use balanceadores de carga de terceiros com StorageGRID".

Quantos nós de balanceamento de carga você precisa?

Como prática recomendada geral, cada site em seu StorageGRID deve incluir dois ou mais nós com o serviço Load Balancer. Por exemplo, um site pode incluir dois Gateway Nodes ou tanto um Admin Node quanto um Gateway Node. Certifique-se de que haja infraestrutura de rede, hardware ou virtualização adequada para cada nó de balanceamento de carga, independentemente de você estar usando appliances de serviços, nós bare metal ou nós baseados em máquina virtual (VM).

O que é um endpoint de balanceador de carga?

Um endpoint de balanceador de carga define a porta e o protocolo de rede (HTTPS ou HTTP) que as solicitações de aplicativos cliente de entrada e saída usarão para acessar os nós que contêm o serviço de Load Balancer. O endpoint também define o tipo de cliente (S3), o modo de vinculação e, opcionalmente, uma lista de tenants permitidos ou bloqueados.

Para criar um endpoint de balanceador de carga, use o Grid Manager ou conclua os assistentes de configuração do S3 e FabricPool:

Considerações sobre armazenamento em cache do balanceador de carga

O armazenamento em cache melhora significativamente o desempenho quando uma carga de trabalho opera em um subconjunto de dados e acessa objetos várias vezes. Além disso, o armazenamento em cache fornece acesso remoto ao storage de objetos sem a necessidade de uma implantação completa de grid. O armazenamento em cache do balanceador de carga está disponível apenas para Gateway Nodes.

Ao criar endpoints de balanceamento de carga:

  • Habilite armazenamento em cache apenas para cargas de trabalho que são armazenáveis em cache. Cargas de trabalho que acessam dados não armazenados em cache com mais frequência do que dados em cache terão desempenho pior do que se não tivessem sido atendidas pelo cache. Em alguns casos, cargas de trabalho com altas taxas de sobrescrita e remoção também podem exceder a resistência à gravação garantida da unidade.

  • Considere adicionar endpoints ou nós adicionais para armazenamento em cache de cargas de trabalho individuais que sejam boas candidatas ao armazenamento em cache.

  • Utilize endpoints distintos para cargas de trabalho armazenáveis em cache e não armazenáveis em cache. Essa separação garante que os mecanismos de armazenamento em cache sejam aplicados adequadamente e não interfiram no processamento de dados não armazenáveis em cache.

  • Avalie uma carga de trabalho potencialmente armazenável em cache direcionando-a para o endpoint habilitado para cache. Monitore e verifique a taxa de acerto do cache para determinar a adequação da carga de trabalho ao armazenamento em cache. Essa avaliação ajuda a otimizar o desempenho e a garantir o uso eficiente dos recursos de cache.

  • "Analisar registros de auditoria" para determinar se uma carga de trabalho existente seria uma boa candidata para armazenamento em cache. Para um determinado período, determine qual porcentagem de GETs é para objetos únicos. Para ser adequada para armazenamento em cache, esse valor deve ser inferior a 50%.

Exemplos de cargas de trabalho que podem ser boas candidatas ao armazenamento em cache

  • Lagos de dados

  • Computação de alto desempenho (HPC)

  • Treinamento de IA/ML

  • Rede de entrega de conteúdo (CDN)

  • Gerenciamento de ativos de mídia

  • Produção de vídeo

Observação
  • É possível armazenar em cache várias versões de um objeto.

  • Operações de leitura de intervalo são suportadas.

Exemplos de cargas de trabalho que não são boas candidatas para armazenamento em cache

  • FabricPool

  • Aplicativos de backup

  • Tierização de storage

Cuidado Se algum conteúdo a ser servido pelo cache exigir criptografia em repouso, "Ativar criptografia de nó ou unidade"no nó de cache.

Tipos de objetos e solicitações que não serão armazenados em cache

  • O response-content-encoding parâmetro de consulta

  • O partNumber parâmetro de consulta

  • Cabeçalhos condicionais

    • If-Match

    • If-Modified-Since

    • If-None-Match

    • If-Unmodified-Since

  • Solicitações que foram criptografadas em repouso com qualquer um dos seguintes:

    • SSE (criptografia do lado do servidor com chaves gerenciadas pelo StorageGRID)

    • SSE-C (criptografia do lado do servidor com chaves fornecidas pelo cliente)

    • Criptografia de objeto armazenado

Qualquer solicitação que não esteja armazenada em cache é encaminhada para um LDR upstream como se o armazenamento em cache não estivesse ativado.

Informações relacionadas

Considerações para a porta

A porta para um endpoint de balanceador de carga é definida como 10433 por padrão para o primeiro endpoint que você criar, mas você pode especificar qualquer porta externa não utilizada entre 1 e 65535. Se você usar a porta 80 ou 443, o endpoint usará o serviço de Load Balancer apenas nos Gateway Nodes. Essas portas são reservadas nos Admin Nodes. Se você usar a mesma porta para mais de um endpoint, você deve especificar um modo de vinculação diferente para cada endpoint.

Portas utilizadas por outros serviços da rede não são permitidas. Consulte "Portas internas do StorageGRID".

Considerações sobre o protocolo de rede

Na maioria dos casos, as conexões entre os aplicativos cliente e o StorageGRID devem usar criptografia TLS (Transport Layer Security). Conectar-se ao StorageGRID sem criptografia TLS é suportado, mas não é recomendado, especialmente em ambientes de produção. Ao selecionar o protocolo de rede para o endpoint do balanceador de carga do StorageGRID, você deve selecionar HTTPS.

Considerações sobre certificados de endpoint de balanceador de carga

Se você selecionar HTTPS como protocolo de rede para o ponto de extremidade do balanceador de carga, deverá fornecer um certificado de segurança. Você pode usar qualquer uma destas três opções ao criar o ponto de extremidade do balanceador de carga:

  • Faça o upload de um certificado assinado (recomendado). Este certificado pode ser assinado por uma autoridade certificadora (AC) pública ou privada. Usar um certificado de servidor de uma AC pública para proteger a conexão é a melhor prática. Ao contrário dos certificados gerados, os certificados assinados por uma AC podem ser rotacionados sem interrupção, o que pode ajudar a evitar problemas de expiração.

    Você precisa obter os seguintes arquivos antes de criar o endpoint do balanceador de carga:

    • O arquivo de certificado de servidor personalizado.

    • O arquivo de chave privada do certificado de servidor personalizado.

    • Opcionalmente, um pacote de certificados das autoridades certificadoras intermediárias.

  • Gerar um certificado autoassinado.

  • Use o certificado global do StorageGRID S3. Você precisa carregar ou gerar uma versão personalizada deste certificado antes de poder selecioná-lo para o endpoint do balanceador de carga. Consulte "Configurar certificados da API S3".

Quais valores você precisa?

Para criar o certificado, você precisa saber todos os nomes de domínio e endereços IP que os aplicativos cliente do S3 usarão para acessar o endpoint.

A entrada DN do Assunto (Nome Distinto) para o certificado deve incluir o nome de domínio totalmente qualificado que o aplicativo cliente usará para StorageGRID. Por exemplo:

Subject DN: /C=Country/ST=State/O=Company,Inc./CN=s3.storagegrid.example.com

Conforme necessário, o certificado pode usar curingas para representar os nomes de domínio totalmente qualificados de todos os Nós de Administração e Nós de Gateway que executam o serviço de Balanceador de Carga. Por exemplo, *.storagegrid.example.com usa o curinga * para representar adm1.storagegrid.example.com e gn1.storagegrid.example.com.

Se você planeja usar solicitações no estilo de hospedagem virtual do S3, o certificado também deve incluir uma entrada de Nome Alternativo para cada "Nome de domínio do endpoint S3" que você configurou, incluindo quaisquer nomes curinga. Por exemplo:

Alternative Name: DNS:*.s3.storagegrid.example.com
Observação Se você usa curingas para nomes de domínio, revise o "Diretrizes de reforço para certificados de servidor".

Você também deve definir uma entrada DNS para cada nome no certificado de segurança.

Como faço para gerenciar certificados que estão expirando?

Cuidado Se o certificado usado para proteger a conexão entre o aplicativo S3 e StorageGRID expirar, o aplicativo poderá perder temporariamente o acesso ao StorageGRID.

Para evitar problemas com a expiração do certificado, siga estas boas práticas:

  • Monitore atentamente quaisquer alertas que avisem sobre a proximidade da expiração de certificados, como os alertas Expiração do certificado do endpoint do balanceador de carga e Expiração do certificado global do servidor para S3 API.

  • Mantenha sempre as versões do certificado do StorageGRID e do aplicativo S3 sincronizadas. Se você substituir ou renovar o certificado usado para um endpoint do balanceador de carga, deverá substituir ou renovar o certificado equivalente usado pelo aplicativo S3.

  • Use um certificado de uma Autoridade Certificadora (CA) com assinatura pública. Se você usar um certificado assinado por uma CA, você pode substituir certificados prestes a expirar sem interrupções.

  • Se você gerou um certificado StorageGRID autoassinado e esse certificado está prestes a expirar, você deve substituí-lo manualmente tanto no StorageGRID quanto no aplicativo S3 antes que o certificado existente expire.

Considerações sobre o modo de binding

O modo de vinculação permite que você controle quais endereços IP podem ser usados para acessar um endpoint do balanceador de carga. Se um endpoint usa o modo de vinculação, os aplicativos cliente só podem acessá-lo se usarem um endereço IP permitido ou seu respectivo domínio totalmente qualificado (FQDN). Aplicativos cliente que usam qualquer outro endereço IP ou FQDN não podem acessar o endpoint.

Você pode especificar qualquer um dos seguintes modos de vinculação:

  • Global (padrão): Os aplicativos cliente podem acessar o endpoint usando o endereço IP de qualquer Gateway Node ou Admin Node, o endereço VIP de qualquer grupo de HA em qualquer rede ou um FQDN correspondente. Use esta configuração a menos que você precise restringir a acessibilidade de um endpoint.

  • IPs virtuais de grupos HA. Os aplicativos cliente devem usar um endereço IP virtual (ou domínio totalmente qualificado correspondente) de um grupo HA.

  • Interfaces de nó. Os clientes devem usar os endereços IP (ou os FQDNs correspondentes) das interfaces de nó selecionadas.

  • Tipo de nó. Dependendo do tipo de nó selecionado, os clientes devem usar o endereço IP (ou o FQDN correspondente) de qualquer Nó de Administração ou o endereço IP (ou o FQDN correspondente) de qualquer Nó de Gateway.

Considerações para o acesso do tenant

O acesso de locatários é um recurso de segurança opcional que permite controlar quais contas de locatário do StorageGRID podem usar um endpoint do balanceador de carga para acessar seus buckets. Você pode permitir que todos os locatários acessem um endpoint (padrão) ou especificar uma lista de locatários permitidos ou bloqueados para cada endpoint.

Você pode usar esse recurso para proporcionar um melhor isolamento de segurança entre os locatários e seus endpoints. Por exemplo, você pode usar esse recurso para garantir que materiais ultrassecretos ou altamente confidenciais pertencentes a um locatário permaneçam completamente inacessíveis a outros locatários.

Observação Para fins de controle de acesso, o locatário é determinado pelas chaves de acesso usadas na solicitação do cliente. Se nenhuma chave de acesso for fornecida como parte da solicitação (como no acesso anônimo), o proprietário do bucket é usado para determinar o locatário.

Exemplo de acesso do tenant

Para entender como esse recurso de segurança funciona, considere o seguinte exemplo:

  1. Você criou dois pontos de extremidade de balanceamento de carga, conforme descrito a seguir:

    • Endpoint público: utiliza a porta 10443 e permite acesso a todos os locatários.

    • Endpoint ultrassecreto: utiliza a porta 10444 e permite acesso somente ao tenant ultrassecreto. Todos os outros tenants estão bloqueados de acessar este endpoint.

  2. O top-secret.pdf está em um bucket pertencente ao tenant Top secret.

Para acessar o top-secret.pdf, um usuário do tenant Top secret pode enviar uma requisição GET para https://w.x.y.z:10444/top-secret.pdf. Como esse tenant tem permissão para usar o endpoint 10444, o usuário pode acessar o objeto. No entanto, se um usuário de qualquer outro tenant enviar a mesma requisição para a mesma URL, receberá imediatamente uma mensagem de acesso negado. O acesso é negado mesmo que as credenciais e a assinatura sejam válidas.

Disponibilidade da CPU

O serviço Load Balancer em cada Admin Node e Gateway Node opera de forma independente ao encaminhar o tráfego S3 para os Storage Nodes. Por meio de um processo de ponderação, o serviço Load Balancer direciona mais solicitações para Storage Nodes com maior disponibilidade de CPU. As informações de carga da CPU do nó são atualizadas a cada poucos minutos, mas a ponderação pode ser atualizada com mais frequência. Todos os Storage Nodes recebem um valor de peso base mínimo, mesmo que um nó relate 100% de utilização ou não reporte sua utilização.

Em alguns casos, as informações sobre a disponibilidade da CPU ficam limitadas ao site onde o serviço Load Balancer está localizado.