NAS es un sistema de archivos distribuido compartido, escalable, altamente confiable y de alto rendimiento que ofrece Alibaba Cloud. Este tema describe cómo montar un volumen NAS en una Elastic Container Instance (ECI).
Notas importantes
La facturación de NAS se basa en el uso y admite los métodos pay-as-you-go, planes de recursos y SCU. Para obtener más información, consulte NAS Billing overview.
El sistema de archivos NAS debe residir en la misma VPC que la instancia.
NAS proporciona almacenamiento compartido. Un solo sistema de archivos NAS se puede montar en varias instancias. Si varias instancias modifican los mismos datos simultáneamente, su aplicación debe gestionar la sincronización de datos.
No elimine el punto de montaje de NAS antes de desmontar el volumen NAS. Hacerlo podría provocar que el sistema operativo deje de responder.
Preparativos
Antes de utilizar Alibaba Cloud File Storage NAS como volumen, cree un sistema de archivos NAS y un punto de montaje. Para obtener más información, consulte Create a file system y Manage mount targets.
Detalles de configuración (OpenAPI)
Al llamar a la operación API CreateContainerGroup para crear una elastic container instance, use parámetros relacionados con Volume para especificar volúmenes y, posteriormente, parámetros relacionados con Container.VolumeMount para montar dichos volúmenes en los contenedores. Los parámetros relevantes se describen a continuación. Para obtener más información, consulte CreateContainerGroup.
Declarar un volumen
Cuando utilice parámetros relacionados con Volume para especificar volúmenes, primero indique los tipos y nombres de los volúmenes. Luego, configure otros parámetros relacionados con Volume según el valor del parámetro Volume.N.Type.
Puede declarar un volumen NAS de dos maneras:
-
Montar un volumen de tipo NFS
Nombre
Tipo
Valor de ejemplo
Descripción
Volume.N.Name
String
nas-demo
Nombre del volumen.
Volume.N.Type
String
NFSVolume
Establézcalo en NFSVolume para crear un volumen de tipo NFS.
Volume.N.NFSVolume.Server
String
3f9cd4**-na*.cn-shanghai.nas.aliyuncs.com
Dirección del servidor NFS.
Si utiliza Alibaba Cloud File Storage NAS, esta es la dirección del punto de montaje del sistema de archivos NAS.
Volume.N.NFSVolume.Path
String
/share
Ruta del volumen NFS.
Volume.N.NFSVolume.ReadOnly
Boolean
false
Permiso de lectura para el volumen NFS. Valores válidos:
-
true: solo lectura
-
false: lectura y escritura
Valor predeterminado: false.
-
-
Montar un volumen mediante el complemento FlexVolume
Nombre
Tipo
Valor de ejemplo
Descripción
Volume.N.Name
String
nas-demo
Nombre del volumen.
Volume.N.Type
String
FlexVolume
Establézcalo en FlexVolume para montar un volumen mediante el complemento FlexVolume.
Volume.N.FlexVolume.Driver
String
alicloud/nas
Tipo de controlador al montar un volumen mediante el complemento FlexVolume. Establézcalo en
alicloud/naspara montar Alibaba Cloud File Storage NAS.Volume.N.FlexVolume.Options
String
{"server":"3f9cd4**-na*.cn-shanghai.nas.aliyuncs.com","path": "/share","vers":"3","options":"nolock,tcp,noresvport"}
Opciones de clave-valor para el objeto FlexVolume, pasadas como una cadena JSON.
Al montar NAS mediante FlexVolume, Options especifica los parámetros de configuración del volumen NAS. Puede configurar los siguientes parámetros:
-
server: dirección del punto de montaje del sistema de archivos NAS.
-
path: subdirectorio bajo la ruta del sistema de archivos NAS, que comienza con
/.-
Introduzca un subdirectorio existente en el sistema de archivos NAS. Si el subdirectorio no existe bajo el directorio raíz, se creará antes del montaje.
-
Para sistemas de archivos Extreme NAS, el subdirectorio debe comenzar con
/share. -
Este parámetro es opcional. Si se omite, se monta el directorio raíz del sistema de archivos NAS de forma predeterminada.
-
-
vers: versión del protocolo NFS utilizada para montar el sistema de archivos NAS. Se recomienda usar v3. Extreme NAS solo admite v3.
-
options: opciones de montaje personalizadas para NAS, con formato "xxx,xxx,xxx", como
nolock,tcp,noresvport.
-
Montar volúmenes
Después de especificar los volúmenes, use parámetros relacionados con VolumeMount para montarlos en los contenedores.
Parámetro | Tipo | Ejemplo | Descripción |
Container.N.VolumeMount.N.Name | String | test-volume | El nombre del volumen N que se montará en el contenedor N. Este valor corresponde al valor de Volume.N.Name. |
Container.N.VolumeMount.N.MountPath | String | /usr/share | La ruta dentro del contenedor donde se montará el volumen. Los datos en este directorio quedan ocultos por los datos del volumen. |
Container.N.VolumeMount.N.SubPath | String | /usr/sub | El subdirectorio del volumen. Este parámetro permite especificar diferentes subdirectorios del mismo volumen que la instancia puede montar en distintos subdirectorios de los contenedores. |
Container.N.VolumeMount.N.ReadOnly | Boolean | false | Especifica si el directorio de montaje es de solo lectura. Valor predeterminado: false. |
Container.N.VolumeMount.N.MountPropagation | String | None | La configuración de propagación de montaje del volumen N. La propagación de montaje permite compartir volúmenes montados en un contenedor con otros contenedores en la misma elastic container instance, o incluso con otras elastic container instances en el mismo host. Valores válidos:
Valor predeterminado: None. |
También se pueden montar volúmenes en contenedores init. Los parámetros necesarios son similares a los de la tabla anterior. Solo necesita cambiar Container por InitContainer.
Detalles de configuración (consola)
Cuando crea una elastic container instance en la página de compra de Elastic Container Instance, puede especificar volúmenes en la sección Container Group Configurations y luego montar los volúmenes en los contenedores desde la sección Container Configurations.
Declarar un volumen
En la sección Container group configuration, expanda Advanced Configuration.
En Storage, seleccione la pestaña NAS persistent storage y haga clic en Add.
-
Configure los parámetros del volumen NAS.
Name: nombre del volumen NAS.
Mount target: punto de montaje del sistema de archivos NAS.
Path: ruta en el sistema de archivos NAS que se va a montar.
Read-only: permiso de lectura de datos. La lectura y escritura están habilitadas de forma predeterminada. Seleccione solo lectura según sea necesario.
Montar el volumen
En la sección Container configuration, seleccione un contenedor y expanda su configuración avanzada.
-
Active el interruptor Storage y haga clic en Add.
Los volúmenes disponibles son aquellos declarados durante la configuración del grupo de contenedores.
En Select storage, elija el volumen declarado (por ejemplo, nas-demo). Establezca el tipo de almacenamiento en NAS persistent storage. Introduzca
/dataen Mount path in container y/testen Subdirectory. Seleccione Read-only según sea necesario.
Si desea montar volúmenes en varios contenedores, seleccione más contenedores y repita las operaciones anteriores.
Ejemplo de configuración
-
Cree la instancia ECI A y monte un volumen NAS en ella.
El siguiente ejemplo muestra los parámetros utilizados para llamar a la operación CreateContainerGroup y crear la instancia A. Para obtener más información, consulte CreateContainerGroup.
ContainerGroupName=test-nas-a SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Declare a volume Volume.1.Name=nas-demo Volume.1.Type=NFSVolume Volume.1.NFSVolume.Server=3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com Volume.1.NFSVolume.Path=/share # Mount the volume to a container Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=nas-demo Container.1.VolumeMount.1.MountPath=/data-a -
Conéctese a la instancia A y cree un archivo en el directorio de montaje.
Para obtener información sobre cómo conectarse a una instancia ECI, consulte Connect to an ECI instance using Workbench.
root@test-nas-a:/# cd data-a root@test-nas-a:/data-a# ls root@test-nas-a:/data-a# echo "hello" >test root@test-nas-a:/data-a# ls test root@test-nas-a:/data-a# cat test hello Elimine la instancia A.
-
Cree la instancia ECI B y monte el mismo volumen NAS en ella.
ContainerGroupName=test-nas-b SecurityGroupId=sg-bp1daxpbz9lzpvvc**** VSwitchId=vsw-bp1gds63lmlm7ib05**** # Declare a volume Volume.1.Name=nas-demo Volume.1.Type=FlexVolume Volume.1.FlexVolume.Driver=alicloud/nas Volume.1.FlexVolume.Options={"server":"3f9cd4****-na***.cn-shanghai.nas.aliyuncs.com","path": "/share"} # Mount the volume to a container Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2 Container.1.VolumeMount.1.Name=nas-demo Container.1.VolumeMount.1.MountPath=/data-b -
Conéctese a la instancia B y compruebe el archivo en el directorio de montaje.
Dado que tanto la instancia A como la instancia B montan el mismo volumen NAS —y NAS proporciona almacenamiento persistente—, el archivo creado por la instancia A permanece accesible a través de la instancia B después de eliminar la instancia A.
root@test-nas-b:/# cd data-b root@test-nas-b:/data-b# ls test root@test-nas-b:/data-b# cat test hello