【发布时间】:2017-10-12 22:13:04
【问题描述】:
我创建了一个包含单个作业的池(大小 Standard_D32_v3)。我已经设置了池属性max_tasks_per_node=32。
然后我有一个包含 27000 个对象的列表。
由于我一次不能向作业添加超过 100 个任务,因此我将列表“分块”,以便我有一个列表列表,每个列表包含 100 个任务。
最后,我插入每个“块”任务。
在 StartTask 中,我挂载了一个文件共享(不是 BLOB),其中包含处理所需的文件。
我的文件共享有文件夹:2012、2013、2014、2015、2016、2017。
我发现由于某种原因,Azure Batch 正在删除除 2017 年以外的所有文件和文件夹。这是第二次发生这种情况。
我不能从文件共享或其他任何地方删除我的代码中的哪个位置。
我确实会在完成后删除池、作业和任务。
*&^% 是怎么回事?
更新
这种情况仍在发生。
当文件共享被挂载时,它是通过 Bash 作为传递给 StartTask 的命令来完成的。 Azure 门户提供文件共享的连接信息,并提供以下 CHMOD 配置:dir_mode=0777,file_mode=0777'
我想我会很聪明,将 CHMOD 属性更改为 444(只读)。 不幸的是,然后我收到“权限被拒绝”错误。然后我更改为 555(读取并执行),文件再次被删除。
这 100% 是 Azure Batch 的问题。 Microsoft 不会对文件共享进行任何记录(甚至允许用户记录)。我希望看到删除请求/操作以及请求来自哪个 IP 和时间,但是唉,这是不可能的......
【问题讨论】:
-
您要将文件共享挂载到哪里?
-
@fpark 到 $AZ_BATCH_NODE_SHARED_DIR/data
-
您在
data中放置了什么?我唯一能想到的是,当 Azure Batch 在删除时清理任务时,您是否以某种方式将任务目录重定向到文件共享。 -
我正在将我的文件共享挂载到该文件夹。我已经尝试创建并安装到不同的目录,但同样的事情发生了......而且它不会每次都发生。
-
您的任务目录中是否有符号链接指向
data中的文件?
标签: python azure-batch