Clearing a SAN lockdown state

Hah, are you really bragging that you know how to clear a lockdown at one of California’s finest hotels?

No… Just No, I think that would involve blackmailing the governator or some mild kidnapping both are way beyond my ability to pull off.

Is this something to do with restoring operation of a faulty biological SAN/pacemaker?

As much as I enjoyed biology in A level that would also be beyond my knowledge and this is a computer orientated blog.

I am talking about restoring operation of a Storage Area Network controller that has reached a software enforced lockdown state specifically the LSI/Netapp built IBM branded DS3524 SAN incorporates lockdown counters which track the number of power cycles that one/both controllers on this unit experiences and if a threshold is reached then a lockdown is enabled which prevents the unit in question from booting.

Is that a nasty tactic to sell service contracts?

I don’t think so, this behaviour is likely to protect your precious data from a flaky controller which is advantageous unless your SAN controllers are operating correctly but experience a series of temporary power fluctuations in that case once reliable power has been restored this lockdown would need to be cleared to enable operations.

This lockout is indicated by LU appearing on the twin 7-segment LED displays on the controller mounted status indicators to the rear of the SAN.

A word of warning, please ensure that the SAN controller is only in this state due to external factors and not a fault and as normal I take no responsibility for your actions.. if you kill you data it was your choice to try and clear this lockdown.

To perform this lockout reset you will need an IBM serial-console/din connector and a computer/remote console host equipped with a RS232/Serial/DB9 connector.

The IBM serial to Console cable is pictured below and should have been included with the SAN if not IBM may send you one

P1000352

This cable plugs into a female DIN port hidden under a black plastic cover at the rear of the SAN controllers.

clip_image004[1]

Install Putty on the computer connected to the SAN to be used as a terminal emulator then once the connection has been made set the connection to serial and then set the parameters as follows.

clip_image006[1]

 

Serial Line: This should be the COM port that your RS232 is port is listed as, this can be determined by the your system HW manager but in my case it should be COM 1.

Speed (Baud): any speed will do as the SAN controller uses adaptive baud rates but I use 19200.

Data bits: 8

Stop bits: 1

Parity: None

Flow Control: XON/XOFF

When you connect there may not be a message so press <CONTROL> and <BREAK> until correct speed detected, this will be indicated by intelligible onscreen text.
When prompted to press <S> for Service Menu press <ESC> instead.  This will take opens a shell prompt.

At this shell prompt you *may* be able to use these credentials as they seem to be generic with FW images (verified by these working on a replacement controller) if these dont work then contactyour IBM/LSI representative

User ID:    shellUsr
Password:    wy3oo&w4

The following commands need to be issued into this terminal in a specific order depending on which controller is in lockdown.

If controller A is in lockdown:

Run the following commands on both controllers –
lemClearLockdown
clearHardwareLockdown
psvClearSodRebootLoopCounter

Then unplug ctrl-A and run the following commands on ctrl-B:
loadDebug
cmgrSetAltToFailed
cmgrSetAltToOptimal

Then Hot-plug ctrl-A

This should sync setting across the controllers and clear the lockdown and you should be able to use your SAN again : )

Java–Serial Killer

Its about time a public mourning took place for people who are allergic to coffee…

Although I do feel pity for the people who are allergic to coffee (what a horrible existence… i would hate not being able to have the best addiction)  this is not the topic of this post.

Ahhh so are you taking about the mass deprecation that takes place in Java?

Although the deprecation of components in Java does annoy me (Java 7 Deprecations, J6 Deps) it is a necessity in most cases  but this is not the choice of topic.

I get it, you are taking about all the nuclear facilities that had faulty Java control software in place which caused a meltdown or 2!!

Eh no, the java agreement requires that “You acknowledge that Licensed Software is not designed or intended for use in the design, construction, operation or maintenance of any nuclear facility”

Im taking about the state of communicating with RS232 devices from Java.

That’s simple just use java.comm

Exactly what I thought too but it appears that the write once run anywhere promise of Java has been broken further, back in the day it was possible to write windows Java apps that could use Java.comm but it appears that it is no longer possible to use this functionality outside of Linux, Mac OS X and Solaris.

I recently discovered this when I developed a web service component that uses a RS232 sensor on linux where it worked fine and I was a happy coder but when I brought it over to windows I was left astonished and searching for a solution.

RXTX to the rescue

After doing some searching around I found a beautiful LGPL product called rxtx which provides platform agnostic RS232 support through a native library and jar class file combination.

The native library goes into the the /bin sub folder of both the Java runtime and Development Kit folders and the .jar file goes into the companion /lib subfolders of those directories.

The API is easy to use and clear with a fairly logical structure for example to detect COM ports on a system the following code fragment is used

 1: List <String> list = new ArrayList<String>();
 2: Enumeration portList = CommPortIdentifier.getPortIdentifiers();
 3: 
 4: while (portList.hasMoreElements()) {
 5: 
 6:      CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement();
 7: 
 8:      if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
 9: 
 10:           list.add(portId.getName());
 11:      }
 12: }

The rxtx project lives at  http://rxtx.qbang.org/wiki/index.php/Main_Page where you can get a variety of downloads and a wealth of documentation