作者:mobiledu2502931763 | 来源:互联网 | 2023-02-12 18:49
当我尝试sqlite3
在EFS目录上创建基础时,这会导致错误:
$ sqlite3 foo.db
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .log stderr
sqlite> CREATE TABLE foo (int bar);
Error: disk I/O error
有问题的Sqlite3数据库应仅用于故事元数据,并且不经常更新.不需要并发访问.但是,如果创建数据库的进程终止,则需要在不同的主机上重新启动该进程,并继续执行先前实例退出的位置.
亚马逊声称EFS是一个"文件系统,可以通过文件系统接口(使用标准操作系统文件I/O API)访问Amazon EC2实例,并且支持完整文件系统访问语义(例如强一致性和文件锁定) )".因此,我认为它适合手头的任务.
挂载选项/etc/fstab
包括:
eu-west-1a.fs-ID.efs.eu-west-1.amazonaws.com://efs nfs4 nfsvers = 4.1,rsize = 1048576,wsize = 1048576,hard,timeo = 600,retrans = 2 0 0
据我所知,通常不鼓励将数据库放在NFS上.但是,我相信,鉴于亚马逊和SQLite使用的语言,开发人员将继续尝试.
1> 2tim..:
更新(2017年3月6日):
EFS现在支持NFS v4.1锁定升级和降级:
https://aws.amazon.com/about-aws/whats-new/2017/03/amazon-elastic-file-system-amazon-efs-now-supports-nfsv4-lock-upgrading-and-downgrading/
来自文档:
锁定升级和降级:如果客户端尝试升级或降级现有锁定,则Amazon EFS将返回NFS4ERR_LOCK_NOTSUPP.
注意
由于不支持锁升级和降级,因此Amazon EFS也不支持需要此功能的用例,例如使用SQLite或IPython的用例.
看到:
http://docs.aws.amazon.com/efs/latest/ug/efs-ug.pdf
并且:
http://docs.aws.amazon.com/efs/latest/ug/nfs4-unsupported-features.html