Unsolved
This post is more than 5 years old
1 Message
0
896
September 7th, 2012 08:00
CX4 thin-provisioning, SPC-3 and Linux
Hi !
The CX4 storage array familiy offers the possibility to create thin-provisioned LUNs.
I've been trying to make this feature work with Linux, but couldn't without modifying the SCSI module (sd_mod) to correct what appears to be a misfunction from the array.
Here is what happens :
Upon LUN discovery, the kernel sends a READ CAPACITY command to the LUN to get some info about it. Now, two READ CAPACITY commands exist :
- READ CAPACITY(10)
- READ CAPACITY(16)
The (16) version is more recent, and provides more information that the (10) version, most notably the thin-prov related ones.
However, as stated here, the READ CAPACITY(16) can make some devices hang so the kernel must check what kind of device it deals with before going on.
This test is made in the sd_try_rc16_first function, which looks like this :
1898 static int sd_try_rc16_first(struct scsi_device *sdp)
1899 {
1900 if (sdp->host->max_cmd_len < 16)
1901 return 0;
1902 if (sdp->try_rc_10_first)
1903 return 0;
1904 if (sdp->scsi_level > SCSI_SPC_2)
1905 return 1;
1906 if (scsi_device_protection(sdp))
1907 return 1;
1908 return 0;
1909 }
max_lun_cmds and SCSI protection are out of scope, so the only real test is about the SCSI level, which must be at least SPC-3 (i.e. SBC-2). However, ALL the LUNs on our CX4/VNX/DMX/VMAX are reporting only SPC-2, as shown below :
# sg_inq /dev/sdy
standard INQUIRY:
PQual=0 Device_type=0 RMB=0 version=0x04 [SPC-2]
[AERC=0] [TrmTsk=0] NormACA=1 HiSUP=1 Resp_data_format=2
SCCS=0 ACC=0 TPGS=3 3PC=0 Protect=0 BQue=0
EncServ=0 MultiP=1 (VS=1) [MChngr=0] [ACKREQQ=0] Addr16=0
[RelAdr=0] WBus16=0 Sync=0 Linked=0 [TranDis=0] CmdQue=1
[SPI: Clocking=0x0 QAS=0 IUS=0]
length=193 (0xc1) Peripheral device type: disk
Vendor identification: DGC
Product identification: VRAID
Product revision level: 0430
so the kernel doesn't even check if the device supports thin-provisioning, so it's doesn't work...
SPC-3 is more than 5 years old, and the arrays obviously support it because when sending raw WRITE SAME or even the UNMAP command which is even more recent.
Is there a way to make the LUNs appear as SPC-3 ?
Thanks !
0 events found


kelleg
4 Operator
•
4.5K Posts
0
September 10th, 2012 14:00
This is probably beyond the scope of this forum. I would recommend that you open a case with EMC and they will need to contact engineering in order to provide an answer for your question.
glen