我将SQLite用于我想要在NFS上保留的数据库。我的群集中的任何VM可能会在某些时候关闭,在这种情况下,docker swarm将在另一个VM上启动副本以接管。
不幸的是,NFS似乎不支持文件锁定,因此我将其关闭(通过安装" nolock")现在我担心我是否可以确定数据不会被破坏。
我能想到的场景是:其中一个虚拟机只是从互联网断开,只是让另一个副本旋转并接管流量,然后它又回来并写入数据库 - >损坏的数据
如果支持文件锁定,是否可以保存使用这样的NFS? 我是否正确地假设它不是" nolock"指定?
答案 0 :(得分:1)
documentation说nolock
:
这对于访问不支持锁定的文件系统上的数据库很有用。警告:如果两个或多个进程写入同一数据库,并且其中任何一个进程使用nolock = 1,则可能导致数据库损坏。
另一种方法是使用unix-dotfile
VFS通过创建单独的文件来实现锁定。这甚至可以在无锁NFS上运行,但