Назад | Перейти на главную страницу

Почему документация MongoDB рекомендует запускать Raid 10 на EBS?

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

Посмотреть здесь: http://www.mongodb.org/display/DOCS/Amazon+EC2#AmazonEC2-EBSvs.LocalDrives

Что вы спрашиваете - «почему MongoDB рекомендует EBS вместо локальных дисков» или «почему MongoDB рекомендует RAID-10 вместо единственной EBS?» Я думаю, что на оба вопроса довольно хорошо даны ответы в приведенной вами ссылке, но резюмирую:

  • EBS против локального диска: это несложно, если вы хотите, чтобы ваши данные MongoDB пережили сбой или перезагрузку экземпляра. Локальный диск уходит вместе с экземпляром.
  • RAID-10 EBS: Проще говоря, производительность EBS чертовски низкая (и, что еще хуже, непостоянна). RAID-10 как минимум распределяет нагрузку на множество томов.

редактировать: Итак, есть третий вопрос. Фактические данные эталонного тестирования, на которые ссылается ссылка в вашем комментарии, исчезли, поэтому у нас есть только комментарий, но я бы сказал, что это плохой тест, потому что задействованная логика неверна. Для разных уровней RAID требуются следующие блоки ввода-вывода:

  • RAID1: N записывает на N дисков
  • RAID5: N-2 чтения (собирать существующие неизмененные данные в полосе - возможно, кэшированные, если вам повезет), 2 записи на N дисков
  • RAID10: 2 записи на N дисков

Я не могу объяснить, почему тест дал такие результаты, потому что данные ушли, но я предполагаю, что было выполнено недостаточно тестовых прогонов, чтобы сгладить внутреннюю изменчивость при тестировании общего ресурса. Я проделал много подобной работы для Heroku еще тогда, когда вариативность прогонов во времени (и по объемам) была ужасной.

Что касается статьи в Википедии, которую вы цитируете, в данном случае она неуместна, потому что все дело в RAID-5 в высокопроизводительном устройстве SAN; вы используете RAID-5 внутри виртуальной машины, в которой отсутствует возможность сделать «задачу пересчета четности и перераспределения [...] выполняемой как внутренний процесс прозрачным для хоста» - среди множества других отличий между «большим SAN» и «программным RAID».

Не так давно 10gen провел вебинар, посвященный использованию MongoDB на AWS. Он решает две проблемы: (1) производительность и (2) отказоустойчивость в связи с недавним многодневным отключением AWS в единой зоне доступности. Их решение - RAID 10 на многих узлах.

Я предлагаю вам просмотреть слайды, поскольку они могут объяснить намного лучше, чем я могу в сообщении SF.

http://www.10gen.com/presentations/mongodb-austin/2012/mongodb-on-amazon-ec2 http://www.10gen.com/presentations/webinar-best-practices-mongodb-aws