Skip to main content

Quick and Dirty Cheatsheet: LDOM Disk Expansion Over ZFS Pool

При инсталляции Ops Center возникли довольно жесткие требования к системе, в которую желаем ставиться – в частности по требуемому месту на диске. Ну у нас же Solaris – нам даже не нужно перезагружаться 🙂

На primary домене создаем новое искомое устройство (у меня в примере – zfs, и гость, и Primary – Solaris 11.1) и отдаем его в домен:

zfs create -V 64G datapool/ldoms/ops1
ldm add-vdsdev /dev/zvol/dsk/datapool/ldoms/ops1 ops1@primary-vds0
ldm add-vdisk disk1 ops1@primary-vds0 ops0

В логическом домене проверяем наличие устройства (любыми подручными средствами), размечаем его и выполняем операцию замены:

zpool replace rpool c2d1s0 c2d2s0

Ждем резильвера, наблюдаем за ошибками:

fmadm faulty
zpool status

В Solaris 11 необходимости выполнения installboot больше нет. В зависимости от нагрузки на основной ZFS-пул я предпочитаю регулировать интенсивность ввода-вывода с помощью zfs_vdev_max_pending – причем как в primary-домене, так и в гостевом:

root@ops0:~# mdb -kw
Loading modules: [ unix genunix specfs dtrace zfs scsi_vhci ldc mac ip hook neti arp fctl kssl sockfs random idm cpc fcip fcp crypto mdesc ufs sppp logindmux ptm nfs ]
> zfs_vdev_max_pending/D
zfs_vdev_max_pending:
zfs_vdev_max_pending: 10
> zfs_vdev_max_pending/W 2
zfs_vdev_max_pending: 0xa = 0x2

Дело вкуса – использую доступные мне механизмы регулирования ввода-вывода, есть предложения, как это делать правильно – с удовольствием послушаю!

После окончания резильвера рекомендация общего плана – перезагрузка. Но вот зачем оно мне надо, у нас же типа HA-система и необходимости ребута надо сводить к минимуму (отсюда наши танцы с бубном).

Увеличиваем доступное пространство в rpool (“покурив” вот эту доку – кто желает попробовать autoexpand на rpool – welcome c комментариями после тестов):

zpool online -e rpool c2d2s0

После окончания резильвера отключаем “старое” устройство на primary-домене и прописываем корректную автозагрузку:

ldm set-var boot-device=disk1 ops0
ldm remove-vdisk disk0 ops0
ldm remove-vdiskserverdevice ops0@primary-vds0
zfs destroy datapool/ldoms/ops0

Позитив. Однако.

PS: напомнили, что можно использовать online -e. Да, можно – только надо будет делать перезагрузку, а я как раз и пытаюсь обойтись без манипуляций с живым доменом – нужно искать профиты!