A maneira mais simples de fazer isso é seguir as instruções aqui:
O único tempo de inatividade seria reiniciar o mongod com a nova opção e depois executar o comando initte. Uma vez que você estava em cima, você adicionaria outros secundários, sincronizaria e seria bom ir. Você poderia descer e promover uma das novas máquinas, se assim o desejasse, uma vez que elas fossem sincronizadas para completar a transição.
A outra opção seria criar um novo mestre e usá-lo para ser o principal do seu conjunto de réplicas. Para fazer isso fsync e bloquear o mestre como se estivesse realizando um backup (isso desativa as gravações, então tenha cuidado!):
Em seguida, copie os arquivos de dados do mestre atual para o db primário do conjunto de réplicas (desligue-o primeiro) e, em seguida, inicie-o normalmente. Os secundários devem então ser limpos e ressincronizados do zero a partir desse novo primário.
Você tem que usar o mestre, porque os escravos não têm oplog em uma configuração mestre / escravo e você deseja que um para o conjunto primário de réplica assuma o mais facilmente possível.
O teste que você precisa fazer para verificar se o conjunto de réplicas está funcionando é sua responsabilidade, assim como você gerencia a substituição de gravações do seu aplicativo. Para o tempo de inatividade zero (além do fsync e do bloqueio, onde nenhuma gravação seria possível), você poderia gravar temporariamente em ambos, talvez, e depois, quando estivesse feliz. Isso dependeria do fato do seu servidor de aplicativos lidar com o dobro do volume de gravação, é claro.
O bom disso é que você pode testá-lo antes de fazer qualquer transferência real e ver como você se sai.