【问题标题】:mongodb EBS on EC2EC2 上的 mongodb EBS
【发布时间】:2012-10-18 21:31:20
【问题描述】:

我在 ec2 上使用 mongodb 和 nodejs,我想部署它以支持每天 10,000 个请求。 我想确保如果实例终止或重新启动(?)以某种方式数据库不会丢失。 我知道我需要创建一个 EBS 卷来存储数据。

我尝试了http://www.mongodb.org/display/DOCS/Amazon+EC2+Quickstart#AmazonEC2Quickstart-ConfigureStorage,但没有成功。我到了应该跑的地步 [ec2-user@domU-... ~]$ sudo chown mongod:mongod /data 但我得到: chown: 无效用户: `mongod:mongod'

解决了:sudo chown mongod.mongod /data 仍然无法运行 mongod 工作:

$sudo /etc/init.d/mongod start
Starting mongod: forked process: 1694
all output going to: /log/mongod.log
                                                           [FAILED][ec2-user@domU-... /]$ sudo mongod --dbpath=/data
Mon Oct 29 21:46:56 [initandlisten] MongoDB starting : pid=1675 port=27017 dbpath=/data 64-bit host=domU-...
Mon Oct 29 21:46:56 [initandlisten] db version v2.2.0, pdfile version 4.5
Mon Oct 29 21:46:56 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Mon Oct 29 21:46:56 [initandlisten] build info: Linux ... c8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Mon Oct 29 21:46:56 [initandlisten] options: { dbpath: "/data" }
Mon Oct 29 21:47:00 [initandlisten] journal dir=/data/journal
Mon Oct 29 21:47:00 [initandlisten] recover : no journal files present, no recovery needed
Mon Oct 29 21:47:00 [initandlisten] 
Mon Oct 29 21:47:00 [initandlisten] ERROR: Insufficient free space for journal files
Mon Oct 29 21:47:00 [initandlisten] Please make at least 3379MB available in /data/journal or use --smallfiles
Mon Oct 29 21:47:00 [initandlisten] 
Mon Oct 29 21:47:00 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Mon Oct 29 21:47:00 dbexit: 
Mon Oct 29 21:47:00 [initandlisten] shutdown: going to close listening sockets...
Mon Oct 29 21:47:00 [initandlisten] shutdown: going to flush diaglog...
Mon Oct 29 21:47:00 [initandlisten] shutdown: going to close sockets...
Mon Oct 29 21:47:00 [initandlisten] shutdown: waiting for fs preallocator...
Mon Oct 29 21:47:00 [initandlisten] shutdown: lock for final commit...
Mon Oct 29 21:47:00 [initandlisten] shutdown: final commit...
Mon Oct 29 21:47:00 [initandlisten] shutdown: closing all files...
Mon Oct 29 21:47:00 [initandlisten] closeAllFiles() finished
Mon Oct 29 21:47:00 [initandlisten] journalCleanup...
Mon Oct 29 21:47:00 [initandlisten] removeJournalFiles
Mon Oct 29 21:47:00 [initandlisten] shutdown: removing fs lock...
Mon Oct 29 21:47:00 dbexit: really exiting now

我不明白指南中的一个词...只有我一个...?是否有更简单易懂的指南来实现这一目标? 谢谢!

【问题讨论】:

  • 您指的指南非常好。但是,如果您在将用户组分配给某个目录时遇到问题,您可能需要阅读一下...

标签: linux node.js mongodb amazon-ec2


【解决方案1】:

我遇到的问题描述如下: http://doubleclix.wordpress.com/2012/05/04/notes-on-mongo-at-aws/

最后我按照指南: http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf

mongo 正在运行! 除了根卷 ebs 之外,我只创建了一个 EBS(20 GiB)并将其挂载到 /data/db

我希望我的部署能够与 nodejs 和每天 10,000 个客户端请求一起正常工作。 (如果我错了,或者如果有人对我描述的部署有任何建议,我将不胜感激)

谢谢

【讨论】:

  • +1 用于指向 aws_nosql_mongo 文档。非常有用的信息
【解决方案2】:

步骤

sudo yum -y install mongo-10gen-server

应该已经创建了一个用户来运行 mongodb。但是,10Gen 的文档对于该用户被称为 mongod 还是 mongo 存在冲突。

请尝试以下方法:

sudo chown mongo:mongo /data

该步骤将 /data 目录的所有权更改为用户 mongo 和组 mongo

【讨论】:

  • mongodb 也是后来版本中某些地方使用的。本质上,您可以创建自己的用户,只需使用该用户编辑配置文件即可轻松 tbh
【解决方案3】:

使用像 Scalegrid.io 这样的 mongodb 管理解决方案可能会更容易,它会在您的 EC2 帐户中创建 mongodb 实例。让实例运行实际上是工作中更容易的部分。你需要考虑

  1. 备份
  2. 恢复
  3. 监控
  4. 在您的区域出现故障时提供高可用性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2020-11-29
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多