Provisionando PVCs no Armazenamento de Arquivos com o Lustre Service
Descubra como provisionar reivindicações de volume persistentes para clusters que você criou usando o Kubernetes Engine (OKE) montando sistemas de arquivos do File Storage com o serviço Lustre.
O serviço Oracle Cloud Infrastructure File Storage with Lustre é um serviço de armazenamento totalmente gerenciado projetado para atender às demandas de treinamento e inferência de IA/ML e necessidades de computação de alto desempenho. Você usa o plug-in Lustre CSI para conectar clusters a sistemas de arquivos no File Storage com o serviço Lustre.
Você pode usar o File Storage com o serviço Lustre para provisionar reivindicações de volume persistente (PVCs), criando manualmente um sistema de arquivos no File Storage com o serviço Lustre, definindo e criando um volume persistente (PV) suportado pelo novo sistema de arquivos e, finalmente, definindo uma nova PVC. Quando você cria a PVC, o Kubernetes Engine vincula a PVC ao PV suportado pelo Armazenamento de Arquivos com o serviço Lustre.
O driver Lustre CSI é o software geral que permite que os sistemas de arquivos Lustre sejam usados com o Kubernetes por meio da Container Storage Interface (CSI). O plug-in Lustre CSI é um componente específico dentro do driver, responsável por interagir com o servidor de API do Kubernetes e gerenciar o ciclo de vida dos volumes Lustre.
Observe o seguinte:
- O driver Lustre CSI é suportado em clusters criados pelo Kubernetes Engine que estão executando o Kubernetes versão 1.29 ou posterior.
- O driver Lustre CSI é suportado no Oracle Linux 8 x86 e no Ubuntu x86 22.04.
- Para usar um sistema de arquivos Lustre com um cluster criado pelo Kubernetes Engine, o pacote do cliente Lustre deve ser instalado nos nós de trabalho que precisam montar o sistema de arquivos. Para obter mais informações sobre clientes Lustre, consulte Montando e Acessando um Lustre File System.
Provisionando uma PVC para um Sistema de Arquivos Existente
Para criar uma PVC em um sistema de arquivos existente no serviço File Storage com Lustre (usando chaves de criptografia gerenciadas pela Oracle para criptografar dados em repouso):
- Crie um sistema de arquivos no serviço File Storage com Lustre, selecionando a opção de criptografia Criptografar usando chaves gerenciadas pela Oracle. Consulte Creating a Lustre File System.
- Crie regras de segurança em um grupo de segurança de rede (recomendado) ou em uma lista de segurança para o sistema de arquivos Lustre e para a sub-rede de nós de trabalho do cluster.As regras de segurança a serem criadas dependem dos locais de rede relativos do sistema de arquivos Lustre e dos nós de trabalho que atuam como cliente, de acordo com os seguintes cenários:
Esses cenários, as regras de segurança a serem criadas e onde criá-las, são totalmente descritos na documentação do serviço File Storage com Lustre (consulte Regras de Segurança Obrigatórias da VCN).
- Crie um PV suportado pelo sistema de arquivos no File Storage com o serviço Lustre da seguinte forma:
-
Crie um arquivo de manifesto para definir um PV e, na seção
csi:
, defina:driver
alustre.csi.oraclecloud.com
volumeHandle
a<MGSAddress>@<LNetName>:/<MountName>
em que:
<MGSAddress>
é o endereço do serviço de Gerenciamento do sistema de arquivos no serviço File Storage com Lustre<LNetName>
é o nome da rede LNet do sistema de arquivos no serviço File Storage com Lustre.<MountName>
é o nome da montagem usado ao criar o sistema de arquivos no serviço File Storage com Lustre.
Por exemplo:
10.0.2.6@tcp:/testlustrefs
fsType
alustre
- (opcional, mas recomendado)
volumeAttributes.setupLnet
a"true"
se quiser que o driver Lustre CSI execute a configuração de lnet (Lustre Network) antes de montar o sistema de arquivos. -
(opcional)
volumeAttributes.lustreSubnetCidr
para o bloco CIDR da sub-rede em que a VNIC secundária do nó de trabalho está localizada, para garantir que o nó de trabalho tenha conectividade de rede com o sistema de arquivos Lustre. Por exemplo, 10.0.2.0/24.Observação
Não especifiquevolumeAttributes.lustreSubnetCidr
se estiver usando a interface padrão do nó de trabalho (a VNIC principal) para estabelecer conexão com o sistema de arquivos Lustre. - (opcional)
volumeAttributes.lustrePostMountParameters
para definir parâmetros Lustre. Por exemplo:... volumeAttributes: lustrePostMountParameters: '[{"*.*.*MDT*.lru_size": 11200},{"at_history" : 600}]'
Por exemplo, o seguinte arquivo de manifesto (denominado lustre-PV-example.yaml) define um PV chamado
lustre-pv-example
apoiado por um sistema de arquivos Lustre:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31Ti volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: lustre.csi.oraclecloud.com volumeHandle: "10.0.2.6@tcp:/testlustrefs" fsType: lustre volumeAttributes: setupLnet: "true"
- Crie o PV do arquivo de manifesto digitando:
kubectl apply -f <filename>
Por exemplo:
kubectl apply -f lustre-pv-example.yaml
-
Verifique se o PV foi criado com sucesso digitando:
kubectl get pv <pv-name>
Por exemplo:
kubectl get pv lustre-pv-example
Saída do exemplo:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE lustre-pv-example m31Ti RWX Retain Bound 56m
-
- Crie uma PVC que seja provisionada pelo PV que você criou, da seguinte forma:
- Crie um arquivo de manifesto para definir a PVC e definir:
storageClassName
a""
Observe que você deve especificar um valor vazio parastorageClassName
, mesmo que a classe de armazenamento não seja aplicável no caso de provisionamento estático do armazenamento persistente. Se você não especificar um valor vazio parastorageClassName
, a classe de armazenamento padrão (oci-bv
) será usada, o que causará um erro.volumeName
para o nome do PV que você criou (por exemplo,lustre-pv-example
)
Por exemplo, o seguinte arquivo de manifesto (denominado lustre-PVC-example.yaml) define uma PVC chamada
lustre-pvc-example
que se vinculará a um PV chamadolustre-pv-example
:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lustre-pvc-example spec: accessModes: - ReadWriteMany storageClassName: "" volumeName: lustre-pv-example resources: requests: storage: 31Ti
Observe que o elemento
requests: storage:
deve estar presente no arquivo de manifesto da PVC, e seu valor deve corresponder ao valor especificado para o elementocapacity: storage:
no arquivo de manifesto do PV. Além disso, o valor do elementorequests: storage:
é ignorado. - Crie a PVC a partir do arquivo de manifesto digitando:
kubectl apply -f <filename>
Por exemplo:kubectl apply -f lustre-pvc-example.yaml
-
Verifique se a PVC foi criada e vinculada ao PV com sucesso digitando:
kubectl get pvc <pvc-name>
Por exemplo:
kubectl get pvc lustre-pvc-example
Saída do exemplo:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lustre-pvc-example Bound lustre-pv-example 31Ti RWX 57m
A PVC é vinculada ao PV suportado pelo Armazenamento de Arquivos com o sistema de arquivos do serviço Lustre. Os dados são criptografados em repouso, usando chaves de criptografia gerenciadas pela Oracle.
- Crie um arquivo de manifesto para definir a PVC e definir:
- Use a nova PVC ao criar outros objetos, como implantações. Por exemplo:
- Crie um manifesto chamado luxre-app-example-deployment.yaml para definir uma implantação chamada
lustre-app-example-deployment
que use a PVClustre-pvc-example
, da seguinte forma:apiVersion: apps/v1 kind: Deployment metadata: name: lustre-app-example-deployment spec: selector: matchLabels: app: lustre-app-example replicas: 2 template: metadata: labels: app: lustre-app-example spec: containers: - args: - -c - while true; do echo $(date -u) >> /lustre/data/out.txt; sleep 60; done command: - /bin/sh image: busybox:latest imagePullPolicy: Always name: lustre-app-example volumeMounts: - mountPath: /lustre/data name: lustre-volume restartPolicy: Always volumes: - name: lustre-volume persistentVolumeClaim: claimName: lustre-pvc-example
- Crie a implantação a partir do arquivo de manifesto digitando:
kubectl apply -f lustre-app-example-deployment.yaml
- Verifique se os pods de implantação foram criados com sucesso e estão em execução digitando:
kubectl get pods
Saída do exemplo:
NAME READY STATUS RESTARTS AGE lustre-app-example-deployment-7767fdff86-nd75n 1/1 Running 0 8h lustre-app-example-deployment-7767fdff86-wmxlh 1/1 Running 0 8h
- Crie um manifesto chamado luxre-app-example-deployment.yaml para definir uma implantação chamada
Provisionando uma PVC em um Sistema de Arquivos Existente com Opções de Montagem
Você pode otimizar o desempenho e controlar o acesso a um sistema de arquivos Lustre existente especificando opções de montagem para o PV. A especificação de opções de montagem permite ajustar como os pods interagem com o sistema de arquivos.
Para incluir opções de montagem:
- Comece seguindo as instruções em Provisioning a PVC on an Existing File System.
- No manifesto PV descrito em Provisionando uma PVC em um Sistema de Arquivos Existente, adicione o campo
spec.mountOptions
, que permite especificar como o PV deve ser montado por pods.Por exemplo, no arquivo de manifesto lustre-pv-example.yaml mostrado em Provisionando uma PVC em um sistema de arquivos existente, você pode incluir o campo
mountOptions
da seguinte forma:apiVersion: v1 kind: PersistentVolume metadata: name: lustre-pv-example spec: capacity: storage: 31Ti volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - ro csi: driver: lustre.csi.oraclecloud.com volumeHandle: "10.0.2.6@tcp:/testlustrefs" fsType: lustre volumeAttributes: setupLnet: "true"
Neste exemplo, o campo
mountOptions
é definido comoro
, indicando que os pods devem ter acesso somente leitura ao sistema de arquivos. Para obter mais informações sobre opções de montagem PV, consulte Volumes Persistentes na documentação do Kubernetes.
Criptografando Dados em Repouso em um Sistema de Arquivos Existente
O serviço File Storage com Lustre sempre criptografa dados em repouso, usando chaves de criptografia gerenciadas pela Oracle por padrão. No entanto, você tem a opção de especificar a criptografia em repouso usando suas próprias chaves de criptografia principais que você gerencia no serviço Vault.
Para obter mais informações sobre como criar o File Storage com sistemas de arquivos Lustre que usam chaves de criptografia gerenciadas pela Oracle ou suas próprias chaves de criptografia principais que você mesmo gerencia, consulte Atualizando a Criptografia do Sistema de Arquivos.