关于 Incus 数据库¶
Incus 使用分布式数据库来存储服务器配置和状态,这使得查询速度比将配置存储在每个实例的目录中(例如 LXC 所做的那样)更快。
为了理解这些优势,请考虑对所有实例配置的查询,例如“哪些实例正在使用br0
?”。在没有数据库的情况下,您必须遍历每个实例,加载并解析其配置,然后检查其中定义了哪些网络设备。使用数据库,您可以对数据库运行一个简单的查询来检索此信息。
Cowsql¶
在 Incus 集群中,集群的所有成员必须共享相同的数据库状态。因此,Incus 使用Cowsql,这是 SQLite 的分布式版本。Cowsql 提供复制、容错和自动故障转移,而无需外部数据库进程。
当将 Incus 作为单机而不是集群使用时,Cowsql 数据库的行为实际上就像一个普通的 SQLite 数据库。
文件位置¶
数据库文件存储在 Incus 数据目录的database
子目录中(/var/lib/incus/database/
)。
将 Incus 升级到较新版本可能需要更新数据库模式。在这种情况下,Incus 会自动存储数据库的备份,然后运行更新。有关更多信息,请参阅升级 Incus。
备份¶
有关如何备份 Incus 数据库内容的说明,请参阅备份数据库。