Solaris io top

06.06.2014

Как выяснить, какой процесс больше всего напрягает систему ввода-вывода в Solaris?
Целая куча скриптов, на любой вкус:
iotop
process_io_top
iosnoop

Да и вообще, не забываем, что есть полезнейший DTraceToolkit навсегда застрявший на версии 0.99, но не потерявший актуальность.

Также полезный ресурс — DtraceBook, здесь есть, как и свежие версии скриптов из DTraceToolkit, так и не мало других скриптов из книжки.

# zoneadm list -vc
ID NAME STATUS PATH BRAND IP
0 global running / native shared
13 ZONE-01 running /zones/ZONE-01 native shared
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool/zones/ZONE-01 14.3G 219G 14.3G /zones/ZONE-01

# zoneadm -z ZONE-01 halt
# zonecfg -z ZONE-01
zonecfg:ZONE-01> set zonename=ZONE-02
zonecfg:ZONE-02> commit
zonecfg:ZONE-02> exit
# zoneadm -z ZONE-02 move /zones/ZONE-02
# zfs rename rpool/zones/ZONE-01 rpool/zones/ZONE-02
# zoneadm -z ZONE-02 boot

В Solaris 11 с созданием новой среды загрузки (Boot Environments BE) все очень просто (в более ранних версиях использовалась LiveUpgrade ). Не нужно отдельных дисков (используется zfs), есть специальная команда с понятным синтаксисом.

Итак, создать новую BE
# beadm create newBE

Посмотреть список всех BE (со всеми снэпшотами, точками монтирования, датами создания и прочим)
# beadm list -a

Посмотреть список всех BE в виде пригодном для машинного разбора
# beadm list -aH

Примонтировать BE и залить на нее пакаджи
# beadm mount newBE /a
# pkg -R /a install package-name

Активировать конкретную BE
# beadm activate newBE

Удалить BE
# beadm destroy newBE
# beadm destroy -F newBE

Список флагов BE, выводимых по команде beadm list
R – Active on reboot.
N – Active now.
NR – Active now and active on reboot.
“-” – Inactive.
“!” – Unbootable boot environments in a non-global zone are represented by an exclamation point.

Ссылки в тему

В последних версиях VxVM научился обнаруживать zfs ну и соответственно теперь может «делать каку»
# vxdisk list
DEVICE TYPE DISK GROUP STATUS
c0t5000CCA0125F2E84d0s2 auto:ZFS - - ZFS
c0t5000CCA01268CBECd0s2 auto:ZFS - - ZFS

При обновлении VxVM до версии 5.1SP1RP2 появляется сообщение:
Читать полностью »

Пришлось наконец столкнуться на практике с передачей сравнительного большого
снимка ZFS по сети. В учебных материалах и официальной документации сказано, что
для передачи по сети следует использовать команды send\recv в сочетании с ssh
через пайп. На практике же это решение оказывается абсолютно не работоспособным
для больших объемов. Лично у меня скорость передачи уперлась примерно в 8 MB/sec
по гигабитной сети, что привело к тому что за 12 часов скопировалось лишь 300
гигабайт данных.
Что же делать?

Читать полностью »

При резервном копировании с ZFS в несколько потоков выяснилась такая вещь, что читается с дисков заметно больше чем пишется на ленты:

# iostat -xnz 3 | egrep 'ABCF|rmt'
...
683.7 0.0 87239.8 0.0 0.0 9.9 0.0 14.5 1 100 c12t600C0FF0000000000ABCF1150B265F00d0
0.0 50.3 0.0 12887.6 0.0 0.1 0.0 1.9 0 10 rmt/1
0.0 109.1 0.0 27926.0 0.0 0.2 0.0 2.1 0 23 rmt/2
691.9 0.0 88372.5 0.0 0.0 9.9 0.0 14.4 1 100 c12t600C0FF0000000000ABCF1150B265F00d0
0.0 59.2 0.0 15146.3 0.0 0.1 0.0 2.0 0 12 rmt/1
0.0 112.1 0.0 28692.7 0.0 0.2 0.0 1.9 0 22 rmt/2

Статистика по zpool iostat показывает тоже самое — чтение с пула идет 80-90МБ. При этом суммарная запись на ленты — раза в два меньше. Куда деваются считанные данные???? ;)
Читать полностью »

1. Как установить Solaris с jumpstart-а

Неожидано не получилось поставить flar-архив с помощью liveupgrade на zfs — luupgrade выводил глупые ошибки, так что решено было установить flar zfs с помощью jumpstart:

Рабочий профиль, создает zfs-пул, имя и разбивку по файловым системам берет из flar-архива, игнорирует часть информации ключевых слов pool и bootenv

install_type flash_install
bootenv installbe bename s10_3 dataset /var
archive_location nfs 192.168.2.226:/myshare/flars/s10.flar
partitioning explicit
pool rpool auto 64g auto c0t1d0s0

Если нужно сразу создать загрузочное zfs-зеркало:

install_type flash_install
archive_location nfs 192.168.2.226:/myshare/flars/s10.flar
partitioning explicit
pool rpool auto auto auto mirror c0t0d0s0 c0t1d0s0

Download profile-zfs-flar-sample

Ссылки:
Про то, что install_type flash_install на zfs не работает (а, на самом деле работает)
Installing a ZFS Root File System (Oracle Solaris Flash Archive Installation)

installboot

03.11.2010

После зеркалирования загрузочных дисков на solaris не забываем о bootblock (ну чтобы если что загрузиться с зеркала)!
Технология при переходе от svm/ufs к zfs не изменилась:
sparc ufs:
metainit d11 c0t1d0s0
metattach d0 d11
cd /usr/platform/`uname -m`/lib/fs/ufs
installboot -F ufs bootblk /dev/rdsk/c0t1d0s0

sparc zfs:
zpool attach rpool c0t0d0s0 c0t1d0s0
cd /usr/platform/`uname -m`/lib/fs/zfs
installboot -F zfs bootblk /dev/rdsk/c0t1d0s0

x86:
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0

При переходе с ufs на zfs на есть только одна засада — нужно чтобы загрузочный диск имел SMI лэйбл и новый zpool располагался на слайсе (для порядка — лучше всего на слайсе 0).
Итак, если нужно перелэйбливаем диск и удаляем ненужные разделы.

Создаем слайс 0 размером с весь диск:
Читать полностью »

Процедура измения размера раздела подкачки на ZFS подробно описана в документации, за исключением одного момента, который может в определенной ситуации стать фатальным для файловой системы.
И так порядок действий по документации:

# zfs list rpool/swap
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool/swap    2.066G   122G    16K  -
# swap -d /dev/zvol/dsk/rpool/swap
# zfs set volsize=96G rpool/swap
# swap -a /dev/zvol/dsk/rpool/swap
# zfs list rpool/swap
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool/swap    2.066G   122G    16K  -

Читать полностью »