sg_copy_results [--failed|--params|--receive|--status] [--help] [--hex] [--list_id=ID] [--readonly] [--verbose] [--version] [--xfer_len=BTL] DEVICE
This utility is designed to query the status of the SCSI Extended Copy (XCOPY) facility (see SPC-3 revision 23 sections 6.3 and 6.17), present in some modern storage arrays. This utility sends a SCSI RECEIVE COPY RESULTS command to the given DEVICE and displays the response.
During the draft stages of SPC-4 the T10 committee has expanded the XCOPY command so that it now has two variants: "LID1" (for a List Identifier length of 1 byte) and "LID4" (for a List Identifier length of 4 bytes). This utility supports the older, LID1 variant which is also found in SPC-3 and earlier. While the LID1 variant in SPC-4 is command level (binary) compatible with XCOPY as defined in SPC-3, some of the command naming has changed. This utility uses the older, SPC-3 XCOPY names.
The command has four distinct modes of operation, distinguished by the service action field:
- COPY STATUS [SPC-4: RECEIVE COPY STATUS(LID1)]
Displays the current status of the EXTENDED COPY command identified by the list id field.
- RECEIVE DATA [SPC-4: RECEIVE COPY DATA(LID1)]
Return the held data read by the EXTENDED COPY command identified by the list id field. This option is only meaningful if the respective segment descriptor are supported.
- OPERATING PARAMETERS [SPC-4: RECEIVE COPY OPERATING PARAMETERS]
Return copy manager operating parameters. This option is also useful to determine if the SCSI Extended Copy facility is supported.
- FAILED SEGMENT DETAILS [SPC-4: RECEIVE COPY FAILURE DETAILS(LID1)]
Return copy target device sense data and other information about any failed segments.
Arguments to long options are mandatory for short options as well.
- -f, --failed
sets the service action field to FAILED SEGMENT DETAILS .
- -h, --help
output the usage message then exit.
- -H, --hex
prints out the response buffer in hex.
- -l, --list_id=ID
sets the list identifier field to ID (default: 0).
- -p, --params
sets the service action field to OPERATING PARAMETERS . This is the default.
- -R, --readonly
open the DEVICE read-only (e.g. in Unix with the O_RDONLY flag). The default is to open it read-write.
- -r, --receive
sets the service action field to RECEIVE DATA .
- -s, --status
sets the service action field to COPY STATUS .
- -v, --verbose
increase the level of verbosity, (i.e. debug output).
- -V, --version
print the version string and then exit.
- -x, --xfer_len=BTL
sets the allocation length field to BTL. It is the byte transfer length and is the maximum (byte) size of the response. BTL must be less than 10000 and defaults to 520.
Decoding of RECEIVE DATA service action is not implemented.
In a similar way the functionality of sg_xcopy has been ported to the more general ddpt utility (and package), the functionality of this utility has been ported to the ddptctl utility.
Query the operating parameters for a device:
# sg_copy_results -p /dev/sdo
Receive copy results (report operating parameters):
Supports no list identifier: no
Maximum target descriptor count: 2
Maximum segment descriptor count: 1
Maximum descriptor list length: 92 bytes
Maximum segment length: 33553920 bytes
Inline data not supported
Held data limit: 0 bytes
Maximum stream device transfer size: 0 bytes
Total concurrent copies: 0
Maximum concurrent copies: 255
Data segment granularity: 512 bytes
Inline data granularity: 1 bytes
Held data granularity: 1 bytes
Implemented descriptor list:
Segment descriptor 0x02: Copy from block device to block device
Target descriptor 0xe4: Identification descriptor
The exit status of sg_copy_results is 0 when it is successful. Otherwise see the sg3_utils(8) man page.
Written by Douglas Gilbert.
Report bugs to <dgilbert at interlog dot com>.
Copyright © 2012-2014 Hannes Reinecke and Douglas Gilbert
This software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.