我在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
我不理解指南中的一个词......只有我......?是否有更简单易懂的指南来实现这一目标? 谢谢!
答案 0 :(得分:3)
我遇到的问题描述如下: 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 :(得分:2)
步骤
sudo yum -y install mongo-10gen-server
应该创建一个用户来运行mongodb。但是,对于该用户是否被称为 mongod 或 mongo ,10Gen的文档存在冲突。
请尝试以下方法:
sudo chown mongo:mongo / data
该步骤将 / data 目录的所有权更改为用户 mongo 和 mongo 组。
答案 2 :(得分:0)
使用像Scalegrid.io这样的mongodb管理解决方案可能会更容易,该解决方案会在您的EC2帐户中创建mongodb实例。让实例运行实际上是工作中更容易的部分。你需要考虑