"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Using MMS to Build New Environments
1. MMS – Using MMS to Build
New Environments
MMS Technical Account Manager, MongoDB
Peter C. Gravelle
@mongodb
2. What you are going to get out of today’s
talk
A. What is MMS
A. Monitoring
B. Backup
B. What you can do with MMS Backup
A. Spin up secondaries with minimal impact on your
primary
B. Build a sandbox for development or analytics to play in
8. What does MMS Monitoring give
you?
• Server metrics
• Activity feed
• Alerts
• Hardware stats (optional)
• User management
• Logs and profiling data
18. Cloud Version
1. Go to http://mms.mongodb.com
2. Create an account
3. Install one agent in your datacenter
4. Add hosts from the web interface
5. Enjoy!
23. Cloud Version - Billing
• 12-months pre-paid:
• $50 / GB / year
• 6-hour interval snapshot stored for two days
• Weekly snapshots stored for 1 month
• Monthly snapshots stored for 1 year
• Payment method: invoiced
24. Cloud Version - Billing
• Pay as you go
• Oplog processing: $1 / GB / month
• Snapshot storage: $0.08 / GB / month
• Customer defines snapshot frequency and retention
policy
• Payment method: online
25. What kind of environments
can you create with MMS
Backup?
26. What kind of environments can you
create?
• Spin up a new secondary quicker at minimal
additional load
• Build a sandbox for analytics or developers
28. Using Backup Snapshots to Spin Up
Secondaries
Spinning up secondaries can take a long time if the
data size is large.
You can make your own data file snapshots by taking
down a secondary and copying it off.
But why? MMS Backup has your data files already!
29. Spinning up secondary overview
1. Prepare your new environment
2. Get your restore files
3. Extract the restores
4. Make it a secondary
30. Preparing to spin up the secondary
Make sure you have room for your snapshot
31. More preparation
Ensure that you have enough oplog window to
prevent an initial sync. Remember you have to
download the snapshot and startup a mongod
process.
32. Spinning up secondary overview
1. Prepare your new environment
2. Get your restore files
3. Extract the restores
4. Make it a secondary
34. Spinning up secondary overview
1. Prepare your new environment
2. Get your restore files
3. Extract the restores
4. Make it a secondary
35. Extract Image and Start mongod
tar –xvf backup-restore-file-name.tar.gz
mv backup-restore-file-name data
mongod --port PORT --dbpath data --logpath=data/monogdb.log
This brings up your data in a standalone.
36. Spinning up secondary overview
1. Prepare your new environment
2. Get your restore files
3. Extract the restores
4. Make it a secondary
37. Seed the standalone as a secondary
Run seedSecondary.sh with its appropriate options to
create the oplog collection with the correct timestamp.
Shut down the mongod process when this is
complete
38. Start up the secondary with the seeded
oplog
mongod --port=PORT --dbpath=data --logpath=data/mongodb.log --
replSet=REPLICASETNAME
This PORT can be different than the other mongod
process you started. The REPLICASETNAME should
be the same as the name of the replica set that you
will be connecting it back to.
39. Connect the new secondary
On the primary, connect a mongo shell and run:
rs.add(“NEWSECONDARY:PORT”)
Where NEWSECONDARY is the hostname of the
secondary you just spun up, and PORT is the port
defined in the previous examples.
Now, just wait for rs.status() for the
NEWSECONDARY to report that it’s in status
SECONDARY. (Or check MMS!)
41. Analytics, am I right?!
The analytics people can be a bane to ops. Why?
• They want to do big queries
• They want to do slow queries
• Their queries are just infrequent enough to not
justify building indexes for them
• Never mind the performance penalty for each index
43. So build them a sandbox!
They can have their own (non-customer-impacting)
DB off of your most recent snapshot.
• Keeps them off the production servers
• Lets them process the data as they wish
• New collections with generated data
• Lets them try new methods and applications
44. How to build a sandbox
1. Get your restore files
2. Extract them
3. Set up sharding
45. Get your Restore files
The same rules apply:
• Make sure you have the space
• Choose push or pull (SCP/HTTPS)
• Pick the snapshot you want
• Wait for the download to complete
46. How to build a sandbox
1. Get your restore files
2. Extract them
3. Set up sharding
47. Extract your snapshot
tar –xvf backup-restore-file-name.tar.gz
mv backup-restore-file-name data
mongod --port PORT --dbpath data --logpath=data/monogdb.log
This brings up your data in a standalone. You can
stop here (unless you’re sharding).
48. How to build a sandbox
1. Get your restore files
2. Extract them
3. Set up sharding
49. Sharding Step 1
Bring up the config server
tar –xvf backup-restore-file-name.tar.gz
mv backup-restore-file-name data
mongod --port=CONFIGSRVRPORT --dbpath=data --logpath=data/mongodb.log --
configsvr=true
50. Sharding step 2
Update the shard metadata: Remember, you have a
new environment here, new hosts & ports!
mongo --port=CONFIGSRVRPORT
use config
db.shards.find().pretty()
Repeat if you’re setting up multiple config servers, but
this is not necessary for this non-production
environment.
Remember, this
only tells you what
you need to update!
51. What you got out of today’s talk
A. What is MMS
A. Monitoring
B. Backup
B. What you can do with MMS Backup
A. Spin up secondaries with minimal impact on your
primary
B. Build a sandbox for development or analytics to play in