【问题标题】:Azure Batch is deleting files from File ShareAzure Batch 正在从文件共享中删除文件
【发布时间】: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


【解决方案1】:

在 2017 年 10 月 19 日向所有 Azure 区域部署了一个修复程序,应该可以防止这种行为发生。您需要重新部署您的池才能获得此修复 - 如果您已经在 $AZ_BATCH_NODE_ROOT_DIR 下安装了某些东西,那么建议您在删除池之前先远程登录到节点并卸载设备。

附带说明:不建议在任务目录下挂载任何资源。因为任务目录在删除时会被清理,这会导致挂载的资源被删除。

【讨论】:

  • 感谢您告诉我。我一直在通过 Pool StartTask 安装。关于it is not recommended to mount any resource under a task directory.,最好的安装位置是哪里?有环境变量吗?另外,没有什么可以防止删除已安装的资源吗?存在这种行为似乎很危险。
  • 任务目录是指$AZ_BATCH_TASK_DIR$AZ_BATCH_TASK_WORKING_DIR 下的任何内容。您现在应该可以安全地在 $AZ_BATCH_NODE_SHARED_DIR 下挂载项目了。
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 2022-10-19
  • 2020-10-07
  • 2021-10-20
  • 2021-05-08
  • 2021-12-23
  • 2020-09-30
  • 2021-09-30
相关资源
最近更新 更多