Wednesday, 6 September. 2006
Когда приложению требуется доступ к какой-либо функции ядра, обычно следует системный вызов. Когда системный вызов возвращается, обычно он содержит значение, определяющее успех или неудачу вызова, и в случае неудачи, полное значение ошибки. Чтобы отслеживать ошибки системы или отдельных процессов, можно использовать скрипт errinfo из DTraceToolkit:
$ errinfo -n _app
EXEC SYSCALL ERR DESC
_app stat 2 No such file or directory
_app lseek 29 Illegal seek
_app pause 4 interrupted system call
Он выводит системные вызовы, котрые возвращают ошибки, значение ошибки и номер ошибки из errno.h.
Отличный скрипт, позволяющий отслеживать ошибки в системе очень легко.
В Solaris наблюдение за CPU и расходованием виртуальной памяти обеспечивается с помощью утилит mpstat и vmstat. Эти утилиты предоставляют полезную статистику но не могут полностью гарантировать достоверность выводимых значений. Эта статья показывает как с помощью DTrace можно узнать какой программе или области ядра соответствуют значения, которые периодически появляются на консоли. Вывод DTrace является ценной отправной точкой для проведения дополнительных тестов, и в некоторых случаях помогает выявить ошибки в программах и областях ядра.
Продолжить чтение "Анализ вывода mpstat и vmstat с помощью DTrace"
Monday, 4 September. 2006
Еще раз коротко про то, как установить Solaris x86 по сети:
1. Качаем CD c дистрибутивом. Ставить будем из /opt/solaris_install (на sparc).
2. Монтируем их - скажем в /mnt, далее - cd /mnt/Solaris_10/Tools/ и для каждого запускаем : для первого ./setup_install_server, для остальных - ./add_to_install_server /opt/solaris_install. Не забываем расшарить /opt/solaris_install по NFS.
3. # ./add_install_client -d SUNW.i86pc i86pc.
Видим что-то вроде этого:
cleaning up preexisting install client "SUNW.i86pc"
If not already configured, enable PXE boot by creating
a macro named PXEClient:Arch:00000:UNDI:002001 with:
Boot server IP (BootSrvA) : 192.168.1.1
Boot file (BootFile) : SUNW.i86pc
4. # ./add_install_client -d -e 0:e0:41:78:ef:ad -s 192.168.1.1:/opt/solaris_install i86pc (без config)
5. Конфигурируем DHCP (dhcpconfig - ну тут уж по Sun'у) и заносим макросы:
# /usr/sadm/admin/bin/dhcpmgr & (если X есть)
# dhtadm -A -s SrootOpt -d 'Vendor=SUNW.i86pc,1,ASCII,1,0'
# dhtadm -A -s SrootIP4 -d 'Vendor=SUNW.i86pc,2,IP,1,1'
# dhtadm -A -s SrootNM -d 'Vendor=SUNW.i86pc,3,ASCII,1,0'
# dhtadm -A -s SrootPTH -d 'Vendor=SUNW.i86pc,4,ASCII,1,0'
# dhtadm -A -s SswapIP4 -d 'Vendor=SUNW.i86pc,5,IP,1,1'
# dhtadm -A -s SswapPTH -d 'Vendor=SUNW.i86pc,6,ASCII,1,0'
# dhtadm -A -s SbootFIL -d 'Vendor=SUNW.i86pc,7,ASCII,1,0'
# dhtadm -A -s Stz -d 'Vendor=SUNW.i86pc,8,ASCII,1,0'
# dhtadm -A -s SbootRS -d 'Vendor=SUNW.i86pc,9,NUMBER,2,1'
# dhtadm -A -s SinstIP4 -d 'Vendor=SUNW.i86pc,10,IP,1,1'
# dhtadm -A -s SinstNM -d 'Vendor=SUNW.i86pc,11,ASCII,1,0'
# dhtadm -A -s SinstPTH -d 'Vendor=SUNW.i86pc,12,ASCII,1,0'
# dhtadm -A -s SsysidCF -d 'Vendor=SUNW.i86pc,13,ASCII,1,0'
# dhtadm -A -s SjumpsCF -d 'Vendor=SUNW.i86pc,14,ASCII,1,0'
# dhtadm -A -s Sterm -d 'Vendor=SUNW.i86pc,15,ASCII,1,0'
# dhtadm -A -s SbootURI -d 'Vendor=SUNW.i86pc,16,ASCII,1,0'
# dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootSrvA=192.168.1.1:BootFile="SUNW.i86pc":'
5. Смотрим в меню Grub:
default=0
timeout=30
title Solaris_10 installserver
kernel /I86PC.Solaris_10-1/multiboot kernel/unix -B \
install_media=192.168.1.1:/opt/solaris_install,install_boot=192.168.1.1:/opt/solaris_install
module /I86PC.Solaris_10-1/x86.miniroot
Включаем клиенту загрузку по PXE и поехали ставить...
|