I am going to setup MongoDB cluster:
3 config servers, 3 routing servers, 2 shards (replica set per shard).
A replica set is just simply 1 primary, 1 secondary and 1 arbiter.
Therefore, in my concept, totally 12 (3 + 3 + 2*3) servers will be setup.
However, it is limited only 3 servers physically. Is there any good way to allocate those instances into 3 servers?
My idea is that:
ServerA - 1 config instance, 1 routing instance, 1 primary (shard I), 1 secondary (shard II)
ServerB - 1 config instance, 1 routing instance, 1 secondary (shard I), 1 arbiter (shard II)
ServerC - 1 config instance, 1 routing instance, 1 arbiter (shard I), 1 primary (shard II)
In a result, if one server is down, the whole MongoDB cluster still works. Since I lack in experience of database cluster and distributed system, I would like to obtain professional suggestion from all of you.
In addiction, I would like to know is it possible to allocate MongoDB data to other server storage (i.e. SAN)?
Thank you for any advices.