【问题标题】:Why cloud application's file system is ephemeral为什么云应用程序的文件系统是短暂的
【发布时间】:2017-11-24 09:21:43
【问题描述】:

“超越 12 因子 APP”和“在云中设计和运行应用程序的注意事项”(https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html) 状态文件系统是短暂的。 但是我在使用 openstack 进行测试时得到了不同的结果:

  1. 使用openstack服务器创建VM create with centos qcow2 image, no 外部存储

  2. ssh 到 VM,在 /home/centos 下创建文件

  3. 重启虚拟机

  4. VM 启动后,文件还在。

我理解错了吗?

引用本书:

  1. 云友好型应用程序不只是在云中运行;它们包含 弹性可扩展性,临时文件系统

  2. 在“日志”一章中:云应用程序不能对它们运行的​​文件系统做任何假设,除了它是短暂的

    李>

引用“在云中设计和运行应用程序的注意事项”: “避免写入本地文件系统”:“本地文件系统存储是短暂的。”...“当应用程序实例崩溃或停止时,分配给该实例的资源是由平台回收,包括自应用程序启动以来所做的任何本地磁盘更改。当实例重新启动时,应用程序将使用新的磁盘映像启动。虽然您的应用程序可以在运行时写入本地文件,但文件将消失应用重启后。”

【问题讨论】:

    标签: 12factor


    【解决方案1】:

    意思是,在运行容器化应用程序时,您不能相信文件系统在重新启动之间存在很长时间,因为它可能会被清除,或者您下次可能会在不同的实例上运行。

    这并不意味着数据一定会消失 - 只是不能保证会保留 - 非常像普通服务器上的临时文件夹

    【讨论】:

    • 您的意思是这仅适用于容器化应用程序,而不适用于基于 VM 的应用程序吗?
    • 你能告诉一个数据肯定会消失/清除的案例吗?因为我测试了VM重启,所以数据还在。
    • 这是一个概念,意思是不要假设文件系统下次会保留,也不能假设它会被删除。数据丢失的最常见情况是您在不同的服务器上启动第二个实例,或者您使用的存储安装在临时文件系统上
    • 经过更多阅读(openstack 文档)和思考后,我认为您是对的:“这并不意味着数据一定会消失 - 只是不能保证会保留 - 非常像普通服务器上的临时文件夹”所以它是真正的云原生应用程序应该包含临时文件系统。谢谢。
    【解决方案2】:

    临时(非持久)存储默认提供给来宾,如果应用程序需要持久存储,可以使用 Cinder。

    【讨论】:

    • 我从 Glance 镜像创建了我的虚拟机,没有使用 cinder 卷。但数据仍然存在于 VM 重新启动。短暂的实际上是否意味着数据会因主机故障而丢失(VM 将在其他主机上重新启动)?是的,我知道煤渣量是持续存在的
    猜你喜欢
    • 2021-12-04
    • 2015-03-19
    • 2015-07-25
    • 1970-01-01
    • 2010-11-09
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多