【Azure Batch】使用Start Task来挂载Storage Blob

问题描述

本文将介绍如何使用开始任务(Start Task)为Batch Account Node配置Storage Account Blob挂载

问题解答

第一步:准备 blobfuse2 mount的配置文件

这里参考的是文档How to configure settings for BlobFuse2 (https://learn.microsoft.com/en-us/azure/storage/blobs/blobfuse2-configuration)中介绍的最简单的配置模板。

简单模板如下:

logging:
  type: syslog
  level: log_debug

components:
  - libfuse
  - file_cache
  - attr_cache
  - azstorage

libfuse:
  attribute-expiration-sec: 120
  entry-expiration-sec: 120
  negative-entry-expiration-sec: 240

file_cache:
  path: /mycontainer
  timeout-sec: 120
  max-size-mb: 4096
  
attr_cache:
  timeout-sec: 7200

azstorage:
  type: block
  account-name: <your storage account name>
  account-key: <your storage account access key>
  mode: key
  container: forbatch
  endpoint: https://<your storage account name>.blob.core.chinacloudapi.cn

PS:关于模板中参数的意义,可以参考文档中的详细介绍。

第二步:准备Batch Account Node的Start Task 脚本

脚本内容

/bin/bash -c "apt-get update && apt-get install -y blobfuse2 && cd /mnt/batch/tasks/fsmounts && mkdir /mnt/batch/tasks/fsmounts/mycontainerblob && sudo blobfuse2 mount /mnt/batch/tasks/fsmounts/mycontainerblob --config-file=$AZ_BATCH_NODE_STARTUP_DIR/wd/mountconfig.yaml

脚本介绍

1) 因为Batch Account的节点为Linux系统,所以第一步更新系统apt-get,确保最新版本
2) apt-get install -y blobfuse2 : 自动安装 blobfuse2,这是azure提供的工具,用于将blob挂载为本地系统文件
3) cd /mnt/batch/tasks/fsmounts : 切换到 Azure Batch 的挂载目录。
4) mkdir /mnt/batch/tasks/fsmounts/mycontainerblob 创建一个用于挂载 Blob 容器的本地目录。 mycontainerblob 是挂载点的名称,可以根据实际容器名称修改。
5) sudo blobfuse2 mount /mnt/batch/tasks/fsmounts/mycontainerblob --config-file=AZ_BATCH_NODE_STARTUP_DIR/wd/mountconfig.yaml : 使用 BlobFuse2 挂载 Azure Blob 容器到刚创建的目录。 --config-file 指定了一个 YAML 配置文件,包含连接字符串、容器名称、缓存设置等。AZ_BATCH_NODE_STARTUP_DIR/wd/ 是 Azure Batch 节点启动任务的工作目录,mountconfig.yaml 是第一步时准备好的配置文件。
6) && : 用于连接前后两个命令。特别注意,两个命令之间必须使用 && 连接字符

第三步:把启动命令和配置文件填入Node Start Task页面

因命令中有安装/创建操作,所以需要提升权限为 Pool autouser, Admin权限。

此外,第二步中的config-file的文件路径就是下图中的 Resource Files。需要特别注意的就是,正确的工作目录为 $AZ_BATCH_NODE_STARTUP_DIR/wd/ , 需要多加一级 /wd/


image.png

保存,等待节点创建完成后就可以正常使用挂载目录,把文件直接写入到Storage Blob中。

参考资料

How to configure settings for BlobFuse2 : https://learn.microsoft.com/en-us/azure/storage/blobs/blobfuse2-configuration

在 Batch 池上装载虚拟文件系统: https://docs.azure.cn/zh-cn/batch/virtual-file-mount?tabs=windows

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。