¿Cómo puedo montar un sistema de archivos Amazon FSx para Lustre existente en AWS Batch en un entorno de computación administrado?

5 minutos de lectura
0

Quiero montar un sistema de archivos Amazon FSx para Lustre existente en AWS Batch en un entorno de computación administrado.

Descripción breve

Utiliza una plantilla de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2) con AWS Batch. Esta configuración monta un sistema de archivos Amazon FSx para Lustre existente en tus contenedores sin crear una imagen de máquina de Amazon (AMI) personalizada.

**Importante:**Al crear el sistema de archivos, utilice la misma Amazon Virtual Private Cloud (Amazon VPC) y las mismas subredes que están asignadas a su entorno informático.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Para montar un sistema de archivos Amazon FSx para Lustre existente en AWS Batch en un entorno de computación administrado, sigue estos pasos:

  1. Crea un sistema de archivos Amazon FSx para Lustre. A continuación, selecciona un tipo de despliegue de sistema de archivos persistente o temporal.
    Nota: Utiliza sistemas de archivos persistentes para cargas de trabajo y almacenamiento a largo plazo. Utiliza sistemas de archivos temporales para el almacenamiento temporal y el procesamiento de datos a corto plazo.

  2. Copia el ID del sistema de archivos (por ejemplo, fs-0123456789abcdef0). Debes tener el ID del sistema de archivos para ejecutar la plantilla de lanzamiento.

  3. Crea una plantilla de lanzamiento que incluya una sección de datos de usuario y utiliza el formato de archivo de varias partes MIME. Para obtener más información, consulta Mime Multi Part Archive (Archivo de varias partes MIME) en el sitio web de Cloud-init.
    Consulta el siguiente ejemplo de archivo de varias partes MIME de Amazon Linux 2. Sustituye fs-0123456789abcdef0 por el ID del sistema de archivos, us-east-1 por la región de AWS y xxxxxxxx por el nombre de montaje de ocho caracteres de Amazon FSx:

    Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="
    MIME-Version: 1.0
    
    --==MYBOUNDARY==
    Content-Type: text/cloud-boothook; charset="us-ascii"
    
    file_system_id=fs-0123456789abcdef0
    region=us-east-1
    fsx_directory=/scratch
    fsx_mount_name=xxxxxxxx
    amazon-linux-extras install -y lustre2.10
    mkdir -p ${fsx_directory}
    mount -t lustre -o noatime,flock ${file_system_id}.fsx.${region}.amazonaws.com@tcp:/${fsx_mount_name} ${fsx_directory}
    
    --==MYBOUNDARY==--

    **Nota:**Este archivo MIME de varias partes de ejemplo configura el recurso informático para instalar el paquete Lustre 2.10 de la biblioteca Extras. El archivo también monta un sistema de archivos Amazon FSx para Lustre existente en /scratch. Para obtener instrucciones de instalación para otras distribuciones de Linux, consulta Installing the Lustre client (Instalación del cliente Lustre).

  4. Inicia la plantilla para invocar los datos del usuario, como se muestra en el siguiente ejemplo de Amazon Linux 2:

    {  "LaunchTemplateName": "user-data",
      "LaunchTemplateData": {
        "UserData": "TUlNRS1W...<base64 encoded userdata>..."
      }
    }
    

    Nota: Si añades datos de usuario a una plantilla de lanzamiento en la consola de Amazon EC2, asegúrate de realizar una de las siguientes acciones: pega los datos de usuario como texto sin formato o carga los datos de usuario desde un archivo. Si utilizas la AWS CLI o un AWS SDK, primero debes codificar en base64 los datos de usuario. Para obtener más información, consulta Codifique en formato Base64 en el sitio web de base64encode. A continuación, envía esa cadena como el valor del parámetro UserData cuando llames a CreateLaunchTemplate.

  5. Crea un archivo llamado mount-fsx-lustre.json.
    Nota: Ajusta el tamaño del volumen según el caso de uso.

  6. Ejecuta el comando de la AWS CLI create-launch-template para crear una plantilla de lanzamiento basada en el archivo mount-fsx-lustre.json que creaste en el paso 5. Sustituye us-east-1 por tu región:

    aws ec2 --region us-east-1 create-launch-template --cli-input-json file://mount-fsx-lustre.json

    Resultado del ejemplo:

    {  "LaunchTemplate": {
        "LaunchTemplateId": "lt-08cb09d54bcf551f3",
        "LaunchTemplateName": "fsx-test",
        "CreateTime": "2020-06-30T17:13:22.000Z",
        "CreatedBy": "arn:aws:iam::12345678999:user/test",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
      }
    }
  7. Crea un nuevo entorno de computación y asócialo a la plantilla de lanzamiento. Cuando AWS Batch genera instancias, el sistema de archivos Amazon FSx para Lustre ahora se monta en las instancias de contenedor.
    Importante: De forma predeterminada, los entornos de computación administrados de AWS Batch utilizan una versión aprobada de la AMI optimizada para Amazon Elastic Container Service (Amazon ECS) para los recursos de computación. Debes configurar de forma explícita el ID de AMI para las AMI de Amazon Linux 2 optimizadas para Amazon ECS y otras distribuciones de Linux.

  8. Para comprobar si el sistema de archivos está montado con la instancia de contenedor, usa SSH para conectarte a la instancia lanzada por AWS Batch. A continuación, ejecuta el siguiente comando df de Linux:

    $ df -h

    Resultado del ejemplo:

    Filesystem                                  Size      Used    Avail    Used%   Mounted ondevtmpfs                                    3.9G        0       3.9G     0%       /dev
    tmpfs                                       3.9G        0       3.9G     0%       /dev/shm
    tmpfs                                       3.9G     448K       3.9G     1%       /run
    tmpfs                                       3.9G        0       3.9G     0%       /sys/fs/cgroup
    /dev/xvda1                                   30G     4.2G        25G    15%       /
    172.31.79.79@tcp:/xxxxxxxx                  1.1T     4.5M       1.1T     1%       /scratch
    tmpfs                                       798M       0        798M     0%       /run/user/1000

    Nota: /scratch se monta automáticamente.

  9. Crea una definición de trabajo en AWS Batch que incluya el volumen y el punto de montaje:

    {  "jobDefinitionName": "Fsx-sample",
      "jobDefinitionArn": "arn:aws:batch:us-east-1:12345678999:job-definition/userdata:1",
      "revision": 1,
      "status": "ACTIVE",
      "type": "container",
      "parameters": {},
      "containerProperties": {
        "image": "busybox",
        "vcpus": 1,
        "memory": 1024,
        "command": [],
        "volumes": [
          {
            "host": {
              "sourcePath": "/scratch"
            },
            "name": "Scratch"
          }
        ],
        "environment": [],
        "mountPoints": [
          {
            "containerPath": "/scratch",
            "sourceVolume": "Scratch"
          }
        ],
        "ulimits": [],
        "resourceRequirements": []
      }
    }
  10. Para enviar un trabajo de AWS Batch, usa la definición de trabajo que creaste en el paso 9.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 8 meses