<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>unixpowered.com &#187; solaris utilities</title>
	<atom:link href="http://www.unixpowered.com/blog/category/solaris-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unixpowered.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 21 Jul 2010 13:42:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installing and patching Data Protector client on standalone Solaris machine</title>
		<link>http://www.unixpowered.com/blog/2010/05/07/installing-and-patching-data-protector-client-on-standalone-solaris-machine/</link>
		<comments>http://www.unixpowered.com/blog/2010/05/07/installing-and-patching-data-protector-client-on-standalone-solaris-machine/#comments</comments>
		<pubDate>Fri, 07 May 2010 16:24:39 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[hp data protector]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>

		<guid isPermaLink="false">http://www.unixpowered.com/blog/?p=473</guid>
		<description><![CDATA[I needed to install HP Data Protector 5.5 client on an old machine running Solaris 2.6. I also needed to apply some Data Protector patches to that machine. The problem was I had no Data Protector Install Server for Data Protector version 5.5.
Normally, Data Protector clients are installed from Data Protector Install Server. When you [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to install<a title="HP Data Protector 5.5" href="http://h20000.www2.hp.com/bizsupport/TechSupport/Home.jsp?lang=en&amp;cc=us&amp;prodTypeId=18964&amp;prodSeriesId=3188924&amp;submit.y=0&amp;submit.x=0&amp;lang=en&amp;cc=us" target="_self"> HP Data Protector 5.5</a> client on an old machine running Solaris 2.6. I also needed to apply some Data Protector patches to that machine. The problem was I had no Data Protector Install Server for Data Protector version 5.5.</p>
<p>Normally, Data Protector clients are installed from Data Protector Install Server. When you need to deploy patches, first you patch the Install Server and then you push out patches to you Data Protector clients.</p>
<p>Installing the client itself on standalone machine is not a big deal. All you need is an appropriate Data Protector software depot and off you go. The problem was installing patches without the Install Server.</p>
<p>Here is the process I took installing and patching this machine:</p>
<p style="padding-left: 30px;"><em>B6960-15041_DP55_HPUX_PA_IS_CD.tar</em> &#8211; HPUX Install Server &#8211; contains Solaris 2.6 client<br />
<em>DPSOL_00168.zip</em> &#8211; Patch<br />
<em>DPSOL_00180.zip</em> &#8211; Patch</p>
<p>First, I decompressed Data Protector software depot that contains Solaris 2.6 client and installed Disk Agent on the machine:</p>
<p><code>root@client # <strong>tar xf <em>B6960-15041_DP55_HPUX_PA_IS_CD.tar</em></strong><br />
root@client # <strong>cd LOCAL_INSTALL</strong><br />
root@client # <strong>./omnisetup.sh -install da</strong></code></p>
<p>After that was done, it was time to patch Data Protector installation. First, I decompressed the patch archive. Then I located and decompressed the proper <em>packet.Z</em> file for Solaris 2.6:</p>
<p><code>root@client # <strong>unzip DPSOL_00168.zip</strong><br />
root@client # <strong>cd OB2-SOLUX/root/opt/omni/databases/vendor/da/sun/sparc/solaris-26/A.05.50/<br />
</strong>root@client # <strong>uncompress packet.Z</strong></code></p>
<p>Finally I installed the packet, which is really Solaris package:</p>
<p><code>root@client # <strong>pkgadd -d ./packet all</strong></code></p>
<p>The whole patch process has to be repeated for all patches you are trying to install. Note, that when you <em>unzip</em> the patch, you kind of have to know what you are looking for, so you need to pay attention to the <em>PATH</em> to <em>packet.Z</em> file; i.e. in the above case I was installing Data Agent patch on a Sun box, running Solaris 2.6 and Data Protector version 5.5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2010/05/07/installing-and-patching-data-protector-client-on-standalone-solaris-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trussing processes on Sun Cluster?</title>
		<link>http://www.unixpowered.com/blog/2010/04/02/trussing-processes-on-sun-cluster/</link>
		<comments>http://www.unixpowered.com/blog/2010/04/02/trussing-processes-on-sun-cluster/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 15:41:02 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>
		<category><![CDATA[sun cluster]]></category>

		<guid isPermaLink="false">http://www.unixpowered.com/blog/?p=461</guid>
		<description><![CDATA[One of the apps running on Sun Cluster was randomly crashing. So, I decided to take a look what was happening. Yeah, there is DTrace in Solaris 10. Since I am pretty comfortable with truss I decided to give that a shot first:
root@node1 # truss -p 27462
truss: process is traced: 27462
root@node1 # 
That&#8217;s it. No [...]]]></description>
			<content:encoded><![CDATA[<p>One of the apps running on Sun Cluster was randomly crashing. So, I decided to take a look what was happening. Yeah, there is DTrace in Solaris 10. Since I am pretty comfortable with <a title="truss man page" href="http://docs.sun.com/app/docs/doc/816-5165/truss-1?l=en&amp;a=view&amp;q=truss" target="_self"><em>truss</em></a> I decided to give that a shot first:</p>
<p><code>root@node1 # <strong>truss -p 27462</strong><br />
truss: process is traced: 27462<br />
root@node1 # </code></p>
<p>That&#8217;s it. No <em>truss</em> output, nothing. That was weird. <em>truss</em> will not work if there is a debugger attached to the process to be traced, which was not the case. So, I figured it might have something to do with the fact that the process is handled by the cluster software.</p>
<p>Finaly, NOTES section of <a title="pmfadm manpage" href="http://docs.sun.com/app/docs/doc/819-0582/6n30g7iep?l=en&amp;a=view&amp;q=pmfadm" target="_self"><em>pmfadm</em> manpage</a> gave me the answer:</p>
<blockquote><p>To avoid collisions with other controlling processes. truss(1) does not allow tracing a process that it detects as being controlled by another process by way of the /proc interface. Since rpc.pmfd(1M) uses the /proc interface to monitor processes and their descendents, those processes that are submitted to rpc.pmfd by way of pmfadm cannot be traced or debugged.</p></blockquote>
<p>So, Dtrace it was. Thankfully, Brendan Gregg already did the hard work for me, by creating <a title="Brendan Gregg's DTrace truss" href="http://www.brendangregg.com/dtrace.html" target="_self">DTrace version</a> of <em>truss</em>. The more you know&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2010/04/02/trussing-processes-on-sun-cluster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick and dirty SVM cheatsheet</title>
		<link>http://www.unixpowered.com/blog/2009/12/03/quick-and-dirty-svm-cheatsheet/</link>
		<comments>http://www.unixpowered.com/blog/2009/12/03/quick-and-dirty-svm-cheatsheet/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 12:50:43 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris utilities]]></category>
		<category><![CDATA[solaris volume manager]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.unixpowered.com/blog/?p=372</guid>
		<description><![CDATA[This list focuses mostly on mirror operations. I use Solaris Volume Manager quite a bit when mirroring internal drives. There are tons of additional features and commands, if you use SVM for  things other than mirroring. In that case you might want to look at check out Solaris Volume Manager Administration Guide.
Create database replicas:
metadb -f [...]]]></description>
			<content:encoded><![CDATA[<p>This list focuses mostly on mirror operations. I use Solaris Volume Manager quite a bit when mirroring internal drives. There are tons of additional features and commands, if you use SVM for  things other than mirroring. In that case you might want to look at check out <a title="Solaris Volume Manager Administration Guide" href="http://docs.sun.com/app/docs/doc/816-4520?l=en" target="_self">Solaris Volume Manager Administration Guide</a>.</p>
<p>Create database replicas:<br />
<code>metadb -f -a -c [number_of_replicas] [device]<br />
<strong>metadb -f -a -c 3 c0t0d0s7</strong></code></p>
<p>Delete all database replicas from device:<br />
<code>metadb -d [device]<br />
<strong>metadb -d c0t0d0s7</strong></code></p>
<p>Display status of database replicas:<br />
<code>metadb -i<br />
<strong>metadb -i</strong></code></p>
<p>Display metadevice status:<br />
<code>metastat<br />
<strong>metastat</strong></code></p>
<p>Create simple concat/stripe metadevice:<br />
<code>metainit -f [concat_metadevice] 1 1 [device]<br />
<strong>metainit -f d21 1 1 c0t0d0s1</strong></code></p>
<p>Create a mirror with one submirror:<br />
<code>metainit [mirror_metadevice] -m [submirror_metadevice]<br />
<strong>metainit d20 -m d21</strong></code></p>
<p>Attach a submirror to one sided mirror:<br />
<code>metattach [mirror_metadevice] [submirror_metadevice]<br />
<strong>metattach d20 d22</strong></code></p>
<p>Detach a submirror from a mirror:<br />
<code>metadetach [mirror_metadevice] [submirror_metadevice]<br />
<strong>metadetach d20 d22</strong></code></p>
<p>Clear a metadevice:<br />
<code>metaclear [metadevice]<br />
<strong>metaclear d22</strong></code></p>
<p>Offline a submirror:<br />
<code>metaoffline [mirror_metadevice] [submirror_metadevice]<br />
<strong>metaoffline d20 d22</strong></code></p>
<p>Online a submirror:<br />
<code>metaonline [mirror_metadevice] [submirror_metadevice]<br />
<strong>metaonline d20 d22</strong></code></p>
<p>Enable a failed component:<br />
<code>metareplace -e [metadevice] [device]<br />
<strong>metareplace -e d21 c0t0d0s1</strong></code></p>
<p>Rename a metadevice:<br />
<code>metarename [old_metadevice] [new_metadevice]<br />
<strong>metarename d20 d30</strong></code></p>
<p>Switch metadevice names:<br />
<code>metarename [metadevice_1] [metadevice_2]<br />
<strong>metarename -x d20 d30</strong></code></p>
<p>Configure system for root metadevice:<br />
<code>metaroot [metadevice]<br />
<strong>metaroot d10</strong></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2009/12/03/quick-and-dirty-svm-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Corrupt superblock, now what?</title>
		<link>http://www.unixpowered.com/blog/2009/09/17/corrupt-superblock-now-what/</link>
		<comments>http://www.unixpowered.com/blog/2009/09/17/corrupt-superblock-now-what/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 19:41:54 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=283</guid>
		<description><![CDATA[This is an oldie, but a goodie. For some reason I was asked about it 3 times in a span of a week. Suppose your system was not shut down cleanly and it refuses to come up. During bootup fsck refuses to run, complaining about corrupt superblock. So, what do you do? First, get the [...]]]></description>
			<content:encoded><![CDATA[<p>This is an oldie, but a goodie. For some reason I was asked about it 3 times in a span of a week. Suppose your system was not shut down cleanly and it refuses to come up. During bootup <em>fsck</em> refuses to run, complaining about corrupt superblock. So, what do you do? First, get the alternate superblock locations and then run fsck using one of the alternate superblocks.</p>
<p>To get alternate superblock locations do:</p>
<p><strong><code>newfs -Nv /dev/rdsk/c0t0d0s3</code></strong></p>
<p>This will not actually format the slice. It will only print what it would do, if it was actually formating the slice. Basically, it is <em>newfs</em> dry run. It will also give you locations of alternate superblocks on the slice. I guess it should be mentioned that if you used non-default values while formating the slice originally, and you did not make a note of those values, this might not give you valid superblock numbers.</p>
<p>After you have your alternate superblock numbers you can use them to help out fsck (in this case superblock I am using is in block 8192):</p>
<p><strong><code>fsck -y -F ufs -o b=8192 /dev/rdsk/c0t0d0s3</code></strong></p>
<p>It might not hurt to run the above with <em>-n</em> option instead of <em>-y</em> to make sure it produces the results you are looking for.</p>
<p>Hopefully, the filesystem is not hosed so badly that it can not be repaired. This was more of an issue when Solaris did not have ufs logging. Nevertheless, it does not hurt to know this for one of those emergencies.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2009/09/17/corrupt-superblock-now-what/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting handle on log files</title>
		<link>http://www.unixpowered.com/blog/2009/04/13/getting-handle-on-log-files/</link>
		<comments>http://www.unixpowered.com/blog/2009/04/13/getting-handle-on-log-files/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 17:44:02 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=186</guid>
		<description><![CDATA[Starting with Solaris 9 there is a very handy tool called logadm that makes management of any log files a breeze. Syslog and messages files, among others, are managed by logadm which is called from root&#8217;s crontab.
Logadm reads /etc/logadm.conf file to figure out what it needs to do. By default there are following entries in [...]]]></description>
			<content:encoded><![CDATA[<p>Starting with Solaris 9 there is a very handy tool called <em>logadm</em> that makes management of any log files a breeze. <em>Syslog</em> and <em>messages</em> files, among others, are managed by <em>logadm</em> which is called from root&#8217;s crontab.<br />
<em>Logadm</em> reads <em>/etc/logadm.conf</em> file to figure out what it needs to do. By default there are following entries in <em>logadm.conf</em>:</p>
<p><code>/var/log/syslog -C 8 -P 'Wed Apr  8 02:10:22 2009' -a 'kill -HUP `cat /var/run/syslog.pid`'<br />
/var/adm/messages -C 4 -P 'Fri Apr 10 02:10:15 2009' -a 'kill -HUP `cat /var/run/syslog.pid`'<br />
/var/cron/log -c -s 512k -t /var/cron/olog<br />
/var/lp/logs/lpsched -C 2 -N -t '$file.$N'<br />
/var/fm/fmd/errlog -M '/usr/sbin/fmadm -q rotate errlog &amp;&amp; mv /var/fm/fmd/errlog.0- $nfile' -N -s 2m<br />
smf_logs -C 8 -s 1m /var/svc/log/*.log<br />
/var/adm/pacct -C 0 -N -a '/usr/lib/acct/accton pacct' -g adm -m 664 -o adm -p never<br />
/var/log/pool/poold -N -a 'pkill -HUP poold; true' -s 512k</code></p>
<p><em>Logadm</em> provides <em>-w</em> switch which will write an entry into <em>logadm.conf</em> file that reflects current command line arguments. Of course <em>logadm.conf</em> can be edited using text editor, if that is the preferred method. If that&#8217;s the case, <em>-V</em> option can validate syntax of <em>logadm.conf</em> for you. Another handy option is <em>-n</em> which will cause <em>logadm</em> to do a dry run without actually performing the log rotation.</p>
<p>Other useful switches are:</p>
<ul>
<li> <em>-b</em> and <em>-a</em> which allow specification of pre and post rotation commands to execute</li>
<li>-e sends error messages to a specific address instead of sending it to the owner of the crontab</li>
<li><em>-r</em> removes entry from <em>logadm.conf</em> for a specific log file</li>
<li><em>-o</em> sets different owner for the new log file from the original</li>
<li><em>-g</em> sets different group for the new log file from the original</li>
<li><em>-m</em> sets different permissions for the new log file from the original</li>
</ul>
<p>For the whole story on <em>logadm</em> check out <a title="logadm man page" href="http://docs.sun.com/app/docs/doc/816-5166/logadm-1m?l=en&amp;a=view&amp;q=logadm" target="_self">logadm man page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2009/04/13/getting-handle-on-log-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris Link Aggregation</title>
		<link>http://www.unixpowered.com/blog/2009/03/22/solaris-link-aggregation/</link>
		<comments>http://www.unixpowered.com/blog/2009/03/22/solaris-link-aggregation/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 11:19:44 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[networking]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=116</guid>
		<description><![CDATA[Link aggregation takes a bunch of network interfaces and creates a big pipe out of them.
Aggregation also provides redundancy. If all interfaces but one go down, the server will remain connected to the network.
Before starting make sure that:

 interfaces to be aggregated are of the following type: xge, e1000g, and bge
interfaces to be aggregated are [...]]]></description>
			<content:encoded><![CDATA[<p>Link aggregation takes a bunch of network interfaces and creates a big pipe out of them.</p>
<p>Aggregation also provides redundancy. If all interfaces but one go down, the server will remain connected to the network.</p>
<p>Before starting make sure that:</p>
<ul>
<li> interfaces to be aggregated are of the following type: <em>xge</em>, <em>e1000g</em>, and <em>bge</em></li>
<li>interfaces to be aggregated are not plumbed</li>
<li>they run in full duplex mode at the same speeds</li>
<li>eeprom&#8217;s <em>local-mac-address?</em> variable is set to <em>true</em></li>
</ul>
<p>The following will create <em>aggr1</em> interface with <em>bge1</em> as one of its members:</p>
<p><code>bash-3.00# <strong>dladm create-aggr -d bge1 1</strong></code></p>
<p>Next plumb the aggregate interface, configure an IP address on it and bring it up:</p>
<p><code>bash-3.00# <strong>ifconfig aggr1 plumb 192.168.1.5 netmask 255.255.255.0 up</strong></code></p>
<p>At this point you can list aggregations:</p>
<p><code>bash-3.00# <strong>dladm show-aggr</strong><br />
key: 1 (0x0001) policy: L4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address: 0:3:ba:56:7f:ba (auto)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;speed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;duplex&nbsp;&nbsp;link&nbsp;&nbsp;&nbsp;&nbsp;state<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bge1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0:3:ba:56:7f:ba&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mbps&nbsp;&nbsp;&nbsp;&nbsp;unknown&nbsp;down&nbsp;&nbsp;&nbsp;&nbsp;standby</code></p>
<p>Now add <em>bge0</em> as a second member of <em>aggr1</em> aggregation interface and list aggregate interfaces:</p>
<p><code>bash-3.00# <strong>dladm add-aggr -d bge0 1</strong><br />
bash-3.00# <strong>dladm show-aggr</strong><br />
key: 1 (0x0001) policy: L4      address: 0:3:ba:56:7f:ba (auto)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;speed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;duplex&nbsp;&nbsp;link&nbsp;&nbsp;&nbsp;&nbsp;state<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bge1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0:3:ba:56:7f:ba&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mbps&nbsp;&nbsp;&nbsp;&nbsp;unknown&nbsp;down&nbsp;&nbsp;&nbsp;&nbsp;standby<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bge0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0:3:ba:56:7f:b9&nbsp;&nbsp;&nbsp;1000&nbsp;&nbsp;Mbps&nbsp;&nbsp;&nbsp;&nbsp;full&nbsp;&nbsp;&nbsp;&nbsp;up&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attached</code></p>
<p>To keep the configuration persistent across reboots, create <em>/etc/hostname.aggr1</em> with appropriate content and remove any<em> hostname.*</em> files pertaining to the interfaces that are now members of aggr1.</p>
<p>To have link aggregation working properly you need to have the switch to which server is connected to properly configured with <acronym title="Link Aggregation Control Protocol">LACP</acronym>.</p>
<p>Another thing to consider is load balancing policy for outgoing traffic. You can load balance on layers 2,3 and 4. Load balancing policy can be changed using <a title="dladm man page" href="http://docs.sun.com/app/docs/doc/816-5166/dladm-1m?l=en&amp;a=view&amp;q=dladm" target="_self"><em>dladm</em></a> command. Here is a quick example that will modify load balancing policy to combination of <em>L3</em> and <em>L4</em>:</p>
<p><code>bash-3.00# <strong>dladm modify-aggr -P L3,L4 1</strong><br />
bash-3.00# <strong>dladm show-aggr -L</strong><br />
key: 1 (0x0001) policy: L3,L4   address: 0:3:ba:56:7f:ba (auto)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LACP&nbsp;mode:&nbsp;off&nbsp;&nbsp;LACP&nbsp;timer:&nbsp;short<br />
&nbsp;&nbsp;&nbsp;&nbsp;device&nbsp;&nbsp;&nbsp;&nbsp;activity&nbsp;timeout&nbsp;aggregatable&nbsp;sync&nbsp;&nbsp;coll&nbsp;dist&nbsp;defaulted&nbsp;expired<br />
&nbsp;&nbsp;&nbsp;&nbsp;bge1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;passive&nbsp;&nbsp;short&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no<br />
&nbsp;&nbsp;&nbsp;&nbsp;bge0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;passive&nbsp;&nbsp;short&nbsp;&nbsp;&nbsp;yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no</code></p>
<p>And finally, command that will allow you to see utilisation of individual links within aggregation. Note the <em>%ipkts</em> column, I did not have LACP turned on on the switch at that time:</p>
<p><code>bash-3.00# <strong>dladm show-aggr -s</strong><br />
key: 1&nbsp;&nbsp;ipackets&nbsp;&nbsp;rbytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opackets&nbsp;&nbsp;&nbsp;obytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%ipkts %opkts<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2723785&nbsp;&nbsp;&nbsp;2287233197&nbsp;&nbsp;1481682&nbsp;&nbsp;&nbsp;710633551<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bge1 618712&nbsp;&nbsp;&nbsp;&nbsp;115674760&nbsp;&nbsp;&nbsp;870443&nbsp;&nbsp;&nbsp;&nbsp;636559150&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;22.7&nbsp;&nbsp;&nbsp;&nbsp;58.7<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bge0 2105073&nbsp;&nbsp;&nbsp;2171558437&nbsp;&nbsp;611239&nbsp;&nbsp;&nbsp;&nbsp;74074401&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;77.3&nbsp;&nbsp;&nbsp;&nbsp;41.3</code></p>
<p>More info on link aggregation is <a title="Overview of Link Aggregation" href="http://docs.sun.com/app/docs/doc/816-4554/fpjvl?l=en&amp;q=link+aggregation&amp;a=view" target="_self">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2009/03/22/solaris-link-aggregation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic IPMP</title>
		<link>http://www.unixpowered.com/blog/2009/01/26/basic-ipmp/</link>
		<comments>http://www.unixpowered.com/blog/2009/01/26/basic-ipmp/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 18:52:16 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[networking]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=111</guid>
		<description><![CDATA[Finally, I got tired of remembering which network interfaces is configured on my Netra test box. So I do not have to remember which interface to plug cable into I configured IPMP on the box. IPMP provides link redundancy among multiple network interfaces in multipathing group. IPMP is not meant to be full fledged load [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, I got tired of remembering which network interfaces is configured on my Netra test box. So I do not have to remember which interface to plug cable into I configured <acronym title="IP Multipathing">IPMP</acronym> on the box. IPMP provides link redundancy among multiple network interfaces in multipathing group. IPMP is not meant to be full fledged load balancing solution, though it will spread outgoing traffic across the interfaces.</p>
<p>I have put my two <em>hme</em> interfaces into a multipathing group. The group has a failover IP address assigned to it. Initially this address will be assigned to <em>hme0</em>. If <em>hme0</em> fails, the address will automatically move to the other interface in the failover group.</p>
<p>First I edited <em>/etc/hostname.hme0</em>:</p>
<p><code>unreal-hme0 netmask + broadcast + deprecated -failover group unrealgrp1 up addif unreal netmask + broadcast + failover up</code></p>
<p>This configures physical <em>hme0</em> with IP address of 192.168.11.6, which will not fail over and puts <em>hme0</em> in <em>unrealgrp1</em> multipathing group. It will additionally configure a virtual IP address of 192.168.11.5 which will <em>failover</em> when <em>hme0</em> link goes down. <em>Deprecated</em> means the IP address 192.168.11.5 will not be used as source address for any outgoing packets.</p>
<p>Then I edited /etc/hostname.hme1:</p>
<p><code>unreal-hme1 netmask + broadcast + deprecated -failover group unrealgrp1 up</code></p>
<p>Similarly, <em>hme1</em> will be configured with IP address of 192.168.11.7 and as a member of <em>unrealgrp1</em> multipathing group. Again, 192.168.11.7 is marked as <em>deprecated</em> so it will not be used for outgoing packets. Finally I made sure my hosts file is correct:</p>
<p><code>bash-3.00# <strong>cat /etc/hosts</strong><br />
127.0.0.1       localhost<br />
192.168.11.5    unreal          loghost<br />
192.168.11.6    unreal-hme0<br />
192.168.11.7    unreal-hme1</code></p>
<p>And here is the result:</p>
<p><code>bash-3.00# <strong>ifconfig -a</strong><br />
lo0: flags=2001000849 mtu 8232 index 1<br />
inet 127.0.0.1 netmask ff000000<br />
hme0: flags=9040843 mtu 1500 index 2<br />
inet 192.168.11.6 netmask ffffff00 broadcast 192.168.11.255<br />
groupname unrealgrp1<br />
ether 8:0:20:d9:ac:c<br />
hme0:1: flags=1000843 mtu 1500 index 2<br />
inet 192.168.11.5 netmask ffffff00 broadcast 192.168.11.255<br />
hme1: flags=19040803 mtu 1500 index 3<br />
inet 192.168.11.7 netmask ffffff00 broadcast 192.168.11.255<br />
groupname unrealgrp1<br />
ether 8:0:20:d9:ac:d</code></p>
<p>Essentially IP address 192.168.11.5 &#8220;floats&#8221; among interfaces. If I were to unplug <em>hme0</em>, 192.168.11.5 would fail over to <em>hme1</em>. Failure is detected on link loss. There are some tunable parameters in <em>/etc/default/mpathd</em>.</p>
<p>This is all I needed. Of course, there is much more to IPMP: you can setup test system, that your system will test for reachability, detection of interfaces missing on boot, etc. Sun has much more info on it <a title="IPMP Overview" href="http://docs.sun.com/app/docs/doc/816-4554/mpoverview?l=en&amp;a=view" target="_self">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2009/01/26/basic-ipmp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick and dirty ZFS cheatsheet</title>
		<link>http://www.unixpowered.com/blog/2008/12/20/quick-and-dirty-zfs-cheatsheet/</link>
		<comments>http://www.unixpowered.com/blog/2008/12/20/quick-and-dirty-zfs-cheatsheet/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 15:53:38 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris utilities]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=104</guid>
		<description><![CDATA[Create simple striped pool:
zpool create [pool_name] [device] [device] ...
zpool create datapool c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0
Create mirrored pool:
zpool create [pool_name] mirror [device] [device] ...
zpool create datapool mirror c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0
Create Raid-Z pool:
zpool create [pool_name] raidz [device] [device] [device] ...
zpool create datapool raidz c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0 c5t439257C4000019250000900000540000d0
Transform simple pool to a mirror:
zpool create [pool_name] [device]
zpool attach [pool_name] [existing_device] [new_device]
zpool create datapool [...]]]></description>
			<content:encoded><![CDATA[<p>Create simple striped pool:<br />
<code>zpool create [pool_name] [device] [device] ...<br />
<strong>zpool create datapool c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0</strong></code></p>
<p>Create mirrored pool:<br />
<code>zpool create [pool_name] mirror [device] [device] ...<br />
<strong>zpool create datapool mirror c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0</strong></code></p>
<p>Create Raid-Z pool:<br />
<code>zpool create [pool_name] raidz [device] [device] [device] ...<br />
<strong>zpool create datapool raidz c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0 c5t439257C4000019250000900000540000d0</strong></code></p>
<p>Transform simple pool to a mirror:<br />
<code>zpool create [pool_name] [device]<br />
zpool attach [pool_name] [existing_device] [new_device]<br />
<strong>zpool create datapool c5t433127A900011C370000C00003210000d0<br />
zpool attach datapool c5t433127A900011C370000C00003210000d0 c5t433127B4001031250000900000540000d0</strong></code></p>
<p>Expand simple pool:<br />
<code>zpool create [pool_name] [device]<br />
zpool add [pool_name] [new_device]<br />
<strong>zpool create datapool c5t433127A900011C370000C00003210000d0<br />
zpool add datapool c5t433127B4001031250000900000540000d0</strong></code></p>
<p>Expand mirrored pool by attaching additional mirror:<br />
<code>zpool add [pool_name] mirror [new_device] [new_device]<br />
<strong>zpool add datapool mirror c5t433127A900011C370000C00003460000d0 c5t433127B400011C370000C00003410000d0</strong></code></p>
<p>Replace device in a pool:<br />
<code>zpool replace [pool_name] [old_device] [new_device]<br />
<strong>zpool replace datapool c5t433127A900011C370000C00003410000d0 c5t433127B4001031250000900000540000d0</strong></code></p>
<p>Destroy pool:<br />
<code>zpool destroy [pool_name]<br />
<strong>zpool destroy datapool</strong></code></p>
<p>Set pool mountpoint:<br />
<code>zfs set mountpoint=/path [pool_name]<br />
<strong>zfs set mountpoint=/export/zfs datapool</strong></code></p>
<p>Display configured pools:<br />
<code>zpool list<br />
<strong>zpool list</strong></code></p>
<p>Display pool status info:<br />
<code>zpool status [-v] [pool_name]<br />
<strong>zpool status -v datapool</strong></code></p>
<p>Display pool I/O statistics:<br />
<code>zpool iostat [pool_name]<br />
<strong>zpool iostat datapool</strong></code></p>
<p>Display pool command history:<br />
<code>zpool history [pool_name]<br />
<strong>zpool history datapool</strong></code></p>
<p>Export a pool:<br />
<code>zpool export [pool_name]<br />
<strong>zpool export datapool</strong></code></p>
<p>Import a pool:<br />
<code>zpool import [pool_name]<br />
<strong>zpool import datapool</strong></code></p>
<p>Create a filesystem:<br />
<code>zfs create [pool_name]/[fs_name]<br />
<strong>zfs create datapool/filesystem</strong></code></p>
<p>Destroy a filesystem:<br />
<code>zfs destroy [pool_name]/[fs_name]<br />
<strong>zfs destroy datapool/filesystem</strong></code></p>
<p>Rename a filesystem:<br />
<code>zfs rename [pool_name]/[fs_name] [pool_name]/[fs_name]<br />
<strong>zfs rename datapool/filesystem datapool/newfilesystem</strong></code></p>
<p>Move a filesystem:<br />
<code>zfs rename [pool_name]/[fs_name] [pool_name]/[fs_name]/[fs_name]<br />
<strong>zfs rename datapool/filesystem datapool/users/filesystem</strong></code></p>
<p>Display properties of a filesystem:<br />
<code>zfs get all [pool_name]/[fs_name]<br />
<strong>zfs get all datapool/filesystem</strong></code></p>
<p>Make a snapshot:<br />
<code>zfs snapshot [pool_name]/[fs_name]@[time]<br />
<strong>zfs snapshot datapool/filesystem@friday</strong></code></p>
<p>Roll back filesystem to its snapshot:<br />
<code>zfs rollback [pool_name]/[fs_name]@[time]<br />
<strong>zfs rollback datapool/filesystem@friday</strong></code></p>
<p>Clone a filesystem:<br />
<code>zfs snapshot [pool_name]/[fs_name]@[time]<br />
zfs clone [pool_name]/[fs_name]@[time] [pool_name]/[fs_name]<br />
<strong>zfs snapshot datapool/filesystem@today<br />
zfs clone datapool/filesystem@today datapool/filesystemclone</strong></code></p>
<p>Backup filesystem to a file:<br />
<code>zfs send [pool_name]/[fs_name] &gt; /path/to/file<br />
<strong>zfs send datapool/filesystem@friday &gt; /tmp/filesystem.bkp</strong></code></p>
<p>Restore filesystem from a file:<br />
<code>zfs receive [pool_name]/[fs_name] &lt; /path/to/file<br />
<strong>zfs receive datapool/restoredfilesystem &lt; /tmp/filesystem.bkp</strong></code></p>
<p>Create ZFS volume:<br />
<code>zfs create -V [size] [pool_name]/[vol_name]<br />
<strong>zfs create -V 100mb datapool/zvolume<br />
newfs /dev/zvol/dsk/datapool/zvolume</strong></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2008/12/20/quick-and-dirty-zfs-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gathering fibre channel info using fcinfo</title>
		<link>http://www.unixpowered.com/blog/2008/08/19/gathering-fibre-channel-info-using-fcinfo/</link>
		<comments>http://www.unixpowered.com/blog/2008/08/19/gathering-fibre-channel-info-using-fcinfo/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 19:47:25 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[fibre channel]]></category>
		<category><![CDATA[san]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=41</guid>
		<description><![CDATA[I came across fcinfo command reading some man page. So, I decided to see what kind of useful fibre channel information it could give me. It turns out fcinfo knows quite a bit.
We can list all local fibre channel ports:
bash-3.00# fcinfo hba-port
HBA Port WWN: 21000003ba16dbd2
OS Device Name: /dev/cfg/c1
Manufacturer: QLogic Corp.
Model: 2200
Firmware Version: 2.1.144
FCode/BIOS Version: ISP2200 [...]]]></description>
			<content:encoded><![CDATA[<p>I came across <a title="fcinfo man page" href="http://docs.sun.com/app/docs/doc/819-2240/6n4htdn4t?l=en&amp;a=view&amp;q=fcinfo" target="_self"><em>fcinfo</em></a> command reading some man page. So, I decided to see what kind of useful fibre channel information it could give me. It turns out <em>fcinfo</em> knows quite a bit.</p>
<p>We can list all local fibre channel ports:</p>
<p><code>bash-3.00# <strong>fcinfo hba-port</strong><br />
HBA Port WWN: 21000003ba16dbd2<br />
OS Device Name: /dev/cfg/c1<br />
Manufacturer: QLogic Corp.<br />
Model: 2200<br />
Firmware Version: 2.1.144<br />
FCode/BIOS Version: ISP2200 FC-AL Host Adapter Driver: 1.12 01/01/16<br />
Type: L-port<br />
State: online<br />
Supported Speeds: 1Gb<br />
Current Speed: 1Gb<br />
Node WWN: 20000003ba16dbd2<br />
HBA Port WWN: 2100001b320e3853<br />
OS Device Name: /dev/cfg/c3<br />
Manufacturer: QLogic Corp.<br />
Model: QLA2462<br />
Firmware Version: 4.0.27<br />
FCode/BIOS Version: QLA2462 Host Adapter Driver(SPARC): 1.24  11/15/06<br />
Type: N-port<br />
State: online<br />
Supported Speeds: 1Gb 2Gb 4Gb<br />
Current Speed: 2Gb<br />
Node WWN: 2000001b320e3853<br />
HBA Port WWN: 2101001b322e3853<br />
OS Device Name: /dev/cfg/c4<br />
Manufacturer: QLogic Corp.<br />
Model: QLA2462<br />
Firmware Version: 4.0.27<br />
FCode/BIOS Version: QLA2462 Host Adapter Driver(SPARC): 1.24  11/15/06<br />
Type: N-port<br />
State: online<br />
Supported Speeds: 1Gb 2Gb 4Gb<br />
Current Speed: 2Gb<br />
Node WWN: 2001001b322e3853</code></p>
<p>We can take a look what remote ports are seen by particular local fibre channel port, in this case 2100001b320e3853:</p>
<p><code>bash-3.00# <strong>fcinfo remote-port -p 2100001b320e3853</strong><br />
Remote Port WWN: 100000e00216aef3<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 100000e01124b88f<br />
Remote Port WWN: 50001fe15003b384<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe15037e759<br />
Remote Port WWN: 100000e0022744f3<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 100000e0020744f3<br />
Remote Port WWN: 50001fe150216de9<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe11025bb53<br />
Remote Port WWN: 100000e00228f492<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 100000e00208f492<br />
Remote Port WWN: 50001fe15076b59b<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe15037e759<br />
Remote Port WWN: 50001fe150216ded<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe11025bb53</code></p>
<p>Here, we get link statistics for remote fibre channel device whose WWN is 100000e0020744f3:</p>
<p><code>bash-3.00# <strong>fcinfo remote-port -l -p 2100001b320e3853 100000e0020744f3</strong><br />
Remote Port WWN: 100000e0022744f3<br />
Active FC4 Types: SCSI<br />
SCSI Target: unknown<br />
Node WWN: 100000e0020744f3<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0</code></p>
<p>We can also get link statistics and SCSI target information for all remote fibre channel devices see on local port whose WWN is 2100001b320e3853:</p>
<p><code>bash-3.00# <strong>fcinfo remote-port -sl -p 2100001b320e3853</strong><br />
Remote Port WWN: 100000e00216aef3<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 100000e01124b88f<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: HP<br />
Product: MSL6000 Series<br />
OS Device Name: /devices/pci@8,600000/SUNW,qlc@1/fp@0,0/sgen@w100000e00216aef3,0<br />
LUN: 1<br />
Vendor: HP<br />
Product: Ultrium 2-SCSI<br />
OS Device Name: /dev/rmt/2n<br />
Remote Port WWN: 50001fe15003b384<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe15037e759<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: Unknown<br />
LUN: 1<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: /dev/rdsk/c5t600508B4001031250000900000540000d0s2<br />
Remote Port WWN: 100000e0022744f3<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 100000e0020744f3<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: HP<br />
Product: MSL6000 Series<br />
OS Device Name: /devices/pci@8,600000/SUNW,qlc@1/fp@0,0/sgen@w100000e0022744f3,0<br />
LUN: 1<br />
Vendor: HP<br />
Product: Ultrium 2-SCSI<br />
OS Device Name: /dev/rmt/1n<br />
LUN: 2<br />
Vendor: HP<br />
Product: Ultrium 2-SCSI<br />
OS Device Name: /dev/rmt/0n<br />
Remote Port WWN: 50001fe150216de9<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe11025bb53<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: Unknown<br />
LUN: 1<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: /dev/rdsk/c5t600508B400011C370000C00003210000d0s2<br />
Remote Port WWN: 100000e00228f492<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 100000e00208f492<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: HP<br />
Product: Ultrium 2-SCSI<br />
OS Device Name: /dev/rmt/4n<br />
LUN: 1<br />
Vendor: HP<br />
Product: Ultrium 2-SCSI<br />
OS Device Name: /dev/rmt/3n<br />
Remote Port WWN: 50001fe15076b59b<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe15037e759<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: Unknown<br />
LUN: 1<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: /dev/rdsk/c5t600508B4001031250000900000540000d0s2<br />
Remote Port WWN: 50001fe150216ded<br />
Active FC4 Types: SCSI<br />
SCSI Target: yes<br />
Node WWN: 50001fe11025bb53<br />
Link Error Statistics:<br />
Link Failure Count: 0<br />
Loss of Sync Count: 0<br />
Loss of Signal Count: 0<br />
Primitive Seq Protocol Error Count: 0<br />
Invalid Tx Word Count: 0<br />
Invalid CRC Count: 0<br />
LUN: 0<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: Unknown<br />
LUN: 1<br />
Vendor: COMPAQ<br />
Product: HSV111 (C)COMPAQ<br />
OS Device Name: /dev/rdsk/c5t600508B400011C370000C00003210000d0s2</code></p>
<p>This command is quite handy when troubleshooting fibre channel. Very cool&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2008/08/19/gathering-fibre-channel-info-using-fcinfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing core files</title>
		<link>http://www.unixpowered.com/blog/2008/07/22/managing-core-files/</link>
		<comments>http://www.unixpowered.com/blog/2008/07/22/managing-core-files/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 19:45:59 +0000</pubDate>
		<dc:creator>somedude</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[solaris tips]]></category>
		<category><![CDATA[solaris utilities]]></category>

		<guid isPermaLink="false">http://wayciak.wordpress.com/?p=22</guid>
		<description><![CDATA[If you have grown tired of having core files laying around all over the place you can manage them using coreadm command. You can set up system to save core files to a specific location.
First, here are the default core settings on a Solaris box:
bash-3.00# coreadm
global core file pattern:
global core file content: default
init core file [...]]]></description>
			<content:encoded><![CDATA[<p>If you have grown tired of having <em>core</em> files laying around all over the place you can manage them using <a title="coreadm man page" href="http://docs.sun.com/app/docs/doc/817-0708/6mgg6t7bl?l=en&amp;a=view&amp;q=coreadm" target="_self"><em>coreadm</em></a> command. You can set up system to save <em>core</em> files to a specific location.</p>
<p>First, here are the default core settings on a Solaris box:</p>
<p><code>bash-3.00# <strong>coreadm</strong><br />
global core file pattern:<br />
global core file content: default<br />
init core file pattern: core<br />
init core file content: default<br />
global core dumps: disabled<br />
per-process core dumps: enabled<br />
global setid core dumps: disabled<br />
per-process setid core dumps: disabled<br />
global core dump logging: disabled</code></p>
<p>Now, let&#8217;s configure the system to save <em>init</em> core files in <em>/var/crash/cores</em> in format <em>EUID.execName.core</em>:</p>
<p><code>bash-3.00# <strong>coreadm -i /var/crash/cores/%u.%f.core</strong><br />
bash-3.00# <strong>coreadm</strong><br />
global core file pattern:<br />
global core file content: default<br />
init core file pattern: /var/crash/cores/%u.%f.core<br />
init core file content: default<br />
global core dumps: disabled<br />
per-process core dumps: enabled<br />
global setid core dumps: disabled<br />
per-process setid core dumps: disabled<br />
global core dump logging: disabled</code></p>
<p>To test our setup, we can use <a title="gcore man page" href="http://docs.sun.com/app/docs/doc/819-2239/6n4hsf6kk?l=en&amp;a=view&amp;q=gcore" target="_self"><em>gcore</em></a> command.</p>
<p><code>bash-3.00# <strong>gcore -p 741</strong><br />
gcore: /var/crash/cores/0.bash.core dumped<br />
bash-3.00# ls /var/crash/cores<br />
0.bash.core          hsperfdata_noaccess  hsperfdata_root<br />
bash-3.00#</code></p>
<p>Above, we generated core file for <em>bash</em> process with <em>PID</em> 741 run under effective <em>UID</em> 0. This should make the system tidier as far as core files are concerned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unixpowered.com/blog/2008/07/22/managing-core-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
