by susan » Wed Aug 06, 2014 11:30 am
Can I deploy Aerospike on Virtual Machine?
Yes, Aerospike can be deployed on Virtual Machine.
The question is if a Virtual Machine environment can provide sufficient performance and throughput to meet your business SLA both now and the anticipated SLAs and growth in the future. In general, bare metal will provide the best performance and throughput, but many people want the option of deploying on Virtual Machine, whether in house or in the cloud. Aerospike has been successfully deployed in AWS and other cloud and hosted environments, and on different VM configurations.
Virtual Machines in general will slow Aerospike down. There are too many factors for us to be specific about what type of performance decrease you will see. It depends on the type of VM, how it’s set up, how well it can access the SSDs (if you choose to use SSDs), what kind of hardware it runs on, the amount of memory allocated, and the list goes on. So if this is the route you wish to go, then you must do performance tests to determine if the latency/throughput of your configuration is acceptable to your SLAs.
When deploying on bare metal, we advise customers to run a single instance of Aerospike on the server, not try to run multiple instances. Aerospike is designed to optimize all the cores and CPUs, memory and other resources you can give it. So it follows that if you choose to use a Virtual Machine, it is strongly recommended that 1 VM run on 1 hardware server for the same reason.
Of course, the next question someone will ask is if this is still true for hardware that can be segmented into separate servers. The answer is - that depends on whether this configuration allows you to meet all your disaster recovery scenarios. Is there the possibility that a power supply problem can take out your entire cluster? If the appliance shares other resources, is this going to cause other problems? Is there enough network capacity?
If you choose to deploy with this configuration, consider having multiple physical servers, because like a rack configuration, an entire rack/server can go down, and you want to design so that 1 rack or server going down will still provide you with a copy of your data in the database cluster. When you configure for rack-aware, Aerospike will ensure that the two copies of your data will reside on servers on different racks (servers).
Regardless of the configuration you finally choose - bare metal, VM, cloud, hosting provider, etc, we recommend you run the ACT (Aerospike Certification Tool) to verify your anticipated production configuration before going into production. ACT will be able to simulate the type of latency and throughput you can expect from your configuration.
Have a GREAT day!