Escolhendo o armazenamento correto ao hospedar o MongoDB no EC2

1

Estou configurando um cluster do MongoDB em instâncias do Amazon EC2 e a documentação diz ...

...for best performance we recommend separate volumes for data files, the journal, and the log. Each has different write behavior, and placing them on separate volumes reduces I/O contention.

Em seguida, segue-se com ...

Note: Using different storage devices will affect your ability to create snapshot-style backups of your data, since the files will be on different devices and volumes.

Mas não diz o que isso pode afetar.

Suponho que o efeito é que ele remove completamente sua capacidade de fazer backups de estilo de instantâneo enquanto a instância está em execução?

Se eu parasse o serviço MongoD para que o arquivo de dados, o diário e o log não fossem mais gravados e fizesse a captura instantânea de todos os três, eu ainda obteria um backup restaurável seguro?

    
por BenCr 03.12.2015 / 11:55

1 resposta

1

A resposta de acordo com Mongo é:

Liberar e bloquear o banco de dados

As gravações precisam ser suspensas no sistema de arquivos para fazer uma cópia estável dos arquivos do banco de dados.

Antes do MongoDB versão 2.0, isso é obtido através do shell do MongoDB usando fsync e lock:

mongo shell> use admin
mongo shell> db.runCommand({fsync:1,lock:1});
{
   "info" : "now locked against writes, use db.$cmd.sys.unlock.findOne() to unlock",
   "ok" : 1
}

O MongoDB 2.0 adicionou o método db.fsyncLock () para bloquear o banco de dados e liberar gravações em disco e adicionou o método db.fsyncUnlock () para desbloquear o banco de dados após a conclusão do instantâneo.

Durante o tempo em que o banco de dados é bloqueado, qualquer pedido de gravação que este banco de dados receber será rejeitado. Qualquer código de aplicativo precisará lidar com esses erros de maneira apropriada.

Como definir o Mongo com o EC2 é abordado aqui: link

E o backup é coberto aqui: link

    
por 03.12.2015 / 12:59