<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8595473519275917709</id><updated>2012-02-16T18:22:03.692+01:00</updated><category term='3580'/><category term='RMC'/><category term='DNS'/><category term='CuOD'/><category term='MPIO'/><category term='TS7520'/><category term='partitions'/><category term='fibre channel'/><category term='OpenSSL'/><category term='commit failed'/><category term='domain name system'/><category term='A7004730'/><category term='migratepv'/><category term='9111-520'/><category term='tty'/><category term='HACMP 5.2'/><category term='switch'/><category term='7038-6M2'/><category term='smit'/><category term='mkvdev'/><category term='E170'/><category term='5759'/><category term='ESC'/><category term='wordle'/><category term='fabric'/><category term='HACMP'/><category term='oslevel'/><category term='7028-6C4'/><category term='disk storage'/><category term='0xdeadbeef'/><category term='FAStT'/><category term='unloadopt'/><category term='firmware'/><category term='WebSM'/><category term='virtual devices'/><category term='logical disk extension'/><category term='locked account'/><category term='LUN'/><category term='concurrent VG'/><category term='reserved'/><category term='Brocade'/><category term='scripting'/><category term='5703'/><category term='2109-F16'/><category term='SCSI'/><category term='DS8100'/><category term='LVM mirror'/><category term='LPAR'/><category term='login'/><category term='DW'/><category term='rc.tcpip'/><category term='mircmp'/><category term='security'/><category term='reverse zone'/><category term='mount'/><category term='reset'/><category term='synchronization'/><category term='20EE000B'/><category term='ssh'/><category term='fscsi'/><category term='language'/><category term='break'/><category term='technology level'/><category term='SCSI RAID'/><category term='remote client'/><category term='disk I/O'/><category term='networking'/><category term='virtual terminal'/><category term='port knocking'/><category term='loadopt'/><category term='NIM'/><category term='NFS'/><category term='DS4000'/><category term='VIOS'/><category term='HMC'/><category term='serial console'/><category term='LED 0517 boot'/><category term='fcparray'/><category term='9115-550'/><category term='baud rate'/><category term='chdev'/><category term='disk reservation'/><category term='DS4200'/><category term='concurrent access'/><category term='PowerHA'/><category term='SDDPCM'/><category term='password'/><category term='lsmap'/><category term='cllsvg'/><category term='utilities'/><category term='VTL'/><title type='text'>Operation Daily Magic Error</title><subtitle type='html'>Adventures in the Brave New World of AIX</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://odme.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-4462568219857241230</id><published>2011-09-08T10:00:00.004+02:00</published><updated>2011-09-08T10:01:39.671+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='port knocking'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='DW'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>3 locks for your SSH door</title><content type='html'>I have found&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/aix/library/au-sshlocks/"&gt;this great article&lt;/a&gt;&amp;nbsp;on Developerworks. Great stuff, especially part 3, about port knocking. Read it, use it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-4462568219857241230?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/4462568219857241230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=4462568219857241230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4462568219857241230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4462568219857241230'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2011/09/3-locks-for-your-ssh-door.html' title='3 locks for your SSH door'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-5567283383357821760</id><published>2011-09-06T13:36:00.000+02:00</published><updated>2011-09-06T13:36:38.219+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='password'/><category scheme='http://www.blogger.com/atom/ns#' term='reset'/><category scheme='http://www.blogger.com/atom/ns#' term='locked account'/><title type='text'>Resetting unsuccessful logins</title><content type='html'>AIX keeps records of the unsuccessful logins to every account. Too many login failures may cause you the get locked out. To reset, try these:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chsec -f /etc/security/lastlog -a "unsuccessful_login_count=0" -s login_name&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chuser "account_locked=false" login_name&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-5567283383357821760?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/5567283383357821760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=5567283383357821760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5567283383357821760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5567283383357821760'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2011/09/resetting-unsuccessful-logins.html' title='Resetting unsuccessful logins'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-781091470605146756</id><published>2011-09-01T17:44:00.000+02:00</published><updated>2011-09-01T17:45:32.566+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rc.tcpip'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>The chrctcp command</title><content type='html'>The &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chrctcp&lt;/span&gt; command in not documented in AIX but you can still use it to do nice things, especially when you are scripting. Some examples:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chrctcp -S -a xntpd&lt;/span&gt; enable and start xntpd&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chrctcp -S -d xntpd&lt;/span&gt; disable and stop xntpd&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chrctcp -a xntpd&lt;/span&gt; enable but do not start xntpd&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chrctcp -d xntpd&lt;/span&gt; disable but do not stop xntpd&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, instead of manually editing &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/etc/rc.tcpip&lt;/span&gt; you can use &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chrctcp&lt;/span&gt; to enable (uncomment), disable (comment) some services, and start and stop them in a single command. Nice.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-781091470605146756?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/781091470605146756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=781091470605146756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/781091470605146756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/781091470605146756'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2011/09/chrctcp-command.html' title='The chrctcp command'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-4884118897827077104</id><published>2011-04-07T16:31:00.000+02:00</published><updated>2011-04-07T16:31:33.814+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED 0517 boot'/><title type='text'>LED 0517</title><content type='html'>Your LPAR/server stopping at 0517? Check your bootlist, it may still be wanting to boot from network instead of disk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-4884118897827077104?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/4884118897827077104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=4884118897827077104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4884118897827077104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4884118897827077104'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2011/04/led-0517.html' title='LED 0517'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-4084824083803144325</id><published>2011-03-31T12:43:00.001+02:00</published><updated>2011-04-07T17:40:04.126+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VIOS'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual devices'/><title type='text'>Numbering scheme for dual-VIOS configurations</title><content type='html'>The question of virtual adapter numbering keeps popping up every time you are about to introduce a larger dual-VIOS configuration. In this example I am going to give you a numbering scheme which may help you find your way amongst the ever growing number of virtual devices.&lt;br /&gt;&lt;br /&gt;Please mind that it is the way I usually set up my systems. None of the things described here are rules, rather they are guidelines for those who need them. You may use it as is or develop your own based on it, or even forget it all and come up with something completely different. But the point I can't emphasize enough is that you should have a plan of some sort before taking the dive.&lt;br /&gt;&lt;br /&gt;Suppose you have a dual-VIOS setup, the VIO servers are called vio1 and vio2. We want to have virtual ethernet, virtual SCSI, and virtual FC (NPIV) connections. For the virtual ethernet we want multiple port-based VLANs and SEA failover (with a control channel). Both vSCSI and vFC will be redundant. We will have less than 100 LPARs including the two VIOS partitions.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;General VIOS considerations&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Before you start setting up your VIOS and client partitions, make sure you have your layout well planned. With a good plan, setting up the system is like a breeze. With no plan, you may soon find yourself in the middle of some great mess.&lt;/li&gt;&lt;li&gt;Look at your plans and establish the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;maximum number of virtual devices&lt;/span&gt; per partition.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;vSCSI&lt;/u&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;vSCSI uses a one-to-one relationship between a server SCSI adapter and a client SCSI adapter. To easily pair the server and client adapters, both will have the same virtual slot ID. (For now I will assume that there will always be a maximum of one pair of server and client SCSI adapters between any VIO server and client.)&lt;/li&gt;&lt;li&gt;All adapter pairs between a client and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio1&lt;/span&gt; will have the virtual slot ID&amp;nbsp;&lt;b&gt;1xx&lt;/b&gt;, where &lt;b&gt;xx&lt;/b&gt; is the client LPAR ID with a leading zero if needed. &amp;nbsp;Example: adapter slot ID&amp;nbsp;&lt;b&gt;107&lt;/b&gt; will be used between &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio1&lt;/span&gt; (LPAR ID 1) and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;client7&lt;/span&gt; (LPAR ID 7) for both virtual server and client adapters.&lt;/li&gt;&lt;li&gt;All adapter pairs between a client and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio2&lt;/span&gt; will have the virtual slot ID&amp;nbsp;&lt;b&gt;2xx&lt;/b&gt;, where &lt;b&gt;xx&lt;/b&gt; is the client LPAR ID with a leading zero if needed. &amp;nbsp;Example: adapter slot ID&amp;nbsp;&lt;b&gt;229&lt;/b&gt;&amp;nbsp;will be used between&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio2&lt;/span&gt;&amp;nbsp;(LPAR ID 2) and&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;client29&lt;/span&gt;&amp;nbsp;(LPAR ID 29)&amp;nbsp;for both virtual server and client adapters.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;u&gt;vEthernet&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Virtual ethernet uses the one-to-many layout. The VIOS usually has one virtual adapter, a bridge, that is connected to (on the internal end) the virtual ethernet switch provided by the hypervisor and (on the external end) the shared ethernet adapter and the physical ethernet adapter port.&lt;/li&gt;&lt;li&gt;A virtual ethernet adapter acting as a bridge adapter must have its &lt;i&gt;access external network&lt;/i&gt; flag set.&lt;/li&gt;&lt;li&gt;For virtual Ethernet slot IDs I usually use the 300-499 range. The 300-399 range is reserved for VLAN that are used either between LPARs (internal networks) or between LPARs and the outside world. While the 400-499 range is reserved for control channel VLANs.&lt;/li&gt;&lt;li&gt;Each external VLAN ID is mapped to a number between 300 and 399. The mapping can be some mathematical formula to make it easy for the administrator to identify a VLAN just by looking at the virtual slot ID of the adapter (see Example #1), or it can be an relationship between the VLAN ID and the virtual slot ID usually in the form of a table (see Example #2).&lt;/li&gt;&lt;li&gt;Each VLAN defined in the 300-399 range has one corresponding controll channel VLAN ID in the 400-499 range. VLAN 359 has a control channel VLAN ID of 459.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;u&gt;vFC&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Virtual FC adapters use the same one-to-one layout as vSCSI adapters. There is one server adapter defined in the VIOS and it is connected to exactly one client adapter defined in the client LPAR. Both members of one pair will use the exact same virtual slot ID.&lt;/li&gt;&lt;li&gt;With NPIV it often happens that one channel between a VIO server and client is insufficient, so in this example I will use two pairs.&lt;/li&gt;&lt;li&gt;The system of assigning virtual slot IDs for vFC adapter is the exact same as for vSCSI adapters, but in this case we will use the 500-599 range for the first pair, 700-799 for the second pair on &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio1&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;The range 600-699 and 800-899 will be used for the first and second pair of adapters on &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio2&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;If you need more adapter pairs, the logic is clear. Hundreds starting with an odd number starting at 5 mean the pair belongs to &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio1&lt;/span&gt;, hundreds starting with even numbers starting at 6 mean the pair belongs to &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vio2&lt;/span&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;Examples&lt;/u&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Suppose you have VLAN IDs 111, 112, 184, and 191. The formula you could use to calculate the virtual slot IDs for the bridge adapters for these VLANs is this: &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;vSlotID=vlanId+200&lt;/span&gt;. Thus 111, 112, 184, and 191 become 311, 312, 384, and 391 respectively. And the corresponding control channel virtual adapter slot IDs are 411, 412, 484 and 491.&lt;/li&gt;&lt;li&gt;Suppose you have VLAN IDs 14, 99, 134, and 254. In this case you have two choices. (a) You can use the two rightmost digits of the VLAN IDs to generate the virtual slot IDs, such as 314, 399, 334, and 354, with control channel virtual adapter clost IDs 414, 499, 434, and 454, respectively. Or (b) you can map the VLAN IDs to arbitrary virtual slot IDs: 14-&amp;gt;300; 99-&amp;gt;301; 134-&amp;gt;302; 254-&amp;gt;303. The respective control channel virtual slot IDs then are 400, 401, 402, and 403.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-4084824083803144325?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/4084824083803144325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=4084824083803144325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4084824083803144325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4084824083803144325'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2011/03/numbering-scheme-for-dual-vios.html' title='Numbering scheme for dual-VIOS configurations'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-8936484749602301902</id><published>2010-09-30T11:23:00.001+02:00</published><updated>2011-04-05T18:01:39.771+02:00</updated><title type='text'>Removing all failed paths</title><content type='html'>To remove all the failed paths use the following command:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lspath -s failed &amp;nbsp;-F"name connection" | while read dev con; do rmpath -l $dev -w $con -d; done&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-8936484749602301902?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/8936484749602301902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=8936484749602301902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8936484749602301902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8936484749602301902'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2010/09/removing-all-failed-paths.html' title='Removing all failed paths'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-6027612256810007089</id><published>2010-09-25T12:33:00.004+02:00</published><updated>2010-09-30T11:29:41.613+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LPAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HMC'/><category scheme='http://www.blogger.com/atom/ns#' term='RMC'/><title type='text'>Unwanted RMC traffic</title><content type='html'>In an HMC controlled LPAR environment a misconfiguration may exist that causes the RMC daemon (ctrmcd) to try to communicate with the HMC private network interface (usually eth0). This communication may never succeed because the private network can never be reached from an LPAR. The traffic often bothers some customers. To get rid of the unwanted network activity, read this:&amp;nbsp;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=isg3T1012018"&gt;Partitions communicating with HMC private network&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Make sure you are logged in on the console while changing the gateway device, otherwise you may lose connection to the HMC and will not be able to reboot the HMC remotely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-6027612256810007089?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/6027612256810007089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=6027612256810007089' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6027612256810007089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6027612256810007089'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2010/09/in-hmc-controlled-lpar-environment.html' title='Unwanted RMC traffic'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-5997982082458004188</id><published>2010-05-16T13:01:00.000+02:00</published><updated>2010-05-16T13:01:09.545+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HACMP'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerHA'/><title type='text'>"cldare: Not able to discover the name of the local node."</title><content type='html'>In case you get the error message in the title, make sure your base addresses are added to your HACMP/PowerHA configuration. Adding them only as communication interfaces at initial cluster setup may not be sufficient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-5997982082458004188?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/5997982082458004188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=5997982082458004188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5997982082458004188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5997982082458004188'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2010/05/cldare-not-able-to-discover-name-of.html' title='&quot;cldare: Not able to discover the name of the local node.&quot;'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-9093253639701696183</id><published>2010-05-06T13:33:00.006+02:00</published><updated>2011-04-12T12:12:58.112+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NIM'/><title type='text'>Useful NIM commands</title><content type='html'>To create an updated NIM lpp_source and SPOT while keeping the originals:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;(1) cd /nim/lppsource&lt;br /&gt;(2) cp -rp aix531200 aix531201&lt;br /&gt;(3) nim -o define -t lpp_source -a server=master -a location=/nim/lppsource/aix531201 aix531201&lt;br /&gt;(4) nim -o update -a packages=all -a source=/swi/AIX/53/tl12sp1 aix531201&lt;br /&gt;(5) nim -o lppmgr -a lppmgr_flags="-bu -x -r -e" aix531201&lt;br /&gt;(6) nim -o define -t spot -a server=master -a location=/nim/spot -a source=aix531201 spot531201&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You will only need step 5 if your source is a cummulative fix pack containing both a full TL and the SP above it. If it is only an SP (does not contain the fixes up to the full TL) you may skip step 5. However, it won't hurt runnig it.&lt;br /&gt;&lt;br /&gt;To create a new lpp_source from an install DVD, copy the DVD contents (DVD #1 is sufficient) into  a directory, and then:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;nim -o define -t lpp_source -a server=master -a location=/nim/lppsource/lpp6100-05-00 -a source=/swi/AIX/61/6100-05-00-DVD/1 lpp6100-05-00&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-9093253639701696183?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/9093253639701696183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=9093253639701696183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/9093253639701696183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/9093253639701696183'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2010/05/useful-nim-commands.html' title='Useful NIM commands'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-2486485829571530500</id><published>2009-11-27T18:09:00.004+01:00</published><updated>2009-11-27T18:11:02.074+01:00</updated><title type='text'>PowerHA problems</title><content type='html'>A defect exists in PowerHA 5.5 (base level) that causes a PowerHA node to lose the default gateway after a reboot. To fix the defect install SP04.&lt;br /&gt;&lt;br /&gt;But SP04 also has a defect that causes a Power HA node to lose the default gateway after a cluster stop. To correct, install IZ63771. Until the standard fix is available, there is an e-fix available at ftp://public.dhe.ibm.com/aix/efixes/iz63771/.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-2486485829571530500?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/2486485829571530500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=2486485829571530500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/2486485829571530500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/2486485829571530500'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/11/powerha-problems.html' title='PowerHA problems'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-2999963142324466208</id><published>2009-10-02T11:28:00.001+02:00</published><updated>2009-10-02T11:30:13.351+02:00</updated><title type='text'>NTP on VIOS</title><content type='html'>Edit &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/home/padmin/config/ntp.conf&lt;/span&gt; and start NTP using &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;startnetsvc xntpd&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-2999963142324466208?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/2999963142324466208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=2999963142324466208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/2999963142324466208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/2999963142324466208'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/10/ntp-on-vios.html' title='NTP on VIOS'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-5126247416599070254</id><published>2009-08-28T17:35:00.005+02:00</published><updated>2009-08-28T17:38:12.240+02:00</updated><title type='text'>DS5000 default IP addresses</title><content type='html'>Controller A port 1: 192.168.128.101&lt;br /&gt;Controller A port 2: 192.168.129.101&lt;br /&gt;Controller B port 1: 192.168.128.102&lt;br /&gt;Controller B port 2: 192.168.129.102&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-5126247416599070254?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/5126247416599070254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=5126247416599070254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5126247416599070254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5126247416599070254'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/08/ds5000-default-ip-addresses.html' title='DS5000 default IP addresses'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-8740329495582377844</id><published>2009-06-21T20:13:00.002+02:00</published><updated>2009-06-21T20:14:50.425+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordle'/><title type='text'>Summary</title><content type='html'>&lt;a href="http://www.wordle.net/gallery/wrdl/960028/O.D.M.E" title="Wordle: O.D.M.E"&gt;&lt;br /&gt;&lt;img src="http://www.wordle.net/thumb/wrdl/960028/O.D.M.E" alt="Wordle: O.D.M.E" style="padding:4px;border:1px solid #ddd"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-8740329495582377844?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/8740329495582377844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=8740329495582377844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8740329495582377844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8740329495582377844'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/06/summary.html' title='Summary'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-3018933816483817957</id><published>2009-05-06T20:11:00.003+02:00</published><updated>2011-03-31T09:46:38.847+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chdev'/><category scheme='http://www.blogger.com/atom/ns#' term='fscsi'/><category scheme='http://www.blogger.com/atom/ns#' term='fibre channel'/><title type='text'>fscsi device tuning</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;To enable dynamic tracking and faster path error discovery (if you have multiple paths to your devices) use the following settings on your &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;fscsi&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt; devices:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;chdev -l fscsi0 -a dyntrk=yes -a fc_err_recov=fast_fail&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-3018933816483817957?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/3018933816483817957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=3018933816483817957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/3018933816483817957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/3018933816483817957'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/05/fscsi-device-tuning.html' title='fscsi device tuning'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-4865112288723200786</id><published>2009-04-23T10:42:00.004+02:00</published><updated>2009-04-23T10:48:39.123+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utilities'/><category scheme='http://www.blogger.com/atom/ns#' term='LVM mirror'/><category scheme='http://www.blogger.com/atom/ns#' term='mircmp'/><title type='text'>mircmp tool</title><content type='html'>This tool can be used to compare copies of a mirrored LV. Comes in handy sometimes.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/ksh&lt;br /&gt;&lt;br /&gt;#------- constants ----------&lt;br /&gt;WORKDIR=/tmp/mircmp$$&lt;br /&gt;WORKDIR2=/tmp/mircmp&lt;br /&gt;STOPFILE_GLOBAL=/tmp/stop_mircmp&lt;br /&gt;STOPFILE_LOCAL=$WORKDIR/stop_mircmp&lt;br /&gt;MBSIZE=1048576  # 1MB.  The -S flag takes the io size in MB,&lt;br /&gt; # so this is a useful value.  We immediately&lt;br /&gt; # convert this value into the size in 128KB&lt;br /&gt; # units, but most users probably find it easier&lt;br /&gt; # to think in terms of MB.&lt;br /&gt;LTGSIZE=131072  # 128KB.  This is actually the min possible&lt;br /&gt; # ltg size for a vg, and has nothing to do&lt;br /&gt; # with the current ltgsize value for the vg.&lt;br /&gt; # This constant is useful since readlvcopy&lt;br /&gt; # takes io size and offset in 128KB chunks&lt;br /&gt; # rather than DBSIZE (512 byte) chunks.  This&lt;br /&gt; # is the finest granularity of io that readlvcopy&lt;br /&gt; # supports, so its the finest granularity we&lt;br /&gt; # can support in this script.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#------- global variables --------&lt;br /&gt;&lt;br /&gt;# flags and flag values.  For documentation of each&lt;br /&gt;# flag please see the Usage function.&lt;br /&gt;cFLAG=&lt;br /&gt;lFLAG=&lt;br /&gt;lVAL=&lt;br /&gt;sFLAG=&lt;br /&gt;sVAL=&lt;br /&gt;SFLAG=&lt;br /&gt;SVAL=&lt;br /&gt;vFLAG=&lt;br /&gt;vVAL=&lt;br /&gt;zFLAG=&lt;br /&gt;wFLAG=&lt;br /&gt;wVAL=&lt;br /&gt;&lt;br /&gt;# general global variables&lt;br /&gt;LVNAME=&lt;br /&gt;LVID=&lt;br /&gt;VGNAME=&lt;br /&gt;VGID=&lt;br /&gt;PPSIZE=&lt;br /&gt;PPSIZE_P2=&lt;br /&gt;NLTGS_PERPP=&lt;br /&gt;NMB_PERPP=&lt;br /&gt;IO_SIZE=&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#------- utility functions --------&lt;br /&gt;&lt;br /&gt;# Documents the script.  Called for any syntax errors.&lt;br /&gt;Usage()&lt;br /&gt;{&lt;br /&gt;echo "Usage: mircmp -l lvname | -v vgname"&lt;br /&gt;echo "  [-s iosize in 128KB | -S iosize in MB]"&lt;br /&gt;echo "  [-c] [-b begin lp#] [-e end lp# | -n numlps]"&lt;br /&gt;echo ""&lt;br /&gt;echo "Purpose: Verify mirror consistency."&lt;br /&gt;echo ""&lt;br /&gt;echo "Required Flags:"&lt;br /&gt;echo " -l lvname examine this lv."&lt;br /&gt;echo " -v vgname each lv within the vg will be "&lt;br /&gt;echo "   examined.  Any non-mirrored lvs"&lt;br /&gt;echo "   within the vg will be skipped."&lt;br /&gt;echo ""&lt;br /&gt;echo "Other options:"&lt;br /&gt;echo " -c   display cksum of comparison files as"&lt;br /&gt;echo "   we perform each io.  The naming"&lt;br /&gt;echo "   convention for the comparison files"&lt;br /&gt;echo "   is lvname.lp#.io#.a/b/c/s,"&lt;br /&gt;echo "   where a=primary mirror copy, b=secondary"&lt;br /&gt;echo "   mirror copy, c=tertiary mirror copy, and"&lt;br /&gt;echo "   s=second pass at the primary mirror copy"&lt;br /&gt;echo "   to check for io in flight."&lt;br /&gt;echo " -b begin begin with this lp#. By default this"&lt;br /&gt;echo "   is the start of the lv."&lt;br /&gt;echo " -e end  end at this lp#.  By default this is"&lt;br /&gt;echo "   the end of the lv.  The -e and -n"&lt;br /&gt;echo "   flags are mutually exclusive."&lt;br /&gt;echo " -n numlps number of lps to examine.  The -e"&lt;br /&gt;echo "   and -n flags are mutually exclusive."&lt;br /&gt;echo " -s 128KB io size specified in 128KB units."&lt;br /&gt;echo " -S 1MB  io size specified in MB."&lt;br /&gt;echo " -z  saves the inconsistent blocks into /tmp/mircmp"&lt;br /&gt;echo " -w workdir use specified workdir instead of /tmp"&lt;br /&gt;echo ""&lt;br /&gt;echo "Description:"&lt;br /&gt;echo "  Verify mirror consistency by reading each mirror"&lt;br /&gt;echo "  copy of a logical volume and comparing the data"&lt;br /&gt;echo "  against the other copies.  Report whether or not"&lt;br /&gt;echo "  the mirrors for that lp have matching copies."&lt;br /&gt;echo "  Ignore the vgsa stale bits which tell lvm whether"&lt;br /&gt;echo "  the lp is stale or fresh, and just compare the actual"&lt;br /&gt;echo "  data.  If the mirrors don't match a second pass"&lt;br /&gt;echo "  attempts to determine if io is in flight."&lt;br /&gt;echo ""&lt;br /&gt;echo "False Failures:"&lt;br /&gt;echo "  One important thing to note is that if an lv is"&lt;br /&gt;echo "  mirrored at creation time (with the mklv -c flag)"&lt;br /&gt;echo "  then the mirror copies won't match until that"&lt;br /&gt;echo "  particular 512 byte block is written to.  This is"&lt;br /&gt;echo "  done because it saves a lot of time during the"&lt;br /&gt;echo "  creation of a large lv (we don't have to do io"&lt;br /&gt;echo "  to the logical partitions, we just have to generate"&lt;br /&gt;echo "  a map of the allocations).  In short, lvs that were"&lt;br /&gt;echo "  mirrored at creation time will show mirror"&lt;br /&gt;echo "  mismatches unless each 512 byte block of the lv"&lt;br /&gt;echo "  has been written to.  These are false failures"&lt;br /&gt;echo "  and do not indicate a problem with the mirrors."&lt;br /&gt;echo ""&lt;br /&gt;echo "  If an lv is created without mirroring and then"&lt;br /&gt;echo "  mklvcopy is used to mirror, lvm will once again"&lt;br /&gt;echo "  not do any io to the new mirror copies, and the"&lt;br /&gt;echo "  new mirror copies will be marked stale.  Once"&lt;br /&gt;echo "  syncvg is run the new mirror copies will be"&lt;br /&gt;echo "  marked fresh and the mirror copies will match."&lt;br /&gt;echo ""&lt;br /&gt;echo "  Stale partitions will show up as mirror miscompares"&lt;br /&gt;echo "  because mircmp completely ignores the vgsa stale bits."&lt;br /&gt;echo ""&lt;br /&gt;echo "Graceful Termination:"&lt;br /&gt;echo "  To stop all running instances of the mircmp process"&lt;br /&gt;echo "  create a file called /tmp/stop_mircmp.  To stop a"&lt;br /&gt;echo "  particular mircmp process, create a file called"&lt;br /&gt;echo "  /tmp/mircmp&lt;pid&gt;/stop_mircmp.  These stopfiles"&lt;br /&gt;echo "  are used for graceful termination.  There is a signal"&lt;br /&gt;echo "  handling function as well but you'd rather use that."&lt;br /&gt;echo "  If mircmp is terminated with a signal it will not exit"&lt;br /&gt;echo "  gracefully and the /tmp/mircmp&lt;pid&gt; will be left"&lt;br /&gt;echo "  behind."&lt;br /&gt;echo ""&lt;br /&gt;echo "Space Considerations:"&lt;br /&gt;echo "  Each /tmp/mircmp&lt;pid&gt; will contain N+1 files,"&lt;br /&gt;echo "  N is the number of mirrors for the lv.  The +1"&lt;br /&gt;echo "  comes from the way mircmp performs a second pass"&lt;br /&gt;echo "  to check for io in flight if the first pass detects"&lt;br /&gt;echo "  a mirror mismatch.  In the second pass we re-read"&lt;br /&gt;echo "  from the primary mirror copy and compare against"&lt;br /&gt;echo "  the first pass primary mirror copy data.  If the"&lt;br /&gt;echo "  first pass and second pass find equal data we"&lt;br /&gt;echo "  assume io is not in fight and this is a true mirror"&lt;br /&gt;echo "  mismatch."&lt;br /&gt;echo ""&lt;br /&gt;echo "  The size of each file is known as the iosize and"&lt;br /&gt;echo "  can be specified with either the -s or -S flag."&lt;br /&gt;echo "  By default the iosize=ppsize for the vg that"&lt;br /&gt;echo "  mircmp is operating on.  If the user specifies an"&lt;br /&gt;echo "  iosize &gt; ppsize then we set iosize=ppsize.  As"&lt;br /&gt;echo "  the iosize decreases, the /tmp space requirement"&lt;br /&gt;echo "  decreases and the performance slows down."&lt;br /&gt;echo ""&lt;br /&gt;echo "  If the -z flag is used, /tmp/mircmp will contain"&lt;br /&gt;echo "  saved versions of every block who's copies do not match."&lt;br /&gt;echo "  This could require significant space in /tmp, as described"&lt;br /&gt;echo "  above."&lt;br /&gt;echo ""&lt;br /&gt;&lt;br /&gt;cleanup_exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Called if we get a signal.&lt;br /&gt;cleanup_signal()&lt;br /&gt;{&lt;br /&gt;cleanup_exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Gracefully cleanup our work directory&lt;br /&gt;# and exit.&lt;br /&gt;cleanup_exit()&lt;br /&gt;{&lt;br /&gt;trap '' 0 1 2 15&lt;br /&gt;rm -rf $WORKDIR&lt;br /&gt;exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Useful function for checking return codes.&lt;br /&gt;# Errors are fatal.  First parameter is the&lt;br /&gt;# rc, second parameter is the error string.&lt;br /&gt;test_return()&lt;br /&gt;{&lt;br /&gt;if [ "$1" != 0 ]&lt;br /&gt;then&lt;br /&gt;echo "mircmp: fatal error: $2"&lt;br /&gt;cleanup_exit&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Check return code from readlvcopy.  This is a&lt;br /&gt;# special case where a read error shouldn't be&lt;br /&gt;# fatal unless /tmp is full.&lt;br /&gt;test_io_return()&lt;br /&gt;{&lt;br /&gt;if [ "$1" != 0 ]&lt;br /&gt;then&lt;br /&gt;TIO_RC=`df /tmp | grep -v "%Used" | awk '{print $4}'`&lt;br /&gt;if [ "$TIO_RC" = "100%" ]; then&lt;br /&gt; echo "mircmp: fatal error: $2"&lt;br /&gt; echo ""&lt;br /&gt; echo "mircmp: /tmp is full.  Please choose"&lt;br /&gt; echo "  a smaller iosize using the -s or"&lt;br /&gt; echo "  -S parameter and try again."&lt;br /&gt;else&lt;br /&gt; echo "mircmp: fatal error: $2"&lt;br /&gt;fi&lt;br /&gt;cleanup_exit&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Check and see if the user has specified either&lt;br /&gt;# a global or local stopfile.  If so then&lt;br /&gt;# gracefully cleanup our work directory and exit.&lt;br /&gt;check_stopfile()&lt;br /&gt;{&lt;br /&gt;if [ -f "$STOPFILE_GLOBAL" ]; then&lt;br /&gt;echo "global stopfile detected"&lt;br /&gt;&lt;br /&gt;trap '' 0 1 2 15&lt;br /&gt;rm -rf $WORKDIR&lt;br /&gt;exit&lt;br /&gt;elif [ -f "$STOPFILE_LOCAL" ]; then&lt;br /&gt;echo "local stopfile detected"&lt;br /&gt;&lt;br /&gt;trap '' 0 1 2 15&lt;br /&gt;rm -rf $WORKDIR&lt;br /&gt;exit&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# This is the function that is called on each logical&lt;br /&gt;# partition.  Loop reading io size chunks of the&lt;br /&gt;# partition and comparing that chunk across all&lt;br /&gt;# mirrors.  Once the entire lp has been examined,&lt;br /&gt;# report results to stdout.&lt;br /&gt;process_lp()&lt;br /&gt;{&lt;br /&gt;LP=$1&lt;br /&gt;&lt;br /&gt;if [ -z "$LP" ]; then&lt;br /&gt;echo "mircmp: process_lp: no lp specified"&lt;br /&gt;cleanup_exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Compute the start of the lp in 128KB units.&lt;br /&gt;((LP_OFF = $LP - 1))&lt;br /&gt;((LP_SKIP = $LP_OFF * $NLTGS_PERPP))&lt;br /&gt;&lt;br /&gt;NLP_IOEQUAL=0&lt;br /&gt;NLP_IOFLIGHT=0&lt;br /&gt;NLP_IOMISMATCH=0&lt;br /&gt;CUR_IO=1&lt;br /&gt;while [ "$CUR_IO" -le "$NIOS_PERPP" ];&lt;br /&gt;do&lt;br /&gt;# Check for global and local stopfiles&lt;br /&gt;# each time through the loop so that we&lt;br /&gt;# can fail gracefully if necessary.&lt;br /&gt;check_stopfile&lt;br /&gt;&lt;br /&gt;# Compute the distance from the start of&lt;br /&gt;# the lp to the current io.  Once again&lt;br /&gt;# this is in 128KB units.&lt;br /&gt;((TMP_IO_OFF = $CUR_IO - 1))&lt;br /&gt;((IO_OFF = $TMP_IO_OFF * $IO_SIZE))&lt;br /&gt;((IO_SKIP = $LP_SKIP + $IO_OFF))&lt;br /&gt;&lt;br /&gt;if [ $IO_SKIP -eq 0 ]; then&lt;br /&gt; SKIP_STRING=""&lt;br /&gt;else&lt;br /&gt; SKIP_STRING="-s $IO_SKIP"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Naming convention for the comparison&lt;br /&gt;# files is lp#.io#.a/b/c/s, where&lt;br /&gt;# a=first mirror copy, b=second mirror copy,&lt;br /&gt;# c=third mirror copy, and s=second pass against&lt;br /&gt;# the first mirror copy.&lt;br /&gt;&lt;br /&gt;readlvcopy -d /dev/r$LVNAME -c 1 $SKIP_STRING \&lt;br /&gt;  -n $IO_SIZE -o $WORKDIR/$LP.$CUR_IO.a &gt;/dev/null 2&gt;&amp;amp;1&lt;br /&gt;test_io_return $? "readlvcopy $LP.$CUR_IO.a"&lt;br /&gt;&lt;br /&gt;readlvcopy -d /dev/r$LVNAME -c 2 $SKIP_STRING \&lt;br /&gt;  -n $IO_SIZE -o $WORKDIR/$LP.$CUR_IO.b &gt;/dev/null 2&gt;&amp;amp;1&lt;br /&gt;test_io_return $? "readlvcopy $LP.$CUR_IO.b"&lt;br /&gt;&lt;br /&gt;cmp -s $WORKDIR/$LP.$CUR_IO.a $WORKDIR/$LP.$CUR_IO.b&lt;br /&gt;CMP_B_RC=$?&lt;br /&gt;&lt;br /&gt;if [ $NCOPIES -eq 3 ]; then&lt;br /&gt; readlvcopy -d /dev/r$LVNAME -c 3 $SKIP_STRING \&lt;br /&gt;   -n $IO_SIZE -o $WORKDIR/$LP.$CUR_IO.c &gt;/dev/null 2&gt;&amp;amp;1&lt;br /&gt; test_io_return $? "readlvcopy $LP.$CUR_IO.c"&lt;br /&gt;&lt;br /&gt; cmp -s $WORKDIR/$LP.$CUR_IO.a $WORKDIR/$LP.$CUR_IO.c&lt;br /&gt; CMP_C_RC=$?&lt;br /&gt;else&lt;br /&gt; CMP_C_RC=0&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# If mirrors match increment NLP_IOEQUAL.&lt;br /&gt;#&lt;br /&gt;# If mirrors don't match we perform a second pass&lt;br /&gt;# which reads mirror "a" again and compares it to&lt;br /&gt;# mirror a data from the first pass.  If mirror&lt;br /&gt;# "a" has changed between the first and second pass&lt;br /&gt;# we increment NLP_IOFLIGHT, otherwise we increment&lt;br /&gt;# NLP_IOMISMATCH.&lt;br /&gt;if [[ $CMP_B_RC -eq 0 ]] &amp;amp;&amp;amp; [[ $CMP_C_RC -eq 0 ]]; then&lt;br /&gt; SECOND_PASS=0&lt;br /&gt; ((NLP_IOEQUAL = $NLP_IOEQUAL + 1))&lt;br /&gt;else&lt;br /&gt; SECOND_PASS=1&lt;br /&gt; readlvcopy -d /dev/r$LVNAME -c 1 $SKIP_STRING \&lt;br /&gt;   -n $IO_SIZE -o $WORKDIR/$LP.$CUR_IO.s &gt;/dev/null 2&gt;&amp;amp;1&lt;br /&gt; test_io_return $? "readlvcopy $LP.$CUR_IO.s"&lt;br /&gt;&lt;br /&gt; cmp -s $WORKDIR/$LP.$CUR_IO.a $WORKDIR/$LP.$CUR_IO.s&lt;br /&gt; CMP_S_RC=$?&lt;br /&gt;&lt;br /&gt; if [ $CMP_S_RC -eq 0 ]; then&lt;br /&gt;   ((NLP_IOMISMATCH = $NLP_IOMISMATCH + 1))&lt;br /&gt; else&lt;br /&gt;   ((NLP_IOFLIGHT = $NLP_IOFLIGHT + 1))&lt;br /&gt; fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Display the cksum for the comparison files if the&lt;br /&gt;# -c flag is specified.  Then cleanup the comparison files&lt;br /&gt;if [ -n "$cFLAG" ]; then&lt;br /&gt;  cksum $WORKDIR/$LP.$CUR_IO.a $WORKDIR/$LP.$CUR_IO.b&lt;br /&gt;  if [ $NCOPIES -eq 3 ]; then&lt;br /&gt;   cksum $WORKDIR/$LP.$CUR_IO.c&lt;br /&gt;  fi&lt;br /&gt;  if [ $SECOND_PASS -eq 1 ]; then&lt;br /&gt;   cksum $WORKDIR/$LP.$CUR_IO.s&lt;br /&gt;  fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Remove all the files related to this particular&lt;br /&gt;# io_size chunk.  Note that the .c and .s files&lt;br /&gt;# may not exist but because we're using rm -f&lt;br /&gt;# we don't care if the files don't exist.&lt;br /&gt;if [ -n "$zFLAG" -a "$CMP_B_RC" -ne "0" -a "$CMP_S_RC" -eq "0" ] ; then&lt;br /&gt; mv $WORKDIR/$LP.$CUR_IO.a $WORKDIR2/${LVNAME}_LP${LP}_${CUR_IO}.1&lt;br /&gt; mv $WORKDIR/$LP.$CUR_IO.b $WORKDIR2/${LVNAME}_LP${LP}_${CUR_IO}.2&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$zFLAG" -a "$CMP_C_RC" -ne "0" -a "$CMP_S_RC" -eq "0" ] ; then&lt;br /&gt; if [ -e "$WORKDIR/$LP.$CUR_IO.a" ]; then&lt;br /&gt;  mv $WORKDIR/$LP.$CUR_IO.a $WORKDIR2/${LVNAME}_LP${LP}_${CUR_IO}.1&lt;br /&gt; fi&lt;br /&gt; mv $WORKDIR/$LP.$CUR_IO.c $WORKDIR2/${LVNAME}_LP${LP}_${CUR_IO}.3&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;rm -f $WORKDIR/$LP.$CUR_IO.a $WORKDIR/$LP.$CUR_IO.b \&lt;br /&gt;  $WORKDIR/$LP.$CUR_IO.c $WORKDIR/$LP.$CUR_IO.s&lt;br /&gt;&lt;br /&gt;((CUR_IO = $CUR_IO + 1))&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# Tally the results and report them to stdout.&lt;br /&gt;((TALLY_IOS = $NLP_IOEQUAL + $NLP_IOFLIGHT + $NLP_IOMISMATCH))&lt;br /&gt;if [ $TALLY_IOS -ne $NIOS_PERPP ]; then&lt;br /&gt;echo "$LVNAME.LP$LP internal error $NLP_IOS / $NIOS_PERPP"&lt;br /&gt;elif [ $NLP_IOMISMATCH -gt 0 ]; then&lt;br /&gt;echo "$LVNAME.LP$LP mismatch"&lt;br /&gt;elif [ $NLP_IOFLIGHT -gt 0 ]; then&lt;br /&gt;echo "$LVNAME.LP$LP inflight"&lt;br /&gt;else&lt;br /&gt;echo "$LVNAME.LP$LP equal"&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# This is the function that is called on each logical&lt;br /&gt;# partition.  Query the number of lps and copies&lt;br /&gt;# for this lv.  Determine the range of lps to scan,&lt;br /&gt;# depending on what the user asked for (by default&lt;br /&gt;# we scan every lp in the lv).  Loop scanning the lps.&lt;br /&gt;# If the lv is non-mirrored or if this particular lv&lt;br /&gt;# has no lps within the range the user was asking about,&lt;br /&gt;# simply print a message and continue.&lt;br /&gt;process_lv()&lt;br /&gt;{&lt;br /&gt;LVNAME=$1&lt;br /&gt;&lt;br /&gt;if [ -z "$LVNAME" ]; then&lt;br /&gt;echo "mircmp: process_lv: no lvname specified"&lt;br /&gt;cleanup_exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# use lvname to get lvid, vgname, vgid.&lt;br /&gt;LVID=`getlvodm -l $LVNAME`&lt;br /&gt;test_return $? "getlvodm -l $LVNAME"&lt;br /&gt;&lt;br /&gt;      CHARS=`lquerylv -L $LVID -cC`&lt;br /&gt;test_return $? "lquerylv -L $LVID -cC"&lt;br /&gt;      if [ -n "$CHARS" ]; then&lt;br /&gt;              set $CHARS&lt;br /&gt;              LVSIZE_LPS=$1&lt;br /&gt;              NCOPIES=$2&lt;br /&gt;else&lt;br /&gt;echo "mircmp: process_lv: lquerylv failed"&lt;br /&gt;cleanup_exit&lt;br /&gt;      fi&lt;br /&gt;&lt;br /&gt;# Determine the range of lps to examine.  If the&lt;br /&gt;# user asked to scan lps 300-500 and this lv in&lt;br /&gt;# the vg only has 5 lps then we print the invalid&lt;br /&gt;# range error message and move on to the next lv.&lt;br /&gt;#&lt;br /&gt;# If -b was specified, make sure the -b value is&lt;br /&gt;# not past the end of this lv.  If -e or -n was&lt;br /&gt;# specified, make sure that we stop at the end of&lt;br /&gt;# the lv.  It is perfectly valid to specify -b&lt;br /&gt;# without -e or -n.  In that case we use the last&lt;br /&gt;# lp in the lv as the stopping point.  It is also&lt;br /&gt;# perfectly valid to specify -b without -e or -n.&lt;br /&gt;# In that case we use the first lp in the lv as&lt;br /&gt;# the starting point. &lt;br /&gt;PLV_INVALID_RANGE=0&lt;br /&gt;if [ -n "$bFLAG" ]; then&lt;br /&gt;if [ $bVAL -gt $LVSIZE_LPS ]; then&lt;br /&gt; PLV_INVALID_RANGE=1&lt;br /&gt;else&lt;br /&gt; CUR_LP=$bVAL&lt;br /&gt;fi&lt;br /&gt;else&lt;br /&gt;CUR_LP=1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$eFLAG" ]; then&lt;br /&gt;if [ $eVAL -gt $LVSIZE_LPS ]; then&lt;br /&gt; END_LP=$LVSIZE_LPS&lt;br /&gt;else&lt;br /&gt; END_LP=$eVAL&lt;br /&gt;fi&lt;br /&gt;elif [ -n "$nFLAG" ]; then&lt;br /&gt;((TMP_nVAL = $nVAL - 1))&lt;br /&gt;((nEND = $CUR_LP + $TMP_nVAL))&lt;br /&gt;if [ $nEND -gt $LVSIZE_LPS ]; then&lt;br /&gt; END_LP=$LVSIZE_LPS&lt;br /&gt;else&lt;br /&gt; END_LP=$nEND&lt;br /&gt;fi&lt;br /&gt;else&lt;br /&gt;END_LP=$LVSIZE_LPS&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Check for global and local stopfiles&lt;br /&gt;# so that we can fail gracefully if necessary.&lt;br /&gt;check_stopfile&lt;br /&gt;&lt;br /&gt;if [ $NCOPIES -lt 2 ]; then&lt;br /&gt;echo "===$LVNAME is not mirrored==="&lt;br /&gt;elif [ $PLV_INVALID_RANGE -eq 1 ]; then&lt;br /&gt;echo "===$LVNAME invalid lp range specified==="&lt;br /&gt;else&lt;br /&gt;echo "===starting $LVNAME==="&lt;br /&gt;while [ "$CUR_LP" -le "$END_LP" ]&lt;br /&gt;do&lt;br /&gt; process_lp $CUR_LP&lt;br /&gt;&lt;br /&gt; ((CUR_LP = $CUR_LP + 1))&lt;br /&gt;done&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;process_vg()&lt;br /&gt;{&lt;br /&gt;PVG_VGNAME=$1&lt;br /&gt;&lt;br /&gt;PVG_LVLIST=`lsvg -l $PVG_VGNAME | \&lt;br /&gt;awk '$1 != "LV" &amp;amp;&amp;amp; $1 !~ ":" {print $1}'`&lt;br /&gt;&lt;br /&gt;for PVG_LV in $PVG_LVLIST&lt;br /&gt;do&lt;br /&gt;process_lv $PVG_LV&lt;br /&gt;done&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# ------ main function -------&lt;br /&gt;&lt;br /&gt;# Setup signal handler.&lt;br /&gt;trap 'cleanup_signal' 0 1 2 15&lt;br /&gt;&lt;br /&gt;# Parse input and deterine if there is a syntax error.&lt;br /&gt;set -- `getopt b:ce:l:n:s:S:v:zw: "$@"`&lt;br /&gt;if [ $? != 0 ]; then&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# For more detail on flag specific information see&lt;br /&gt;# the Usage function.&lt;br /&gt;while  [ $1  !=  -- ]&lt;br /&gt;do&lt;br /&gt;case $1 in&lt;br /&gt;-b) bFLAG='-b';  bVAL=$2;  shift;  shift;;   # begin lp&lt;br /&gt;-c) cFLAG='-c';  shift;;       # show cksum&lt;br /&gt;-e) eFLAG='-e';  eVAL=$2;  shift;  shift;;   # end lp&lt;br /&gt;-l) lFLAG='-l';  lVAL=$2;  shift;  shift;;   # lvname&lt;br /&gt;-n) nFLAG='-n';  nVAL=$2;  shift;  shift;;   # numlps&lt;br /&gt;-s) sFLAG='-s';  sVAL=$2;  shift;  shift;;   # io_size_in_128KB&lt;br /&gt;-S) SFLAG='-S';  SVAL=$2;  shift;  shift;;   # io_size_in_MB&lt;br /&gt;-v) vFLAG='-v';  vVAL=$2;  shift;  shift;;   # vgname&lt;br /&gt;-z) zFLAG='-z';  shift;;                     # save readlvcopy output&lt;br /&gt;-w) wFLAG='-w';  wVAL=$2;  shift;  shift;;   # working dir&lt;br /&gt;esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;# Must have a target device.&lt;br /&gt;if [[ -z "$lFLAG" ]] &amp;amp;&amp;amp; [[ -z "$vFLAG" ]]; then&lt;br /&gt;echo "mircmp: no lvname or vgname specified"&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$lFLAG" ]; then&lt;br /&gt;# The -l lvname flag was specified.  Derive the&lt;br /&gt;# vgname and vgid so that we can determine the ppsize&lt;br /&gt;# of the vg.  This allows us to validate the -s or -S&lt;br /&gt;# value early on in the script if they are specified.&lt;br /&gt;LVNAME=$lVAL&lt;br /&gt;&lt;br /&gt;LVID=`getlvodm -l $LVNAME`&lt;br /&gt;test_return $? "getlvodm -l $LVNAME"&lt;br /&gt;&lt;br /&gt;VGNAME=`getlvodm -b $LVID`&lt;br /&gt;test_return $? "getlvodm -b $LVID"&lt;br /&gt;&lt;br /&gt;VGID=`getlvodm -v $VGNAME`&lt;br /&gt;test_return $? "getlvodm -v $VGNAME"&lt;br /&gt;&lt;br /&gt;PPSIZE_P2=`lqueryvg -g $VGID -s`&lt;br /&gt;test_return $? "lqueryvg -g $VGID -s"&lt;br /&gt;&lt;br /&gt;((PPSIZE = 1 &lt;&lt; $PPSIZE_P2))  ((NLTGS_PERPP = $PPSIZE / $LTGSIZE))  ((NMB_PERPP = $PPSIZE / $MBSIZE)) elif [ -n "$vFLAG" ]; then  # The -v vgname flag was specified.  Derive the   # vgid so that we can determine the ppsize of the   # vg.  This allows us to validate the -s or -S   # value early on in the script if they are specified.     VGNAME=$vVAL;   VGID=`getlvodm -v $VGNAME`  test_return $? "getlvodm -v $VGNAME"    PPSIZE_P2=`lqueryvg -g $VGID -s`  test_return $? "lqueryvg -g $VGID -s"   ((PPSIZE = 1 &lt;&lt; $PPSIZE_P2))  ((NLTGS_PERPP = $PPSIZE / $LTGSIZE))  ((NMB_PERPP = $PPSIZE / $MBSIZE)) fi  # Sanity check -s and -S values, so that we  # can determine the io size.   if [[ -n "$sFLAG" ]] &amp;amp;&amp;amp; [[ -n "$SFLAG" ]]; then  echo "mircmp: The -s and -S flags are mutually exclusive."  Usage fi  if [ -n "$sFLAG" ]; then  if [ $sVAL -eq 0 ]; then   echo "mircmp: -s value must be &gt; 0"&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# See the comments before NIOS_PERPP_LEFTOVER&lt;br /&gt;# for an explanation of why we have this&lt;br /&gt;# "divisible by 2" restriction.&lt;br /&gt;if [ $sVAL -ne 1 ]; then&lt;br /&gt;((TMP_sVAL = $sVAL % 2))&lt;br /&gt;if [ $TMP_sVAL -ne 0 ]; then&lt;br /&gt; echo "mircmp: -s value must be evenly divisible by 2"&lt;br /&gt; Usage&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# If the io_size &gt; pp_size then io_size = pp_size.&lt;br /&gt;if [ $sVAL -gt $NLTGS_PERPP ]; then&lt;br /&gt;IO_SIZE=$NLTGS_PERPP&lt;br /&gt;else&lt;br /&gt;IO_SIZE=$sVAL&lt;br /&gt;fi&lt;br /&gt;elif [ -n "$SFLAG" ]; then&lt;br /&gt;if [ $SVAL -eq 0 ]; then&lt;br /&gt;echo "mircmp: -S value must be &gt; 0"&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Convert from MB to 128KB units.&lt;br /&gt;((IO_SIZE = $SVAL * 8))&lt;br /&gt;else&lt;br /&gt;# If no io size is specified, io_size = pp_size.&lt;br /&gt;IO_SIZE=$NLTGS_PERPP&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$wFLAG" ]; then&lt;br /&gt;if [ -d "$wVAL" ]; then&lt;br /&gt;WORKDIR=$wVAL/mircmp$$&lt;br /&gt;WORKDIR2=$wVAL/mircmp&lt;br /&gt;else&lt;br /&gt;echo "mircmp: $wVAL is not a directory! "&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# The ppsize is always a multiple of 128K.  Valid&lt;br /&gt;# ppsizes are 1MB to 128GB incrementing by power&lt;br /&gt;# of 2.&lt;br /&gt;#&lt;br /&gt;# We ensure that the io_size is evenly divisible&lt;br /&gt;# by 2 so that we don't have to worry about any&lt;br /&gt;# case where there are leftovers on the last&lt;br /&gt;# io for the pp.  Here we have a sanity check to&lt;br /&gt;# verify that we don't have any leftovers (ie&lt;br /&gt;# all io's will be the same size).&lt;br /&gt;#&lt;br /&gt;# An example of leftovers would be if we allowed&lt;br /&gt;# a -s value of 3.  Lets assume the ppsize is 1MB.&lt;br /&gt;# Each io would be 384KB until the final io of the&lt;br /&gt;# pp which would be 128KB.  For the sake of keeping&lt;br /&gt;# things simple, we don't allow ourselves to get into&lt;br /&gt;# that state.&lt;br /&gt;((NIOS_PERPP = $NLTGS_PERPP / $IO_SIZE))&lt;br /&gt;((NIOS_PERPP_LEFTOVER = $NLTGS_PERPP % $IO_SIZE))&lt;br /&gt;&lt;br /&gt;if [ $NIOS_PERPP_LEFTOVER -ne 0 ]; then&lt;br /&gt;echo "mircmp: non-zero nios_perpp_leftover=$NIOS_PERPP_LEFTOVER"&lt;br /&gt;cleanup_exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [[ -n "$eFLAG" ]] &amp;amp;&amp;amp; [[ -n "$nFLAG" ]]; then&lt;br /&gt;echo "mircmp: The -e and -n flags are mutually exclusive."&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$bFLAG" ]; then&lt;br /&gt;if [ $bVAL -eq 0 ]; then&lt;br /&gt;echo "mircmp: -b value must be &gt; 0."&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$eFLAG" ]; then&lt;br /&gt;if [ $eVAL -eq 0 ]; then&lt;br /&gt;echo "mircmp: -e value must be &gt; 0."&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [[ -n "$bFLAG" ]] &amp;amp;&amp;amp; [[ -n "$eFLAG" ]]; then&lt;br /&gt;if [ $bVAL -gt $eVAL ]; then&lt;br /&gt;echo "mircmp: -b value &gt; -e value."&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -n "$nFLAG" ]; then&lt;br /&gt;if [ $nVAL -eq 0 ]; then&lt;br /&gt;echo "mircmp: -n value must be &gt; 0."&lt;br /&gt;Usage&lt;br /&gt;fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# setup work directory&lt;br /&gt;mkdir $WORKDIR&lt;br /&gt;&lt;br /&gt;if [ -n "$zFLAG" -a ! -e "$WORKDIR2" ]; then&lt;br /&gt;mkdir $WORKDIR2&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# pass control to a vg or lv specific function.&lt;br /&gt;if [ -n "$lFLAG" ]; then&lt;br /&gt;process_lv $lVAL&lt;br /&gt;elif [ -n "$vFLAG" ]; then&lt;br /&gt;process_vg $vVAL&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Reset signals so that we don't go into&lt;br /&gt;# the cleanup_signal function when we exit.&lt;br /&gt;trap '' 0 1 2 15&lt;br /&gt;&lt;br /&gt;# cleanup work directory&lt;br /&gt;rm -rf $WORKDIR&lt;br /&gt;exit&lt;br /&gt;&lt;/pid&gt;&lt;/pid&gt;&lt;/pid&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-4865112288723200786?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/4865112288723200786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=4865112288723200786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4865112288723200786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4865112288723200786'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/04/binksh-constants-workdirtmpmircmp.html' title='mircmp tool'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-543467774935294119</id><published>2009-02-11T21:40:00.003+01:00</published><updated>2009-02-11T21:44:36.445+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VTL'/><category scheme='http://www.blogger.com/atom/ns#' term='password'/><category scheme='http://www.blogger.com/atom/ns#' term='DS4200'/><category scheme='http://www.blogger.com/atom/ns#' term='TS7520'/><title type='text'>TS7520/DS4200 default password</title><content type='html'>warning2use&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-543467774935294119?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/543467774935294119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=543467774935294119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/543467774935294119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/543467774935294119'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/02/ts7520ds4200-default-password.html' title='TS7520/DS4200 default password'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-1523655423567856221</id><published>2009-01-24T17:50:00.005+01:00</published><updated>2009-02-11T21:46:31.141+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology level'/><category scheme='http://www.blogger.com/atom/ns#' term='oslevel'/><title type='text'>ifor_ls.html.en_US.base.cli does not get updated</title><content type='html'>&lt;span style="font-family:courier new;"&gt;ifor_ls.html.en_US.base.cli&lt;/span&gt; remains at 5.3.7.0 when upgrading from TL7 to TL8. Check out &lt;a href="http://www-01.ibm.com/support/entdocview.wss?rs=1207&amp;amp;context=SG11P&amp;amp;dc=DB550&amp;amp;dc=DB510&amp;amp;q1=ifor_ls.html.en_US.base.cli&amp;amp;uid=isg1IZ42296&amp;amp;loc=en_US&amp;amp;cs=UTF-8&amp;amp;lang=all&amp;amp;NotUpdateReferer="&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-1523655423567856221?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/1523655423567856221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=1523655423567856221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/1523655423567856221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/1523655423567856221'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2009/01/iforlshtmlenusbasecli-does-not-get.html' title='ifor_ls.html.en_US.base.cli does not get updated'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-1247693105159909266</id><published>2008-10-20T13:41:00.005+02:00</published><updated>2010-10-01T11:17:13.970+02:00</updated><title type='text'>Accessing the ASMI</title><content type='html'>Detailed instructions available &lt;a href="http://publib.boulder.ibm.com/infocenter/systems/topic/iphby/browser.htm"&gt;at this page&lt;/a&gt;.&lt;table border="1" cellpadding="4" cellspacing="0" frame="border"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Service processor&lt;/td&gt; &lt;td&gt;Server connector&lt;/td&gt;&lt;td&gt;Subnet mask&lt;/td&gt;&lt;td&gt;IP address&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Service processor A&lt;/td&gt;&lt;td&gt;HMC1&lt;br/&gt;HMC2&lt;/td&gt;&lt;td&gt;255.255.255.0&lt;/td&gt; &lt;td&gt;192.168.2.147&lt;br/&gt;192.168.3.147&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Service processor B&lt;br/&gt;(if installed)&lt;/td&gt;&lt;td&gt;HMC1&lt;br/&gt;HMC2&lt;/td&gt;&lt;td&gt;255.255.255.0&lt;/td&gt;&lt;td&gt;192.168.2.146&lt;br/&gt;192.168.3.146&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-1247693105159909266?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/1247693105159909266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=1247693105159909266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/1247693105159909266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/1247693105159909266'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/10/accessing-asmi.html' title='Accessing the ASMI'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-8590329236580751626</id><published>2008-10-08T20:19:00.006+02:00</published><updated>2009-03-24T20:47:20.587+01:00</updated><title type='text'>Recovering a lost service processor IP address</title><content type='html'>While upgrading/reinstalling an HMC you may end up in a situation where some or all of your operating p5/p6 systems (service processors) lose contact with the HMC. The systems are up and running fine, but your HMC has no idea where to look for them because you failed to retain the IP address range used by the service processors. Hmmm.&lt;br /&gt;&lt;br /&gt;Fortunately there is a way to recover the IP addresses of the individual service processors...through the operator panel. If you are not familiar with the operator panel, check &lt;a href="http://publib.boulder.ibm.com/infocenter/systems/scope/hw/topic/iphb5_p5/iphb5book.pdf"&gt;this PDF&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, here it goes.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Choose menu 02.&lt;/li&gt;&lt;li&gt;Change the N to M, that is normal to manual. This will enable menus that are normally invisible .&lt;/li&gt;&lt;li&gt;Scroll down to menu 30.&lt;/li&gt;&lt;li&gt;Enter and you'll see 30**.&lt;/li&gt;&lt;li&gt;Enter and you'll have two submenus 3000 and 3001 (in a single service processor configuration). Submenu 3000 will tell you the actual IP address of the HMC1 interface, 3001 will tell you the same of HMC2.&lt;/li&gt;&lt;li&gt;When you have noted them down, go back to menu 02 and reset the M to N. Failing to reset this flag WILL result in your server booting into diag next time it is restarted.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-8590329236580751626?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/8590329236580751626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=8590329236580751626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8590329236580751626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8590329236580751626'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/10/recovering-lost-service-processor-ip.html' title='Recovering a lost service processor IP address'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-7880394891221643488</id><published>2008-10-08T19:48:00.004+02:00</published><updated>2009-07-31T10:35:02.572+02:00</updated><title type='text'>HMC console issues</title><content type='html'>When you attach an HMC to an originally HMC-less (fullpar) p5/p6 server you may experience issues with the HMC's terminal emulation (regardless of HMC version and system firmware version). When the server and the HMC are connected, everything looks good until you try to open a serial connection when you may see one of the following: (1) the terminal opens and you get an error about the serial port not being available; (2) the terminal opens and you get an error about the serial port being occupied by another connection; (3) the terminal opens, you get a decent login prompt but nothing you type reaches the server, the connection is read-only.&lt;br /&gt;&lt;br /&gt;The phenomenon is caused by the MDC (Machine Default Configuration) flag. You can check this flag by opening your server's properties, if set to true, this also applies to you.&lt;br /&gt;&lt;br /&gt;Here's how you can rectify the situation.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The removal of the MDC flag is implicit. You can do it by creating a new dummy LPAR and immediately removing it. Of course, if you need it, you can keep it.  The creation itself toggles the flag. Or you can set Service Authority from the default partition to &lt;span style="font-style: italic;"&gt;unassigned&lt;/span&gt;. That'll do it too.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Stop LPAR #1, the original one.&lt;/li&gt;&lt;li&gt;Activate LPAR #1 to reload the MDC-less partition profile.&lt;/li&gt;&lt;li&gt;Hopefully you have some TCP/IP connection to LPAR #1 because at this point you still lack a working serial connection. Log in and remove the exisiting vty and vsa devices. &lt;span style="font-weight: bold;"&gt;rmdev -dl vsa0 -R; remdev -dl vsa1 -R; rmdev -dl vsa2 -R&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Run &lt;span style="font-weight: bold;"&gt;cfgmgr&lt;/span&gt; to reconfigure the serial devices. You should have a new vty0 and a vsa0.&lt;/li&gt;&lt;li&gt;You can check your console setting by issuing &lt;span style="font-weight: bold;"&gt;lscons -a&lt;/span&gt;. You will see NULL as your console device, which is causing all your problems. Now type &lt;span style="font-weight: bold;"&gt;chcons -a login=enable -a login_logname='/var/adm/ras/conslog' -a console_logsize='32768' -a console_logverb='1' /dev/vty0&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Reboot LPAR #1 (no need to reactivate it since the profile has not been changed).&lt;/li&gt;&lt;/ol&gt;And you're done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-7880394891221643488?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/7880394891221643488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=7880394891221643488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7880394891221643488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7880394891221643488'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/10/hmc-console-issues.html' title='HMC console issues'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-4781175330766537065</id><published>2008-07-08T18:47:00.002+02:00</published><updated>2008-07-08T18:53:10.292+02:00</updated><title type='text'>0511-171 Reached end of media</title><content type='html'>An error exists in AIX 5.3 TL7 that causes tar to produce a similar message:&lt;br /&gt;&lt;br /&gt;tar: There are 20 blocks on -.&lt;br /&gt;tar: 0511-171 Reached end of media.&lt;br /&gt;&lt;br /&gt;To overcome this error, install TL8SP2.&lt;br /&gt;&lt;br /&gt;The relevant APAR description is &lt;a href="http://www-1.ibm.com/support/docview.wss?uid=isg1IZ13661"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-4781175330766537065?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/4781175330766537065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=4781175330766537065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4781175330766537065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4781175330766537065'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/07/0511-171-reached-end-of-media.html' title='0511-171 Reached end of media'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-3571075138632987001</id><published>2008-06-17T15:37:00.002+02:00</published><updated>2008-06-17T15:48:25.195+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='disk storage'/><category scheme='http://www.blogger.com/atom/ns#' term='DS4000'/><category scheme='http://www.blogger.com/atom/ns#' term='reserved'/><category scheme='http://www.blogger.com/atom/ns#' term='LUN'/><title type='text'>"Release through application and retry"</title><content type='html'>When you encounter a locked DS4000 LUN, that is you want to delete it using SM or SMcli and you get refused because it is reserved (or so the storage says) by a host OS that usually does not exist any more or has terminated the FC/SCSI connection abnormally, here's what you can do.&lt;br /&gt;&lt;br /&gt;Use SM LUN properties to get the SSID. Log in to each of the controllers using either rlogin or serial connection and check the LUN in question (LUN 0 in this example):&lt;br /&gt;&lt;br /&gt;-&gt; hlmTestLunShow 0x0&lt;br /&gt;LunNumber:0x0 LunInfo :0x15f35d4 State:0x0 QuiescenceFlag:0x0&lt;br /&gt;Owner:0x1 IsReady :0x1&lt;br /&gt;reserveId:0xe resv3rdId:0xffff&lt;br /&gt;value = 131 = 0x83&lt;br /&gt;&lt;br /&gt;If reserveId (0xe in this example) is not 0xffff, the LUN is reserved. To release the lun, type:&lt;br /&gt;&lt;br /&gt;-&gt; hlmTestRelease 0xe,0x0&lt;br /&gt;&lt;br /&gt;You should be okay now. Now check the other controller as well.&lt;br /&gt;&lt;br /&gt;It seems to be a controller firmware problem. Mine is at 06.12.16.00. Newer versions may differ.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/forums/thread.jspa?threadID=156909"&gt;Link&lt;/a&gt; to forum article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-3571075138632987001?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/3571075138632987001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=3571075138632987001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/3571075138632987001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/3571075138632987001'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/06/release-through-application-and-retry.html' title='&quot;Release through application and retry&quot;'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-1213284137488737539</id><published>2008-04-24T14:45:00.003+02:00</published><updated>2008-04-24T14:52:57.535+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCSI'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual devices'/><category scheme='http://www.blogger.com/atom/ns#' term='concurrent access'/><title type='text'>About virtual SCSI devices</title><content type='html'>&lt;div style="text-align: justify;"&gt;Concurrent access to virtualized SCSI disks is possible starting VIOS 1.5. Assign the disks (or, rather, their adapter) to the VIOS partition, create the virtual SCSI server adapters (vhost&lt;span style="font-style: italic;"&gt;0&lt;/span&gt;...vhost&lt;span style="font-style: italic;"&gt;n&lt;/span&gt;), and map the disks to the vhosts like this (as padmin):&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;$ mkvdev -dev hdisk2 -vadapter vhost0 -dev conc1dev&lt;br /&gt;$ mkvdev -f -dev hdisk2 -vadapter vhost1 -dev conc2dev&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;Concurrent access to logical volume backed virtual SCSI disks is &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; yet supported at this level of VIOS.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-1213284137488737539?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/1213284137488737539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=1213284137488737539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/1213284137488737539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/1213284137488737539'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/04/about-virtual-scsi-devices.html' title='About virtual SCSI devices'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-872045114565208984</id><published>2008-04-24T14:38:00.000+02:00</published><updated>2008-04-24T14:39:00.874+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSL'/><title type='text'>The latest OpenSSL for AIX...</title><content type='html'>...can be found &lt;a href="https://www14.software.ibm.com/webapp/iwm/web/reg/pick.do?source=aixbp"&gt;here&lt;/a&gt;. IBM ID required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-872045114565208984?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/872045114565208984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=872045114565208984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/872045114565208984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/872045114565208984'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/04/latest-openssl-for-aix.html' title='The latest OpenSSL for AIX...'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-7336366523048576893</id><published>2008-04-22T20:50:00.004+02:00</published><updated>2008-04-24T20:55:23.778+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serial console'/><category scheme='http://www.blogger.com/atom/ns#' term='tty'/><title type='text'>No console after fresh install</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;You have a fresh install of AIX , you're finished with the Installation Assistant, try to log in and...there is no login prompt? Here's why.&lt;br /&gt;&lt;br /&gt;The root case problem here is with the cable/terminal. The AIX system is expecting CD (Carrier Detect) to be true before the port will open. This is the expected and behavior. The typical cable would connect DTR (Data Terminal Ready) from the terminal to CD of the AIX serial port. When the terminal is powered on, DTR on the terminal is asserted thus presenting CD to the AIX system. If the terminal is powered off, the terminals DTR drops, thus dropping CD at the AIX system. With the loss of CD, a login session would be killed and a new login prompt would be presented when the terminal is powered back on.&lt;br /&gt;&lt;br /&gt;AIX (and POSIX UNIX systems) support the CLOCAL option. This option effectively ignores the lack of CD. AIX offers two states at which time CLOCAL is applied. The first is: STTY attributes for RUN time and the second is: STTY attributes for LOGIN If you enable CLOCAL only for LOGIN, the typical situation will be that you will be presented the login prompt, you enter a login and before the prompt appears, you are again presented the login prompt. What just happened is that CLOCAL on the LOGIN attribute allows the login prompt to be presented and we transition into run time mode. There is no CD or CLOCAL, so the process is killed and a new login prompt is presented.&lt;br /&gt;&lt;br /&gt;Setting CLOCAL for both LOGIN as well as RUN time will resolve this, with one huge potential problem and security risk. If the terminal is powered cycled there is no way for the AIX system to detect this, and when theterminal is powered back on, the previous process will still be active.The only true solution is to provide the proper cable and RS-232 signaling.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-7336366523048576893?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/7336366523048576893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=7336366523048576893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7336366523048576893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7336366523048576893'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/04/no-console-after-fresh-install.html' title='No console after fresh install'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-5095206367457584577</id><published>2008-04-21T17:54:00.028+02:00</published><updated>2009-02-24T10:13:57.587+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lsmap'/><category scheme='http://www.blogger.com/atom/ns#' term='mkvdev'/><category scheme='http://www.blogger.com/atom/ns#' term='loadopt'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual devices'/><category scheme='http://www.blogger.com/atom/ns#' term='unloadopt'/><title type='text'>How to create virtual devices, a quick summary of commands</title><content type='html'>&lt;span style="font-size:130%;"&gt;Virtual SCSI disks&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;Make sure the disk you intend to virtualize either in whole or divided into LV's are available and ready to be used on the VIOS.&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Define a sufficient number of virtual SCSI server adapters for the VIOS using the HMC. Make sure they are available on the VIOS.&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;$ cfgdev&lt;/pre&gt;or&lt;pre&gt;$ shutdown -reboot&lt;/pre&gt;Then check your devices with&lt;pre&gt;$ lsdev -virtual&lt;/pre&gt;You should see vhost&lt;span style="font-style: italic;"&gt;0&lt;/span&gt;...vhost&lt;span style="font-style: italic;"&gt;n&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;If you want to slice up your disks, here's the time. Create a VG with&lt;/div&gt;&lt;pre&gt;$ mkvg -f -vg clientrootvg hdisk2&lt;/pre&gt;Slice it up with&lt;pre&gt;$ mklv -lv clientrootlv clientrootvg 10G&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;If you want to pass on the entire disk to your client OS, skip this step, you already have the device you need, it's &lt;span style="font-style: italic;"&gt;hdisk2&lt;/span&gt; in this example.&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Check you virtual SCSI server adapters:&lt;pre&gt;$ lsdev -vpd | grep vhost&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Map the virtualized devices to your server adapters:&lt;pre&gt;$ mkvdev -vdev clientrootlv -vadapter vhost0&lt;br /&gt;-dev clientdev&lt;/pre&gt; or&lt;pre&gt;$ mkvdev -vdev hdisk2 -vadapter vhost0 -dev clientdev&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Check what you've done:&lt;pre&gt;$ lsdev -virtual&lt;br /&gt;$ lsmap -all&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Virtual SCSI optical drive&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Minimum required code level for VIOS is 1.5 (1.5.1.1 is even better).&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Check if you already have any storage pools or repositories:&lt;pre&gt;$ lssp&lt;br /&gt;$ lsrep&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; If you don't have a storage pool, create one:&lt;pre&gt;$ mksp sp hdisk3&lt;/pre&gt;to create a logical volume backed storage pool, or&lt;pre&gt;$ mksp -fb sp -sp rootvg -size 30G&lt;/pre&gt;to create a mirrored file backed storage pool inside a logical volume backed storage pool.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Now create a repository:&lt;pre&gt;$ mkrep -sp sp -size 15G&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you have an ISO image, upload it to the padmin home and create a virtual optical disk using&lt;pre&gt;$ mkvopt -name aix5307&lt;br /&gt;-file /home/padmin/aix5307.iso -ro&lt;/pre&gt;or if you have the media loaded and ready in cd0, issue&lt;pre&gt;$ mkvopt -name aix5304 -dev cd0 -ro&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a virtual optical drive and map it your client partition using&lt;pre&gt;$ mkvdev -fbo -vadapter vhost0&lt;br /&gt;-dev clientdvd&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;To load a media into the virtual drive, use&lt;pre&gt;$ loadopt -vtd clientdvd -disk aix5307&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;To unload a virtual drive, use&lt;pre&gt;$ unloadopt -vtd clientdvd&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Virtual ethernet to access external networks&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;First you need to have a physical ethernet adapter connected to the external network you want to access, say, it's &lt;span style="font-style: italic;"&gt;ent0&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;You have to define a virtual ethernet adapter for the VIOS using the HMC, don't forget to check the &lt;span style="font-style: italic;"&gt;access external network&lt;/span&gt; checkbox. Make sure the virtual adapter is available on the VIOS&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;$ lsdev -virtual&lt;/pre&gt;Check for &lt;span style="font-style: italic;"&gt;ent&lt;/span&gt; devices with &lt;span style="font-style: italic;"&gt;l-lan&lt;/span&gt; in their description, take &lt;span style="font-style: italic;"&gt;ent1 &lt;/span&gt;for this example).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Now you have to define a Shared Ethernet Adapter or SEA to connect the physical network and the virtual ethernet adapter that will bridge packets to the external network.&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;$ mkvdev -sea ent0 -vadapter ent1 -default ent1&lt;br /&gt;-defaultid 1&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Check what you've done:&lt;pre&gt;$ lsmap -all -net&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;For further details, refer to &lt;a href="http://www.redbooks.ibm.com/redpieces/pdfs/sg247940.pdf"&gt;this Redpiece&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-5095206367457584577?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/5095206367457584577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=5095206367457584577' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5095206367457584577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5095206367457584577'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/04/how-to-create-virtual-devices-quick.html' title='How to create virtual devices, a quick summary of commands'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-911401461641508221</id><published>2008-02-27T11:40:00.003+01:00</published><updated>2008-04-22T19:37:57.707+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fcparray'/><category scheme='http://www.blogger.com/atom/ns#' term='MPIO'/><title type='text'>fcparray to mpio</title><content type='html'>Ever wondered how you could switch your DS4K storage server from RDAC to native AIX MPIO?&lt;br /&gt;&lt;br /&gt;Here's how: &lt;a href="http://www-03.ibm.com/systems/storage/disk/ds4000/pdf/aix.pdf"&gt;&lt;br /&gt;http://www-03.ibm.com/systems/storage/disk/ds4000/pdf/aix.pdf&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-911401461641508221?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/911401461641508221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=911401461641508221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/911401461641508221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/911401461641508221'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2008/02/fcparray-to-mpio.html' title='fcparray to mpio'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-6468235960192492256</id><published>2007-10-25T11:17:00.005+02:00</published><updated>2008-04-21T21:57:28.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebSM'/><category scheme='http://www.blogger.com/atom/ns#' term='HMC'/><category scheme='http://www.blogger.com/atom/ns#' term='remote client'/><category scheme='http://www.blogger.com/atom/ns#' term='language'/><title type='text'>HMC tricks, part two</title><content type='html'>&lt;div style="text-align: justify;"&gt;To change the default language of the remote wsm client to English instead of your local language here's a hint.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Remote wsm clients are usually started from&lt;br /&gt;c:\program files\websm\bin\wsm.bat. In that file modify the line that starts the wsm Java process by adding this "-Duser.language=en". Mine now looks like this:&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;java -Duser.language=en -Dremote.auiml="true"&lt;br /&gt;-Xms%W_HEAP_MIN_SIZE% -Xmine%W_HEAP_INC_SIZE%&lt;br /&gt;-Xmx%W_HEAP_MAX_SIZE% -ss128k&lt;br /&gt;-DIDebug.enabled=%DEBUGENABLE%&lt;br /&gt;-DWEBSM_NO_REMOTE_CLASS_LOADING=%WNRCL% &lt;br /&gt;-DWEBSM_NO_SECURITY_MANAGER=%WNSM% %WSMSSL%&lt;br /&gt;-Djava.security.policy=..\config\websm.policy&lt;br /&gt;-Dawt.appletWarning="Remote class Window" &lt;br /&gt;-DWEBSM_ALL_PERMISSIONS_FOR_SECURE=true&lt;br /&gt;-DWSMDIR="%WSMDIR%"&lt;br /&gt;-Dremote.auiml="true"&lt;br /&gt;%JAVA_ARG_ACCESSIBLE% %JAVA_ARG_SVK%&lt;br /&gt;com.ibm.websm.console.WConsole&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-6468235960192492256?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/6468235960192492256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=6468235960192492256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6468235960192492256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6468235960192492256'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/10/hmc-tricks-part-two.html' title='HMC tricks, part two'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-4754598740097979618</id><published>2007-08-02T11:41:00.000+02:00</published><updated>2007-08-03T10:41:02.478+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LPAR'/><category scheme='http://www.blogger.com/atom/ns#' term='firmware'/><category scheme='http://www.blogger.com/atom/ns#' term='20EE000B'/><category scheme='http://www.blogger.com/atom/ns#' term='7038-6M2'/><title type='text'>20EE000B on a partitioned 6M2</title><content type='html'>&lt;div style="text-align: justify;"&gt;After upgrading a 6M2 partition to AIX 5.3 TL6 we found that the LPAR stops booting with firmware error code 20EE000B. We called IBM and they suggested that we upgrade the system firmware. The original version was 3K061030, and we upgraded to 3K070425. The upgrade solved the issue.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-4754598740097979618?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/4754598740097979618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=4754598740097979618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4754598740097979618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/4754598740097979618'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/08/20ee000b-on-partitioned-6m2.html' title='20EE000B on a partitioned 6M2'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-3837361185867601664</id><published>2007-08-02T10:58:00.001+02:00</published><updated>2008-06-05T14:24:14.551+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LPAR'/><category scheme='http://www.blogger.com/atom/ns#' term='HMC'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual terminal'/><title type='text'>HMC tricks, part one</title><content type='html'>&lt;div style="text-align: justify;"&gt;I am currently working on a system with Release 3 Version 2.6 HMC. I have tried to download the Java-based WebSM client connecting to URL http://hmc/remote_client.html but I have been unsuccesful. For now, the reason is not known and I have had no time to investigate so I have to resort to other methods. Time for command line!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;To list all LPARS and the managed system:&lt;br /&gt;&lt;pre&gt;[hscroot@hmc hscroot]$ lslpars&lt;br /&gt;=========================================================================&lt;br /&gt;Managed System/LPAR   State           Operator Panel    Activated Profile&lt;br /&gt;=========================================================================&lt;br /&gt;651234A               Ready           LPAR...&lt;br /&gt; FullSystemPartit... Not Available&lt;br /&gt; oradev2             Running                           Normal&lt;br /&gt; rstorat1            Running                           Normal&lt;br /&gt; rstwast1            Running                           Normal&lt;br /&gt; iasdev1             Running                           Normal&lt;br /&gt;-------------------------------------------------------------------------&lt;/pre&gt;&lt;br /&gt;To start a partition:&lt;br /&gt;&lt;pre&gt;[hscroot@hmc hscroot]$ start_partition -p "iasdev1" -f "Normal" \&lt;br /&gt;-m "651234A"&lt;br /&gt;Starting partition...&lt;br /&gt;Partition successfully activated&lt;/pre&gt;&lt;br /&gt;To open a virtual term to an LPAR (vtmenu):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[hscroot@hmc hscroot]$ vtmenu&lt;br /&gt;Retrieving name of managed system(s) . . . 651234A&lt;br /&gt;----------------------------------------------------------&lt;br /&gt; Partitions On Managed System:  651234A&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;  1)    oradev2                              Running:&lt;br /&gt;  2)    rstorat1                             Running:&lt;br /&gt;  3)    rstwast1                             Running:&lt;br /&gt;  4)    iasdev1                              Running:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enter Number of Running Partition (q to quit): 4&lt;br /&gt;&lt;br /&gt;   Opening Virtual Terminal On Partition iasdev1 . . .&lt;br /&gt;&lt;br /&gt;NVTS hmc.domain.hu 9734 001*7038-6M2*651234A 1 001*7038-6M2*651234A _VT_&lt;br /&gt;&lt;br /&gt;AIX Version 5&lt;br /&gt;(C) Copyrights by IBM and by others 1982, 2007.&lt;br /&gt;Console login:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To open a virtual terminal to an LPAR (mkvterm):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[hscroot@hmc hscroot]$ mkvterm -m "651234A" -p "iasdev1"&lt;br /&gt;NVTS hmc.domain.hu 9734 001*7038-6M2*651234A 1 001*7038-6M2*651234A _VT_&lt;br /&gt;&lt;br /&gt;AIX Version 5&lt;br /&gt;(C) Copyrights by IBM and by others 1982, 2007.&lt;br /&gt;Console login:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note: Other HMC releases and versions may differ, do your reading before trying any of these commands.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-3837361185867601664?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/3837361185867601664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=3837361185867601664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/3837361185867601664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/3837361185867601664'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/08/hmc-tricks.html' title='HMC tricks, part one'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-8749317933458798670</id><published>2007-07-19T23:35:00.000+02:00</published><updated>2007-08-02T11:27:26.272+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='synchronization'/><category scheme='http://www.blogger.com/atom/ns#' term='HACMP 5.2'/><category scheme='http://www.blogger.com/atom/ns#' term='disk reservation'/><title type='text'>False report on reserved disks</title><content type='html'>&lt;div style="text-align: justify;"&gt;HACMP 5.2 sometimes reports a false disk reservation on concurrent disks while synchronizing the cluster. It looks like this:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;WARNING: serverp1: Read on disk /dev/hdisk2 failed.&lt;br /&gt;Check cables and connections.&lt;br /&gt;A reserve may be set on that disk by another node.&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Examining the disks we have found absolutely no reason why they would have a reserve on them, so, for now, it's a bug in HACMP (latest fixes as of today).  It must be pointed out, however, that this is only a warning, not an error, and it has no visible effect on cluster function. IBM is called in to investigate. Updates later.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;--- UPDATE/August 1st, 2007&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;An error exists in the cluster.es.server.diag.5.2.0.8 fileset.  The error causes the verification to print these warnings. APAR IZ01478 has been opened to correct the issue.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-8749317933458798670?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/8749317933458798670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=8749317933458798670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8749317933458798670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8749317933458798670'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/07/false-report-on-reserved-disks.html' title='False report on reserved disks'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-7365146879932305450</id><published>2007-07-16T19:13:00.000+02:00</published><updated>2007-07-21T10:19:04.877+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cllsvg'/><category scheme='http://www.blogger.com/atom/ns#' term='smit'/><category scheme='http://www.blogger.com/atom/ns#' term='HACMP 5.2'/><category scheme='http://www.blogger.com/atom/ns#' term='concurrent VG'/><title type='text'>Missing concurrent disks</title><content type='html'>&lt;div style="text-align: justify;"&gt;Ever wondered why you couldn't add a new disk to your enhanced concurrent VG using C-SPOC in HACMP 5.2? Are you getting a "1800-051 There are no items of this type" message from the smit selector menu?&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_VrhHaxanXOw/Rpun_ORRBmI/AAAAAAAAAAc/FEp27VT1OeI/s1600-h/error.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_VrhHaxanXOw/Rpun_ORRBmI/AAAAAAAAAAc/FEp27VT1OeI/s400/error.jpg" alt="" id="BLOGGER_PHOTO_ID_5087844908649219682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Well, here's the explanation. C-SPOC uses &lt;span style="font-style: italic;"&gt;/usr/es/sbin/cluster/utilities/cllsvg -c -v&lt;/span&gt; to list the exisiting concurrent resource groups/volume groups in this SMIT selector and the &lt;span style="font-style: italic;"&gt;cllsvg&lt;/span&gt; in &lt;span style="font-style: italic;"&gt;cluster.es.cspoc.utils.5.2.0.8&lt;/span&gt; has a bug. Because of the bug, &lt;span style="font-style: italic;"&gt;cllsvg&lt;/span&gt; returns an empty string when you try to list any enhanced concurrent VGs. Here's the bug:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;#!/bin/ksh&lt;br /&gt;# IBM_PROLOG_BEGIN_TAG&lt;br /&gt;# This is an automatically generated prolog.&lt;br /&gt;#&lt;br /&gt;# 51haes_r520 src/43haes/lib/libclres/cllsvg.sh 1.5&lt;br /&gt;&lt;div style="direction: ltr;"&gt;#&lt;br /&gt;# Licensed Materials - Property of IBM&lt;br /&gt;#&lt;br /&gt;# (C) COPYRIGHT International Business Machines Corp. 1990,2006&lt;br /&gt;# All Rights Reserved&lt;br /&gt;#&lt;br /&gt;# US Government Users Restricted Rights - Use, duplication or&lt;br /&gt;# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.&lt;br /&gt;#&lt;br /&gt;# IBM_PROLOG_END_TAG&lt;br /&gt;# @(#)82  1.5  src/43haes/lib/libclres/cllsvg&lt;wbr&gt;.sh, hacmp.libcluster,&lt;br /&gt;# 51haes_r520, 0705A_hacmp520 5/16/06 14:27:41&lt;br /&gt;&lt;wbr&gt;##############################&lt;wbr&gt;###################&lt;br /&gt;#  COMPONENT_NAME: UTILITIES&lt;br /&gt;#&lt;br /&gt;#  FUNCTIONS: usage&lt;br /&gt;#&lt;br /&gt;#  Name:  cllsvg&lt;br /&gt;#&lt;br /&gt;#  This program list VG's in the HA configuration&lt;br /&gt;#&lt;br /&gt;#  Arguments: -v  display only active VGs&lt;br /&gt;#             -n  display the nodes that share the VG&lt;br /&gt;#             -s  display shared VGs&lt;br /&gt;#             -c  display concurrent VGs&lt;br /&gt;#             -g  display VGs for one resource group&lt;br /&gt;#&lt;br /&gt;#  Returns:    0 - Success&lt;br /&gt;#              1 - Invalid Arguments&lt;br /&gt;#&lt;br /&gt;#  Environment:&lt;br /&gt;#&lt;br /&gt;&lt;wbr&gt;##############################&lt;wbr&gt;###################&lt;br /&gt;&lt;br /&gt;export PATH="$(/usr/es/sbin/cluster&lt;wbr&gt;/utilities/cl_get_path all)"&lt;br /&gt;&lt;br /&gt;[[ "$VERBOSE_LOGGING" = "high" ]] &amp;&amp;amp; set -x&lt;br /&gt;[[ "$VERBOSE_LOGGING" = "high" ]] &amp;&amp;amp; version='1.5'&lt;br /&gt;&lt;br /&gt;usage()&lt;br /&gt;{&lt;br /&gt; echo&lt;br /&gt; echo "Usage: cllsvg [-g resource group] [-v] [-n] [-c or -s]\n"&lt;br /&gt; echo&lt;br /&gt;&lt;script&gt;&lt;!-- D(["mb","        echo &amp;quot;-v  display only active VGs&amp;quot;\u003cbr /\&gt;        echo &amp;quot;-n  display the nodes that share each VG&amp;quot;\u003cbr /\&gt;        echo &amp;quot;-s  display shared VGs&amp;quot;\u003cbr /\&gt;        echo &amp;quot;-c  display concurrent VGs&amp;quot;\u003cbr /\&gt;        echo &amp;quot;-g  display VGs for one resource group&amp;quot;\u003cbr /\&gt;        echo\u003cbr /\&gt;        exit 1\u003cbr /\&gt;}\u003cbr /\&gt;\u003cbr /\&gt;##############################\u003cwbr /\&gt;##################\u003cbr /\&gt;# Main\u003cbr /\&gt;##############################\u003cwbr /\&gt;##################\u003cbr /\&gt;\u003cbr /\&gt;# get the command line parameters.\u003cbr /\&gt;\u003cbr /\&gt;if [ -z &amp;quot;$*&amp;quot; ]\u003cbr /\&gt;then\u003cbr /\&gt;        usage\u003cbr /\&gt;fi\u003cbr /\&gt;\u003cbr /\&gt;set -f\u003cbr /\&gt;set -- `getopt g:vnsc $*`\u003cbr /\&gt;if [ &amp;quot;$?&amp;quot; !\u003d 0 ]\u003cbr /\&gt;then\u003cbr /\&gt;        usage\u003cbr /\&gt;fi\u003cbr /\&gt;\u003cbr /\&gt;ACTIVE\u003d0\u003cbr /\&gt;NODES\u003d0\u003cbr /\&gt;SHARED\u003d0\u003cbr /\&gt;CONC\u003d0\u003cbr /\&gt;GROUP\u003d&amp;quot;&amp;quot;\u003cbr /\&gt;\u003cbr /\&gt;while [ &amp;quot;$1&amp;quot; !\u003d -- ]\u003cbr /\&gt;do\u003cbr /\&gt;        case $1 in\u003cbr /\&gt;                -v)     ACTIVE\u003d1      # Display only active VGs\u003cbr /\&gt;                        shift;;\u003cbr /\&gt;                -n)     NODES\u003d1       # List nodes that share VG\u003cbr /\&gt;                        shift;;\u003cbr /\&gt;                -s)     if [ &amp;quot;$CONC&amp;quot; \u003d &amp;quot;1&amp;quot; ]\u003cbr /\&gt;                        then\u003cbr /\&gt;                                usage\u003cbr /\&gt;                        fi\u003cbr /\&gt;                        SHARED\u003d1      # List shared VGs\u003cbr /\&gt;",1] );  //--&gt;&lt;/script&gt;        echo "-v  display only active VGs"&lt;br /&gt; echo "-n  display the nodes that share each VG"&lt;br /&gt; echo "-s  display shared VGs"&lt;br /&gt; echo "-c  display concurrent VGs"&lt;br /&gt; echo "-g  display VGs for one resource group"&lt;br /&gt; echo&lt;br /&gt; exit 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;##############################&lt;wbr&gt;##################&lt;br /&gt;# Main&lt;br /&gt;##############################&lt;wbr&gt;##################&lt;br /&gt;&lt;br /&gt;# get the command line parameters.&lt;br /&gt;&lt;br /&gt;if [ -z "$*" ]&lt;br /&gt;then&lt;br /&gt; usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;set -f&lt;br /&gt;set -- `getopt g:vnsc $*`&lt;br /&gt;if [ "$?" != 0 ]&lt;br /&gt;then&lt;br /&gt; usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;ACTIVE=0&lt;br /&gt;NODES=0&lt;br /&gt;SHARED=0&lt;br /&gt;CONC=0&lt;br /&gt;GROUP=""&lt;br /&gt;&lt;br /&gt;while [ "$1" != -- ]&lt;br /&gt;do&lt;br /&gt; case $1 in&lt;br /&gt;         -v)     ACTIVE=1      # Display only active VGs&lt;br /&gt;                 shift;;&lt;br /&gt;         -n)     NODES=1       # List nodes that share VG&lt;br /&gt;                 shift;;&lt;br /&gt;         -s)     if [ "$CONC" = "1" ]&lt;br /&gt;                 then&lt;br /&gt;                         usage&lt;br /&gt;                 fi&lt;br /&gt;                 SHARED=1      # List shared VGs&lt;br /&gt;&lt;script&gt;&lt;!-- D(["mb","                        shift;;\u003cbr /\&gt;                -c)     if [ &amp;quot;$SHARED&amp;quot; \u003d &amp;quot;1&amp;quot; ]\u003cbr /\&gt;                        then\u003cbr /\&gt;                                usage\u003cbr /\&gt;                        fi\u003cbr /\&gt;                        CONC\u003d1        # List concurrent VGs\u003cbr /\&gt;                        shift;;\u003cbr /\&gt;                -g)     GROUP\u003d$2\u003cbr /\&gt;                        shift;shift;;\u003cbr /\&gt;                 *)     usage\u003cbr /\&gt;\u003cbr /\&gt;        esac\u003cbr /\&gt;done\u003cbr /\&gt;\u003cbr /\&gt;if [ &amp;quot;$SHARED&amp;quot; \u003d &amp;quot;$CONC&amp;quot; ]\u003cbr /\&gt;then\u003cbr /\&gt;        usage\u003cbr /\&gt;fi\u003cbr /\&gt;\u003cbr /\&gt;\u003cbr /\&gt;# Retrieve VG info based on command line parameters\u003cbr /\&gt;\u003cbr /\&gt;lastvg\u003d&amp;quot;&amp;quot; # variable used to eliminate redundant lines from cl_getpv\u003cbr /\&gt;cl_getpv 2&gt;/dev/null | egrep &amp;quot;active|concurrent&amp;quot; | cut -d: -f4- | sort |\\\u003cbr /\&gt;while read vgstring\u003cbr /\&gt;do\u003cbr /\&gt;        if [ &amp;quot;$ACTIVE&amp;quot; \u003d &amp;quot;1&amp;quot; ]\u003cbr /\&gt;        then\u003cbr /\&gt;                vgstring\u003d`echo $vgstring | grep -v inactive`\u003cbr /\&gt;        fi\u003cbr /\&gt;\u003cbr /\&gt;        vg\u003d`echo $vgstring | cut -d: -f1`\u003cbr /\&gt;        vgtype\u003d`odmget -q &amp;quot;name\u003d$vg&amp;quot; CuAt 2&gt;/dev/null| grep\u003cbr /\&gt;conc_capable | cut -d\\&amp;quot; -f 2`\u003cbr /\&gt;\u003cbr /\&gt;        # If CONC\u003d1, we are looking for VGs of type concurrent in HACMP\u003cbr /\&gt;",1] );  //--&gt;&lt;/script&gt;                        shift;;&lt;br /&gt;         -c)     if [ "$SHARED" = "1" ]&lt;br /&gt;                 then&lt;br /&gt;                         usage&lt;br /&gt;                 fi&lt;br /&gt;                 CONC=1        # List concurrent VGs&lt;br /&gt;                 shift;;&lt;br /&gt;         -g)     GROUP=$2&lt;br /&gt;                 shift;shift;;&lt;br /&gt;          *)     usage&lt;br /&gt;&lt;br /&gt; esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;if [ "$SHARED" = "$CONC" ]&lt;br /&gt;then&lt;br /&gt; usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Retrieve VG info based on command line parameters&lt;br /&gt;&lt;br /&gt;lastvg="" # variable used to eliminate redundant lines from cl_getpv&lt;br /&gt;cl_getpv 2&gt;/dev/null | egrep "active|concurrent" | cut -d: -f4- | sort |\&lt;br /&gt;while read vgstring&lt;br /&gt;do&lt;br /&gt; if [ "$ACTIVE" = "1" ]&lt;br /&gt; then&lt;br /&gt;         vgstring=`echo $vgstring | grep -v inactive`&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt; vg=`echo $vgstring | cut -d: -f1`&lt;br /&gt; vgtype=`odmget -q "name=$vg" CuAt 2&gt;/dev/null| grep conc_capable | cut -d\" -f 2`&lt;br /&gt;&lt;br /&gt; # If CONC=1, we are looking for VGs of type concurrent in HACMP&lt;br /&gt;&lt;script&gt;&lt;!-- D(["mb","        # terminology. Old style concurrent VG\'s will have a value of 16.\u003cbr /\&gt;        # Enhanced concurrent VG\'s have a value of 32.  Shared VG\'s have\u003cbr /\&gt;        # a value of 0.  So a non-zero vgtype means the VG is concurrent.\u003cbr /\&gt;\u003cbr /\&gt;        if [ &amp;quot;$CONC&amp;quot; \u003d &amp;quot;1&amp;quot; ]\u003cbr /\&gt;        then\u003cbr /\&gt;                if [ &amp;quot;$vgtype&amp;quot; !\u003d &amp;quot;conc_capable&amp;quot; ]\u003cbr /\&gt;                then\u003cbr /\&gt;                        vgstring\u003d&amp;quot;&amp;quot;\u003cbr /\&gt;                fi\u003cbr /\&gt;        fi\u003cbr /\&gt;\u003cbr /\&gt;\u003cbr /\&gt;        if [ -z &amp;quot;$vgstring&amp;quot; ]\u003cbr /\&gt;        then\u003cbr /\&gt;                continue  # Does not match VG type we are looking for\u003cbr /\&gt;        fi\u003cbr /\&gt;\u003cbr /\&gt;        # Because cl_getpv generates a line of output for each PV in a\u003cbr /\&gt;VG, use lastvg and sorted\u003cbr /\&gt;        # output from cl_getpv to generate only one line of ouput from\u003cbr /\&gt;cllsvg for each VG\u003cbr /\&gt;\u003cbr /\&gt;        if [ &amp;quot;$vg&amp;quot; !\u003d &amp;quot;$lastvg&amp;quot; ]\u003cbr /\&gt;        then\u003cbr /\&gt;                lastvg\u003d$vg\u003cbr /\&gt;                rg\u003d`odmget -q &amp;quot;value\u003d$vg and name\u003dVOLUME_GROUP&amp;quot;\u003cbr /\&gt;HACMPresource 2&gt;/dev/null | grep group | cut -d\\&amp;quot; -f 2`\u003cbr /\&gt;                if [ -n &amp;quot;$rg&amp;quot; ]\u003cbr /\&gt;                then\u003cbr /\&gt;                        if [[ -n &amp;quot;$GROUP&amp;quot; &amp;&amp;amp; &amp;quot;$GROUP&amp;quot; !\u003d &amp;quot;$rg&amp;quot; ]]\u003cbr /\&gt;                        then\u003cbr /\&gt;",1] );  //--&gt;&lt;/script&gt;        # terminology. Old style concurrent VG's will have a value of 16.&lt;br /&gt; # Enhanced concurrent VG's have a value of 32.  Shared VG's have&lt;br /&gt; # a value of 0.  So a non-zero vgtype means the VG is concurrent.&lt;br /&gt;&lt;br /&gt; if [ "$CONC" = "1" ]&lt;br /&gt; then&lt;br /&gt;         if [ "$vgtype" != "conc_capable" ]&lt;br /&gt;         then&lt;br /&gt;                 vgstring=""&lt;br /&gt;         fi&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; if [ -z "$vgstring" ]&lt;br /&gt; then&lt;br /&gt;         continue  # Does not match VG type we are looking for&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt; # Because cl_getpv generates a line of output for each PV in a VG, use lastvg and        # sorted&lt;br /&gt; # output from cl_getpv to generate only one line of ouput from cllsvg for each VG&lt;br /&gt;&lt;br /&gt; if [ "$vg" != "$lastvg" ]&lt;br /&gt; then&lt;br /&gt;         lastvg=$vg&lt;br /&gt;         rg=`odmget -q "value=$vg&lt;span style="font-weight: bold;"&gt; and name=VOLUME_GROUP&lt;/span&gt;"&lt;br /&gt;HACMPresource 2&gt;/dev/null | grep group | cut -d\" -f 2`&lt;br /&gt;         if [ -n "$rg" ]&lt;br /&gt;         then&lt;br /&gt;                 if [[ -n "$GROUP" &amp;&amp;amp; "$GROUP" != "$rg" ]]&lt;br /&gt;                 then&lt;br /&gt;&lt;script&gt;&lt;!-- D(["mb","                                continue  # Not part of the RG we are\u003cbr /\&gt;looking for\u003cbr /\&gt;                        fi\u003cbr /\&gt;\u003cbr /\&gt;                        # If CONC\u003d0, we are looking for VGs of type \'shared\' in\u003cbr /\&gt;                        # HACMP terminology, i.e., they belong to non-concurrent\u003cbr /\&gt;                        # resource groups. Those can be enhanced concurrent.\u003cbr /\&gt;                        # Hence, filter out VGs that belong to concurrent RGs.\u003cbr /\&gt;\u003cbr /\&gt;                        pref\u003d`odmget -q &amp;quot;group\u003d$rg&amp;quot; HACMPgroup\u003cbr /\&gt;2&gt;/dev/null| grep startup_pref | cut -d \\&amp;quot; -f 2`\u003cbr /\&gt;                        rgtype\u003d`odmget -q &amp;quot;group\u003d$rg&amp;quot; HACMPgroup\u003cbr /\&gt;2&gt;/dev/null| grep &amp;quot;type \u003d&amp;quot;| grep -v stype | cut -d \\&amp;quot; -f 2`\u003cbr /\&gt;\u003cbr /\&gt;                        # For non-concurrent RG\'s we want to see all\u003cbr /\&gt;VG\'s, whether they\u003cbr /\&gt;                        # are concurrent or not, because the RG may be\u003cbr /\&gt;using enhanced\u003cbr /\&gt;                        # concurrent VG\'s for the purpose of fast\u003cbr /\&gt;failover.  In HA 5.2\u003cbr /\&gt;                        # and above, a startup_pref of &amp;quot;OAAN&amp;quot; (On Any\u003cbr /\&gt;Active # Node) is\u003cbr /\&gt;                        # analogous to the pre-5.2 concurrent RG.\u003cbr /\&gt;",1] );  //--&gt;&lt;/script&gt;                                continue  # Not part of the RG we are&lt;br /&gt;looking for&lt;br /&gt;                 fi&lt;br /&gt;&lt;br /&gt;                 # If CONC=0, we are looking for VGs of type 'shared' in&lt;br /&gt;                 # HACMP terminology, i.e., they belong to non-concurrent&lt;br /&gt;                 # resource groups. Those can be enhanced concurrent.&lt;br /&gt;                 # Hence, filter out VGs that belong to concurrent RGs.&lt;br /&gt;&lt;br /&gt;                 pref=`odmget -q "group=$rg" HACMPgroup 2&gt;/dev/null| grep startup_pref | cut -d \" -f 2`&lt;br /&gt;                 rgtype=`odmget -q "group=$rg" HACMPgroup 2&gt;/dev/null| grep "type ="| grep -v stype | cut -d \" -f 2`&lt;br /&gt;&lt;br /&gt;                 # For non-concurrent RG's we want to see all VG's, whether they&lt;br /&gt;                 # are concurrent or not, because the RG may be using enhanced&lt;br /&gt;                 # concurrent VG's for the purpose of fast failover.  In HA 5.2&lt;br /&gt;                 # and above, a startup_pref of "OAAN" (On Any Active # Node) is&lt;br /&gt;                 # analogous to the pre-5.2 concurrent RG.&lt;br /&gt;&lt;script&gt;&lt;!-- D(["mb","\u003cbr /\&gt;                        if [[ &amp;quot;$CONC&amp;quot; \u003d &amp;quot;0&amp;quot; &amp;&amp;amp; &amp;quot;$rgtype&amp;quot; !\u003d\u003cbr /\&gt;&amp;quot;concurrent&amp;quot; &amp;&amp;amp; &amp;quot;$pref&amp;quot; !\u003d &amp;quot;OAAN&amp;quot; ]] \\\u003cbr /\&gt;                        || [[ &amp;quot;$CONC&amp;quot; \u003d &amp;quot;1&amp;quot; &amp;&amp;amp; &amp;quot;$vgtype&amp;quot; \u003d\u003cbr /\&gt;&amp;quot;conc_capable&amp;quot; &amp;&amp;amp; (&amp;quot;$rgtype&amp;quot; \u003d &amp;quot;concurrent&amp;quot; || &amp;quot;$pref&amp;quot; \u003d &amp;quot;OAAN&amp;quot;) ]]\u003cbr /\&gt;                        then\u003cbr /\&gt;                                if [ &amp;quot;$NODES&amp;quot; \u003d &amp;quot;1&amp;quot; ]\u003cbr /\&gt;                                then\u003cbr /\&gt;                                        nodes\u003d`odmget -q &amp;quot;group\u003d$rg&amp;quot;\u003cbr /\&gt;HACMPgroup 2&gt;/dev/null| grep &amp;quot;nodes \u003d&amp;quot; | cut -d\\&amp;quot; -f 2`\u003cbr /\&gt;                                        nodes\u003d`echo &amp;quot;$nodes&amp;quot; | tr &amp;quot; &amp;quot; &amp;quot;,&amp;quot;`\u003cbr /\&gt;                                        echo $rg $nodes $vg\u003cbr /\&gt;                                else\u003cbr /\&gt;                                        echo $rg $vg\u003cbr /\&gt;                                fi\u003cbr /\&gt;                        fi\u003cbr /\&gt;                fi\u003cbr /\&gt;        fi\u003cbr /\&gt;done\u003cbr /\&gt;\u003cbr /\&gt;exit 0\u003cbr /\&gt;\u003c/div\&gt;",0] );  //--&gt;&lt;/script&gt;&lt;br /&gt;                 if [[ "$CONC" = "0" &amp;&amp;amp;amp;amp;amp;amp;amp;amp; "$rgtype" != "concurrent" &amp;&amp;amp; "$pref" != "OAAN" ]] \&lt;br /&gt;                 || [[ "$CONC" = "1" &amp;&amp;amp;amp;amp;amp;amp;amp;amp; "$vgtype" = "conc_capable" &amp;&amp;amp; ("$rgtype" = "concurrent" || "$pref" = "OAAN") ]]&lt;br /&gt;                 then&lt;br /&gt;                         if [ "$NODES" = "1" ]&lt;br /&gt;                         then&lt;br /&gt;                                 nodes=`odmget -q "group=$rg" HACMPgroup 2&gt;/dev/null| grep "nodes =" | cut -d\" -f 2`&lt;br /&gt;                                 nodes=`echo "$nodes" | tr " " ","`&lt;br /&gt;                                 echo $rg $nodes $vg&lt;br /&gt;                         else&lt;br /&gt;                                 echo $rg $vg&lt;br /&gt;                         fi&lt;br /&gt;                 fi&lt;br /&gt;         fi&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;exit 0&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="direction: ltr;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Delete the section marked in boldface and you'll be fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-7365146879932305450?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/7365146879932305450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=7365146879932305450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7365146879932305450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7365146879932305450'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/07/hacmp-anomaly.html' title='Missing concurrent disks'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_VrhHaxanXOw/Rpun_ORRBmI/AAAAAAAAAAc/FEp27VT1OeI/s72-c/error.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-6117805345957190845</id><published>2007-05-24T23:06:00.000+02:00</published><updated>2007-08-02T11:30:36.203+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='partitions'/><category scheme='http://www.blogger.com/atom/ns#' term='HMC'/><category scheme='http://www.blogger.com/atom/ns#' term='A7004730'/><category scheme='http://www.blogger.com/atom/ns#' term='CuOD'/><title type='text'>A7004730</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span&gt;When your partitioned p5 system starts with one processor and you get A7004730 on your HMC status line, go &lt;a href="http://www-912.ibm.com/pod/pod"&gt;here&lt;/a&gt;, type your machine type and serial number, receive your CuOD key and enable the missing feature on your system. :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;For the record, I got this on a 9133-55A this afternoon.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-6117805345957190845?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/6117805345957190845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=6117805345957190845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6117805345957190845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6117805345957190845'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/05/a7004730.html' title='A7004730'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-5578705158816188946</id><published>2007-05-15T22:14:00.000+02:00</published><updated>2007-08-02T11:31:46.928+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='5703'/><category scheme='http://www.blogger.com/atom/ns#' term='SCSI RAID'/><category scheme='http://www.blogger.com/atom/ns#' term='3580'/><category scheme='http://www.blogger.com/atom/ns#' term='9111-520'/><title type='text'>Tape, no go</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span&gt;It seems that the PCI-X Ultra320 Dual-channel SCSI RAID controller (F/C 5703; 2 ext. VHDCI connectors) does not support the connection to a 3580 standalone tape drive. Anyone has an idea why?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;By the way, the server is a 9111-520.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-5578705158816188946?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/5578705158816188946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=5578705158816188946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5578705158816188946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/5578705158816188946'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/05/tape-no-go.html' title='Tape, no go'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-7600977742197544425</id><published>2007-05-15T20:20:00.000+02:00</published><updated>2007-08-02T11:39:04.903+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serial console'/><category scheme='http://www.blogger.com/atom/ns#' term='firmware'/><category scheme='http://www.blogger.com/atom/ns#' term='break'/><category scheme='http://www.blogger.com/atom/ns#' term='DS4000'/><category scheme='http://www.blogger.com/atom/ns#' term='baud rate'/><category scheme='http://www.blogger.com/atom/ns#' term='ESC'/><title type='text'>No ESCape!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span&gt;Today I had to configure a DS4300 (FAStT600) through a serial console. It proved to be harder than I had anticipated.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;We started from scratch and wanted to configure the ethernet interfaces to be able to use Storage Manager to setup the box. What normally happens is this:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span&gt;(1) You connect your null-modem cable between your terminal (emulator) and one controller of the DS4000.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(2) You initiate the connection (turn on your terminal).&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(3) You keep sending the BREAK signal (Ctrl-Break, or Alt-b in TeraTerm) until you get a message similar to this: "Press &amp;lt;space&amp;gt; for baud rate within 5 seconds".&lt;br /&gt;(4) You press the space key and the baud rate gets set.&lt;br /&gt;(5) You send the BREAK signal a second time and you get this: "Press within 5 seconds: &amp;lt;esc&amp;gt; for SHELL, &amp;lt;break&amp;gt; for baud rate."&lt;br /&gt;(6) You press the ESC key and get the login prompt for the shell.&lt;br /&gt;(7) You enter your password (default: infiniti)&lt;br /&gt;(8) You are in, hoorray!&lt;br /&gt;(9) You start setting up the IP parameters using netCfgSet.&lt;br /&gt;(A) ...&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Now, what I saw today was a bit different. In step (3) I got an unusual message:&lt;br /&gt;&lt;blockquote&gt;"Press within 5 seconds: &amp;lt;s&amp;gt; for Service Interface, &amp;lt;break&amp;gt; for baud rate".&lt;/blockquote&gt;  I sent a BREAK, the baud rate got set and I saw this:&lt;br /&gt;&lt;blockquote&gt;"Enter Password to access Service Interface (60 sec timeout)".&lt;/blockquote&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Has anyone heard of a "Service Interface" within a DS4000 box? No one? Me neither. Even the "&lt;a href="http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/SG246363.html"&gt;DS4000 Best Practices and Performance Tuning Guide&lt;/a&gt;" (dated May 9, 2007)  has no info on it. This got me a little confused. I tried "infiniti" for a password but it failed authentication. I also tried a few other obvious passwords, like "password" or "service", to no avail.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;After 15 minutes I called IBM and asked for help.  They told me to press ESC after a second "Press within 5 seconds: &amp;lt;s&amp;gt; for Service Interface, &amp;lt;break&amp;gt; for baud rate"! One of the firmware updates has changed the behavior of the serial port and now the instruction to press ESC is missing! Damn! By the way, the box now has the newst firmware to date, which is v6.23.05 (and DS4000 Storage Manager v9.23 to manage it)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span&gt;Also, I have found &lt;/span&gt;&lt;a href="http://www.sun.com/products-n-solutions/hardware/docs/html/820-0015-10/hwig15xx_ipaddress.html"&gt;this&lt;/a&gt;&lt;span&gt;. I haven't had the chance to test it yet, but when I'm done, I'll share.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-7600977742197544425?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/7600977742197544425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=7600977742197544425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7600977742197544425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/7600977742197544425'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/05/today-i-had-to-configure-ds4300.html' title='No ESCape!'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-6574832027054506573</id><published>2007-05-15T00:08:00.000+02:00</published><updated>2007-08-02T11:40:20.630+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAStT'/><category scheme='http://www.blogger.com/atom/ns#' term='disk storage'/><category scheme='http://www.blogger.com/atom/ns#' term='DS8100'/><category scheme='http://www.blogger.com/atom/ns#' term='logical disk extension'/><title type='text'>One legged beast</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span&gt;Here's today's hint. Whenever you plan to extend a logical disk in a FAStT 600 (or probably any older series [and maybe new, too] DS disk storage subsystem) and your server (in this case, a W2K3 node) has only a single path to the storage, make sure you disconnect the server somehow (or simply shut it down if you can) before starting the extension or be prepared to be thrown at some unfriendly error messages. I only fixed this through a phone call, so I do not have the exact error text.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In short, single HBA configurations to a FAStT or DS box are not supported and may result in unexpected errors or other strange phenomena. This does not apply to the FAStT 200; this box supports single HBA server connections.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-6574832027054506573?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/6574832027054506573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=6574832027054506573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6574832027054506573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6574832027054506573'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/05/one-legged-beast.html' title='One legged beast'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-886764797479675143</id><published>2007-05-13T09:47:00.000+02:00</published><updated>2007-05-13T13:50:23.057+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='domain name system'/><category scheme='http://www.blogger.com/atom/ns#' term='mount'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse zone'/><title type='text'>NFS -1</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;One of my customers implemented some changes in their domain name system, after which the encountered this:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:100%;"  &gt;&lt;/span&gt;&lt;blockquote  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;sapft# mount pr1srvc:/saptrans /usr/sap/trans&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;nfsmnthelp: 1831-019 pr1srvc: System call error number -1.&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;mount: 1831-008 giving up on:&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;pr1srvc:/saptrans&lt;br /&gt;&lt;/span&gt; &lt;span style="font-size:100%;"&gt;System call error number -1.&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;I suspected that the error was somewhere in the new domain name system but I was not able to pinpoint the exact cause. I did forward and reverse lookups on all the names and IP addresses involved in the mount process and evereything worked fine as long as I used the &lt;/span&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;font-size:100%;"  &gt;host&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt; command. However, as soon as I switched to &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;nslookup&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, the story started to unfold. Since &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;nslookup&lt;/span&gt;&lt;span style="font-size:100%;"&gt; disregards the settings in the &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;/etc/netsvc.conf&lt;/span&gt;&lt;span style="font-size:100%;"&gt; file and the &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;NSORDER&lt;/span&gt; &lt;span style="font-size:100%;"&gt;environment variable, it did not get fooled by the entries in&lt;/span&gt; &lt;span style="font-style: italic;font-size:100%;" &gt;/etc/hosts&lt;/span&gt;&lt;span style="font-size:100%;"&gt; and I soon figured out that while implementing the new name space the guys had forgotten to add the reverse zones to the static IP addresses (the dynamic, ie. DHCP, addresses were doing fine).&lt;br /&gt;&lt;br /&gt;Adding the reverse zones to the config immediately solved the NFS mount issue, all mounts are fine now.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-886764797479675143?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/886764797479675143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=886764797479675143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/886764797479675143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/886764797479675143'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/05/nfs-1.html' title='NFS -1'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-9148355521605284851</id><published>2007-05-10T21:54:00.000+02:00</published><updated>2007-05-17T21:44:02.829+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firmware'/><category scheme='http://www.blogger.com/atom/ns#' term='9115-550'/><category scheme='http://www.blogger.com/atom/ns#' term='5759'/><title type='text'>One port up, one port down</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;Next time you install an F/C 5759 4Gb dual port FC adapter in a 9113-550 (and probably any other p5 model), make sure you have at least AIX 5.2 TL8 (5200-08). Any lower fix level will result in one of the ports on the adapter to remain unconfigured, even with the latest driver filesets.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;This info is from IBM support. We have the upgrade scheduled for tomorrow. I'll let you know when we're done. Oh, one more thing, upgrading the system firmware &lt;/span&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;prior to the AIX upgrade &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;can't hurt either. :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;---UPDATE ONE---&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I failed at the very first step: I could not install the firmware file (rpm -ivh --ignoreos ...), I got a strange error. The rest of the update, of course, had to be cancelled. Details later.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;---UPDATE TWO---&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Here is the exact error text:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;blockquote&gt;&lt;span style="font-family:trebuchet ms;"&gt;rsvoratst:/tmp/fwupdate# rpm -ivh --ignoreos&lt;br /&gt;01SF230_158_120.rpm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;stty: tcgetattr: A specified file does not&lt;br /&gt;support the ioctl system call.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;execution of 01SF230_158_120-1.1-1 script failed,&lt;br /&gt;exit status 2&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:trebuchet ms;"&gt;The error occurs the exact same way on other 5.2 ML4 servers, even with the latest rpm.rte (3.0.5.39). However, the error does not occur on 5.2TL9 or any 5.3 I have access to now. So, I guess it's an AIX bug. No official IBM answer yet.&lt;br /&gt;&lt;br /&gt;---UPDATE THREE---&lt;br /&gt;I have received an answer from IBM, from which it is obvious that they did not even understand the problem in the first place. They suggest that I should replace the blind swap cage that holds the dual-port FC adapter. Hmmm. The model 550 does not use blind swap cages at all. Quite sad.&lt;br /&gt;&lt;br /&gt;Seeing that we cannot expect much help from IBM in this particular case, we decided to take the situation in our own hands.  First,  I unpacked two firmware files (SF230_158 and the latest SF240_320) on another system. Then ftp'd the files to the 550 and...&lt;br /&gt;&lt;blockquote&gt;/usr/lpp/diagnostics/bin/update_flash -f /tmp/fwupdate/01SF230_158_120&lt;/blockquote&gt;Guess what, it worked perfectly. After about 20 minutes the box rebooted from the temporary side and showed SF230_158 as the current microcode level (&lt;span style="font-style: italic;"&gt;lsmcode&lt;/span&gt;). So far so good. I took the next step:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;blockquote&gt;/usr/lpp/diagnostics/bin/update_flash -f /tmp/fwupdate/01SF240_320_201&lt;/blockquote&gt;This worked great, too. And here comes the funny part. The dual-port FC adapter started working on both ports. fcs2 and fcs3 came up available! And, of course, seeing this, we decided not to upgrade AIX to TL9. We were very near to the end of our maintenance window anyway.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-9148355521605284851?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/9148355521605284851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=9148355521605284851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/9148355521605284851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/9148355521605284851'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/05/one-port-up-one-port-down.html' title='One port up, one port down'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-284499494718372602</id><published>2007-04-28T12:59:00.001+02:00</published><updated>2008-04-24T20:37:29.674+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fabric'/><category scheme='http://www.blogger.com/atom/ns#' term='switch'/><category scheme='http://www.blogger.com/atom/ns#' term='2109-F16'/><category scheme='http://www.blogger.com/atom/ns#' term='commit failed'/><category scheme='http://www.blogger.com/atom/ns#' term='Brocade'/><title type='text'>Details unavailable</title><content type='html'>When you see something like this on an FC switch Java GUI:&lt;br /&gt;&lt;span class="Text"&gt;&lt;blockquote&gt;--- start of commit (Enable Config) at: Sat Apr 28 2001, 10:34:02 AM&lt;br /&gt;Commit changes:&lt;br /&gt;Failed to commit changes to fabric: details unavailable.&lt;br /&gt;Commit Failed.&lt;br /&gt;--- end of commit at: &lt;span class="Text"&gt;Sat Apr 28 2001, 10:34:11 AM&lt;/span&gt;&lt;/blockquote&gt;Have no fear! The problem is probably not fatal, it seems to be a Java error somewhere; either in your browser, or in the applet that's loaded from the switch, which means a Fabric OS error. We did not have a chance to further test it or upgrade the FOS, so we took the other way. We telneted into the switch and used the command line method.&lt;br /&gt;&lt;br /&gt;Example for adding new aliases and zones to a config:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Text"&gt;SWITCHA:admin&gt; aliCreate "srvFotoA", "21:00:01:0e:b0:47:21"&lt;br /&gt;&lt;/span&gt;&lt;span class="Text"&gt;SWITCHA:admin&gt; aliCreate "sto3583D1", "50:00:00:61:b1:22:f3"&lt;br /&gt;&lt;/span&gt;&lt;span class="Text"&gt;SWITCHA:admin&gt; zoneCreate "zne_FotoA_3583D1", "srvFotoA; sto3583D1"&lt;br /&gt;&lt;/span&gt;&lt;span class="Text"&gt;SWITCHA:admin&gt; cfgAdd "cfgProdA", "&lt;/span&gt;&lt;span class="Text"&gt;zne_FotoA_3583D1"&lt;/span&gt;&lt;br /&gt;&lt;span class="Text"&gt;SWITCHA:admin&gt; cfgEnable "cfgProdA"&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Text"&gt;If you still have the error, contact your next level of support. And by the way, the switch was an IBM 2109-F16.&lt;br /&gt;&lt;/span&gt;&lt;span class="Text"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_VrhHaxanXOw/RjM_Tvc5QGI/AAAAAAAAAAU/yrYCbzA-s4w/s1600-h/2109-F16.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_VrhHaxanXOw/RjM_Tvc5QGI/AAAAAAAAAAU/yrYCbzA-s4w/s400/2109-F16.jpg" alt="" id="BLOGGER_PHOTO_ID_5058456414854922338" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-284499494718372602?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/284499494718372602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=284499494718372602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/284499494718372602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/284499494718372602'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/04/details-unavailable.html' title='Details unavailable'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_VrhHaxanXOw/RjM_Tvc5QGI/AAAAAAAAAAU/yrYCbzA-s4w/s72-c/2109-F16.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-8219838775619063205</id><published>2007-04-27T23:38:00.000+02:00</published><updated>2007-05-02T23:56:20.562+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firmware'/><category scheme='http://www.blogger.com/atom/ns#' term='0xdeadbeef'/><category scheme='http://www.blogger.com/atom/ns#' term='E170'/><category scheme='http://www.blogger.com/atom/ns#' term='7028-6C4'/><title type='text'>E170 and 0xdeadbeef</title><content type='html'>I had a routine &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;AIX&lt;/span&gt; maintenance the other day. We went from 5200-02 to 5200-09 on a 7028-6C4 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ie&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;eServer&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;pSeries&lt;/span&gt; 630 Model 6C4). The update went just fine; however, when we rebooted the server, it stopped at &lt;span style="font-weight: bold;"&gt;E170&lt;/span&gt;. It took us some time to figure out what had gone wrong, so here's a little help for you.&lt;br /&gt;&lt;br /&gt;When you encounter an &lt;span style="font-weight: bold;"&gt;E170&lt;/span&gt; and you see loads of &lt;span style="font-weight: bold;"&gt;0&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;xdeadbeef&lt;/span&gt;&lt;/span&gt; and an &lt;span style="font-weight: bold;"&gt;Open Firmware prompt &lt;/span&gt;on your serial console, you're running on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;backlevel&lt;/span&gt; firmware and should upgrade to go past E170. The current level of firmware for the aforementioned server at the time of writing this post is 3R061030, dated 12/08/2006. You can get it &lt;a href="http://www14.software.ibm.com/webapp/set2/firmware/gjsn?mode=1&amp;mtm=7028-6C4&amp;amp;amp;amp;go.x=13&amp;go.y=12&amp;amp;go=Go"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Somewhere between ML02 and TL09 the size of the kernel increased beyond the 12MB limit and the old firmware we had could not handle it. If you're reading this because you're preparing for such an upgrade, you're lucky to be in a position where you can simply use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;AIX&lt;/span&gt; command line method to upgrade and save some trouble for yourself. On the other hand, if you're reading this because you smell 0&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;xdeadbeef&lt;/span&gt;, you'd better get your floppies ready for action. Good luck.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Ps&lt;/span&gt;.: In some cases we saw a Service Processor reset after E170 (B0FF, then back to OK). Also, if you have done the firmware upgrade and still can't get past E170, try a Service Processor reset from the SP menu (14900 and choose the safe method, option 1, I think). If you're still stuck, remove the SP battery for a few minutes. If this does not help, contact your next level of IBM support, you may have a hardware issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-8219838775619063205?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/8219838775619063205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=8219838775619063205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8219838775619063205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/8219838775619063205'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/04/e170-and-0xdeadbeef.html' title='E170 and 0xdeadbeef'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8595473519275917709.post-6179694111389695038</id><published>2007-04-26T22:55:00.000+02:00</published><updated>2007-06-06T21:40:41.853+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DS8100'/><category scheme='http://www.blogger.com/atom/ns#' term='migratepv'/><category scheme='http://www.blogger.com/atom/ns#' term='disk I/O'/><category scheme='http://www.blogger.com/atom/ns#' term='SDDPCM'/><title type='text'>Nothing happened, or my Day One</title><content type='html'>&lt;div face="georgia" style="text-align: left; font-family: trebuchet ms;"&gt;We wanted to migrate a 2.8 TB Orcale database (residing on one single LV/FS plus one jfs2log) from a set of three DS8100 logical disks to another set of 28 DS8100 logical disks in another storage complex. The original three-disk VG contained hdisk14, hdisk15, and hdisk16. We added the new 28 disks to the VG (by the way, it was the scalable type) and started the migration from one source disk at a time like this:&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: trebuchet ms;" &gt;&lt;blockquote&gt;migratepv hdisk16 hdisk1 hdisk2 hdisk4 hdisk5 ...&lt;/blockquote&gt;&lt;/span&gt;&lt;span style="font-family: trebuchet ms;"&gt;The command ran for about 24 hours and gave us an error, something like this:&lt;/span&gt;&lt;br /&gt;&lt;span id="intelliTxt"&gt;&lt;blockquote style="font-family: trebuchet ms;"&gt;0516-132 lmigratelv: Incorrect entry in partition map file.&lt;br /&gt;0516-134 lmigratelv: Received: 000a122aff313e72 6008&lt;br /&gt;0516-136 lmigratelv: Error reading input map.&lt;br /&gt;0516-812 migratepv: Warning, migratepv did not completely succeed;&lt;br /&gt;all physical partitions have not been moved off the PV.&lt;/blockquote&gt;&lt;span style="font-family:trebuchet ms;"&gt;Examinig the migration status of the LV, we saw that not a single partition had been moved during the 24-hour run of migratepv. How strange, we thought to ourselves. Something was not right. So we started to test the situation a bit more. We ran the migratepv command again and checked disk I/O activity closely using nmon and iostat and we found that practically no I/O was present. The iostat showed all zeroes for the destination disks and very little I/O for the source disks, which was normal since the Oracle database was up and running while we were testing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;The AIX error log was empty, &lt;/span&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;pcmpath query adapter&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt; showed some errors but we knew they had been caused by a prior incident, unrelated to our present situation. &lt;/span&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;fcstat&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt; on both HBAs also showed some errors but, again, unrelated.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;We found a &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://www.tek-tips.com/viewthread.cfm?qid=1360372&amp;page=1"&gt;case&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; that suggested that the problem may have been caused by a full /tmp (migratepv uses some temporary tables that are built in /tmp) but our /tmp filesystem was 2GB in size and only 6% full.  Unlikely, unless the temp tables were huge. Further investigation showed they weren't, less than 20MB both. Dead end.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;We decided to run another test. We tried to migrate the data using mklvcopy/syncvg/rmlvcopy. We thought this way we could see what was happening in more detail. Well, we were wrong. We got stuck at the very first step:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: trebuchet ms;"&gt;mklvcopy oradatalv 2 hdisk1 hdisk2 hdisk4 hdisk5...&lt;/blockquote&gt;&lt;span style="font-family:trebuchet ms;"&gt;Even without any data synchronization, the mklvcopy never exited (well, we only waited for about 30 minutes before we hit ctrl-c) and generated no disk I/O whatsoever. Mind you, that during this time the database was up and running fine on disks that were in a similar DS8100, connected through the same HBAs, using the exact same SDDPCM driver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;At this point we were out of ideas and decided to upgrade all AIX components. We went from AIX 5300-05-04 to 5300-05-06 and upgraded SDDPCM from 2.1.0.8 to 2.1.2.5, rebooted and waited for the miracle. But...nothing happened.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;Since we were having time constraints on the migration, we came up with a plan to migrate the data without having to use any LV commands which might be faulty (migratepv and/or lmigratelv). We created an new scalable VG and started moving the data using a number of parallel &lt;/span&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;cp&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt; commands. Performance is nothing extraordinary but we expect it to finish in about 12 to 20 hours. Thank God, it's only a test LPAR and we can afford to have such a long downtime for the database. IBM has alredy been called in to investigate. I will update this post as soon as they have found anything.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;To be continued...&lt;br /&gt;&lt;br /&gt;---UPDATE ONE---&lt;br /&gt;Well, I have no good news for you, guys. Due to space constraints the disks with the funny VG on it had to be recycled and all the evidence with it. IBM Support had the intention to solve the issue but time was not on our side. We copied all data to a newly created scalable VG and had to destroy the problematic one. Sorry, no solution for this one.&lt;br /&gt;   If you happen to encounter the same phenomenon and have a solution, please let me know so I can share it here. Thanks.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="font-family: georgia;"&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8595473519275917709-6179694111389695038?l=odme.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odme.blogspot.com/feeds/6179694111389695038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8595473519275917709&amp;postID=6179694111389695038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6179694111389695038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8595473519275917709/posts/default/6179694111389695038'/><link rel='alternate' type='text/html' href='http://odme.blogspot.com/2007/04/nothing-happened-or-my-day-one.html' title='Nothing happened, or my Day One'/><author><name>sbzx</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
