Какова рекомендуемая конфигурация RAID для базы данных Oracle?

dba.stackexchange https://dba.stackexchange.com/questions/320

  •  16-10-2019
  •  | 
  •  

Вопрос

RAID (избыточные массивы недорогих дисков) поставляется с различными конфигурациями (RAID-0, RAID-1 ...). Какова рекомендуемая конфигурация RAID, которую я должен настроить и использовать при установке базы данных Oracle. База данных в основном будет использоваться в качестве хранилища данных.

Это было полезно?

Решение

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

Рассмотрим обсуждение в Аскатом, OTN Форумы, OTN Форумы 2, а также OTN Форумы 3.

Нет ни одного правильного способа справиться с вещами, и ответы изменяются на основе множества аппаратных и сетевых факторов. Чтобы обнаружить для себя, предварительно загрузите образцы хранилища данных (только один или два концерта, достаточно, чтобы играть) на машине на основе ASM, на SAN с RAID, виртуализированным Linux и на аппаратном RAID -машине.

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

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

--Редактировать--

Каждый "Дисковая группа"Может быть составлен из одного или нескольких дисков, каталогов или файлов в соответствующей подсистеме. Oracle рекомендует «Для достижения наилучшей производительности и надежности выберите устройство RAID или логический том на более чем на одном физическом устройстве и реализуйте методологию полосы и MIRROR-Everything (то же самое)». При размещении файлов в файловую систему. Это читается так, как будто Oracle рекомендует RAID 1+0.

ASM управляемые группы дисков, однако, «нормальной группе дисков избыточности требует как минимум две группы сбоев (или два дисковых устройства), если вы используете двустороннее зеркалирование. Эффективное пространство дисков в группе с нормальной дисковой дисковой Дисковое пространство во всех его устройствах, по -видимому, автоматически обеспечивает зеркалирование.

Эти устройства сами могут состоять из RAID -устройств и так далее. В практических испытаниях, когда я настраивал набег на хранение данных, простой виртуальный RAID 5 в файловой системе обеспечил приемлемая производительность, а дополнительный ASM не добавил никаких преимуществ производительности. В таком типе задачи оптимизации сначала определите свои ресурсы, а затем протестируйте каждую возможную конфигурацию, так как иногда результаты могут быть чрезвычайно нелогичными.

Другие советы

Если у вас есть два физических диска:

RAID0: Быстрая, но без избыточности. Любая ошибка диска убьет весь массив. Некоторые люди поставляют временное хранилище на RAID0 (т. Е. TempdB под MSSQL), но я все равно считаю это опасным, поскольку, пока вы не потеряете никаких значимых данных, если массив упадет на перерыв на сервере до тех пор, пока ситуация не будет отремонтирована.

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

Если у вас три физических диска:

Ваши варианты-RAID5, нестандартный 3-привод RAID10 (или RAID1E, как ссылаются контроллеры IBM), если они поддерживаются. Конечно, вы могли бы использовать RAID1 и сохранить дополнительную диск в качестве запасного, когда один из других терпит неудачу, но в любом случае вы должны держать запчасти в критической среде миссии, так что это само собой разумеется.

RAID5 предлагает больше места, чем RAID10 (два диска стоимости вместо полутора), но имеет потенциальную проблему с производительностью записи, поскольку для каждого блока, написанного контроллером, необходимо прочитать блок паритета, обновить его и написать обратно. Эта проблема с производительностью записи может быть удвоена для записей базы данных, так как существует как минимум две записи для каждого обновления: одна к журналу транзакций, а одна - в реальных областях данных. Поскольку пространство дешево в наши дни я бы порекомендовал 3-й привод RAID10, если он поддерживается для лучшей производительности записи. Программный RAID Linux предлагает это, как и многие контроллеры IBM (они называют его RAID1E). Вы также можете найти его под другими именами, так как он не считается стандартным расположением, поэтому нет стандартного имени.

И R5, и R10-Three дают одинаковую избыточность (любой диск может выйти из строя за раз, а массив выживет) и аналогичные показатели производительности чтения (аналогично массиву RAID0 с двумя приводом).

Если у вас четыре физических диска:

Если создать только один массив, то есть два варианта (игнорирование «с горячим запасным» вариациями): RAID6 и «традиционный» RAID10 (RAID0 RAID1).

Оба дают одно и то же пространство (два диска из ваших четырех). RAID6 дает лучшую избыточность, так как любые два диска могут выйти из строя в то время, когда RAID10 может пережить только четыре из шести возможных ситуаций с двумя движениями. Оба дают Simialr Read Performance, но RAID6 имеет проблему с производительностью записи, аналогичную RAID5 (то же самое на хорошем контроллере, хотя он может быть медленнее, чем RAID5 на плохом контроллере или с программным RAID в зависимости от ОС. Обычно предпочтительнее для баз данных по причинам производительности - если вам нужна дополнительная избыточность, вы можете использовать шесть дисков и иметь RAID0 или 2 Rive RAID1.

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

Если у вас более четырех дисков:

Вы варианты становятся широко открытыми здесь, и это действительно зависит от того, что такое ваши данные и каковы ваши ожидаемые нагрузки/схемы обновление/чтение. Например, когда -то из наших услуг работает на 12 ~ 70 ГБ дисков:

  • 4x как RAID10 для системных областей (OS, SQL Server (MSSQL в нашем случае), SWAP, TEMPDB).
  • 4x как RAID10 для файлов данных
  • 4x как RAID10 для журналов транзакций

TempdB хранится на массиве системы. Мы могли бы переместить его в два других массива и просто запустить массив системы как 2 диска в RAID1, так как дополнительная скорость не очень нужна для ситематических кусков (так как это действительно значимо во время загрузки или при обмене, и мы убедитесь, что есть Достаточно оперативной памяти, чтобы он никогда не нуждался в обменке), но с тем, как мы платим хостингово -провайдеру за этот набор машин, это не будет стоить нам меньше, чтобы отбросить два диска. Резервные копии также перейдут в системный массив, прежде чем быть скопируемым в локации резервного копирования вне Server, Off и Off-Line.

Конечно, это серьезно излишне для некоторых баз данных (таким образом не было бы смысла запустить небольшой сервер блога!), Но наше главное приложение очень хорошо работает с этим договором.

Если у вас есть шесть дисков, вы можете рассмотреть три массива RAID1, или два массива с тремя приводами RAID10.

В общем

К сожалению, нет реальной простой «лучшей практики», поскольку она очень сильно зависит от размера вашей системы и использования. Единственные общие правила, которые я могу думать или есть:

  • Избегайте RAID5 и 6, если вы. знать Проблема с производительностью записи не повлияет на вас значительно
  • С четырьмя или более дисками на основе спиннинговых дисков. Рассмотрите возможность разделения вещей на несколько массивов, чтобы уменьшить движения головы (полное преимущество из нескольких массивов не будет применяться к хорошим SSD, так как нет физических движений головы, хотя вы можете увидеть некоторую разницу в зависимости от Стратегия сочетания записи контроллера SSDS и так далее)
  • Проверьте, тестируйте и тестируйте снова: всегда хорошо попробовать найти время, чтобы убедиться, что выбранное вами расположение действительно оптимальное

Аппаратный или программный рейд?

Раньше было то, что производительность программного RAID была ниже производительности аппаратного RAID для RAID 5 из -за расчетов по паритету и для всех договоренностей из -за медленных интерфейсов между дисками и процессором. С современными процессорами проблема расчета паритета на самом деле не является проблемой, но если у вас очень быстрые приводы аппаратного рейда все равно могут выиграть, если общая скорость дисков может наступить в любом месте Рядом (в пределах порядка, по предположению), насколько быстро машина может разговаривать с контроллером диска. Если у вас есть массив RAID1 с четырьмя приводами (то есть четыре копии одних и тех же данных для большого количества избыточности) с программным RAID каждая операция записи приведет к тому, что ОС отправит четыре лота данных на контроллер ввода -вывода, возможно, последовательно - с аппаратным обеспечением. Контроллер ОС отправляет один запрос на запись, и контроллер отправляет его на четыре диска, вероятно, параллельно.

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

Программный RAID, очевидно, дешевле и более портативен, поэтому вы не привязаны к конкретному контроллеру, если вам нужно перемещать массивы из -за сбоя контроллера/машины.

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

Я склонен использовать Software Raid на наших серверах Dev, Test и UAT и хорошем аппаратном рейде для серверов, работающих в прямом эфире,/общедоступных услуг.

"Руководство по настройке базы данных Oracle"имеет главу, посвященную Конфигурация ввода/выводаАнкет Короче говоря:

  • Используйте полосы (аппаратный рейд, программный рейд, ASM)
  • Не используйте RAID5 для архивирования и повторных журналов
  • Выровнять размер блока файловой системы и размер блока DB

В некоторых случаях JBOD является правильным ответом (т.е. нет Рейд).

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

Вы можете использовать полосы (RAID0), чтобы сбалансировать записи, но если это все большая группа, вы не можете отделить индексы против записей.

Зеркалирование (RAID1) является толерантным для ошибки, и для чтения быстрее (как вы можете читать из любого шпинделя, не занят), но это может быть медленнее для записей, так как вам приходится ждать, чтобы обе копии были написаны.

Я бы никогда не пошел бы RAID5 или RAID6 в базе данных. Если данные важны, купите больше дисков и перейдите с RAID1; RAID5/6 медленный (особенно в программном обеспечении), и с сегодняшними размерами жесткого диска может потребоваться дни Чтобы восстановить после замены неудавшихся дисков для большой группы дисков ... не говоря уже о том, что большинство систем RAID5/6 касаются ошибок паритета, заключается в том, чтобы просто пересчитать четность ... но есть вероятность, что ошибка в данных, а не паритет Но вы понятия не имеете, где была вина. (К сожалению, я не думаю, что есть что -то вроде Lockss для баз данных)

...

Наиболее интересный макет, который я видел в базе данных, фактически включал в себя два раздела на шпиндель - внутренняя часть диска была использована для производственной базы данных, для резервного копирования использовались раздела диска. (И они позаботились о том, чтобы раздел не был поддержан до одного и того же шпинделя; я думаю, что было несколько баз данных, поэтому каждый из них поддержал диски с другой). Это дало им преимущество распространения вещей по большему количеству шпинделей в течение рабочего дня, а затем ночью они бежали из резервных копий.

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

...

Так что, в любом случае, в том, что я пытаюсь подчеркнуть - нет ни одного ответа, который соответствует каждой ситуации. Если бы это было, DBAS будет без работы, а компании покупали бы предварительно построенные приборы базы данных.

Базы данных, с которыми я имею дело, - это то, что мой босс называет «ношенным»: напишите один раз, никогда не читайте; Он шутит, но «хранилище данных» может означать любой уровень активности ... Я видел некоторые, которые были загружены из ленты ночью/еженедельно (и были просто копиями экземпляра OLTP, и помог нам проверить, что ленты были хорошими) и На них были выполнены массовые задания по анализу, а другие, где существует постоянный поток ввода и случайных чтений, но нет реальной конкуренции за ресурсы.

Моя рекомендация для серверов всегда Рейд 5. Анкет Время и усилия, потраченные на восстановление вашего первого неудачного жесткого диска, всегда будут незабываемыми. Если вы настраиваете массивы RAID, я настоятельно рекомендую вам стандартизировать один размер диска и спрятать 2 запасных жестких дисков в серверной комнате. Один диск идет плохо? Поместите одну из замены в (и пусть массив восстановит). Я видел, как массивы рейдов падают жесткий Потому что вторая поездка прошла плохо, пока они ждали первого прибытия (на следующий день доставка была еще слишком поздно).

Сколько данных вы планируете использовать и как часто вы собираетесь читать по сравнению с системой? Есть много планирования, которое входит в это, достаточно, чтобы некоторые люди посвятили целую академическую карьеру этой теме.

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

Основы делают так:

RAID0

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

RAID1

Отлично подходит для надежности. Не так много расширяемости. Довольно хорошо на скорости.

RAID5

Предпочтительная смесь между RAID0 и RAID1 (своего рода).

Теперь, после этого, это действительно становится почти чем -то, что следует спрашивать на ServerFault из -за того, что конфигурация сервера MoreSo, чем дизайн базы данных. Всегда обсуждайте производительность сервера с администратором вашего сервера. Вот для чего они там. Если бы это не была частной бета -версией, я бы проголосовал за то, чтобы мигрировать вас там.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top