RAID и базы данных
Я использую Postgresql 8.4, и я хотел знать, какой тип RAID в основном используется для баз данных. Я везде читал, что RAID10 лучше всего подходит, а RAID5 не очень хороший вариант. например: http://www.revsys.com/writings/postgresql-performance.html
Мой сервер - Dell Poweredge 2950. Служба поддержки Dell сказала, что у них мало клиентов, использующих RAID10. Чаще всего они используют RAID5 + кэш контроллера RAID.
Что ты об этом думаешь? Какой уровень RAID вы используете для своих серверов баз данных?
Спасибо!
8 ответов
Pol,
Я бы, наверное, пошел с RAID10, если у вас много написано в вашей базе данных.
Вот хороший пример из реальной жизни, который нужно рассмотреть... замена файлового сервера, который имеет только один жесткий диск емкостью 1 ТБ, на новый сервер с четырьмя жесткими дисками емкостью 1 ТБ. Было принято решение перейти с RAID5.
Производительность была заметно медленнее на новой машине. Позже было обнаружено, что сервер обработал ОЧЕНЬ больше записей, чем первоначально предполагалось. Плата за запись с RAID5 была довольно плохой.
Правильное решение в этом было пойти с RAID10.
Лучший ответ зависит от профиля, который ваша база данных подходит более точно: OLTP или OLAP. Для упрощения, ваша база данных делает больше записей или больше чтений? База данных, выполняющая больше операций записи, чем операций чтения, обычно работает лучше на raid10, чем на raid5 (при условии, что используется такое же количество дисков). Как упоминал Карл, если ваш набор данных (или диски) большой, держитесь подальше от R5 и используйте R6, если R10 не ваш выбор.
Это зависит от рабочей нагрузки, и вы должны тестировать.
Теоретически RAID 5 работает медленно для небольших записей. Большой кэш может значительно уменьшить это (или даже сделать его идентичным по производительности RAID 1+0 для данной установки).
Часто RAID 1+0 является политически сложным, так как дополнительное пространство рассматривается как потраченное впустую. Попытайтесь объяснить, что наличие пустого места на RAID5, которое можно использовать для повышения производительности, является другой формой расточительства.
Если вы не можете выполнить тестирование и у вас уже есть место на диске, всегда используйте RAID 1+0. Если вы не можете выполнить сравнительный анализ и вынуждены перейти на RAID5 или RAID6, убедитесь, что вы четко указали в письменной форме, что RAID6 и RAID5 имеют самый большой риск производительности для нагрузок с интенсивной записью. Убедитесь, что настойчивость, что вы настроили его таким образом, который создает наибольший риск производительности без предварительного тестирования, также изложена в письменной форме.
Когда вы проводите тестирование, проясните для группы приложений, выполняющих тестирование, как работает RAID5, тот факт, что контроллер имеет кэш, который может уменьшить небольшое наказание за запись, и что тест должен быть на наборе данных, идентичных размеру для производства,
Сделайте все это в письменном виде. Ошибки конфигурации хранилища - самая распространенная игра во всем мире. По сути, вам не будет позволено проводить сравнительный анализ, и вам придется угадывать, поэтому убедитесь, что у вас есть доказательства того, что вы сделали правильное предположение или что вам было сказано сделать что-то, противоречащее лучшим практикам.
Честно говоря, по моему опыту, я не вижу разницы в RAID5 по сравнению с RAID10 с точки зрения избыточности данных. Тем не менее, RAID10 предлагает повышение производительности из-за того, что RAID является чередующимся. RAID 10 - это в основном RAID0 и RAID1. Два набора RAID0 являются зеркальными (RAID1). Мы используем RAID5 поверх RAID10. Но нам не требуется увеличение производительности от RAID10. Это зависит только от вашей среды и от того, с чем вы работаете. Я бы порекомендовал попробовать RAID5. Если кажется, что производительность ниже, переходите к RAID10 и посмотрите, поможет ли увеличение производительности. Если у вас небольшие и средние рабочие нагрузки, RAID5 должен сделать свое дело.
Здесь вы найдете отчеты о производительности и масштабировании, касающиеся HP Proliant DL380 G5.
тесты основаны на различных файловых системах (jfs, xfs, reiserfs, ext2 и ext3).
SSD не всегда обеспечивают лучшую производительность. Они читают данные в упорядоченных блоках, которые могут не соответствовать потребностям базы данных.
При принятии решения, какой RAID и файловую систему использовать для базы данных, важны следующие вопросы:
- Насколько велик набор данных / диск?
- Сколько у тебя денег?
- Это тяжелый для чтения или тяжелый для записи?
Если набор данных большой, то есть> 10 ТБ, вам следует избегать RAID5. При перестройке массива вы можете потерять второй диск, что приведет к полной потере данных. RAID6 и RAID10 - хорошие профили, но имейте в виду ограничения с RAID10. Также: Выберите журнальную файловую систему, которая не требует регулярного fsck-входа; другими словами, избегайте ext3 и используйте что-то вроде xfs... или, что еще лучше, зайдите в Solaris и используйте zfs. Есть ли у вас какие-либо идеи, сколько времени потребуется, чтобы fsck объемом 10 ТБ?
Если у вас больше денег, вы можете купить внешний шкаф и получить дополнительное повышение скорости, так как компьютер не будет пытаться выполнять системную деятельность (ведение журнала и т. Д.) Во время чтения из набора данных. Вы также можете получить более качественный RAID-контроллер с большей оперативной памятью и более высокой пропускной способностью или более быстрые диски. По сути, вы получаете то, за что платите.
Если данные слишком тяжелы для чтения, вы можете придерживаться Raid10. Если ваши данные сбалансированы для чтения / записи или для записи, вам лучше придерживаться raid6.
Для лучшей производительности используйте SSD, затем R10, затем 1 или 0, затем 5, затем 6.
RAID5 используется потому, что его проще настраивать и думать, чем RAID10. Вам не нужно четное количество дисков, и больше людей знакомы с ним.
В прошлом мы всегда делали RAID5 (Dell PowerEdge 2650-2950), но на нашем последнем компьютере (работающем с MS-SQL, а не PostgreSQL) я тестировал и RAID10, и RAID5. Я обнаружил, что для нашей рабочей нагрузки RAID10 дал нам умеренное повышение производительности (~10%).
Если у вас есть время, я бы предложил настроить сервер в обоих направлениях и запускать обычные задачи БД (резервное копирование и восстановление, какие бы задания или отчеты вы не выполняли).