 | Уровень сложности: простой Джеральд МакБрерти, ведущий программист, IBM Серджио Рейес, программист, IBM Брет Ольсецевски, ведущий технический специалист, IBM
21.04.2009 Управление томами в AIX 5L значительно улучшено. Большинство популярных операций были оптимизированы, что привело к значительному увеличению производительности. Обычно управление томами не рассматривается как критичный фактор для производительности всей системы, однако благодаря постоянным усовершенствованиям AIX 5L конфигурирование больших серверов стало более эффективным. Эта статья описывает улучшения в производительности в области управления томами, представленные в последних версиях AIX.
Эволюция управления томами в AIX
Увеличение производительности серверов IBM pSeries сопровождалось увеличением максимальных размеров дисковой подсистемы. Из-за роста максимальных размеров дисковой системы на протяжении последних версий AIX (AIX 4.3, AIX 5L Version 1 и 5L Version 2) в менеджер логических разделов AIX (AIX logical volume manager, LVM) вносились изменения, дабы приспособить его к масштабируемости на уровне логических разделов.
В версиях AIX до версии 4.3 группа томов (volume group) ограничивалась 32-мя дисками и 255-ю логическими разделами. В этой статье под диском понимается физической том в том виде, в каком его видит система. Физический том может быть номером дискового устройства (logical unit number, LUN) из RAID-массива или физическим жестким диском, подключенным к SCSI-контроллеру. В AIX 4.3.3 была добавлена возможность создания групп томов из 128-ми дисков и 512-ти логических разделов. Команды, используемые для управления подобными большими группами томов, работали медленно, поэтому на практике они редко применялись. AIX 5L Version 1 реализовала в LVM поддержку логических групп дорожек длиннее 128 килобайт. Данное нововведение увеличило производительность дискового ввода-вывода для многих приложений, которые активно им пользуются. В AIX 5L Version 2, используя опцию vg с командой mkvg, можно увеличить число логических разделов в одной группе томов до 512; кроме того, для улучшения производительности были переработаны некоторые команды.
 |
Масштабирование групп логических дорожек
Одна из функций LVM заключается в управлении блоками, на которые разбит диск. На самом высоком уровне это управление реализуется за счет распределения физических разделов по логическим томам. Раздел физического раздела выясняется при определении физического тома. Группа логических дорожек (logical track group, далее – LTG) - уровень управления составными блоками диска, находящийся под уровнем управления физическими разделами. LTG предоставляет эффективный механизм управления непротиворечивостью зеркальной записи, ресинхронизацией зеркальных копий и непротиворечивостью чтения/записи. В AIX, предшествующих версии 5L Version 2, LVM было запрещено выполнение записи в тот блок диска, который задействован другой операцией. Например, если два независимых запроса чтения и записи обращались к одной области на диске, то они выполнялись последовательно, а не параллельно. Данный подход исключает возможность появления противоречивых данных. Начиная с AIX 5L Version 2, согласованное чтение/запись доступно с использованием опции –o для команды mklv. В большинстве случаев возможность согласования не требуется либо из-за отсутствия параллельно выполняемых операций, либо хватает функциональности файловой системы или приложения. Однако возможность согласования все еще используется для приложений, которые упорядочиваются LVM.
Одна из особенностей управления томами на AIX версии до 5L заключается в том, что LVM не передавал дисковый ввод/вывод размером большим, чем LTG (128 Кбайт), на драйвер какого-либо устройства. Большие запросы дискового ввода/вывода, выполняемые приложениями, разбивались LVM на сегменты, не превышающие LTG. Таким образом, запрос на дисковый ввод/вывод 1 МБ данных преобразовывался по крайней мере в 8 отдельных запросов к драйверу дискового устройства. Если на диске выполнялся только один поток записи или вывода, то проблем не возникало, поскольку и чтение, и запись велись на скорости носителей. Однако, если несколько потоков выполняли ввод/вывод с диска, разбиение запросов ввода/вывода могло привести к дополнительным обращениям к драйверу дискового устройства, уменьшая тем самым общую производительность.
Начиная с AIX 5L Version 2, максимальный размер запроса ввода/вывода, передаваемого приложением драйверу дискового устройства, можно настроить. Пропускную способность системы можно оптимизировать путем установки LTG-менеджера LVM на максимально возможный размер передачи. На некоторых дисковых подсистемах такая возможность присутствует. Настраиваемый максимальный размер передачи позволяет запросу дискового ввода/вывода достигнуть размера 1 MB (если LVM LTG равен 1 MB). Это позволяет приложению выполнять запросы ввода/вывода размером в LTG, которые в неизменном виде будут передаваться на дисковое устройство до тех пор, пока оно не начнет пересекать границы раздела LVM.
Чтобы продемонстрировать преимущество использования большого LTG, был проведен ряд экспериментов. В рамках этих экспериментов варьировалось число процессов, генерирующих одновременные одномегабайтные запросы на чтение различных областей диска. В качестве JBOD-массива использовался один диск FASt-T с отключенными кешами чтения и записи и максимальной длиной очереди запросов диска - 24. Диаграмма 1 показывает суммарную пропускную способность запросов чтения с диска (сумма производительностей отдельных процессов). На этом графике видно, что при использовании большого LTG можно получить существенные, если не превосходные, улучшения в производительности. Несмотря на то что при проведении кратковременных тестов улучшение пропускной способности будет незначительным, оно станет очевидным при мониторинге работы приложения в течение нескольких часов или дней.
Диаграмма 1
Масштабируемые измерения команд управления
Чтобы оценить изменения в производительности для различных команд управления томами был проведен ряд сравнительных измерений между уровнями операционной системы. Измерения проводились на основе конфигурации из таблицы 1. Данная конфигурация была выбрана исключительно из-за ее доступности. Важно помнить, что операции управления томами в AIX являются атомарными; все метаданные тома фиксируются на диске. Таким образом, когда команда управления томом завершится и управление вернется к системе, можно будет оценить полученные результаты. Поскольку метаданные тома находятся на диске, может возникнуть желание скешировать эти данные в память (чтобы быстрее к ним обращаться), но тогда сбой в работе системы может привести к порче тома.
Таблица 1. Конфигурация измеряемой системы
| Система | IBM eServer P660 6m1 | | Процессоры | 8 750Mhz RS64-IV | | Память | 28GB | | Адаптеры жестких дисков | 16 SSA, кеш быстрой записи отключен | | Жесткие диски | 128 SSA, 10,000 RPM |
В этом разделе описаны измерения с помощью следующих команд управления томами:
mkvg – создает группу томов дисков и инициализирует хранение в группе томов;
mklv – создает логический том для группы томов;
extendvg – добавляет дополнительные диски к уже существующей группе томов и инициализирует новое хранилище;
varyoffvg – освобождает ресурсы ядра, ассоциированные с группой томов;
exportvg – удаляет ODM-информацию, ассоциированную с группой томов.
Первый набор тестов показывает разброс в производительности, затрачиваемой на создание группы томов командой mkvg. В этих тестах, чтобы показать разброс производительности, варьировалось число дисков в группе томов. Диаграмма 2 показывает время для нескольких вариантов команды mkvg. Заметим, что для большинства вариантов тестовой конфигурации время отклика mkvg улучшилось больше чем на один порядок. Как упоминалось ранее, в AIX 5L Version 1 производительность mkvg с большим количеством дисков (опция –В) была неудовлетворительной, но в AIX 5L Version 2 улучшилась настолько, что подходит для большинства клиентов.
Диаграмма 2
Вторая партия тестов показывает варьирование производительности при создании логического тома в уже работающей группе томов командой mklv. Диаграмма 3 показывает результаты этих тестов. Чтобы показать диапазон изменения производительности, варьировалось количество дисков в группе томов. Результаты этого теста идентичны результатам для mkvg; время отклика для большинства вариантов тестовой конфигурации улучшилось более чем на порядок.
Диаграмма 3
Третья серия тестов показывает, как меняется производительность при расширении группы томов командой extendvg. Результаты этого теста показаны на диаграмме 4. Как видно из тестов для mkvg, mklv и extendvg, в AIX 5L Version 2 производительность значительно улучшилась.
Диаграмма 4
Не все команды управления томами нуждаются в оптимизации. Диаграмма 5 показывает хорошую производительность команд varyoffvg и exportvg на AIX 5L Version 1.
Диаграмма 5
Для полноты картины также был проведен ряд экспериментов с активированным кешем записи SSA. В целом результаты этих экспериментов незначительно отличались от результатов экспериментов с отключенным кешем.
Заключение
В связи с быстро увеличивающейся мощностью систем POWER необходимо обеспечить увеличение производительности подсистемы ввода/вывода. Управление томами в AIX постоянно улучшается и настраивается для соответствия этим высоким требованиям. В своих тестах мы использовали различные разновидности команд управления, а также увеличили максимальный размер запроса ввода/вывода, который может быть передан на диск. Проведенные измерения показали, что в сложных системах такой подход дает значительный прирост производительности.
Ресурсы
Об авторах  | |  | Джеральд МакБрерти (Gerald McBrearty) – ведущий программист, работает в IBM с 1989 г. Участвовал в различных проектах разработки AIX. В данный момент он занимается файловой системой General Parallel File system, а недавно закончил длительную работу над созданием LVM. Он получил диплом бакалавра компьютерных наук в Университете Техаса (University of Texas), Сан-Антонио (San Antonio). Связаться с ним можно по адресу gfm@us.ibm.com. |
 | |  | Серджио Рейес (Sergio Reyes) получил диплом бакалавра в области компьютерных наук в Университете Техаса (University of Texas – Pan American). Сейчас он работает программистом в IBM, специализируясь на оптимизации операций ввода/вывода ядра AIX. Связаться с ним можно по адресу sergio1@us.ibm.com. |
 | |  | Брет Ольсецевски (Bret Olszewski) работает в IBM с 1989 г. Занимался масштабируемостью SMP, 64-битными приложениями, ядром AIX и производительностью баз данных. Сейчас он работает в команде по увеличению производительности AIX в должности STSM. Он получил диплом бакалавра в области компьютерных наук в Университете Миннесоты (University of Minnesota). Связаться с ним можно по адресу breto@us.ibm.com. |
Выскажите мнение об этой странице
|  |