# pvdisplay /dev/dsk/c0t5d0
--- Physical volumes ---
PV Name /dev/dsk/c0t5d0
VG Name /dev/vg00
PV Status available
Allocatable yes
VGDA 2
Cur LV 9
PE Size (Mbytes) 4
Total PE 511
Free PE 81
Allocated PE 430
Stale PE 0
IO Timeout (Seconds) default
# lvdisplay /dev/vg00/lvol1
--- Logical volumes ---
LV Name /dev/vg00/lvol1
VG Name /dev/vg00
LV Permission read/write
LV Status available/syncd
Mirror copies 0
Consistency Recovery MWC
Schedule parallel
LV Size (Mbytes) 48
Current LE 12
Allocated PE 12
Stripes 0
Stripe Size (Kbytes) 0
Bad block off
Allocation strict/contiguous
Если logical volumes используется для корневой (root) файловой системы, первичной swap области или dump области, physical extents должны распределяться методом contiguous. Это означает что между они должны следовать непрерывно на одном физическом диске и между ними не должно возникать прпомежутков. Другие logical volumes использующиеся для некорневых файловых систем могут не следовать этому ограничению.
Для определения требуемого объема logical volume необходимого для создания файловой системы можно использовать следующую диаграмму:
Системная утилита SAM позволяет выполнять большинство но не все операции над LV. К тем задачам с которыми она справляется можно отнести:
· Создание и удаление volume groups.
· Добавление и удаление дисков из volume groups.
· Создание, удаление и модификация logical volumes.
· Создание и увеличение обьема файловых систем находящихся на logical volumes.
· Cоздание и модификация swap и dump logical volumes.
Для этого, после запуска SAM нужно войти в раздел “Disks and file systems” а затем в один из нужных подразделов. Все дальнейшие действия выполняются с использованием графической оболочки и являются интуитивно понятными. Все тоже самое можно выполнить используя команды HP-UX.
Создание physical volume (PV).
pvcreate /dev/rdsk/c0t6d0
Все данные имеющиеся на этом диске будут потерены, в качестве аргумента программы pvcreate необходимо использовать символьный (raw) файл-устройство диска. Послк инициализации, данный диск можно рассматривать как physical volume.
Помещение PV в одну из volume groups (VG)
Если необходимо создать новую VG, то в самом начале нужно сделать директорию для файлов-устройств отвечающих за данную VG:
mkdir /dev/vgnn
cd /dev/vgnn
Затем нужно создать необходимые файлы устройств:
mknod /dev/vgnn/group c 64 0xNN0000
В качестве старшего номера устройства всегда нужно использовать 64, 0xNN0000 является младшим номером устройств и NN представляет собой уникальный среди всех VG номер. Теперь можно приступать к созданию VG:
vgcreate /dev/vgnn /dev/dsk/c0t6d0 …
Вторым (третьим, четвертым …) аргументом этой команды должен быть файл-устройство блочного типа соответствующего physical volume который не является членом какойто из существующих VG.
Создание Logical Volume.
lvcreate /dev/vgNN
После чего появится блочные и символьные файлы устройств /dev/vgNN/lvoln и /dev/vgNN/rlvoln. LVM сам выберет подходящий номер n. Для создания LV с именем отличным от того что создается по умолчанию нужно воспользоваться опцией –n. Данный LV будет иметь нулевой размер, в дальнейшем его можно увеличить. Также указав опцию –L можно создать LV заранее необходимого размера (в Мб), при этом реальный размер LV будет округлен в большую сторону и кратен целому количеству physical extents.
Задачи котоые можно выполнить только с использованием комманд HP-UX
К ним можно отнести:
· Расширение LV за счет определенного диска
· Создание корневой (root) VG и корневого LV
· Резервное копирование и восстановление конфигурации VG
· Перемещение данных с одного LVM диска на другой
· Уменьшение размера LV
Расширение LV за счет определенного диска
Допустим имеется необходимость создать LV на 120Мб, причем первые 60 Мб необходимо взять с одного диска а оставшиеся 60 с другого. Так поступают часто в случаях когда необходимо повысить производительность файловой системы за счет паралельного использования нескольких дисков. Вначале создаем LV нулевого размера:
lvcreate –n lvol11 /dev/vg00
затем выполняем необходимые расширение ее обьема за счет определенных дисков:
lvextend –L 60 /dev/vg00/lvol11 /dev/dsk/c0t5d0
lvextend –L 60 /dev/vg00/lvol11 /dev/dsk/c0t6d0
Корневой VG это VG который используется системой при загрузке. На нем размещается LV содержащий корневую файловую систему, первичный swap и dump области. Ниже приводятся этапы последовательного создания корневого VG. Во-первых создается PV на котором размещается LIF раздел в котором находятся загрузочные утилиты. Для этого в команде pvcreate используется опция -B:
pvcreate -B /dev/rdsk/c0t6d0
Создаем корневой LV:
vgcreate /dev/vgroot /dev/dsk/c0t6d0
Помещаем загрузочные утилиты в LIF область VG:
mkboot /dev/rdsk/c0t6d0
Записываем в LIF область AUTO файл:
mkboot –a “hpux (;0)/stand/vmunix” /dev/rdsk/c0t6d0
После выполнения всех этих действий корневая VG готова к созданию на ней LV. Корневой LV должен быть самым первым в этой VG, и следовать сразу за boot областью. Это значит что он должен начинаться с нулевого physical extent. Теперь можно переходить к созданию корневого LV, при его создании нужно включить опцию “смежный LV” (-C) и запретить перемещение bad блоков (-r):
lvcreate –C y –r n –n root /dev/vgroot
lvextend –L 160 /dev/vgroot/root /dev/dsk/c0t6d0
В конеце необходимо пометить сосзданный LV как корневой:
lvlnboot –r /dev/vgroot/root
Для создания резервной копии конфигурации VG нужно воспользоваться командой vgcfgbackup. Пежде чем выполнять эту команду нужно убедится что все LV в данной VG находятся в состоянии available/syncd (для этого можно воспользоваться командой vgdisplay –v). По умолчанию команда vgcfgbackup сохраняет конфигурационый файл VG под именем /etc/lvmconf/volume_group_name.conf. Это имя можно переопределить задав опцию –f.
Восстановление конфигурации выполняется командой vgcfgrestore. Перед этим необходимо предварительно деактивировать данную VG командой vgchange. Например:
vgchange –a n /dev/vg01
vgcfgrestore –n /dev/vg01 /dev/rdsk/c0t6d0
Выполнение этих команд приведет к восстновлению информации о VG vg01 из файла /etc/lvmconf/vg01.conf . Затем необходимо активировать данную VG:
vgchange –a y /dev/vg01
В жизни могут возникнуть ситуации при которых необходимо:
· Переместить диск входящий в состав VG на другое положение в пределах системы.
· Переместить целую VG с одной системы на другую.
Файл /etc/lvmtab содержит информацию о отображении LVM дисков на соответствующие VG. При любых изменениях связанных с дисками и VG в системе этот файл изменяется, однако это не текстовый файл и напрямую его редактировать нельзя. Вместо этого нужно пользоваться программами vgexport и vgimport.
Перемещение диска в системе.
Для перемещения диска в системе на новое место необходимо выполнить следующее:
· Создать резервную копию конфигурации VG в которую входит диск и данных хранящихся на диске
· Деактивировать VG в состав которой входит диск:
vgchange –a n /dev/vgxxx
· Удалить запись ассоциированную с этим диском из /etc/lmvtab а также файлы устройств из каталога /dev/vgxxx
vgexport /dev/vgxxx
· Создать заново VG, и добавить запись в /etc/lvmtab
mkdir /dev/vgxxx
mknod /dev/vgxxx/lvolN c 64 0x010000
vgimport /dev/vgxxx /dev/dsk/cntndn
· Активировать вньовь ипортированную VG
vgchange –a y /dev/vgxxx
· Создать резервную копию конфигурации VG
vgcfgbackup /dev/vgxxx
Для перемещения диска с одного места на другое между двумя системами необходимо выполнить следующие действия:
· Деактивировать VG
vgchange –a n /dev/vgxxx
· Удалить информацио о VG из /etc/lvmtab указав имя map файла который будет содержать удаляемую информацию (он содержит также имена удаляемых LV из VG)
vgexport –p –v –m plan_map vgxxx
просмотрев map_file и убедившись в правильности можно выполнить реальное удаление
vgexport –v –m plan_map vgxxx
· Переносим map_file на новую систему, останавливаем старую систему, переносим диски на новую.
· На новой системе создаем VG
mkdir /dev/vgxxx
cd /dev/vgxxx
mknod /dev/vgxxx c 64 0x080000
· Импортируем новую конфигурацию. Для просмотра используется опция –p, для выполнения реального импорта она должна отстутствовать: (предполагается что в новую систему переносились диски которые распозхнались как /dev/dskc0t2d0 /dev/c0t3d0)
vgimport –p –v –m plan_map /dev/vgxxx /dev/dskc0t2d0 /dev/c0t3d0
· Активируем VG
vgchange –a y /dev/vgxxx
Перенос данных на другой physical volume.
Для переноса данных содержащихся в LV с одного диска на другой необходимо воспользоваться командой pvmove. Например для переноса данных из LV /dev/vg01/lvo1 с диска /dev/dsk/c0t0d0 на /dev/c0t1d0:
pvmove –n /dev/vg01/lvol1 /dev/dsk/c0t0d0 /dev/c0t1d0
Для полного переноса данных с одного диска на другой можно воспользоваться:
pvmove /dev/dsk/c0t0d0 /dev/c0t1d0
Уменьшение обьема Logical Volumes
Для уменьшения обьема LV используется команда lvreduce. Однако в этом случае данные хранящиеся в файловой системе на этом LV будут потеряны, поэтому необходимо предварительное резервное копирование. Также можно воспользоваться другой техникой – вначале удалить LV командой lvremove, а затем создать LV требуемого размера командой lvcreate.
VxFS является HP-UX реализацией журнальной файловой системы известной как JFS на базе версии корпорации VERITAS. Прежние версии HP-UX (меньше 10.*) имели в своем арсенале лишь HFS, начиная с 10.01 появилась дополнительная опция на использование VxFS в качестве файловой системы. Однако VxFS не может быть использована как файловая система для раздела /stand из которого происходит зщагрузка ядра. В ранних версиях 10-го релиза HP-UX она так же не могла быть использована для корневой файловой системы. По сравнению с HFS имеет меньшее время восстановление при сбоях и имеет повышеную производительность на больших объемах данных, т.к. блок используемый ею может состоять из множества физических блоков. Т.к. это журнальная файловая система то она позволяет вести online backup. Однако в отличии от HFS она потребляет больше памяти.