DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Основы страйпинга дисков


Есть такое популярное изречение: для успеха в торговле недвижимостью имеется всего три правила: место расположения, место расположения, место расположения. Для случаев успешной реализации RAID эти три правила дол­жны звучать так: страйпинг, страйпинг и страйпинг. Невозможно уделить страй-пингу слишком много внимания, поскольку он является неотъемлемой частью
искусства конфигурирования оптимальных томов RAID.
Страйпинг диска эксплуатирует концепцию "разламывания" данных на куски и распределения этих кусков по нескольким дискам, входящим в том RAID, для создания так называемых слоев (или полос). Эта концепция хотя и кажется очень простой, в действительности очень мощная и является одним из самых
критичных элементов масштабирования производительности ввода/вывода. Попросту говоря, эксплуатация большого числа дисков для обслуживания мно­
запросов ввода/вывода лучше, чем использование для выполнения всей
этой работы одного большого диска. Помимо обеспечения масштабируемой
производительности ввода/вывода, страйпинг дисков предлагает также луч-
шую их управляемость (т. е. нужно        монтировать и сопровождать меньшее число файловых систем).
Если максимальное значение полосы пропускания ввода/вывода фиксиро­вано, совершенно очевидно, что имеется степень страйпинга, которая обеспе­чивает масштабируемую производительность ввода/вывода по сравнению с полным отсутствием страйпинга. Хотя можно, конечно, возразить (но это будет слабый аргумент), что выполнение ручного страйпинга различных табличных пространств Oracle по разным устройствам позволит достичь аналогичного по­вышения производительности ввода/вывода, но при этом добавляется значи­тельное количество административных накладных расходов в детском садике нашей системы запоминания информации. Это именно то, чего не могут позво­лить себе большинство наших заказчиков. Мы искренне убеждены, что у них (точнее говоря, у вас, наши читатели и заказчики) есть много более интересных занятий, заполняющих драгоценное свободное время. Гораздо веселее позво­лить ОС и аппаратному оборудованию делать за нас всю утомительную ручную работу по страйпингу.
Кроме того, Oracle АБД 101 (Основы администрирования баз данных) гаран­тируют применение здравого смысла при обеспечении самостоятельности главных компонентов базы данных для уменьшения количества взаимозависи­мостей. Чудес не будет, если табличные пространства DATA, INDX, RBS, TEMP и
SYSTEM физически размещены на одном наборе дисков. Совершенно очевид­но, что система должна подчиняться правилам оптимально гибкой архитектуры (OFA, optimal flexible architecture).
Замечание
Там, где это возможно, страйпингдолжен предшествовать физическому разделению некоторых компонентов базы данных, например табличныхпространств SYSTEM, RBS и TEMP. Конфигурирование RBS и TEMP в одном наборе физических устройств вполне допустимо, если большой процент сортировок выполняется в памяти (для этого должен быть оптимально сконфигурирован параметр SORT AREA SIZE). Было показано, что нет доказательств устойчивой конкуренции при записи во временные сегменты и сегменты отката. В большинстве систем нормальным является даже совмещение табличных пространств SYSTEM, RBS и TEMP. Ввод/выводдля табличного пространства SYSTEM должен быть минимальным, если кэш словаря данных имеет адекватные размеры для хранения связанных со словарем данных (которые конфигурируются параметром инициализации Oracle SHARED_POOL_SIZE).
Шаги по созданию томов со страйпингом, часть 1
Ниже перечисляются шаги, которые следует выполнить, чтобы обезопасить себя при создании томов со страйпингом:
Удерживайте степень страйпинга, равной степени 2, а именно: 2, 4, 8, 16 и т. д. Дело в том, что параметр DB_BLOCK_SIZE всегда равен степени 2 (8k, 16к, 32к и т.д.) и параметр DB_FILE_MULTIBLOCK_ READ_COUNT обычно тоже равен степени 2. Важно отметить, что при использовании RAID уровней 3, 5 и 7 число дисков, требующееся для создания тома со степенью страйпинга    должно быть равно
Определите степень страйпинга для томов DATA (обычно 4 или 8, иногда 16 и выше). Этим определяется число устройств, которые будут участвовать в конкретном томе RAID DATA.
Определите степень страйпинга для томов INDX (обычно 2 или 4, иногда 8 и больше). Этим определяется число устройств, которые будут участвовать в конкретном томе RAID INDX. Для INDX требуется более низкая степень, чем для DATA, так как индексы по своей внутренней природе занимают меньше места, чем таблицы, и поэтому требуют
меньшей степени страйпинга.
4.        При определении степени страйпинга томов данных DATA и INDX
должны также учитываться такие факторы, как секционирование
данных/индексов, требования доступности и поддержка параллельных
операций. Отметьте, что 16 файлов данных, размещенных на 16
индивидуальных дисках, могут поддерживать 16-кратные параллельные
операции (если достаточно памяти и ЦП для поддержки этих действий
и процессор еще не захлебывается, когда одновременно начинают
работать все 16 дисков). Этого нельзя сказать про 16 файлов данных,
размещенных на 16-кратном томе RAID с 16 дисками. Степень
параллелизма, которую можно развернуть на        томе, будет
существенно ниже, если сравнить ее с предыдущей конфигурацией из
16 индивидуальных дисков. Данный фактор должен быть учтен при принятии решения о степени страйпинга, что, в свою очередь, контролирует число томов настраиваемой системы.
5.        Определите и сконфигурируйте максимальный размер фрагмента
ввода/вывода ОС. Размер фрагмента ввода/вывода контролирует
количество данных, считываемых во время запроса на чтение при
выполнении полного сканирования таблицы или сканирования по
диапазону индекса. В Solaris параметр ядра /etc/system, который
необходимо конфигурировать, называется 

maxphys. 

Параметр
устанавливается в байтах, его значение по умолчанию равно   28 Кбайт
и подходит для большинства систем, где запросы
являются        по природе. Но для гибридных систем,
в которых приходится поддерживать большие интенсивные пересылки данных, рекомендуется устанавливать его равным 1 Мбайт или даже 4 Мбайта. Для сред, использующих файловую систему Veritas, необходимо конфигурировать параметр vxio:vol_maxio в 512-байтовых единицах и установить его равным 2048 (что соответствует 1 Мбайт) или 8192 (4 Мбайта).
6.        Определите и конфигурируйте размер кластера упреждающего чтения
файловой системы, используя эмпирическое правило - не более
200 операций ввода/вывода в секунду на запоминающее устройство.
Установка данного параметра имеет смысл для томов, которые будут обслуживать большие и интенсивные передачи данных. Например, если дисковый массив может достичь порогового значения 200 Мбайт/с
и 200 операций ввода/вывода, то размер кластера файловой системы
для этого массива должен быть, как минимум, равным 1 Мбайт (а иногда даже 4 Мбайта). В системе Solaris это достигается заданием параметра 

maxcontig 

команды mkfs. Чтобы определить размер кластера для существующих файловых систем выполняется команда fstyp -v namex Значение параметра 

maxcontig 

устанавливается в блоках
файловой системы, а команда fstyp обеспечивает значение размера
блока 

(bsize) 

для устройства. Размер кластера упреждающего чтения
вычисляется как 

(maxcontigx bsize). 

Размер кластера для существующих
систем можно модифицировать, используя команды tunefs или
vxtunefs. Такой шаг определения и конфигурирования размера кластера
упреждающего чтения становится ненужным, если ОС
конфигурирована для поддержки прямого        так как в этом
случае все алгоритмы упреждающего чтения дезактивируются.
7.        Результаты шагов 1-6 окажут помощь при вычислении ширины полосы
страйпинга, являющейся оптимальной для тома. Учитывая
рекомендации, данные на предыдущих шагах, можно получить, что
ширина полосы страйпинга для томов, обслуживающих интенсивные
передачи данных = 

(п 

х размер кластера, где п равняется числу дисков, конфигурированных для устройства). Для транзакционных по природе
томов ширина полосы страйпинга конфигурируется равной размеру
кластера. Однако, если размер ввода/вывода (maxphys) модифицирован до 1 Мбайт ширина полосы страйпинга должна быть установлена
равной по меньшей мере 1 Мбайт, чтобы воспользоваться всеми
преимуществами этого поднятия уровня.
Конфигурирование ширины полосы страйпинга
Проводить конфигурирование ширины полосы страйпинга для устройств RAID нужно, выполнив два важных условия:
•        Убедитесь, что все устройства, конфигурированные данному тому,
участвуют в последовательных операциях        по своей
природе имеющих большой объем (полные сканирования таблицы для
больших таблиц). Но заметьте, это следует делать, имея в виду, что на
степень одновременности последовательных сканирований влияет
число запросов                      которые могут быть обслужены томом в
любой данный момент времени. Стоит также задуматься об
одновременности                    запросов ввода/вывода.
запрос ввода/вывода (т. е. запрос на получение одного блока данных)
должен быть обслужен одним дисководом без участия в операции
ввода/вывода всех остальных устройств.
•        Убедитесь, что ширина полосы страйпинга для данного тома RAID
является кратной максимальному размеру ввода/вывода (Шаг 5 из
раздела        по созданию томов со        часть   для
аппаратуры и/или устройств ввода/вывода. Следует позаботиться,
чтобы это условие не отменило предыдущее условие ширины полосы страйпинга. Помните, основное при использовании преимуществ страйпинга - убедиться в высокой степени одновременности запросов для данного тома. Это верно в случае разделения одного очень большого запроса ввода/вывода на много меньших запросов, а также при поддержке множества одновременно выполняющихся маленьких запросов
Например, в конкретной реализации, если максимальный размер ввода/вы­вода равен 1 Мбайт, а число устройств в массиве RAID равно 8, ширина полосы страйпинга должна быть установлена равной 8МБ, а размер чередования полос
страйпинга - 1 Мбайт. Для многочисленных реализаций в различных операци­онных системах было замечено, что ширина полосы страйпинга в 1 Мбайт явля­ется достаточно хорошим начальным значением. Современные версии
некоторых ОС (например, Solaris 2.6/2.7) поддерживают значительно более
высокие значения размера ввода/вывода (используя параметр maxphys). Ши­рина полосы страйпинга всегда должна зависеть от максимального размера вво­да/вывода ОС, для которой реализуется том RAID.

Предупреждение
Не забывайте о зависимости между шириной полосы страйпинга и параметром инициализации Oracle DB_FILE_MULTIBLOCK_READ_COUNT. Этот параметр Oracle устанавливается на основании значения ширины полосы страйпинга. При больших значениях ширины полосы страйпинга можно поддерживать более высокиезначения этого параметра, что позволит улучшить производительность при быстрых сканированиях полной таблицы или индекса.
Даже несмотря на то, что конфигурирование томов с большими размерами
полосы        приводит к лучшей производительности пакетной обработ-
ки, нужно принять меры, чтобы не установить параметр DB_FILE_ MULTIBLOCK_READ_COUNT на уровне экземпляра равным такому значению, которое послужит сигналом оптимизатору Oracle выбирать в качестве предпоч­тительного метода выполнения запросов полное сканирование таблицы.
Начиная с Oracle 7.3 и выше, этот вопрос легко разрешается посредством консервативной установки этого параметра на уровне экземпляра, а затем моди­фицированием его более высокими значениями (если потребуется) на уровне сеанса.

 


заборы киев.







jAntivirus