Faça a gestão do tamanho do volume persistente do Cassandra

Este processo permite-lhe expandir os volumes persistentes usados pela base de dados Cassandra do Apigee hybrid para satisfazer maiores necessidades de armazenamento sem ter de criar novos nós apenas para fornecer mais armazenamento.

Vista geral

O componente cassandra híbrido do Apigee usa volumes persistentes para armazenar dados. O tamanho do volume persistente é definido durante a instalação e a configuração inicial. Este tamanho de armazenamento inicial é um valor imutável e não pode ser alterado. Por conseguinte, qualquer novo nó adicionado ao cluster usa o mesmo tamanho do volume persistente.

É possível aumentar o tamanho do volume persistente existente fazendo as alterações diretamente na reivindicação de volume persistente. Os novos nós continuam a usar o tamanho do volume persistente inicial mais pequeno.

Se a sua base de dados híbrida do Cassandra estiver a aproximar-se da capacidade de armazenamento, pode usar este procedimento para expandir os volumes persistentes existentes e permitir que os novos nós também expandam os respetivos volumes persistentes.

Expanda os volumes persistentes do Cassandra

  1. Atualize o tamanho do volume para o tamanho pretendido:
    kubectl -n APIGEE_NAMESPACE edit pvc
  2. Verifique a capacidade de volume atualizada:
     kubectl get pvc -n APIGEE_NAMESPACE
    NAME                                       STATUS  VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0  Bound   pvc-92234ba7-941b-4dab-82c6-8a5288a2c8d4   500Gi      RWO            standard       21m
    cassandra-data-apigee-cassandra-default-1  Bound   pvc-6be911fc-91f7-465d-a02e-933428ee10b2   500Gi      RWO            standard       20m
    cassandra-data-apigee-cassandra-default-2  Bound   pvc-14ba34e4-fd5c-4d59-8413-a331dcad3404   500Gi      RWO            standard       19m
    
  3. Faça uma cópia de segurança, elimine e recrie o conjunto com estado com o novo tamanho de armazenamento. Os seguintes comandos criam um ficheiro de configuração apigee-cassandra-default.yaml que pode usar para capturar a configuração atual do Cassandra. Em seguida, modifique e aplique esta configuração:
    1. kubectl -n APIGEE_NAMESPACE get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
    2. kubectl -n APIGEE_NAMESPACE delete sts --cascade=orphan apigee-cassandra-default
    3. Verifique se a operação delete está concluída:
      kubectl get sts -n APIGEE_NAMESPACE

      O resultado deve ter o seguinte aspeto:

      No resources found in apigee namespace.
    4. Atualize o tamanho do armazenamento no ficheiro apigee-cassandra-default.yaml com o novo tamanho do armazenamento. Este valor tem de corresponder ao tamanho que pretende aplicar no seu overrides.yaml. Por exemplo:
           resources:
              requests:
                storage: 500Gi
    5. Volte a aplicar a configuração do StatefulSet com o tamanho de armazenamento atualizado:
      kubectl apply -f apigee-cassandra-default.yaml
    6. Verifique se o StatefulSet foi recriado corretamente:
      kubectl get sts -n APIGEE_NAMESPACE

      O resultado deve ter um aspeto semelhante ao seguinte:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  4. Atualize o ficheiro de substituições com o novo tamanho do volume que especificou quando editou o pvc:
    cassandra:
      storage:
        storageSize: 500Gi
  5. Consulte cassandra.storage.capacity para ver mais detalhes.

  6. Aplique a configuração atualizada ao cluster:
    helm upgrade datastore apigee-datastore/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    -f OVERRIDES_FILE.yaml
    
  7. Verifique se o STS recém-criado tem o tamanho de armazenamento atualizado:
    kubectl get sts -n APIGEE_NAMESPACE apigee-cassandra -o yaml |grep storage
    storage: 500Gi
  8. Verifique se o volume de dados dos auriculares C* foi atualizado com o novo tamanho:

    kubectl exec -n APIGEE_NAMESPACE -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
    /dev/sdb         99G   69M   99G   1% /opt/apigee/data