вторник, 20 апреля 2010 г.

Stripe в Veritas

Описание процедуры создания плекса для раздела Veritas

Инициация диска

Для начале надо инициализировать диск:
# vxdisksetup -i c1t5d0
У меня оно вывалилось с ошибкой
VxVM vxdisksetup ERROR V-5-2-3535 c1t5d0s2: Invalid dmpnodename for disk device c1t5d0.
Решение подсказал гугл:
# vxdmpadm getdmpnode nodename=c1t5d0
NAME                 STATE     ENCLR-TYPE   PATHS  ENBL  DSBL  ENCLR-NAME
=========================================================================
Disk_5               ENABLED   Disk         1      1     0     Disk
После этого
# /usr/lib/vxvm/bin/vxdisksetup -f -i Disk_5 format=simple
Скормили диск по имени веритаса. Причин ошибки пока не нашел, как узнаю - опишу в этой же статье. Повторяем это же действие для Disk_2. Это понадобится далее для страйпа.
Собственно это имя можно было получить и по другому:
# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
Disk_0       auto:none       -            -            online invalid
Disk_1       auto:none       -            -            online invalid
Disk_2       auto:simple     testdg02     testdg       online
Disk_3       auto:none       -            -            online invalid
Disk_4       auto:none       -            -            online invalid
Disk_5       auto:simple     testdg05     testdg       online

Отсюда мы видим, что Disk_2 и Disk_5 инициализированы.

Создание дисковой группы

Создаем дисковую группу:
# vxdg init testdg testdg05=Disk_5 cds=off
Обратите внимание на параметр cds=off, который отключает расширение кроссплатформенности. Данное расширение работало бы только в том случае, если бы мы выбрали тип диска cdsdisk на предыдущем этапе, а нужно было бы если бы у нас была гетерогенная инфраструктура хранилища.
Чтобы не указывать каждый раз этот параметр его можно установить в файле /etc/default/vxdg. Если файла нет - просто создаем его. Подозреваю, что в этой директории можно создать файлы настроек по умолчанию и для других программ пакета.
Ради удобства созданную дисковую группу можно сделать группой по-умолчанию в системе, дабы не указывать ее в каждой последующей команде с помощью ключа -g :
# vxdctl defaultdg testdg
Добавим второй диск в группу:
# vxdg adddisk testdg02=Disk_2
# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
Disk_0       auto:none       -            -            online invalid
Disk_1       auto:none       -            -            online invalid
Disk_2       auto:simple     testdg02     testdg       online
Disk_3       auto:none       -            -            online invalid
Disk_4       auto:none       -            -            online invalid
Disk_5       auto:simple     testdg05     testdg       online

Создание тома

Создаем волум минимально допустимого размера
# vxassist make testvol 16 layout=striped
Наблюдаем, что он есть:
# vxassist list
TY NAME            DISKGROUP   POOL   LENGTH     NMIR   NCOL   LAYOUT
v  testvol         testdg      -      0          1      0      stripe
Вычисляем максимально допустимый размер, до которого мы можем раздвинуть наш волум:
# vxassist -b maxgrow testvol
Volume testvol can be extended by 573222912 to: 573222928 (279894Mb+16 sectors)
Растягиваем волум:
# /usr/lib/vxvm/bin/vxresize testvol 573222928
Проверяем результат:
# vxassist list
TY NAME            DISKGROUP   POOL   LENGTH     NMIR   NCOL   LAYOUT
v  testvol         testdg      -      279894     1      2      stripe

Наблюдаем появление устройства в системе:
# ls -l /dev/vx/rdsk/testdg/testvol
crw-------   1 root     root     298, 17000 Apr 13 10:02 /dev/vx/rdsk/testdg/testvol
Отформатируем наш диск:
# mkfs -F vxfs /dev/vx/rdsk/testdg/testvol
    version 7 layout
    573222928 sectors, 286611464 blocks of size 1024, log size 65536 blocks
    largefiles supported
И примонтируем:
# mkdir /mnt/testvol
# mount -F vxfs /dev/vx/dsk/testdg/testvol /mnt/testvol/
# df -h|grep testvol
/dev/vx/dsk/testdg/testvol   273G   134M   256G     1%    /mnt/testvol
Полезный способ посмотреть в комплексе наше творение:
# vxprint
Disk group: testdg

TY NAME         ASSOC        KSTATE   LENGTH   PLOFFS   STATE    TUTIL0  PUTIL0
dg testdg       testdg       -        -        -        -        -       -

dm testdg02     Disk_2       -        286612464 -       -        -       -
dm testdg05     Disk_5       -        286612464 -       -        -       -

v  testvol      fsgen        ENABLED  573222928 -       ACTIVE   -       -
pl testvol-01   testvol      ENABLED  573223168 -       ACTIVE   -       -
sd testdg02-01  testvol-01   ENABLED  286611584 0       -        -       -
sd testdg05-01  testvol-01   ENABLED  286611584 0       -        -       -
Поигравшись с ключами запуска этой утилиты вы можете подобрать наиболее удобное отображение информации.

vxmake

Эти же действия можно сделать на более низком уровне с помощью утилиты vxmake. Разберем как в обучающих целях.
Узнаем раздел диска:
# vxprint -g testdg25 -l testdg02
Disk:     testdg02
info:     diskid=1271137502.28.v890test
assoc:    device=Disk_2 type=auto
flags:    autoconfig
device:   path=/dev/vx/dmp/Disk_2s3
devinfo:  publen=286612464 privlen=65536
Создаем субдиск:
# vxmake -g testdg25 sd testdg02-01 testdg02,0,286612464
Создаем плекс и ассоциируем диск(и) с плексом:
# vxmake -g testdg25 plex testvol25-01 sd=testdg05-01,testdg02-01 layout=stripe stwidth=128 ncolumn=2
Создаем том и ассоциируем том с плексом:
# vxmake -g testdg25 -Ufsgen vol testvol25 plex=testvol25-01
Инициируем и запускаем том:
# vxvol -g testdg25 start testvol25

Комментариев нет:

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