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

RAID и базы данных

Я использую Postgresql 8.4, и мне хотелось узнать, какой тип RAID в основном используется для баз данных. Я везде читал, что RAID10 подходит лучше всего, а RAID5 - не лучший вариант. пример: http://www.revsys.com/writings/postgresql-performance.html

Мой сервер - Dell Poweredge 2950. Служба поддержки Dell сказала мне, что у них не так много клиентов, использующих RAID10. В большинстве случаев они используют кэш RAID5 + RAID-контроллера.

Что ты об этом думаешь? Какой уровень RAID вы используете для серверов баз данных?

Спасибо !

Пол,

Я бы, вероятно, выбрал RAID10, если вы много писали в свою базу данных.

Вот хороший реальный случай, который стоит рассмотреть ... замена файлового сервера с одним жестким диском емкостью 1 ТБ на новый сервер с четырьмя жесткими дисками емкостью 1 ТБ. Было принято решение перейти на RAID5.

Производительность на новой машине была ЗНАЧИТЕЛЬНО медленнее. Позже было обнаружено, что сервер обработал НАМНОГО больше операций записи, чем предполагалось изначально. Штраф записи из RAID5 был довольно плохим.

Правильным решением было использовать RAID10.

Это зависит от рабочей нагрузки, и вы должны провести тест.

Теоретически RAID 5 медленен для небольших операций записи. Большой кэш может значительно смягчить это (или даже сделать его идентичным по производительности RAID 1 + 0 для данной настройки).

Часто RAID 1 + 0 является политически сложным, поскольку дополнительное пространство рассматривается как потраченное впустую. Попытайтесь объяснить, что наличие пустого места на RAID5, которое можно было бы использовать для повышения производительности, - это еще одна форма бесполезной траты места.

Если вы не можете выполнить тест и у вас уже есть дисковое пространство, всегда используйте RAID 1 + 0. Если вы не можете выполнить эталонный тест и вынуждены перейти на RAID5 или RAID6, убедитесь, что вы четко указали в письменной форме, что RAID6 и RAID5 имеют наибольший риск для производительности при нагрузках с интенсивной записью. Убедитесь, что настойчивость в том, что вы настроили его таким образом, который создает наибольший риск для производительности без предварительного тестирования, также изложена в письменной форме.

Когда вы проводите тест, дайте понять группе приложений, проводящей тестирование, как работает RAID5, тот факт, что контроллер имеет кеш, который может смягчить небольшой штраф за запись, и что тест должен проводиться на наборе данных, размер которого идентичен производственному .

Делайте все это письменно. Ошибки конфигурации хранилища являются наиболее частой причиной обвинений во многих средах. По сути, вам не разрешат проводить бенчмаркинг, и вам придется угадывать, поэтому убедитесь, что у вас есть доказательства того, что вы сделали наилучшее предположение или что вам было сказано сделать что-то, противоречащее передовой практике.

Лучший ответ зависит от профиля, которому ваша база данных больше подходит: OLTP или OLAP. Чтобы упростить, ваша база данных выполняет больше операций записи или чтения? База данных, выполняющая больше операций записи, чем чтения, обычно лучше работает на raid10, чем на raid5 (при условии, что используется одинаковое количество дисков). Как упоминал Карл, если ваш набор данных (или диски) большой, держитесь подальше от R5 и используйте R6, если R10 не ваш выбор.

Пожалуйста найди Вот отчеты о производительности и масштабировании о HP Proliant DL380 G5.
тесты основаны на различных файловых системах (jfs, xfs, reiserfs, ext2 и ext3).

Честно говоря, по моему опыту, я не вижу разницы в RAID5 по сравнению с RAID10 с точки зрения избыточности данных. Однако RAID10 предлагает прирост производительности за счет чередования RAID. RAID 10 - это в основном RAID0 и RAID1. Два набора RAID0 являются зеркальными (RAID1). Мы используем RAID5 поверх RAID10. Но нам не требуется прирост производительности от RAID10. Это просто зависит от вашего окружения и от того, с чем вы работаете. Я бы рекомендовал попробовать RAID5. Если кажется, что производительность ниже, перейдите на RAID10 и посмотрите, поможет ли прирост производительности. Если у вас небольшие или средние рабочие нагрузки, RAID5 должен помочь.

Для лучшей производительности используйте SSD, затем R10, затем 1 или 0, затем 5, затем 6.

RAID5 используется потому, что его проще настроить и подумать, чем RAID10. Вам не требуется четное количество дисков, и с ним знакомо больше людей.

Раньше мы всегда использовали RAID5 (Dell PowerEdge 2650-2950), но на нашей последней машине (с MS-SQL, а не PostgreSQL) я тестировал как RAID10, так и RAID5. Я обнаружил, что для нашей рабочей нагрузки RAID10 дает нам умеренное увеличение производительности (~ 10%).

Если у вас есть время, я бы предложил настроить сервер в обоих направлениях и запустить обычные задачи БД (резервное копирование и восстановление, какие бы задания или отчеты вы ни выполняли).

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

Решая, какой RAID и файловую систему использовать для базы данных, важными вопросами являются:

  • Насколько велик набор данных / диск?
  • Сколько у тебя денег?
  • Это много для чтения или для записи?

Если набор данных большой, то есть> 10 ТБ, вам следует избегать RAID5. Вы можете потерять второй диск при восстановлении массива, что приведет к полной потере данных. RAID6 и RAID10 - хорошие профили, но имейте в виду ограничения с RAID10. Также: выберите журналируемую файловую систему, которая не требует регулярного fsck-ing; другими словами, избегайте ext3 и используйте что-то вроде xfs ... или, что еще лучше, используйте Solaris и zfs. Вы хоть представляете, сколько времени нужно, чтобы скопировать том 10 ТБ?

Если у вас больше денег, вы можете купить внешний шкаф и получить дополнительное повышение скорости, поскольку машина не будет пытаться выполнять системные действия (ведение журнала и т. Д.) При чтении из набора данных. Вы также можете получить лучший RAID-контроллер с большим объемом оперативной памяти и большей пропускной способностью или более быстрыми дисками. По сути, вы получаете то, за что платите.

Если данные тяжелые для чтения, вы можете придерживаться Raid10. Если ваши данные сбалансированы по чтению / записи или интенсивны по записи, вам, вероятно, лучше придерживаться raid6.