我想在 Azure 上以高持久性设置设置数据库。我以前依赖数据库即服务产品,但在这种情况下不能这样做,所以我希望您对以下计划提供反馈。这足以确保数据的可靠存储吗?
- Azure Web App 从 Web 获取指标数据,进行一些小的处理和采样,然后将数据批量发送到 VM2。
- VM2 运行 Clickhouse 数据库,并将数据存储在 Azure 托管磁盘上
- 一些定期作业使用 Clickhouse 内置备份功能拍摄磁盘快照并将其存储到冷存储
定期备份旨在减少人为错误,即在错误数据上意外运行“DROP TABLE xx”。
最大的问题是托管磁盘是否是数据库复制的可接受替代品,以确保数据的持久性。Azure 托管磁盘被宣传为非常耐用的存储形式,具有内置的三重冗余复制。它们被宣传为适合数据库使用。这似乎足以消除因硬件故障而导致数据丢失的任何担忧。这个对吗?你觉得这有什么潜在的问题吗?
恢复计划是,如果 VM2 发生故障,一些监控进程会捕捉到这一点并启动一个新的 VM2 实例,该实例附加到同一个托管磁盘。如果 Web App 失败,Web 应用程序同样会重新启动。
我知道这种设置不是高可用性的,如果虚拟机出现故障,它会需要一段时间才能存储新数据。这对我来说是可以接受的。但我想确保存储的数据不会丢失,即以非常高的概率持久存储。这足以确保这一点吗?你看有什么问题吗?
是的。它可能会发生,但这是一个极低概率的事件,并且还有许多其他低概率事件更有可能发生。由于来宾操作系统驱动程序问题、人为错误或恶意软件,您的数据丢失的可能性比 Azure 丢失磁盘上的数据的可能性要大得多。
看:
Azure 存储冗余
不管这意味着什么,你可以打赌,很多事情都必须出错才能丢失磁盘。
如果您很高兴从其他情况的备份中恢复,那您应该没问题。