FAQ по ОС AIX Часть 2. LVM и paging space


Что такое LVM?

VGDA, LVCB, LV, PV, VG – что это и как с этим бороться?

Почему не создаётся большой файл?

Почему не меняется размер файловой системы?

Как работать с Paging Space?

Вы найдёте ответы на эти и многие другие вопросы…

 

Q: Что такое LVM?

A: LVMLogical Volume Manager, менеджер подсистемы хранения данных в AIX. Отвечает за преобразование физического дискового пространства в логическое. Обеспечивает возможность создания, увеличения, переноса “логических дисков” (в терминологии LVM – логических томов, logical volumes, lv) “на лету”, то есть без остановки работы с дисками и размонтирования находящихся на них файловых систем. Поддерживаются программные RAID 0 и RAID 1.
LVM предоставляет ещё массу интересных и полезных возможностей… Читайте документацию! И (или) спрашивайте на Форуме AIXPORTAL.RU!

 

Q: Я увеличил логический том (LV). А размер файловой системы команды df и lsfs мне показывают старый. Почему?

A: Потому, что увеличение логического тома командой extendlv (или через smit) не ведёт к увеличению файловой системы. Используйте команду ‘chfs’ или меню ‘smit chfs’, чтобы сообщить файловой системе использовать новое пространство.
Но лучше сразу было использовать нужную команду для увеличения размера файловой системы (chfs или smit chfs). Это автоматически увеличит соответствующий логичский том.
Синтаксис команды chfs для изменения размера файловой системы:

# chfsa size=+N /file_system
(увеличить размер на
N)
или
#
chfsa size=-N /file_system
(уменьшить размер на
N)
или
#
chfsa size=N /file_system
(сделать размер равным
N).
N может быть количеством 512-байтных блоков, например, 20000000, мегабайтами, например, 100M, гигабайтами, например, 1G.
Уменьшать размер можно только в файловой системе
JFS2 (Enhanced JFS), начиная с ОС AIX 5.3.
Размер файловой системы в любом случае будет кратен целому числу логических разделов (
logical partitions), так как она находится на логическом томе (logical volume). Изучайте LVM – Logical Volume Manager.

 

Q: Как удалить несуществующий физический том?

A: Чтобы удалить диск-призрак из ODM, используйте ‘reducevg’ с идентификатором диска (pvid) вместо имени. До этого запустите ‘lsvg’ или ‘varyonvg’, и они пожалуются, что нельзя найти диск. В этом сообщении должен быть pvid. Затем попробуйте одно из (замечание – ldeletepv обновляет VGDA, но не ODM):

# reducevg -f

# ldeletepv -g VGid -p Pvid

VGid – идентификатор Volume Group, из которой удаляете физический том

PVid – идентификатор физического тома, который надо удалить

 

Q: Как сделать файл размером больше 2 Гбайт ?

A: Используйте файловую систему JFS2 (Enhanced JFS). В ней можно создавать файлы размером до 1Тб. Советуем также проверить лимит на максимальный размер файла (в том числе для root). Команда ulimit покажет текущий лимит (в 512-байтных блоках, -1 = лимит не установлен), команда ulimit ulimited снимает лимит для текущего окружения. Если нужно убрать лимит “навсегда”, воспользуйтесь smit chuser или отредактируйте файл /etc/security/limit, параметр fsize, для снятия лимита сделайте его равным -1.

 

Q: Команда chlv выдала предупреждение. Не повреждены ли первые 512 байт в logical volume (LV) ?

A: В первых 4K LV находится управляющий блок. Приложения, которые выполняют запись в raw disk, могут перезаписать это место. (“Нормальные” приложения, такие как Oracle, Sybase, “знают” про LVCB и пропускают первые 4K, ) Команды, которые вызывают getlvcb, будут выдавать предупреждение, но выполняться нормально, так как управляющий блок есть и в ODM. Не запускайте synclvodm, кроме случая, когда вы действительно хотите очистить первые 4 Кбайта и заменить их данными из ODM.

LVCB (Logical Volume Control Block) – это первые 512 байт LV. Здесь содержатся важные данные (дата создания LV, данные о зеркальных копиях, возможные точки монтирования). Некоторые команды LVM обновляют LVCB. Старая область LVCB вначале читается и анализируется, ‘хороший’ ли LVCB. Если все нормально, то LVCB обновляется. Если нет, обновление не выполняется, и выдается сообщение:

Warning, cannot write lv control block data

Обычно, это результат деятельности СУБД, использующих raw LV (в обход jfs-системы) как среду хранения данных. Когда это происходит, то данные БД уже записаны поверх LVCB. Хотя это кажется фатальным, но на самом деле нет. Пользователь может: расширить LV, создать зеркальные копии LV, удалить LV, создать jfs-систему, с которой монтировать LV (но это разрушит все данные в области LVCB).

Но есть ограничение, вызванное удалением LVCB. Логические тома с удаленным LVCB приводят к возможному неполному импорту в другую системы. По команде "importvg" LVM будет сканировать блоки LVCB всех defined LV-томов в VG, чтобы получить данные о LV-томах. Если LVCB удален, то импортируемая VG все же определит LV в новой системе, и пользователь может получит доступ к raw LV.

Но все данные о jfs-системах теряются, и LV и его точка монтирования не будут импортироваться в новую систему. Надо создать новые точки монтирования. Но доступность данных, хранившихся в этой файловой системе, не гарантируется. Также во время импорта LV со стертым LVCB не будут найдены некоторые данные о LV (которые выдаются по команде lslv).

Когда это происходит, система использует данные о LV по умолчанию, чтобы ‘населить’ ODM данными о LV. То есть, часть ‘распечатки’ lslv не будет отражать реальный LV. Если на первоначальных дисках остались копии LV, то эти данные не будут корректно отражены в ODM. Используйте "rmlvcopy" и "mklvcopy" для восстановления копий LV и синхронизации ODM. А c ‘чистым’ LVCB ‘распечатка’ lslv может просто вводить в заблуждение.

 

Q: Почему возникают проблемы при добавлении диска к VG?

A: Это бывает при добавлении нового диска к существующей VG или при создании новой VG. Предупреждение от LVM:

Not enough descriptor space left in this volume group.

Either try adding a smaller PV or use another volume group.

На каждом диске в VG есть область – Volume Group Descriptor Area (VGDA). Она позволяет импортировать VG на другую систему. VGDA содержит имена дисков, образующих VG, их физические размеры, размещение разделов LP, логические тома (LV), существующие в VG, и другие данные, относящиеся к LVM.

При создании VG команда mkvg по умолчанию позволяет задать до 32 дисков в VG. С появлением больших дисков, этот лимит обычно не достигается, потому что место в VGDA для больших дисков расходуется быстрее. Но размер VGDA не изменился, так спроектировано в LVM. Большие диски требуют больше места для управляющей информации в VGDA. Это приводит к сокращению числа и размеров дисков, которые можно добавить к существующей VG. Когда диск добавляется к VG, не только он получает копию обновленной VGDA, но и все диски в этой VG должны получить обновленную VGDA.

Варианты решения проблемы: a) использование фактора “Т” для увеличения максимального количества РР на PV за счёт уменьшения максимального количества PV в VG, команда chvgt N имя_VG  b) конвертация VG в масштабируемую (Scalable), в таком случае о лимитах можно “практически” забыть (максимум 1024 PV на VG, 2 миллиона PP на VG), команда chvgS имя_VG. Примечание: советуем сначала повнимательнее изучить то, что Вы собираетесь сделать. Если что, мы Вам этого не советовали и ни за что не отвечаем!

 

Q: Как устранить блокировку VG?

A: Убедитесь сначала, что блокировка действительно не нужна (т.е. не запущен никакой процесс, модифицирующий группу томов) – внимательно посмотрите отчёт команды psef. Иначе результат может быть непредсказуемым (скорее всего, Вы повредите контрольную информацию и придётся сдувать пыли с резервных копий – для восстановления и Вашего резюме – для поиска новой работы).

При сообщении типа ‘0516-266 putlvodm: volume group <vgname>is locked, try again’, можно выполнить:
# putlvodm -K `getlvodm -v <vgname>`
Можно также воспользоваться командой
# chvgu <vgname>

Q: Как удалить VG, в которой нет дисков?

A: В VG есть Volume Group Descriptor Area (VGDA) с LVM информацией. Это то, что позволяет ‘забрать’ диски на другую машину, импортировать их, и получить автоматически определенные файловые системы.

При импорте VG, AIX читает VGDA и узнает обо всех LV-томах и файловых системах, которые могут быть в VG. Затем проверяет конфликты имен, на своей машине и затем населяет свою базу ODM информацией о новой VG и связанных с ней LV-тома. Для файловых систем в файл /etc/filesystems добавляются новые описания, которые приходят с импортируемой VG.

Теперь вы получили независимую VG, которая пристыкована к другой системе. То, что сохраняет их привязанными друг к другу – команда varyonvg. Когда этот процесс начинается, создается программная связь, и нельзя отделить VG от AIX, кроме случая, когда VG больше не видна как активная в системе. Эта ситуация может произойти, когда VGDA думает, что VG активизирована, но AIX не думает, что VG доступна.

Вопрос – "Я удалил диски, но как избавиться от VG" должен звучать так – "Как избавиться от ИНФОРМАЦИИ О VG”. Возможно, есть описания в /etc/filesystems и в ODM. Выполните:

# exportvg <vgname>

Ее действие обратно importvg, но она не читает VGDA. Она удаляет всю информацию о VG в /etc/filesystems и ODM. Но это не будет работать, если система обнаружит, что VG активирована.

Иногда волнуются, что exportvg как-то повредит VG и/или ее VGDA. Но все, что она делает, касается только информации о VG в системе. То есть, экспортированную VG, можно безопасно перенести на другую машину. Единственный случай, когда VGDA портится, если создается новый том поверх ее.

Вопрос – "Как избавиться от диска, который больше не находится в VG ?" В этом случае – НЕ ДЕЛАТЬ exportvg. Надо сообщить системе – удалить старый диск из VGDA этой VG.

# reducevg -d -f <vgname> <hdname>

# reducevg -d -f <vgname> <PVID> – если hdname нельзя выяснить

Будьте осторожны с этой командой. В отличие от exportvg, ее действия ПОВЛИЯЮТ

на информацию VGDA на диске.

 

Q: Как создать новое пространство подкачки (paging space)?

A: # smit mkps


 
Q: Как изменить размер пространства подкачки (paging space)?

A: Увеличить размер;
#
chpsS PP pagingXX
уменьшить размер:
#
chpsd PP  pagingXX
где
PP – количество физических разделов Physical Partitions, pagingXX – пространство подкачики (в том числе hd6).
Размер может быть изменён как на неактивном пространстве подкачки, так и на активном (исключение: при уменьшении пространства подкачки суммарная занятость должна оставаться в пределах 100, а лучше 80 процентов, см. командой
lspsa).

Q
: Как уничтожить пространство подкачки (paging space)?

A: Сначала деактивизировать его командой
#
swapoff /dev/pagingXX
потом удалить:
#
rmps pagingXX
Исключение 1: при уменьшении пространства подкачки суммарная занятость должна оставаться в пределах 100, а лучше 80 процентов, см. командой
lspsa.
Исключение 2: Пространство подкачки
hd6 удалить нельзя.

 

 

Оставьте комментарий