ATTO Technology diamond array s Manual De Usuario
19
ATTO Technology Inc. Diamond Storage Array Installation and Operation Manual
5.1 In-band CLI Over the Fibre Channel
In-band Command Line Interface (CLI) configures and manages the Diamond Storage Array using
SCSI-based CLI commands over a Fibre Channel port connection.
SCSI-based CLI commands over a Fibre Channel port connection.
In-band CLI allows a programmer to configure
the Diamond Storage Array while it is moving
data. Using a programmer’s interface, CLI
commands as described previously in this manual
may be implemented.
the Diamond Storage Array while it is moving
data. Using a programmer’s interface, CLI
commands as described previously in this manual
may be implemented.
In-band CLI is implemented as part of LUN 0. It
uses a different LUN than the array, and reports as
a Storage Enclosure Services (SES) device
(device type 0x0D).
uses a different LUN than the array, and reports as
a Storage Enclosure Services (SES) device
(device type 0x0D).
LUN 0 is visible on all Fibre ports but is actually
a single unit. The default value for LUN 0 is 0x00.
a single unit. The default value for LUN 0 is 0x00.
LUN 0 must be reserved for each Write
Buffer/Read Buffer pair, using the SCSI Reserve
command to insure integrity of the in-band CLI
session.
Buffer/Read Buffer pair, using the SCSI Reserve
command to insure integrity of the in-band CLI
session.
1
An initiator (host) sends a SCSI Reserve
command to LUN 0.
command to LUN 0.
• If LUN 0 is not reserved by another initiator,
LUN 0 is now reserved and ready to begin a
new CLI session.
new CLI session.
• If the array configuration is reserved by a
different CLI session (i.e. serial or Telnet),
the in-band session will not be allowed to
modify the array configuration. If you try, the
results buffer of LUN 0 will return
the in-band session will not be allowed to
modify the array configuration. If you try, the
results buffer of LUN 0 will return
Process X has the configuration
reserved.
ID of this session = Y
Ready.
2
The initiator issues a SCSI Write Buffer
command to LUN 0. A Write Buffer command
must be accompanied by an ASCII buffer
representing the CLI command string such as
command to LUN 0. A Write Buffer command
must be accompanied by an ASCII buffer
representing the CLI command string such as
set DiamondName Omega1
3
LUN 0 will execute the command line and
create feedback in the form of ASCII characters
into a buffer. This buffer is 8 KB and circular.
Retrieve the results by issuing a Read Buffer
command before issuing another Write Buffer
command.
create feedback in the form of ASCII characters
into a buffer. This buffer is 8 KB and circular.
Retrieve the results by issuing a Read Buffer
command before issuing another Write Buffer
command.
4
A subsequent Write Buffer command will
execute the new command line and overwrite
the previous results in the buffer with new
results.
execute the new command line and overwrite
the previous results in the buffer with new
results.
5
LUN 0 can be released by issuing a SCSI
Release command to the LUN after each
Write/Read Buffer pair, or multiple Write/Read
Buffer pairs.
Release command to the LUN after each
Write/Read Buffer pair, or multiple Write/Read
Buffer pairs.
I/O details
The buffer sent to the Services LUN during the
data out phase of a Write Buffer command must
be
The buffer sent to the Services LUN during the
data out phase of a Write Buffer command must
be
• ASCII
data
• maximum 80 bytes length
• terminated with either a carriage return
character (0x0D), line feed character (0x0A) or
NULL character (0x00)
NULL character (0x00)
• Characters following the first carriage return
character, line feed character or NULL character
are ignored.
are ignored.
The buffer retrieved from the Services LUN
during the data-in phase of a Read Buffer
command will be
during the data-in phase of a Read Buffer
command will be
• ASCII
data
• 8 KBytes (8192 bytes) in length
• terminated with a NULL character (0x00)
• Characters following the NULL character are
meaningless.
Initiator (Host)
Diamond Array
Reserve LUN 0
return: “ok”
Write Buffer
LUN 0
bid ‘AA’
“get Temperature”
LUN 0
bid ‘AA’
“get Temperature”
executes the CLI command,
stores output in buffer
stores output in buffer
Read Buffer
LUN 0
bid ‘AA’
LUN 0
bid ‘AA’
return:
”Temperature=28C\r\n\Ready
.\r\n\0”
”Temperature=28C\r\n\Ready
.\r\n\0”
Release LUN 0
return: “ok”