【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

 


 

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

相关文章
|
Oracle 关系型数据库 MySQL
MySQL复制表结构create table as与like的区别
MySQL复制表结构create table as与like的区别
741 0
|
存储 SQL 分布式计算
ClickHouse 高可用之副本
ClickHouse 使用副本机制增强数据可用性,复制数据到多个节点以备故障转移。仅MergeTree系列引擎支持副本,需使用`Replicated`前缀。副本是表级别,需先创建对应表结构。配置高可用副本需借助Zookeeper协调。在三台机器上部署,每台有三份数据。创建副本表时,需指定Zookeeper路径和唯一副本名称。通过`CREATE TABLE`语句在每个节点创建副本表并插入数据,然后验证数据同步。还可以使用工具如PrettyZoo查看Zookeeper中的副本表元数据。
1075 0
|
关系型数据库 MySQL 定位技术
MySQL与Clickhouse数据库:探讨日期和时间的加法运算。
这一次的冒险就到这儿,期待你的再次加入,我们一起在数据库的世界中找寻下一个宝藏。
573 9
|
NoSQL Java Redis
RedisTemplate 实现基于 Value 操作的简易锁机制
RedisTemplate 实现基于 Value 操作的简易锁机制
1463 0
|
Docker 容器
在Docker中,如何批量清理临时镜像文件?
在Docker中,如何批量清理临时镜像文件?
|
网络安全 数据安全/隐私保护 Python
【专栏】如何使用 Python 编写脚本批量备份交换机配置
【4月更文挑战第28天】本文介绍如何使用 Python 编写脚本批量备份交换机配置。主要步骤包括了解交换机命令和接口,安装 `paramiko` 库,获取交换机登录信息。脚本实现分为建立 SSH 连接,执行备份命令并保存结果。示例脚本中,定义了 `backup_switch_config` 函数遍历交换机列表进行备份,每次备份后等待一段时间。此方法能有效提高网络管理效率。
1661 0
|
数据采集 消息中间件 存储
Flume 快速入门【概述、安装、拦截器】
Apache Flume 是一个开源的数据采集工具,用于从各种数据源(如日志、网络数据、消息队列)收集大规模数据,并将其传输和加载到数据存储系统(如 HDFS、HBase、Hive)。Flume 由数据源(Source)、通道(Channel)、拦截器(Interceptor)和接收器(Sink)组成,支持灵活配置以适应不同的数据流处理需求。安装 Flume 包括解压软件包、配置环境变量和调整日志及内存设置。配置文件定义数据源、通道、拦截器和接收器,拦截器允许预处理数据。Flume 适用于构建数据管道,整合分散数据到中心存储系统,便于分析和报告。
2792 3
|
运维 监控
zabbix 触发器之count函数
zabbix监控中使用count函数,可以设置连续几次都异常才发出告警,确认多次以减少了很多误告警,提高了运维效率,这样一来,只要发出告警基本上就已经确定发生故障了。
|
网络协议 Unix Linux
Linux NSS简解
Linux NSS简解
|
存储 监控 Linux
在Linux中,什么是 inode ?
在Linux中,什么是 inode ?