Оптимизация внутренних жестких дисков в AIX

Принципы и инструменты для оптимизации производительности AIX

Несмотря на то, что в центре внимания на рынке решений для хранения данных находится технология SAN, компьютерам под управлением AIX по-прежнему нужны внутренние жесткие диски. Независимо от того, используете ли вы небольшие отдельные серверы или глобальные системные разделы, полностью объединяющие в себе все ресурсы, внутренние жесткие диски являются типовым решением для размещения корневых групп томов и других более мелких файловых систем. Но если эти диски не оптимизированы должным образом, могут возникать различные проблемы – заторы при операциях ввода/вывода, неэффективное потребление дискового пространства и низкая производительность. Эта статья поможет вам правильно разметить и оптимизировать внутреннюю дисковую систему хранения.

Кристиан Пруэтт, ведущий системный администратор, Свободный писатель

Кристиан Пруэтт - ведущий системный администратор UNIX, имеющий более 14 лет работы с системами AIX, Sun Solaris, Linux и HP-UX в различных компаниях, в том числе компьютерной, телекоммуникационной и сельскохозяйственной индустрии. Он является соавтором двух книг Redbook по AIX, рецензировал книги по UNIX издательства O’Reilly и участвовал в проведении нескольких сертификационных экзаменов IBM по AIX. Он живет в Колорадо со своей женой и двумя детьми. Связаться с Кристианом можно по электронной почте: pruettc@gmail.com.



01.04.2013

Некоторое время назад мне потребовалось установить на сервере IBM® AIX® новый пакет обновления, поскольку на нем давно не обновлялось программное обеспечение. Я выполнил все подготовительные действия и приступил к обновлению.

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

Разбираясь с этой проблемой, я посмотрел на загрузку сервера в реальном времени с помощью команды topas и обратил внимание на чрезвычайно высокие значения в столбце Wait. Причиной всех задержек оказался один-единственный жесткий диск hdisk0, содержащий корневую группу тома. После запуска команды lspv –p для просмотра информации о диске все встало на свои места. Взгляните на листинг 1.

Листинг 1. Результаты выполнения команды lspv -p
# lspv -p hdisk0
hdisk0:
PP RANGE  STATE   REGION        LV NAME             TYPE       MOUNT POINT
  1-1     used    outer edge    hd5                 boot       N/A
  2-110   free    outer edge
111-114   used    outer middle  hd6                 paging     N/A
115-116   used    outer middle  livedump            jfs2       /var/adm/ras/livedump
117-124   used    outer middle  lg_dumplv           sysdump    N/A
125-130   used    outer middle  paging00            paging     N/A
131-136   used    outer middle  hd6                 paging     N/A
137-217   free    outer middle
218-219   used    outer middle  hd2                 jfs2       /usr
220-220   used    center        hd8                 jfs2log    N/A
221-222   used    center        hd4                 jfs2       /
223-237   used    center        hd2                 jfs2       /usr
238-240   used    center        hd9var              jfs2       /var
241-241   used    center        hd3                 jfs2       /tmp
242-242   used    center        hd1                 jfs2       /home
243-245   used    center        hd10opt             jfs2       /opt
246-246   used    center        hd11admin           jfs2       /admin
247-259   used    center        hd10opt             jfs2       /opt
260-265   used    center        hd4                 jfs2       /
266-266   used    center        hd2                 jfs2       /usr
267-279   used    center        hd9var              jfs2       /var
280-284   used    center        hd2                 jfs2       /usr
285-285   used    center        hd3                 jfs2       /tmp
286-286   used    center        hd2                 jfs2       /usr
287-317   used    center        hd1                 jfs2       /home
318-328   used    center        paging00            paging     N/A
329-425   free    inner middle
426-430   used    inner middle  hd6                 paging     N/A
431-437   free    inner middle  
438-535   free    inner edge
536-546   used    inner edge    paging01            paging     N/A

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

В этой статье я расскажу о некоторых основных инструментах и приемах, которые можно использовать для оптимизации внутренних систем хранения на серверах AIX. На примере описанной выше реальной ситуации я расскажу о том, как операционная система AIX видит жесткие диски и как эти диски взаимодействуют с менеджером логических томов (Logical Volume Manager, LVM). Также мы обсудим различные стратегии и команды для реорганизации внутренних дисков и обеспечения их более надежной работы, включая низкоуровневые команды и простые комбинации. В конце статьи я поделюсь некоторыми соображениями относительно высокоуровневого планирования, позволяющего предотвратить повторное возникновение проблем.

Разметка диска

В операционной системе AIX жесткие диски, иначе называемые физическими томами, разбиваются на две фиксированные области, называемые физическими разделами. Эти физические разделы равномерно распределены по всему объему диска и занимают пространство от его внешнего края до центра шпинделя. Совокупность физических томов образует группу томов. Внутри групп томов создаются логические тома, которые объединяют физические разделы в области, на которых уже можно создавать файловые системы.

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

В операционной системе AIX физические тома делятся на пять областей, которые называются в соответствии с их расположением на жестком диске: внешняя пограничная (outer edge), внешняя средняя (outer middle), центральная (center), внутренняя средняя (inner middle) и внутренняя пограничная (inner edge). Эта структура изображена на рисунке 1.

Рисунок 1. Схема жесткого диска
Рисунок 1. Схема жесткого диска

На производительность операций ввода/вывода, время доступа и задержки влияют несколько математических и физических свойств каждой из этих областей. В силу характера вращательного движения внешний край диска движется быстрее, чем внутренний (точно так же, как катающиеся на карусели дети – чем дальше они от центра карусели, тем быстрее движутся). Однако поскольку не все данные записываются во внешнюю часть диска (вследствие физических ограничений на их размещение), самое быстрое время доступа для головок жесткого диска будет обеспечиваться в центральной части диска – там, где в среднем чаще всего находится считывающая головка.

В случае с сервером, который я обновлял, данные были распределены по всему диску практически хаотично, в случайном порядке. Но прежде чем приступать к сортировке данных, необходимо учесть ряд дополнительных моментов, касающихся того, как AIX напрямую управляет логическими томами.


Некоторые соображения относительно менеджера логических томов

В AIX имеется встроенное средство под названием Logical Volume Manager (LVM – менеджер логических томов), которое управляет взаимодействиями между физическими и логическими томами, группами томов и файловыми системами. Менеджер логических томов создает на физических носителях логические структуры для управления данными внутри операционной системы. Что касается оптимизации дисков, то существенным фактором здесь является способность LVM обеспечить настройку требуемых уровней готовности, производительности и избыточности.

Две наиболее часто используемые функции оптимизации, которыми обладает LVM, это зеркалирование (mirroring) и чередование (striping). LVM позволяет зеркалировать логические тома, создавая до трех копий данных. Таким образом, один логический раздел может указывать на один или несколько физических разделов. В этом случае при выходе из строя одного из устройств данные сохраняются на оставшихся физических устройствах. Для небольших систем (особенно для тех, в которых используются внутренние системы хранения) чрезвычайно важно предусмотреть зеркалирование для предотвращения незапланированных простоев и потери данных.

Чередование распределяет данные по нескольким жестким дискам таким образом, чтобы обеспечить одновременное выполнение множества операций чтения/записи данных, хранящихся на нескольких дисках. Чередование включается путем изменения свойства политики inter-physical volume allocation policy для каждого логического тома. Если значение политики установлено в minimum (используется по умолчанию), то обеспечивается лучшая надежность, поскольку выход из строя одного диска не влияет на доступность логического тома. Если значение политики установлено в maximum, то LVM распределяет данные по максимально возможному количеству дисков внутри группы томов, максимизируя количество одновременных операций ввода/вывода.

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


Оптимизация внутренних дисков

Теперь, опираясь на описанные выше принципы физической структуры жестких дисков в AIX и механизмы формирования логической структуры дисков менеджером LVM, я сформулирую и перечислю несколько принципов оптимизации внутренних дисков:

  • По возможности располагайте логические тома на непрерывных смежных областях. Когда файловые системы распределены по всему диску, головкам жестких дисков требуется больше времени на нахождение требуемых данных. Если логический том расположен в одной непрерывной области, то время доступа к данным минимально, а время поиска файлов уменьшается.
  • Располагайте логические тома с интенсивными операциями ввода/вывода или последовательными операциями чтения/записи во внешних областях диска. В этом случае логические тома, для которых необходимо обеспечить более быстрое время чтения/записи последовательных данных большого объема (например, статические файлы или содержимое баз данных), будут работать лучше благодаря более высокой скорости вращения внешней области диска.
  • Располагайте логические тома с высокой активностью в центральной части диска. Если в файловой системе выполняется очень много операций чтения/записи и необходимо обеспечить быстрый отклик, то лучше располагать данные в центральной области диска, поскольку в любой момент времени головки жесткого диска будут с наибольшей вероятностью находиться именно там. Разместив файловые системы в этой области, вы получите большую вероятность того, что головки диска будут расположены где-то по соседству. Такая конфигурация уменьшает время доступа и обеспечивает хорошую производительность операций ввода/вывода.
  • Располагайте логические тома с низкой активностью ближе к внутреннему краю диска. Если файловые системы используются редко, то располагайте их в области диска с самым медленным временем выполнения операций ввода/вывода – ближе к оси диска, т. е. к его внутреннему краю. В этой области будут хорошо себя чувствовать нечасто используемые логические тома.
  • Размещайте только один логический том пространства подкачки на каждом диске. Пространство подкачки служит временным хранилищем для выгрузки страниц из памяти на физический диск и обратно, позволяя центральному процессору выполнять больше операций. Создание нескольких логических томов подкачки на одном диске сводит на нет попытки устранения провалов в производительности, поскольку приводит к дополнительным операциям ввода/вывода; в этом случае головки диска должны перемещаться не в одну область диска, а в несколько.
  • По возможности не используйте зеркалирование пространства подкачки. Опять-таки, поскольку целью пространства подкачки является использование физического диска для устранения дефицита ресурсов, нет необходимости записывать один и тот же набор данных дважды, как это происходит при зеркалировании. Если вместо этого на двух дисках будут размещены два различных логических тома подкачки, то каждый из них будет использоваться для временного хранения страниц памяти; таким образом, эффективность использования пространства удвоится.
  • Используйте тома подкачки одинакового размера. Последний момент, касающийся логических томов подкачки, заключается в том, чтобы делать их по возможности одинакового размера. Если у вас имеются два внутренних жестких диска объемом 73 ГБ каждый и один из них содержит том подкачки размером в 1 ГБ, а другой – размером в 4 ГБ, то скорее всего один из них будет больше подвергаться износу. Кроме того, при изменении размера пространства подкачки в сервера в сторону увеличения или уменьшения один из логических томов может полностью заполниться, что отрицательно повлияет на работу системы. Наконец, соблюдение одинакового размера для всех томов подкачки немного упрощает вывод команды lsps и делает его более удобным для чтения.
  • Оставляйте немного свободного места на диске. Хотя бывают администраторы, которые пытаются выжать из своих серверов все до последней капли, всегда лучше оставлять на дисках немного свободного места. Это относится не только к одному-двум большим промежуткам во внешней и внутренней пограничных областях; также следует предусматривать промежутки между логическими томами (на те случаи, если объемы каких-то данных будут увеличиваться), а также между самими файловыми системами. Если на диске нет никаких промежутков, то непрерывность логических томов может быть нарушена одной маленькой командой chfs –a size=+1MB.
  • Используйте зеркалирование правильно. Распространенная ошибка состоит в том, что администратор создает новую файловую систему в группе томов с зеркалированием и забывает создать ее копию на другом диске. Тот факт, что для группы томов используется зеркалирование, еще не означает, что все добавляемые впоследствии логические тома, поддерживающие файловые системы, также будут зазеркалированы. При создании нового логического тома всегда следите, чтобы для него была создана копия на отдельном физическом томе.
  • Распределяйте нагрузку операций ввода/вывода для обеспечения производительности и избыточности, насколько это возможно. Если у вас имеется большая система с несколькими дисковыми полками, то можно повысить ее производительность, чередуя данные между наборами дисковых массивов. Если вы решите зазеркалировать ваши физические тома, используйте для этого различные полки – тогда в случае отказа распределительной платы одной из полок доступ к данным не будет потерян, поскольку избыточность обеспечивается несколькими полками.

Средства для оптимизации дисков

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

lspv, lsvg и lslv

Команды lspv, lsvg и lslv являются ключевыми инструментами для визуализации состояния дисков. Команда lspv показывает, каким образом данные распределены на физических томах (пример этой команды был приведен выше). Команда lsvg с опцией –l наглядно показывает, выполняется ли зеркалирование данных и что именно находится внутри группы томов. И, наконец, команда lslv с опцией –m поможет проанализировать распределение указанного логического тома по пяти областям физических томов, как показано ниже:

hd4:/
PV                COPIES        IN BAND       DISTRIBUTION
hdisk0            128:000:000   100%          000:108:020:000:000

chlv

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

migratepv

Если я обнаруживаю, что некоторые логические тома расположены на неправильных физических томах, то, прежде чем перейти к дальнейшей оптимизации, я использую команду migratepv для их перемещения между физическими томами (указывая опцию –l для перемещения данных целыми логическими томами).

reorgvg

Команда reorgvg является основным средством для оптимизации внутренних дисков. Эта команда применяет политику распределения данных внутри физических томов для каждого логического тома и реорганизует физические тома в соответствии с этими стандартами. Эта команда пытается переместить логические тома в определенные области дисков и правильно распределить свободное дисковое пространство. Тем не менее в некоторых случаях эта команда может выполняться очень долго и не обеспечивать идеального выполнения всех задач, так что может потребоваться ручное вмешательство.

migratelp

После того как логические тома будут распределены в соответствии с вашими требованиями, может оказаться, что на диске присутствуют несколько логических или физических разделов, расположенных один внутри другого (например, часть раздела /tmp окружена данными раздела /usr). В таких случаях команда migratelp поможет вручную переместить данные на основе логических разделов и привести диски в порядок.

mirrorvg и mklvcopy

Команды mirrorvg и mklvcopy используются для зеркалирования сразу всех групп томов (mirrorvg) или создания копий определенных логических томов, например, при добавлении файловых систем (mklvcopy). Для команды mirrorvg существует пара приемов, которые можно использовать для оптимизации внутренних дисков. Если политики распределения данных внутри физических томов были настроены с помощью команды chlv, то при зеркалировании группы томов с использованием опции –c зеркальная копия данных будет помещена на новый физический том и будет всегда соответствовать этим политикам. Если же у вас имеется уже оптимизированный диск, то можно использовать опцию –m и получить второй физический том, размеченный в точном соответствии с исходным, таким образом реализовав полностью параллельные операции чтения/записи.


Подводим итоги

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

Листинг 2. Запуск команды lspv после оптимизации диска
# lspv -p hdisk0
hdisk0:
PP RANGE  STATE   REGION        LV NAME             TYPE       MOUNT POINT
  1-1     used    outer edge    hd5                 boot       N/A
  2-2     used    outer edge    hd8                 jfs2log    N/A
  3-110   free    outer edge
111-130   used    outer middle  hd6                 paging     N/A
131-147   used    outer middle  hd9var              jfs2       /var
148-219   free    outer middle  
220-245   used    center        hd2                 jfs2       /usr
246-252   used    center        hd1                 jfs2       /home
253-255   used    center        hd3                 jfs2       /tmp
256-270   used    center        hd10opt             jfs2       /opt        
271-328   free    center        
329-337   used    inner middle  hd4                 jfs2       /
338-437   free    inner middle  
438-440   used    inner edge    livedump            jfs2       /var/adm/ras/livedump
441-448   used    inner edge    lg_dumplv           sysdump    N/A
449-449   used    inner edge    hd11admin           jfs2       /admin
450-546   free    inner edge

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


Заключение

В далекие времена AIX 4.3.3 и серверов IBM RS/6000® оптимизация дисков была насущной необходимостью, позволяя повысить производительность серверов в условиях ограниченных возможностей аппаратных ресурсов. Но и сегодня, несмотря на то, что современные жесткие диски зачастую имеют объем более 100 ГБ и скорость в 15000 об/мин, а новые серверы линейки IBM POWER7® работают намного быстрее, чем раньше, эта относительно простая процедура оптимизации внутренней системы хранения может обеспечить заметный выигрыш в производительности.

Ресурсы

Научиться

  • Оригинал статьи: Optimizing internal AIX storage (EN).
  • Из статьи Кристиана Пруэтта (Christian Pruett) When good disks go bad (EN) (developerWorks, сентябрь 2011 г.) вы узнаете о том, как защищать жесткие диски от сбоев и восстанавливать их, если это все-таки произошло.
  • Из статьи Мартина Брауна (Martin Brown) и Кена Милберга (Ken Milberg) Optimizing AIX 7 performance: Part 2, Monitoring logical volumes and analyzing the results (EN) (developerWorks, октябрь 2010 г.) вы узнаете больше о правильном планировании размещения логических томов на жестком диске перед их созданием.
  • Дополнительную информацию об устранении неисправностей и командах менеджера логических томов LVM вы найдете в документе IBM Redbook AIX Logical Volume Manager from A to Z: Troubleshooting and Commands (EN).

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=863428
ArticleTitle=Оптимизация внутренних жестких дисков в AIX
publish-date=04012013