StoreEver Tape Storage
1748139 Members
3952 Online
108758 Solutions
New Discussion юеВ

Re: Need help changing master drive on MSL4048

 
A Ellis
Occasional Advisor

Need help changing master drive on MSL4048

Hello-
We have a 2-drive LTO4 MSL4048 fiber channel tape library in a possibly unique connection arrangement, and need some help in configuring it. We want to connect the two drives to two separate Linux hosts that are running in an active/standby redundancy configuration. Therefore we want the robotics LUN (i.e., the master drive) to be available to both servers, but they don't need it at the same time.

I am aware of library partitioning, and changing the master drive in the web RMI, but the hard (unique) part is that we need the active/standby failover to be AUTOMATED. It has to happen right away if the active server crashes at 2am on Sunday morning. Nobody's going to be there to pull up the web GUI; we need something that can be scripted.

I think we want an un-partitioned library where we can change the master drive (and reboot the library) via some command from the attached hosts, either in-band or out-of-band.

Please, is there some other way to change which of the library's drives hosts the library controller LUN? We looked at the telnet interface to "FLMON>", but that looks like it's only for monitoring, no configuration.

Thank you!
10 REPLIES 10
A Ellis
Occasional Advisor

Re: Need help changing master drive on MSL4048

I should mention that the reason we didn't want to simply partition is that this lib will be used with offsite tape vaulting, and we wanted as many slots (spare tapes) available as possible. Also I was afraid that two logical libraries (each with their own set of tapes) would be harder to manage from the viewpoint of my redundant 1+1 backup server.
Curtis Ballard
Honored Contributor

Re: Need help changing master drive on MSL4048

That configuration makes sense but unfortunately isn't one that was designed in. The only way I can think of that this could be accomplished would be using expect or Perl scripts to automate a RMI/web interface log in and configuration change. We've used expect to change configurations as part of testing the libraries.
A Ellis
Occasional Advisor

Re: Need help changing master drive on MSL4048

Thanks, that is good info. We have used expect successfully on telnet and ftp interfaces, but never on an embedded web interface. Is it possible for you to share an example of doing this with an MSL library?
Curtis Ballard
Honored Contributor

Re: Need help changing master drive on MSL4048

Sorry I mixed a couple of tests. The testing that was done with expect was using a development interface not available in the production product. I checked with the person that scripted the web interface and they said that they had used Java. I scripted a bit of the web interface on that product a few years ago using Perl. I'll look and see if I still have that. It was a bench test so isn't in any tracking tools.
A Ellis
Occasional Advisor

Re: Need help changing master drive on MSL4048

Thanks, I appreciate it.
A Ellis
Occasional Advisor

Re: Need help changing master drive on MSL4048

Update: Since we got confirmation that it's possible to interact with the web interface via some expect or Javascript, we have been developing an expect script that runs on our Linux server, and connects to the tape library's web server via telnet. This has been partially successful, in that we can login to the server as Administrator, and the tape library sends the initial web page we expect.

However, after that we get stuck with everything returning "501 Method Not implemented". At first we tried to POST the system_config page with drive host LUN change we wanted, and that returned 501. Then we thought it wasn't working because we needed to accept and use the library's session cookie using "loginlevel3.ssi", but that also sent back 501.

We are using Paros to proxy our HTTP transactions through our Firefox web browser in order to dump out the required HTTP requests and responses, so that we can incorporate them into our expect script. Our script should be sending the same requests as a real web browser, but we always get 501.

Please, is there some way to get some backend server feedback to understand why this is happening? Is there a secret key we can use to login to our library and look at it's internal logs and find out what it doesn't like about our requests? If that requires voiding the warranty on our unit, we're ok with that.

Thanks!
Curtis Ballard
Honored Contributor

Re: Need help changing master drive on MSL4048

I'm checking with the person that was scripting that most recently. I can tell you that the RMI is context aware but I don't see in your reply where you are getting the RMI into the right page before sending the configure so it is possible that may be the issue.

With the little scripting I did I had to send commands to select the right page then send the configuration that needed set.
A Ellis
Occasional Advisor

Re: Need help changing master drive on MSL4048

Here's a clarification of the progress of our expect script (and a more pointed question to help us make progress):

1. expect script performs a 'spawn telnet 172.26.101.239 80' to connect to the 4048
2. expect script expects '^]'.\r\r\n from telnet login, and when successful, sends:

GET /login.ssi HTTP/1.1
Host: 172.26.101.239
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) Paros/3.2.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://172.26.101.239/logout.ssi

This is successful; we get the following response:

HTTP/1.1 200 Document Follows
Content-Type: text/html
Pragma: no-cache
Expires: 0
Cache-Control: no-cache
Content-Length: 2511

....stuff deleted....

....stuff deleted....


3. expect script expects and matches the above , then sends:

POST /RMULogin HTTP/1.1
Host: 172.26.101.239
User-Agent: Mozilla\/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3)
Gecko\/20100401 Firefox\/3.6.3 (.NET CLR 3.5.30729) Paros\/3.2.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: /login.ssi
Content-Type: application/x-www-form-urlencoded
Content-Length: 44\r\ruser_level=3&password=11111111&login=Sign+In

This is also successful; we get the following response (which expect matches):
(Note the response has information for setting a cookie, which we will send back)

HTTP/1.1 200 Document Follows
Content-Type: text/html
Content-Length: 190

<SCRIPT LANGUAGE="javascript">
document.cookie = "RMU_LEVEL=3";document.cookie =
RMU_LOGIN=9999";location='loginlevel3.ssi';
</SCRIPT>

4. expect script expects and matches the above , then sends:

GET /loginlevel3.ssi HTTP/1.1
Host: 172.26.101.239
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3)
Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) Paros/3.2.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://172.26.101.239/RMULogin
Cookie: RMU_LEVEL=3; RMU_LOGIN=9999; LOGIN_INTERRUPT=1

Here is where we have trouble: The server should respond with the cookie RMUSession=
some string of values; however, the server either a) responds with '501 Method
Not implemented' or b) if I add some sleep to the expect script prior to sending
the above loginlevel3 GET operations, it remotely drops the connection. We have tried
many things, but cannot get past loginlevel3.ssi. Is there some secret to what this
.ssi is expecting. Would it be possible for us to get source code for loginlevel3.ssi
if some type of backend web server feedback messages are not possible?
A Ellis
Occasional Advisor

Re: Need help changing master drive on MSL4048

Hello Curtis,

Perhaps I can further refine my questions:

1) My understanding is that when the loginlevel3.ssi is called from the browser, ├в Cookie: RMU_LEVEL-3; RMU_LOGIN=9999├в is sent to the server to request that the server create the session Cookie (RMU_SESSIONNO) and send back in the HTTP response. Can you confirm that my understanding is correct on this? Is it loginlevel3.ssi that creates and sends the Cookie back in its response?

2) If my understanding of the above is false, can you clarify the sequence by which the browser sends the cookie request/response

3) Which tool or third party product your team or colleague used to test the webserver in Java?