The idea of using ZFS to manage process core dumps begs to be expanded to at least crash dumps. This also enters into the realm of Live Upgrade as it eliminates the need to sync potentially a lot of data on activation of a new BE!
Previously I created a ZFS file system in the root pool, and mounted it on /var/cores.
The same purpose would be even better served with a generic ZFS file system which can be mounted on any currently active Live-Upgrade boot environment. The discussion here suggests the use of a ZFS file system rpool/var_shared, mounted under /var/shared. Directories such as /var/crash and /var/cores can then be moved into this shared file system.
So:
/ $ pfexec ksh -o vi |
View my handiwork:
/ $ ls -l /var/shared total 6 drwxrwxrwt 2 root root 2 Jun 27 17:11 cores drwx------ 3 root root 3 Jun 27 17:11 crash/ $ zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 13.3G 6.89G 44K /rpool rpool/ROOT 10.3G 6.89G 18K legacy rpool/ROOT/snv_91 5.95G 6.89G 5.94G /.alt.tmp.b-b0.mnt/ rpool/ROOT/snv_91@snv_92 5.36M - 5.94G - rpool/ROOT/snv_92 4.33G 6.89G 5.95G / rpool/dump 1.50G 6.89G 1.50G - rpool/export 6.83M 6.89G 19K /export rpool/export/home 6.81M 6.89G 6.81M /export/home rpool/swap 1.50G 8.38G 10.3M - rpool/export/cores 20K 2.00G 20K /var/cores rpool/var_shared 22K 3.00G 22K /var/shared |
Just to review the current settings for saving crash dumps:
/ $ dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/solwarg Savecore enabled: yes |
Set it to use the new path I made above:
/ $ dumpadm -s /var/shared/crash/`hostname` Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/shared/crash/solwarg Savecore enabled: yes |
Similarly I update the process core dump settings:
/ $ coreadm -g /var/shared/cores/core.%z.%f.%u.%t global core file pattern: /var/shared/cores/core.%z.%f.%u.%t global core file content: default init core file pattern: core init core file content: default global core dumps: disabled per-process core dumps: enabled global setid core dumps: enabled per-process setid core dumps: disabled global core dump logging: enabled |
And finally, some cleaning up:
/ $ zfs destroy rpool/export/cores |
As previously, the above soft link is just in case somewhere there is a naughty script or tool with a hard coded path to /var/crash/`hostname`. I don't expect to find something like that in oficially released Sun software, but I do some times use programs not officially released or supported by Sun.
This makes me wonder what else can I make it do! I'm looking forward to my next Live Upgrade to see how well it preserves my configuration before I attempt to move any of the spool directories from /var to /var/shared!
No comments:
Post a Comment