部署在 Azure 虚拟机上的 Web 应用程序:持久磁盘 VS 临时磁盘

Web app deployed on Azure Virtual Machine: persistent VS temporary disk

我已通过执行以下步骤在 Azure 虚拟机上部署了 Web 应用程序后端 (Python / Flask):

  1. 创建一个 Linux VM 并通过 ssh 进入其中
  2. 从 github
  3. 下载我的应用程序的源代码
  4. 安装 pip,创建 Python 3.6 虚拟环境并安装所有必要的 Python 软件包
  5. 安装 tmux 并创建一个新的 tmux 会话,然后 cd 到包含我的应用程序主脚本(启动 Flask 应用程序的脚本)和 运行“python3 main.py”的文件夹. Flask 应用程序现已启动 运行ning,可以接收请求。

但是,根据我对临时 VS 永久磁盘的了解,我猜我的源代码和 Python 包现在存储在 临时磁盘 上,这意味着它们可能由于硬件故障、维护事件等意外丢失。我的猜测是否正确,还是我遗漏了什么?

如果是这样,这是否意味着我必须将永久磁盘附加到我的 VM 并将我的所有文件存储在那里?或者有没有更方便的方法来解决这个问题(例如切换到不同的 Azure 服务)?

所有 Azure VM 都包含一个托管磁盘(OS 所在的磁盘)和一个临时磁盘,顾名思义;是暂时的。在 Linux VM 上适用以下内容(如 Microsoft docs 中所述)。

On Azure Linux VMs, the temporary disk is typically /dev/sdb

因此,除非您已明确使用该路径,否则您很可能没问题。

你可以得到消息here,Linux上的临时磁盘是/dev/sdb,你可以执行命令df -h然后你会看到类似的输出这个:

表示临时盘中只存放/mnt/路径下的文件夹。并且还可以得到/路径下的所有文件夹都存放在/dev/sda磁盘中,是OS磁盘和一个托管磁盘,os是持久磁盘磁盘。

does this mean that I have to attach a persistent disk to my VM and store all my files there?

如果您没有特殊的 purpose,则不必将永久磁盘附加到您的 VM。