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

简介: 本文介绍如何通过开始任务(Start Task)在Azure Batch节点上配置Storage Account Blob挂载。首先准备blobfuse2配置文件,然后编写包含安装、创建挂载目录及执行挂载的脚本,最后将脚本与配置文件通过Node Start Task设置,实现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/ 是 Azure Batch 节点启动任务的工作目录,mountconfig.yaml 是第一步时准备好的配置文件。

6)  &&  : 用于连接前后两个命令。特别注意,两个命令之间必须使用 && 连接字符

 

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

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

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

保存,等待节点创建完成后就可以正常使用挂载目录,把文件直接写入到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

 


 

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

相关文章
|
3月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1713 10
|
3月前
|
人工智能 前端开发 小程序
 《CodePen AI + Tabnine:前端组件库升级的智能协作指南》
本文记录前端组件库升级项目中,AI工具(CodePen AI、Tabnine)助力团队突破“旧组件拆解难、三端兼容开发紧、团队能力断层”三重困局。面对60天需求40天交付的压力,团队以“AI解析+人工校验”模式,借CodePen AI 10分钟完成旧组件逻辑拆解与兼容性标注,10天完成原20天梳理任务;靠Tabnine“人工定骨架、AI填细节”,4小时解决自定义主题配置难题,40天项目38天交付。AI不仅压缩60%重复性工作时间,更构建“AI初解+人工优化”协作模式,新人成长提速3倍,组件复用率从40%升至85%,加载速度降75%,印证其“效率加速器、知识桥梁、质量管家”的核心价值。
324 4
|
Linux
CentOS7.X磁盘挂载及取消挂载
CentOS7.X磁盘挂载及取消挂载
8250 0
|
3月前
|
Java Spring
如何优化Java异步任务的性能?
本文介绍了Java中四种异步任务实现方式:基础Thread、线程池、CompletableFuture及虚拟线程。涵盖多场景代码示例,展示从简单异步到复杂流程编排的演进,适用于不同版本与业务需求,助你掌握高效并发编程实践。(239字)
247 6
|
3月前
|
机器学习/深度学习 算法 Java
基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
基于灰狼优化算法(GWO)解决柔性作业车间调度问题(Matlab代码实现)
250 1
|
3月前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
3月前
|
存储 缓存 监控
LangChain4j 详细教程
LangChain4j 详细教程
797 7
|
3月前
|
SQL 监控 JavaScript
天啊,Gitee 16k star项目,不要再傻傻重复造轮子啦,高效搭建企业级后台系统框架,你不应该试一下吗?
Guns 是基于 Spring Boot3 + Vue3 的企业级后台框架,获 Gitee 16.2k Star。支持权限、多机构、代码生成、插件化扩展,助力高效搭建 OA、CRM、ERP 等系统,提升开发效率,降低重复造轮子成本。
144 5
|
3月前
|
监控 Cloud Native Java
GraalVM 原生镜像技术详解与实践指南
本文档全面介绍 GraalVM 原生镜像技术的核心概念、架构设计和实践应用。作为革命性的 Java 运行时技术,GraalVM 原生镜像通过提前编译(AOT)将 Java 应用程序编译为本地可执行文件,显著提升了启动性能和资源利用率。本文将深入探讨其工作原理、构建流程、性能优化以及与云原生环境的集成,帮助开发者构建新一代高性能 Java 应用。
290 0
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的快递分拣管理系统
本系统基于SpringBoot框架,结合Java、MySQL与Vue技术,构建智能化快递分拣管理平台。通过自动化识别、精准分拣与实时跟踪,提升分拣效率与准确性,降低人力成本,推动快递行业向智能化、高效化转型,助力电商物流高质量发展。