Distributions utilisées sur les machines du labo
depuis 2011, deux machines sont maintenues
- antigone Solaris 11 Express (ex opensolaris)
- fury Solaris 10
- Solaris
8 et10 - Solaris Express sur portables (dellgh)
- Opensolaris (dite Indiana) sur ultra20 et portables delljm et dellcp
- nexenta testée puis de-installée
Outils d'admin
Infodocs
- PDF en local Solaris 10 System Administrator Collection
- Gestion de ressources sous Solaris 10 Lien externe, Postgres and Solaris Virtualization, Solaris Zones - capped memory??
- le swap Impact of Swap Space on System Performance for the Solaris 9 and 10 OS
- http://blogs.sun.com/yongsun/entry/several_tips_of_porting_gnu pour les problèmes de compilation de logiciels gnu
- outils pour rendre le code plus performant:
- un outil permet d'optimiser une appli sans le source, un autre permet de trouver les problemes memoire (sorte de lint?) a voir si ca marche en fortran?
Discover The Sun Memory Error Discovery Tool (Discover) is used by software developers to detect programming errors related to the allocation and use of program memory at runtime.
- Lien externe à voir, sur SRM, zfs, mémoire, …
Ldap
Sparc
Tips
modifier grub dans opensolaris (boot zfs)
Avant le boot zfs, il suffisait de booter sur un cd, de monter la partition ufs contenant le /. Avec zfs, il faut récupérer le pool, et accéder à /rpool/boot/grub/menu.lst
Lorsqu'on boote sur le LiveCD, on a:
jack@opensolaris:~$ pfexec zpool import pool: rpool id: 7697179275706784463 state: ONLINE status: The pool was last accessed by another system. action: The pool can be imported using its name or numeric identifier and the '-f' flag. see: http://www.sun.com/msg/ZFS-8000-EY config: rpool ONLINE c3d0s0 ONLINE jack@opensolaris:~$ pfexec zpool import -f rpool cannot mount '/opt/jdsbld': failed to create mountpoint cannot mount '/usr/local': failed to create mountpoint jack@opensolaris:~$ zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 17.7G 1.84G 50K /rpool rpool/ROOT 10.5G 1.84G 18K legacy rpool/ROOT/opensolaris 6.37M 1.84G 8.72G / rpool/ROOT/opensolaris-5 196M 1.84G 8.72G / rpool/ROOT/opensolaris-nv 10.3G 1.84G 8.72G / rpool/dump 511M 1.84G 511M - rpool/export 5.51G 1.84G 19K /export rpool/export/home 5.51G 1.84G 24.3M /export/home rpool/export/home/henry 5.49G 1.84G 5.49G /export/home/henry rpool/jdsbld 18K 1.84G 18K /opt/jdsbld rpool/local 719M 1.84G 719M /usr/local rpool/swap 557M 1.84G 557M -
/rpool est donc directement accessible:
jack@opensolaris:~$ cat /rpool/boot/grub/menu.lst splashimage /boot/grub/splash.xpm.gz background 215ECA timeout 30 default 3 #---------- ADDED BY BOOTADM - DO NOT EDIT ---------- #---------------------END BOOTADM-------------------- title Windows rootnoverify (hd0,0) chainloader +1 # Unknown partition of type 5 found on /dev/rdsk/c3d0p0 partition: 2 # It maps to the GRUB device: (hd0,1) . title opensolaris-5 findroot (pool_rpool,2,a) bootfs rpool/ROOT/opensolaris-5 kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive #============ End of LIBBE entry ============= title opensolaris findroot (pool_rpool,2,a) bootfs rpool/ROOT/opensolaris kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive #============ End of LIBBE entry ============= title opensolaris-nv findroot (pool_rpool,2,a) bootfs rpool/ROOT/opensolaris-nv kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive #============ End of LIBBE entry =============
par contre, pour accéder à passwd/shadow, il faut monter manuellement le dataset zfs correspondant.
Générer un core sur un kernel pour analyse
en cas de problème, et qu'on soit obligé de faire un break
(STOP <A>), il vaut mieux générer un core du kernel pour analyse ultérieure à la hotline sun:
sc> break -c Are you sure you want to send a break to the system [y/n]? y Enter SC Alert: SC Request to send Break to host. #. to return to ALOM. Debugging requested; hardware watchdog suspended. Type 'go' to resume {1b} ok sync panic[cpu27]/thread=2a101901cc0: sync initiated sched: software trap 0x7f pid=0, pc=0xf0246438, sp=0x2a101900ec1, tstate=0x4400001402, context=0x0 g1-g7: 10528d0, 1, 186c400, 0, 0, 0, 2a101901cc0 00000000fee79cd0 unix:sync_handler+144 (1822400, 1f, 0, 1, 1, 108d800) %l0-3: 0000000001856e88 000000000188f340 000000000188f000 000000000000017f %l4-7: 0000000001872c00 0000000000000000 000000000186c400 000000000000001f 00000000fee79da0 unix:vx_handler+80 (fee7b958, 182fed0, a, 1822400, 182ffd8, f025a159) %l0-3: 000000000182ffd8 0000000000000000 0000000000000001 0000000000000001 %l4-7: 0000000001822c00 00000000f0200000 0000000001000000 000000000101b59c 00000000fee79e50 unix:callback_handler+20 (fee7b958, f01221c0, 0, 0, 0, 0) %l0-3: 0000000000000016 00000000fee79701 00000000f0200000 00000000fff78000 %l4-7: 0000000001009008 0000000000000000 0000000000000000 00000000f01237f0 syncing file systems... done dumping to /dev/md/dsk/d1, offset 1718288384, content: kernel 5% done
la commande sync déclenche le dump du kernel à l'endroit prévu
utilisation de snoop pour debuger un client dhcp
autres outils
- tools to assist in diagnosing and determining system configuration, development, and performance problems, extrait du livre “Solaris Application Programming
réparer un mirroir SVM
Anciennes notes
Sauver un fs en cours d'utilisation
à partir de fssnap:
ufsdump 0f - /dev/fssnap/0 | gzip -c | ssh xxx 'cat - > /export/home/backup/server/rs790-zones.ufs.gz
Ajouter un menu dans gdm
Commandes pour changer la configuration du serveur X (Ultra5, 10, SB100)
m64config -propt # pour connaitre la configuration actuelle m64config -res \? # les configs possibles m64config -res 1024x768x76 -now # change la config Attention si la config choisie n'est pas supportee il faudra se logger a distance pour revenir a la config precedente m64config -depth 8 # pour changer la profondeur Autre commande: xdpyinfo (serveur X existe sur toutes les plateformes) fbconfig -list # pour connaitre la liste des devices graphiques. Par exemple sur une Ultra10 de base: Device-Filename Specific Config Program --------------- ----------------------- /dev/fbs/m640 SUNWm64_config
Une comparaison des outils entre Linux et Solaris
Outils de compilation
- voir la page calcul
SFE
spec files
on récupère les spec files de la communauté (contrib):
"spec-files-extra is another repository, on sourceforge.net, for packages that are not available in OpenSolaris. http://pkgbuild.sourceforge.net/spec-files-extra/ It contains over 500 community contributed spec files!! http://pkgbuild.svn.sourceforge.net/viewvc/pkgbuild/spec-files-extra/trunk/"
> svn co https://pkgbuild.svn.sourceforge.net/svnroot/pkgbuild/spec-files-extra/trunk SFE
donc les SFExxx.spec sont dans le répertoire SFE, il y en a aussi dans le répertoire archive et
voir PKGTOOL_documentation.02.odt ou local, et aussi Lien externe
Les archives téléchargées sont dans le dossier /local/apps/packages/SOURCES/ (modifiable avec un .pkgtoolrc)
utilisation
> source /opt/dtbld/bin/env.csh > cd SFE/ > pkgtool build --download SFEfltk.spec INFO: Copying %use'd or %include'd spec files to SPECS directory INFO: Processing spec files INFO: Finding sources INFO: Downloading source http://ftp.easysw.com/pub/fltk/1.1.7/fltk-1.1.7-source.tar.bz2 INFO: Running pkgbuild -ba [...] SFEfltk.spec (SFEfltk) INFO: SFEfltk PASSED INFO: Installing SFEfltk INFO: Installing SFEfltk-devel Summary: package | status | details ---------------------------------+-------------+------------------------------- SFEfltk | PASSED |
On peut vérifier dans /tmp/SFEfltk.log que tout s'est bien passé.
donc fltk est installé dans /:
/usr/sbin/pkgchk -v SFEfltk NOTE: Couldn't lock the package database. /usr/bin /usr/bin/fluid /usr/lib /usr/lib/libfltk.so /usr/lib/libfltk.so.1.1 /usr/lib/libfltk_forms.so /usr/lib/libfltk_forms.so.1.1 /usr/lib/libfltk_gl.a /usr/lib/libfltk_gl.so /usr/lib/libfltk_gl.so.1.1 /usr/lib/libfltk_images.so /usr/lib/libfltk_images.so.1.1 /usr/share /usr/share/man /usr/share/man/man1 /usr/share/man/man1/fltk-config.1 /usr/share/man/man1/fluid.1
creations de packages
on essaie avec le paquet Tix.
- on crée le fichier SFEtix.spec dans ~/packages/SPECS
- on le teste avec la commande: pkgtool -vv build-only SFEtix.spec
- on regarde les logs: /local/apps/packages/LOGS/SFEtix.log
- une fois compilé, on peut l'installer, le pkg est dans ~/packages/PKGS/
> pfexec pkgadd -d ~/packages/PKGS/SFEtix-8.4.3.i386.pkg
Ne pas oublier pfexec!
le fichier .pkgtoolrc
le fichier .pkgbuildmacros
s'il contient:
devel1@nemo:~/src/SFE$ cat ~/.pkgbuildmacros %_basedir /local/apps/test1234
installra les packages dans /local/apps/test1234 (Attention, il faut sourcer ce fichier à chaque modif, en se reloggant par exemple)
SourceJuicer
SVM
SVM: Solaris Volume Manager, utilisé essentiellement pour faire du mirroir (RAID1 logiciel)
Avantages
Inconvénients
en cas de problème, on ne peut pas réparer en single-user (), il faut casser le mirroir (modifier /etc/system et /etc/vfstab)