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

5 minutos de lectura
0

Quiero montar un sistema de archivos Amazon FSx para Lustre existente en AWS Batch en un entorno de cómputo administrado. ¿Hay alguna forma de configurarlo sin crear imágenes de máquina de Amazon (AMI) personalizadas?

Descripción breve

Utilice una plantilla de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2) con AWS Batch. Esta configuración le permite montar un sistema de archivos Amazon FSx para Lustre existente en sus contenedores sin crear AMI personalizadas.

**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

  1. Cree un sistema de archivos Amazon FSx para Lustre. A continuación, elija un tipo de implementación de sistema de archivos persistente o temporal.

**Consejo:**Utilice sistemas de archivos persistentes para cargas de trabajo y almacenamiento a largo plazo. Utilice sistemas de archivos temporales para el almacenamiento temporal y el procesamiento de datos a corto plazo.

  1. Copia el ID del sistema de archivos (por ejemplo, fs-12345678). Necesita el identificador del sistema de archivos para ejecutar la plantilla de lanzamiento.

  2. Cree una plantilla de lanzamiento que incluya una sección de datos de usuario y utilice el formato de archivo de varias partes MIME. Para obtener más información, consulte Mime Multi Part Archive en el sitio web de Cloud-init.

EjemploAmazon Linux 2MIME archivo de varias partes

**Importante:**Sustituya fs-12345678 por el ID de su sistema de archivos. Sustituya us-east-1 por su región de AWS. Sustituya xxxxxxxx por su nombre de montaje de Amazon FSx de ocho caracteres.

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

runcmd:
- file_system_id_01=fs-09c9ae4593b53a741
- 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_01}.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, consulte Instalación del cliente Lustre.

  1. Inicie la plantilla para invocar los datos del usuario.

  2. Cree un archivo llamado mount-fsx-lustre.json.

**Nota:**Ajusta el tamaño del volumen según su caso de uso.

Ejemplo de plantilla de lanzamiento de Amazon Linux 2

{
  "LaunchTemplateName": "user-data",
  "LaunchTemplateData": {
    "BlockDeviceMappings": [
      {
        "Ebs": {
          "DeleteOnTermination": true,
          "VolumeSize": 30,
          "VolumeType": "gp2"
        },
        "DeviceName": "/dev/xvda"
      }
    ],
    "UserData": "TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PU1ZQk9VTkRBUlk9PSIKCi0tPT1NWUJPVU5EQVJZPT0KQ29udGVudC1UeXBlOiB0ZXh0L2Nsb3VkLWNvbmZpZzsgY2hhcnNldD0idXMtYXNjaWkiCgpwYWNrYWdlczoKLSBhbWF6b24tZWZzLXV0aWxzCgpydW5jbWQ6Ci0gZmlsZV9zeXN0ZW1faWRfMDE9ZnMtODc0MTc4MDYgICAgIAotIGVmc19kaXJlY3Rvcnk9L21udC9lZnMKCi0gbWtkaXIgLXAgJHtlZnNfZGlyZWN0b3J5fQotIGVjaG8gIiR7ZmlsZV9zeXN0ZW1faWRfMDF9Oi8gJHtlZnNfZGlyZWN0b3J5fSBlZnMgdGxzLF9uZXRkZXYiID4+IC9ldGMvZnN0YWIKLSBtb3VudCAtYSAtdCBlZnMgZGVmYXVsdHMKCi0tPT1NWUJPVU5EQVJZPT0tLQ=="
  }
}

Ejemplo Amazon Linux 1plantilla de lanzamiento

{
  "LaunchTemplateName": "userdata",
  "LaunchTemplateData": {
    "BlockDeviceMappings": [
      {
        "Ebs": {
          "DeleteOnTermination": true,
          "VolumeSize": 8,
          "VolumeType": "gp2"
        },
        "DeviceName": "/dev/xvda"
      },
      {
        "Ebs": {
          "DeleteOnTermination": true,
          "VolumeSize": 22,
          "VolumeType": "gp2"
        },
        "DeviceName": "/dev/xvdcz"
      }
    ],
    "UserData": "TUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PU1ZQk9VTkRBUlk9PSIKCi0tPT1NWUJPVU5EQVJZPT0KQ29udGVudC1UeXBlOiB0ZXh0L2Nsb3VkLWNvbmZpZzsgY2hhcnNldD0idXMtYXNjaWkiCgpwYWNrYWdlczoKLSBhbWF6b24tZWZzLXV0aWxzCgpydW5jbWQ6Ci0gZmlsZV9zeXN0ZW1faWRfMDE9ZnMtODc0MTc4MDYgICAgIAotIGVmc19kaXJlY3Rvcnk9L21udC9lZnMKCi0gbWtkaXIgLXAgJHtlZnNfZGlyZWN0b3J5fQotIGVjaG8gIiR7ZmlsZV9zeXN0ZW1faWRfMDF9Oi8gJHtlZnNfZGlyZWN0b3J5fSBlZnMgdGxzLF9uZXRkZXYiID4+IC9ldGMvZnN0YWIKLSBtb3VudCAtYSAtdCBlZnMgZGVmYXVsdHMKCi0tPT1NWUJPVU5EQVJZPT0tLQ=="
  }
}

**Nota:**Si agrega datos de usuario a una plantilla de lanzamiento en la consola de Amazon EC2, asegúrese de realizar una de las siguientes acciones: Pegue los datos del usuario como texto sin formato. -o- Suba los datos del usuario desde un archivo.

Si utiliza la interfaz de línea de comandos de AWS (AWS CLI) o un SDK de AWS, primero debe codificar en base64 los datos del usuario. A continuación, envíe esa cadena como el valor del parámetro UserData cuando llame a CreateLaunchTemplate.

  1. Ejecute el siguiente comando de AWS CLI para crear una plantilla de lanzamiento basada en el archivo mount-fsx-lustre.json que creó en el paso 5:

**Importante:**Sustituya us-east-1 con su región de AWS.

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

Ejemplo de salida del comando create-launch-template

{
  "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
  }
}
  1. Cree un nuevo entorno de cómputo y asocie ese entorno a su plantilla de lanzamiento.

**Importante:**De forma predeterminada, los entornos de cómputos gestionados por lotes de AWS utilizan una versión aprobada de la AMI optimizada para Amazon Elastic Container Service (Amazon ECS) para los recursos informáticos. Debe 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.

Cuando AWS Batch genera instancias, el sistema de archivos Amazon FSx para Lustre ahora se monta en las instancias del contenedor.

  1. Compruebe si el sistema de archivos está montado con la instancia del contenedor usando SSH para conectarse a la instancia lanzada por AWS Batch. A continuación, ejecute el siguiente comando df de Linux:
$ df -h

Ejemplo de salida del comando df

Filesystem                                  Size      Used    Avail    Used%   Mounted on
devtmpfs                                    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.

  1. Cree una definición de trabajo en AWS Batch que incluya el volumen y el punto de montaje.

Ejemplo de definición de AWS Batch Job

{
  "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": []
  }
}
  1. [Envíe un trabajo de AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/submit_job.html) usando la definición de trabajo que creó en el paso 9.
    

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años