Configure un back-end de Cloud Volumes Service para Google Cloud
Descubra cómo configurar Cloud Volumes Service de NetApp para Google Cloud como back-end para su instalación de Astra Trident con las configuraciones de ejemplo proporcionadas.
Detalles del controlador de Google Cloud
Astra Trident proporciona la gcp-cvs
unidad para comunicarse con el clúster. Los modos de acceso admitidos son: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
Controlador | Protocolo | VolumeMode | Modos de acceso compatibles | Sistemas de archivos compatibles |
---|---|---|---|---|
|
NFS |
Sistema de archivos |
RWO, ROX, RWX, RWOP |
|
Obtenga más información sobre la compatibilidad de Astra Trident con Cloud Volumes Service para Google Cloud
Astra Trident puede crear volúmenes de Cloud Volumes Service en uno de estos dos"tipos de servicio":
-
CVS-Performance: El tipo de servicio predeterminado Astra Trident. Este tipo de servicio optimizado para el rendimiento es más adecuado para cargas de trabajo de producción que valoran el rendimiento. El tipo de servicio CVS-Performance es una opción de hardware que admite volúmenes con un tamaño mínimo de 100 GIB. Puede elegir una de "tres niveles de servicio"las opciones:
-
standard
-
premium
-
extreme
-
-
CVS: El tipo de servicio CVS proporciona una alta disponibilidad zonal con niveles de rendimiento limitados a moderados. El tipo de servicio CVS es una opción de software que usa pools de almacenamiento para admitir volúmenes de solo 1 GIB. El pool de almacenamiento puede contener hasta 50 volúmenes en los que todos los volúmenes comparten la capacidad y el rendimiento del pool. Puede elegir una de "dos niveles de servicio"las opciones:
-
standardsw
-
zoneredundantstandardsw
-
Para configurar y utilizar el "Cloud Volumes Service para Google Cloud" backend, necesita lo siguiente:
-
Una cuenta de Google Cloud configurada con Cloud Volumes Service de NetApp
-
Número de proyecto de su cuenta de Google Cloud
-
Cuenta de servicio de Google Cloud con
netappcloudvolumes.admin
el rol -
Archivo de claves API para la cuenta de Cloud Volumes Service
Opciones de configuración del back-end
Cada back-end aprovisiona volúmenes en una única región de Google Cloud. Para crear volúmenes en otras regiones, se pueden definir back-ends adicionales.
Parámetro | Descripción | Predeterminado |
---|---|---|
|
Siempre 1 |
|
|
Nombre del controlador de almacenamiento |
"gcp-cvs" |
|
Nombre personalizado o el back-end de almacenamiento |
Nombre de controlador + "_" + parte de la clave de API |
|
Parámetro opcional utilizado para especificar el tipo de servicio CVS. Se utiliza |
|
|
Solo tipo de servicio CVS. Parámetro opcional que se utiliza para especificar pools de almacenamiento para la creación del volumen. |
|
|
Número de proyecto de cuenta de Google Cloud. El valor está disponible en la página de inicio del portal de Google Cloud. |
|
|
Se requiere si se utiliza una red VPC compartida. En este escenario, |
|
|
Región de Google Cloud en la que Astra Trident crea volúmenes de Cloud Volumes Service. Al crear clústeres de Kubernetes entre regiones, los volúmenes creados en un |
|
|
La clave de la API para la cuenta de servicio de Google Cloud con |
|
|
URL de proxy si se requiere servidor proxy para conectarse a la cuenta CVS. El servidor proxy puede ser un proxy HTTP o HTTPS. En el caso de un proxy HTTPS, se omite la validación de certificados para permitir el uso de certificados autofirmados en el servidor proxy. No se admiten los servidores proxy con autenticación habilitada. |
|
|
Control preciso de las opciones de montaje NFS. |
"nfsvers=3" |
|
No se puede aprovisionar si el tamaño del volumen solicitado es superior a este valor. |
"" (no se aplica de forma predeterminada) |
|
El nivel de servicio CVS-Performance o CVS para nuevos volúmenes. Los valores de rendimiento de CVS son |
El valor predeterminado de CVS-Performance es "estándar". El valor predeterminado de CVS es "standardsw". |
|
Se utiliza la red de Google Cloud para Cloud Volumes Service Volumes. |
"predeterminado" |
|
Indicadores de depuración que se deben usar para la solución de problemas. Ejemplo, |
nulo |
|
Para habilitar el acceso entre regiones, su definición de StorageClass para |
Opciones de aprovisionamiento de volúmenes
Puede controlar el aprovisionamiento de volúmenes predeterminado en defaults
la sección del archivo de configuración.
Parámetro | Descripción | Predeterminado |
---|---|---|
|
Las reglas de exportación de nuevos volúmenes. Debe ser una lista separada por comas con cualquier combinación de direcciones IPv4 o subredes IPv4 en notación CIDR. |
"0.0.0.0/0" |
|
Acceso al |
"falso" |
|
Porcentaje de volumen reservado para las Snapshot |
"" (Aceptar CVS por defecto de 0) |
|
El tamaño de los volúmenes nuevos. CVS-Performance mínimo es 100 GIB. El mínimo de CVS es 1 GIB. |
El tipo de servicio CVS-Performance se establece de manera predeterminada en "100GIB". El tipo de servicio CVS no establece un valor predeterminado, pero requiere un mínimo de 1 GIB. |
Ejemplos de tipo de servicio CVS-Performance
Los siguientes ejemplos proporcionan ejemplos de configuraciones para el tipo de servicio CVS-Performance.
Ejemplo 1: Configuración mínima
Esta es la configuración de back-end mínima usando el tipo de servicio CVS-Performance predeterminado con el nivel de servicio "estándar" predeterminado.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com
Ejemplo 2: Configuración de nivel de servicio
Este ejemplo muestra las opciones de configuración del back-end, incluidos el nivel de servicio y los valores predeterminados de volumen.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com proxyURL: http://proxy-server-hostname/ nfsMountOptions: vers=3,proto=tcp,timeo=600 limitVolumeSize: 10Ti serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '5' exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100 size: 5Ti
Ejemplo 3: Configuración de pool virtual
Este ejemplo utiliza storage
para configurar pools virtuales y los StorageClasses
que hacen referencia a ellos. Consulte Definiciones de clases de almacenamientopara ver cómo se definieron las clases de almacenamiento.
Aquí, los valores predeterminados específicos se establecen para todos los pools virtuales, que establecen snapshotReserve
el valor en 5% y el exportRule
en 0,0.0,0/0. Los pools virtuales se definen en la storage
sección. Cada pool virtual individual define su propio serviceLevel
y algunos pools sobrescriben los valores por defecto. Las etiquetas de pool virtual se utilizaron para diferenciar los pools en función de performance
y. protection
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com nfsMountOptions: vers=3,proto=tcp,timeo=600 defaults: snapshotReserve: '5' exportRule: 0.0.0.0/0 labels: cloud: gcp region: us-west2 storage: - labels: performance: extreme protection: extra serviceLevel: extreme defaults: snapshotDir: 'true' snapshotReserve: '10' exportRule: 10.0.0.0/24 - labels: performance: extreme protection: standard serviceLevel: extreme - labels: performance: premium protection: extra serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '10' - labels: performance: premium protection: standard serviceLevel: premium - labels: performance: standard serviceLevel: standard
Definiciones de clases de almacenamiento
Las siguientes definiciones de StorageClass se aplican al ejemplo de configuración de pool virtual. Con parameters.selector
, puede especificar para cada clase de almacenamiento el pool virtual utilizado para alojar un volumen. Los aspectos definidos en el pool elegido serán el volumen.
Ejemplo de clase de almacenamiento
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: csi.trident.netapp.io parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "protection=extra" allowVolumeExpansion: true
-
El primer StorageClass (
cvs-extreme-extra-protection
) se asigna al primer pool virtual. Se trata del único pool que ofrece un rendimiento extremo con una reserva Snapshot del 10%. -
The Last StorageClass (
cvs-extra-protection
) llama a cualquier pool de almacenamiento que proporciona una reserva de instantáneas del 10%. Astra Trident decide qué pool virtual se selecciona y garantiza que se cumpla el requisito de reserva de Snapshot.
Ejemplos de tipo de servicio CVS
Los siguientes ejemplos proporcionan configuraciones de ejemplo para el tipo de servicio CVS.
Ejemplo 1: Configuración mínima
Esta es la configuración de backend mínima que utiliza storageClass
para especificar el tipo de servicio CVS y el nivel de servicio predeterminado standardsw
.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' storageClass: software apiRegion: us-east4 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com serviceLevel: standardsw
Ejemplo 2: Configuración del pool de almacenamiento
Esta configuración de backend de ejemplo utiliza storagePools
para configurar un pool de almacenamiento.
--- version: 1 storageDriverName: gcp-cvs backendName: gcp-std-so-with-pool projectNumber: '531265380079' apiRegion: europe-west1 apiKey: type: service_account project_id: cloud-native-data private_key_id: "<id_value>" private_key: |- -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@cloud-native-data.iam.gserviceaccount.com client_id: '107071413297115343396' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40cloud-native-data.iam.gserviceaccount.com storageClass: software zone: europe-west1-b network: default storagePools: - 1bc7f380-3314-6005-45e9-c7dc8c2d7509 serviceLevel: Standardsw
El futuro
Después de crear el archivo de configuración del back-end, ejecute el siguiente comando:
tridentctl create backend -f <backend-file>
Si la creación del back-end falla, algo está mal con la configuración del back-end. Puede ver los registros para determinar la causa ejecutando el siguiente comando:
tridentctl logs
Después de identificar y corregir el problema con el archivo de configuración, puede ejecutar de nuevo el comando create.