我用一个Job创建了一个Pool(大小为Standard_D32_v3
)。我已经设置了池属性max_tasks_per_node=32
。
然后我有一个包含27000个对象的列表。
由于我不能一次向作业添加超过100个任务,我和#34; Chunk"我的列表,以便我有一个列表列表,每个列表有100个任务。
最后,我插入每个" Chunk"任务。
在StartTask中,我挂载一个文件共享(不是BLOB),其中包含处理所需的文件。
我的文件共享包含文件夹:2012,2013,2014,2015,2016,2017。
我发现由于某种原因,Azure Batch正在删除所有文件&文件夹除了2017年。这是第二次发生。
我的代码中没有从文件共享或其他任何地方删除的内容。
完成后我会删除池,作业和任务。
*& ^%正在进行什么?
更新
这仍然在发生。
安装文件共享时,它是通过Bash作为传递给StartTask的命令完成的。 Azure门户提供文件共享的连接信息,并提供以下CHMOD配置:dir_mode=0777,file_mode=0777'
我认为我会聪明并将CHMOD属性更改为444(只读)。 不幸的是,我接受了#34; Permission Denied"错误。然后我改为555(读取并执行),文件再次被删除。
这是Azure Batch 100%的问题。 Microsoft不会对文件共享进行任何记录(甚至允许用户)。我希望看到删除请求/操作以及请求来自哪个IP和时间,但唉,这是不可能的......
答案 0 :(得分:0)
2017-10-19的所有Azure区域都部署了一个修复程序,可以防止此行为发生。您需要重新部署池才能获得此修复 - 如果您已经在$AZ_BATCH_NODE_ROOT_DIR
下安装了某些内容,则建议在删除池之前先远程登录该节点并卸载该设备。< / p>
旁注:不建议在任务目录下安装任何资源。由于任务目录在删除时会被清除,因此可能会导致删除已安装的资源。