Acceso a datos optimizado en la nube híbrida basado en ACK Fluid (3): acelere el acceso de lectura al almacenamiento de terceros, reduzca costos y aumente la eficiencia en paralelo

Autor: Cheyang

Revisión anterior:

Esta serie presentará cómo admitir y optimizar escenarios de acceso a datos de nube híbrida basados ​​en ACK Fluid. Consulte los artículos relacionados:

Acceso a datos optimizados en la nube híbrida basado en ACK Fluid (1): escenarios y arquitectura

Acceso a datos optimizado en la nube híbrida basado en ACK Fluid (2): construcción de un puente entre instancias informáticas elásticas y almacenamiento de terceros

En el artículo anterior "Construyendo un puente entre instancias de computación elástica y almacenamiento de terceros" , presentamos cómo acceder al almacenamiento distribuido de terceros a través de ACK Fluid, que puede lograr el acceso y la comunicación entre las instancias de computación elástica ECI y ECS y los sistemas de almacenamiento en la nube. La transmisión de datos, que en realidad soluciona la primera fase de la migración a la nube: la conectividad.

Para los entornos de producción, si el acceso a la computación en la nube a sistemas de almacenamiento fuera de la nube se convierte en la norma, se debe considerar el rendimiento, el costo y la estabilidad. Por ejemplo, ¿cuál es el costo anual de la línea dedicada para acceder a datos sin conexión en la nube? ¿Existe una brecha significativa entre el consumo de tiempo de las tareas de computación en la nube y las tareas de computación originales de IDC? Y una vez que hay un problema con la línea dedicada, ¿cómo reducir la pérdida de tareas informáticas en la nube?

En este artículo, nos centraremos en cómo acelerar el acceso al almacenamiento de terceros, lograr un mejor rendimiento, reducir costos y reducir la dependencia de la estabilidad de la línea dedicada.

Descripción general

Incluso si la computación en la nube puede acceder al almacenamiento fuera de línea de la empresa utilizando el volumen de almacenamiento fotovoltaico del protocolo estandarizado de Kubernetes, no puede evitar desafíos y requisitos en términos de rendimiento y costo:

  • Ancho de banda de acceso a datos limitado y alta latencia: La latencia de acceso a datos y el ancho de banda causados ​​por el acceso de la computación en la nube al almacenamiento fuera de la nube dan como resultado que la computación de alto rendimiento requiera mucho tiempo y una baja utilización de recursos informáticos.
  • Lectura de datos redundante y costos de red costosos: se accederá a los mismos datos repetidamente durante la operación de ajuste de hiperparámetros del modelo de aprendizaje profundo y tareas de aprendizaje profundo de ajuste automático de parámetros. Sin embargo, debido a que el programador nativo de Kubernetes no puede detectar el estado del caché de datos, los resultados de la programación de la aplicación son deficientes y el caché no se puede reutilizar, lo que genera más costos de red externa y de línea dedicada para extracciones repetidas de datos.
  • El almacenamiento distribuido fuera de línea es el cuello de botella del acceso simultáneo a datos y enfrenta desafíos en el rendimiento y la estabilidad : cuando la potencia informática a gran escala accede simultáneamente al almacenamiento fuera de línea y aumenta la presión de IO del entrenamiento de aprendizaje profundo, es fácil que el almacenamiento distribuido fuera de línea se convierta en un cuello de botella en el rendimiento. Esto puede afectar las tareas informáticas e incluso provocar que falle todo el clúster informático.
  • Gravemente afectado por la estabilidad de la red: una vez que la red entre la nube pública y el centro de datos no sea lo suficientemente estable, se producirán errores de sincronización de datos y la aplicación no estará disponible.
  • Requisitos de seguridad de los datos: los metadatos y los datos deben protegerse y no se permite que se conserven en el disco de la nube.

ACK Fluid proporciona capacidades de aceleración generales para volúmenes de almacenamiento fotovoltaico basados ​​en JindoRuntime, que puede admitir almacenamiento de terceros que cumple con PVC para obtener capacidades de aceleración de acceso a datos de manera simple, rápida y segura a través de caché distribuido, lo que puede brindar los siguientes beneficios:

1. Costo de adaptación cero: solo necesita implementar el almacenamiento de PVC de terceros en el protocolo CSI y se puede usar inmediatamente sin desarrollo adicional.

2. Se ha mejorado enormemente el rendimiento del acceso a los datos y se ha mejorado la eficiencia de la ingeniería: a. Mediante el precalentamiento de datos basado en el acceso y en las políticas, el rendimiento del acceso a los datos en la nube es equivalente al clúster informático donde se encuentran los datos en la nube. b. El ancho de banda de acceso a datos elástico puede hacer frente a una alta concurrencia y acceso a datos. El rendimiento se puede aumentar a cientos de Gbps y la capacidad también se puede reducir a 0, logrando un equilibrio dinámico de bajo costo y alto rendimiento.

C. La programación basada en la afinidad de la caché de datos evita el acceso a datos entre redes y reduce la latencia.

3. Evite la lectura repetida de datos del punto de acceso y ahorre costos de red: los datos del punto de acceso se conservan en la nube a través de un caché distribuido, lo que reduce la lectura de datos y el tráfico de la red.

4. La operación y el mantenimiento automatizados centrados en datos permiten un acceso eficiente a los datos y mejoran la eficiencia de la operación y el mantenimiento: incluido el calentamiento de la caché de datos automatizado y programado para evitar extracciones repetidas de datos. También admite la expansión, reducción y limpieza de la caché de datos para realizar una gestión automatizada de la caché de datos.

5. Evite que los metadatos y los datos se guarden en el disco mediante el almacenamiento en caché de memoria distribuida, lo que lo hace más seguro: para los usuarios sensibles a la seguridad de los datos, ACK-Fluid proporciona almacenamiento en caché de memoria distribuida que tiene un buen rendimiento y evita las preocupaciones de los usuarios sobre la caída de datos en el disco. .

Resumen: *ACK Fluid proporciona beneficios inmediatos, de alto rendimiento, bajo costo, automatización y sin disco de datos * para acceder a PVC de almacenamiento de terceros para computación en la nube .

Manifestación

1. Requisitos previos

  • Se ha creado un clúster de la versión ACK Pro y la versión del clúster es 1.18 y superior. Para operaciones específicas, consulte Creación de un clúster ACK Pro Edition [ 1] .
  • Se instaló la suite de IA nativa de la nube y se implementó el componente ack-fluid. Importante: si ha instalado Fluid de código abierto, desinstálelo antes de implementar el componente ack-fluid.

<!---->

  • La suite de IA nativa de la nube no está instalada: habilite la aceleración de datos fluida durante la instalación. Para operaciones específicas, consulte Instalación de Cloud Native AI Suite [ 2] .
  • Se ha instalado la suite de IA nativa de la nube: implemente ack-fluid en la página de la suite de IA nativa de la nube de la consola de administración de Container Service.

<!---->

  • El clúster ACK se ha conectado a través de kubectl. Para operaciones específicas, consulte Conexión al clúster mediante la herramienta kubectl [ 3] .
  • Se han creado los volúmenes de almacenamiento de PV y los reclamos de volumen de almacenamiento de PVC correspondientes al sistema de almacenamiento al que se debe acceder. En el entorno de Kubernetes, diferentes sistemas de almacenamiento tienen diferentes métodos de creación de volúmenes de almacenamiento. Para garantizar una conexión estable entre el sistema de almacenamiento y el clúster de Kubernetes, prepárese de acuerdo con la documentación oficial del sistema de almacenamiento correspondiente. Nota: Para escenarios de nube híbrida, por motivos de seguridad y rendimiento de los datos, se recomienda configurar el modo de acceso a datos en solo lectura.

2. Consultar la información declarada por volumen de almacenamiento de PV y volumen de almacenamiento de PVC.

Ejecute el siguiente comando para consultar la información declarada por los volúmenes de almacenamiento PV y los volúmenes de almacenamiento PVC en Kubernetes.

$ kubectl get pvc,pv

Rendimiento esperado:

NAME                                          STATUS   VOLUME                          CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/demo-pvc                Bound    demo-pv                         5Gi        ROX                           19h

NAME                                             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                           STORAGECLASS   REASON   AGE
persistentvolume/demo-pv                         30Gi       ROX            Retain           Bound    default/demo-pvc                                        19h

La capacidad del volumen de almacenamiento PV demo-pv es de 30 GB, admite el modo de acceso RWX, se ha vinculado a la declaración del volumen de almacenamiento con el nombre de PVC demo-pvc y se puede utilizar normalmente.

3. Cree un conjunto de datos y JindoRuntime

1) Cree el archivo dataset.yaml. El siguiente archivo Yaml contiene dos objetos de recursos Fluid que se crearán, a saber, Dataset y JindoRuntime.

  • Conjunto de datos: información de declaración del volumen de almacenamiento de PVC que se va a montar.
  • JindoRuntime: configuración del sistema de caché distribuido JindoFS que se iniciará, incluida la cantidad de copias del componente de trabajo del sistema de caché y la capacidad máxima de caché disponible de cada componente de trabajo.
apiVersion: data.fluid.io/v1alpha1
kind: Dataset
metadata:
  name: pv-demo-dataset
spec:
  mounts:
    - mountPoint: pvc://demo-pvc
      name: data
      path: /
  accessModes:
    - ReadOnlyMany
---
apiVersion: data.fluid.io/v1alpha1
kind: JindoRuntime
metadata:
  name: pv-demo-dataset
spec:
  replicas: 2
  tieredstore:
    levels:
      - mediumtype: MEM
        path: /dev/shm
        quota: 10Gi
        high: "0.9"
        low: "0.8"

Los parámetros detallados del objeto de recurso en el archivo de configuración se describen a continuación.

2) Ejecute el siguiente comando para crear objetos de recursos Dataset y JindoRuntime

$ kubectl create -f dataset.yaml

3) Ejecute el siguiente comando para verificar el estado de implementación del conjunto de datos

$ kubectl get dataset pv-demo-dataset

Resultado esperado: Descripción: El inicio inicial del sistema de caché JindoFS implica el proceso de extracción de imágenes, que puede tardar de 2 a 3 minutos debido a factores como el entorno de red. El conjunto de datos está en estado Enlazado, lo que indica que el sistema de caché JindoFS se ha iniciado normalmente en el clúster y que el Pod de la aplicación normalmente puede acceder a los datos definidos en el conjunto de datos.

4. Cree DataLoad para realizar el calentamiento de la caché

Dado que el primer acceso no puede llegar al caché de datos, la eficiencia del acceso a los datos de la aplicación Pod puede ser baja. Fluid proporciona la operación de calentamiento del caché DataLoad para mejorar la eficiencia del primer acceso a los datos.

1) Cree el archivo dataload.yaml, el ejemplo de código es el siguiente

apiVersion: data.fluid.io/v1alpha1
kind: DataLoad
metadata:
  name: dataset-warmup
spec:
  dataset:
    name: pv-demo-dataset
    namespace: default
  loadMetadata: true
  target:
    - path: /
      replicas: 1

La descripción detallada de los parámetros del objeto de recurso anterior es la siguiente.

2) Ejecute el siguiente comando para crear el objeto DataLoad

$ kubectl create -f dataload.yaml

3) Ejecute el siguiente comando para verificar el estado de DataLoad

$ kubectl get dataload dataset-warmup

Rendimiento esperado:

NAME             DATASET           PHASE      AGE   DURATION
dataset-warmup   pv-demo-dataset   Complete   62s   12s

4) Ejecute el siguiente comando para verificar el estado de la caché de datos

$ kubectl get dataset

Rendimiento esperado:

NAME              UFS TOTAL SIZE   CACHED     CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
pv-demo-dataset   10.96GiB         10.96GiB   20.00GiB         100.0%              Bound   3m13s

Una vez completada la operación de calentamiento de caché de DataLoad, la cantidad de datos almacenados en caché (CACHED) del conjunto de datos se actualizó al tamaño de todo el conjunto de datos, lo que significa que todo el conjunto de datos se almacenó en caché y el porcentaje de caché ( PORCENTAJE EN CACHÉ) es 100,0%.

5. Cree un contenedor de aplicaciones y acceda a los datos en el volumen de almacenamiento fotovoltaico.

1) Utilice el siguiente YAML para crear el archivo pod.yaml y modifique el nombre de ClaimName en el archivo YAML para que sea el mismo que el nombre del conjunto de datos creado en el paso 2.

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      command:
      - "bash"
      - "-c"
      - "sleep inf"
      volumeMounts:
        - mountPath: /data
          name: data-vol
  volumes:
    - name: data-vol
      persistentVolumeClaim:
        claimName: pv-demo-dataset # 名称需要与Dataset相同。

2) Ejecute el siguiente comando para crear una aplicación Pod

$ kubectl create -f pod.yaml

3) Ejecute el siguiente comando para iniciar sesión en el Pod y acceder a los datos

$ kubectl exec -it nginx bash

Rendimiento esperado:

# Nginx Pod中,/data目录下有一个名为demofile的文件,大小为11 GB。
$ ls -lh /data
total 11G
-rw-r----- 1 root root 11G Jul 28  2023 demofile

# 执行cat /data/demofile > /dev/null命令,将demofile文件中的内容读取并写入/dev/null设备中,用时11.004秒。
$ time cat /data/demofile > /dev/null
real    0m11.004s
user    0m0.065s
sys     0m3.089s

Dado que todos los datos del conjunto de datos se han almacenado en caché en el sistema de caché distribuido, al leer los datos, se leerán desde el caché en lugar del sistema de almacenamiento remoto, lo que reduce la transmisión de la red y mejora la eficiencia del acceso a los datos.

Enlaces relacionados:

[1] Cree un clúster de la versión ACK Pro https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/create-an-ack-managed-cluster-2#task- skz-qwk-qfb

[2] Instale la suite de IA nativa de la nube https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/deploy-the-cloud-native-ai-suite#task-2038811

[3] Conéctese al clúster a través de la herramienta kubectl*

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/obtain-the-kubeconfig-file-of-a-cluster-and-use-kubectl-to- conectarse-al-clúster#tarea-ubf-lhg-vdb

El autor del marco de código abierto NanUI pasó a vender acero y el proyecto fue suspendido. La primera lista gratuita en la App Store de Apple es el software pornográfico TypeScript. Acaba de hacerse popular, ¿por qué los grandes empiezan a abandonarlo? Lista de octubre de TIOBE: Java tiene la mayor caída, C# se acerca Java Rust 1.73.0 lanzado Un hombre fue alentado por su novia AI a asesinar a la Reina de Inglaterra y fue sentenciado a nueve años de prisión Qt 6.6 publicado oficialmente Reuters: RISC-V La tecnología se convierte en la clave de la guerra tecnológica entre China y Estados Unidos. Nuevo campo de batalla RISC-V: no controlado por ninguna empresa o país, Lenovo planea lanzar una PC con Android.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/3874284/blog/10117044
Recomendado
Clasificación