如何解决带有卷的AWS任务mongodb容器-/ data / db目录上已经运行了另一个mongod实例
我有一个ECS集群,它在AWS上运行带有两个容器的一项任务。其中一个容器正在运行节点后端服务器,另一个正在运行mongodb数据库。我们之前对运行该任务的已定义服务的所有部署和更新都没有错误,并且停机时间基本上为零。
我们最近通过任务的AWS JSON配置设置添加了一个docker卷,以通过任务更新使数据库持久化,但这带来了一些错误,我不确定如何解决此问题。当我们使用新的任务定义更新服务时,该服务始终会在部署时失败,我们需要首先手动停止当前正在运行的任务,然后使用新的任务定义重新创建服务。
以下内容由mongodb容器记录(另一个永不启动,因为它要求首先启动mongo):
2020-08-31 11:10:462020-08-31T09:10:46.593+0000 I CONTROL [initandlisten] allocator: tcmalloc
2020-08-31 11:10:462020-08-31T09:10:46.593+0000 I CONTROL [initandlisten] modules: none
2020-08-31 11:10:462020-08-31T09:10:46.593+0000 I CONTROL [initandlisten] build environment:
2020-08-31 11:10:462020-08-31T09:10:46.593+0000 I CONTROL [initandlisten] distmod: ubuntu1804
2020-08-31 11:10:462020-08-31T09:10:46.593+0000 I CONTROL [initandlisten] distarch: x86_64
2020-08-31 11:10:462020-08-31T09:10:46.593+0000 I CONTROL [initandlisten] target_arch: x86_64
2020-08-31 11:10:462020-08-31T09:10:46.594+0000 I CONTROL [initandlisten] options: { net: { bindIp: "*" },security: { authorization: "enabled" } }
2020-08-31 11:10:462020-08-31T09:10:46.594+0000 I STORAGE [initandlisten] exception in initAndListen: DBPathInUse: Unable to lock the lock file: /data/db/mongod.lock (Resource temporarily unavailable). Another mongod instance is already running on the /data/db directory,terminating
2020-08-31 11:10:462020-08-31T09:10:46.594+0000 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2020-08-31 11:10:462020-08-31T09:10:46.595+0000 I - [initandlisten] Stopping further Flow Control ticket acquisitions.
2020-08-31 11:10:462020-08-31T09:10:46.595+0000 I CONTROL [initandlisten] now exiting
2020-08-31 11:10:462020-08-31T09:10:46.595+0000 I CONTROL [initandlisten] shutting down with code:100
如您所见,我们得到:
initAndListen中的[initandlisten]异常:DBPathInUse:无法锁定锁定文件:/data/db/mongod.lock(资源暂时不可用)。另一个mongod实例已经在/ data / db目录上运行,终止
因为我们在服务上拥有当前设置:
Number of desired tasks: 1
Minimum healthy percent: 100
Maximum healthy percent: 200
我们正在尝试在退出旧任务之前启动新任务,以确保不造成停机,但是,新的mongodb实例正尝试访问与旧任务相同的卷...我开始认为这是错误的设置类型,我们应该在单独的服务或更改策略上运行它们。
是否可以将停机时间设置为0,并以某种方式解决两个试图同时访问同一卷的mongodb实例的问题?如果不是,应该如何对服务/任务进行AWS设置,以使我们不必在每次进行新部署时都手动删除并重新制作服务?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。