2013-08-23 4 views
1

Я новичок в mongodb и amazon ec2.
Мне кажется, что реплики mongo здесь, чтобы: 1/избежать потери данных и 2/сделать чтение и обслуживание быстрее.
В Amazon у них есть эта вещь EbS. Насколько я понимаю, это глобальное постоянное хранилище, например dropbox.
Итак, есть ли необходимость иметь реплики, если абстракция амазонки отнимает потребность в EBS?
Заранее благодарен
ThomasКак реплики mongodb сравниваются с amazon ebs?

+0

EBS и реплики - это две совершенно разные вещи и работа на двух совершенно разных уровнях. – Sammaye

ответ

1

Позвольте мне пояснить несколько вещей.

EBS по существу является SAN Volume, если вы привыкли работать в существующих технологиях. Он может быть прикреплен к одному экземпляру, но он все еще имеет ограниченный IO. Использование RAID может помочь максимизировать IO, предоставленные IOPS могут помочь вам максимизировать пропускную способность.

В идеале, однако, с MongoDB вы хотите иметь достаточно памяти, где индексы могут быть полностью доступны в памяти, производительность падает, если на диск нужно попасть.

Mongo может использовать Replicas, который в основном используется для восстановления после сбоя и репликации (вы можете отправлять сообщения в подчиненное устройство, но все записи нужно ударить по первому) и очертания, которые используются для разделения набора данных для повышения производительности. Вам все равно придется все это делать, даже если вы используете EBS для хранения.

+0

Итак, если у меня есть больше данных в моем db, чем 1 компьютер может обрабатывать, EBS не является решением, но вместо этого я должен использовать регулярные mongodb sharding и просто использовать серверы amazon для репликации и очертания и забыть о EBS, не так ли? – Thomas

+0

Вы по-прежнему будете использовать EBS. У вас есть только два варианта хранения в экземпляре EC2, EBS и хранилище экземпляров. Хотя хранилище экземпляров может обеспечить лучшую производительность (особенно для экземпляров SSD Hi IO), вы должны тщательно архивировать репликацию базы данных, поскольку хранилище экземпляров будет потеряно, если экземпляр будет остановлен. – datasage

+0

Глупое наблюдение: должно ли я иметь очень мало экземпляров и много томов EBS объемом 1 ГБ, очень мало экземпляров с томами ETS объемом 1 Тб или много экземпляров с несколькими томами EBS объемом 1 ГБ? – Thomas

1

Реплики не только для избыточности хранилища, но и для избыточности сервера. Что произойдет, если ваш MongoDB-сервер (который использует объем EBS) внезапно исчезнет, ​​потому что, например, узел, на котором сидит, терпит неудачу? Вам нужно будет сделать целую кучу вещей, например, клонировать новый экземпляр, чтобы заменить его, присоединить том к этому экземпляру, перенаправить на него трафик и т. Д. Реплики Монго означают, что вам не нужно это делать. Они продолжают работать, даже если один из них терпит неудачу, поэтому у вас есть в основном 0 времени простоя.

Кроме того, это еще один уровень избыточности. До сих пор вы можете доверять только EBS - что, если AWS имеет ошибку, которая стирает ваш том или делает его недоступным для недопустимо долгого времени? С наборами реплик вы можете даже реплицировать свои данные в зонах доступности или даже совершенно другом облачном провайдере.

Наборы реплик также позволяют считывать данные из нескольких узлов, поэтому теоретически можно увеличить пропускную способность чтения после того, как вы внедрили то, что дает соединение EBS с одним экземпляром.