FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3

Ken Merry ken at freebsd.org
Fri Oct 20 02:09:28 UTC 2017


There are probably 3 solutions to get things fixed for you:

1. Track down why the mpr driver is sending requests that the drive doesn’t like and fix it.

2. Turn on DPICZ in the drive and disable setting protection information in the mpr driver. This will take commenting out the right code and recompiling the kernel.

3. Use an older version of FreeBSD to read the data and the reformat and write it back.

We need to do #1 for the sake of the users who will run into this. #2 hopefully will work and won’t require running an old OS. #3 is essentially giving up.

For #2, If you feel comfortable modifying the mpr driver, just look for the eedp code and turn it off. Otherwise I can try to come up with something tomorrow.

Ken
-- 
Ken Merry
ken at FreeBSD.ORG

> On Oct 19, 2017, at 20:51, Shiva Bhanujan <Shiva.Bhanujan at Quorum.com> wrote:
> 
> would it possible to by default read SCSI disks w/ type 2 protection in 10.3 and above?  Please note, that the issue that I'm facing, is that the partitions are created in FreeBSD 10.2, and for the Seagate drives ST4000NM0005, they are created w/ type 2 partition.  read/write to these disks in FreeBSD 10.2 works just fine.  However, if I upgrade to FreeBSD 10.3 and above, I get SCSI errors for only these disks.  Would it be possible, that the SCSI reads default to reading disks that have type 2 partition?  In such a case, removing type 2 partition would not be needed.
> 
> all other params in the output of sg_readcap look the same for the ST4000NM0023, where this issue isn't seen.
> 
> root at Filer:~ #
> root at Filer:~ # camcontrol devlist | grep da0
> <SEAGATE ST4000NM0023 GS14>        at scbus2 target 0 lun 0 (pass1,da0)
> root at Filer:~ #
> root at Filer:~ # camcontrol devlist | grep da2
> <SEAGATE ST4000NM0005 MS05>        at scbus2 target 2 lun 0 (pass3,da2)
> root at Filer:~ #
> root at Filer:~ # sg_readcap --16 da0
> Read Capacity results:
>   Protection: prot_en=0, p_type=0, p_i_exponent=0
>   Logical block provisioning: lbpme=0, lbprz=0
>   Last logical block address=7814037167 (0x1d1c0beaf), Number of logical blocks=7814037168
>   Logical block length=512 bytes
>   Logical blocks per physical block exponent=0
>   Lowest aligned logical block address=0
> Hence:
>   Device size: 4000787030016 bytes, 3815447.8 MiB, 4000.79 GB
> root at Filer:~ #
> root at Filer:~ # sg_readcap --16 da2
> Read Capacity results:
>   Protection: prot_en=1, p_type=1, p_i_exponent=0 [type 2 protection]
>   Logical block provisioning: lbpme=0, lbprz=0
>   Last logical block address=7814037167 (0x1d1c0beaf), Number of logical blocks=7814037168
>   Logical block length=512 bytes
>   Logical blocks per physical block exponent=0
>   Lowest aligned logical block address=0
> Hence:
>   Device size: 4000787030016 bytes, 3815447.8 MiB, 4000.79 GB
> root at Filer:~ #
> 
> 
> is there some default SCSI read that is configurable in FreeBSD 10.3 and above?
> 
> 
> 
> 
> 
> 
> 
> From: Steven Hartland [killing at multiplay.co.uk]
> 
> Sent: Thursday, October 19, 2017 3:23 PM
> 
> To: Ken Merry; Shiva Bhanujan
> 
> Cc: freebsd-scsi at freebsd.org
> 
> Subject: Re: FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> With type 2 protection the ref tag has to match the LBA + N 
> 
> Some info about it is here
> 
> https://www.usenix.org/legacy/event/lsf07/tech/petersen.pdf
> 
> 
> https://www.seagate.com/files/staticfiles/docs/pdf/whitepaper/safeguarding-data-from-corruption-technology-paper-tp621us.pdf
> 
> From reading the seagate paper the only way to change the protection level is to format.
> 
> 
> 
> 
> On Thu, 19 Oct 2017 at 22:43, Shiva Bhanujan <Shiva.Bhanujan at quorum.com> wrote:
> 
> 
> 
> Here's the output of sg_readcap.
> 
> 
> 
> [root at Filer-20-241 ~]# sg_readcap --16 da1
> 
> Read Capacity results:
> 
>   Protection: prot_en=1, p_type=1, p_i_exponent=0 [type 2 protection]
> 
>   Logical block provisioning: lbpme=0, lbprz=0
> 
>   Last logical block address=7814037167 (0x1d1c0beaf), Number of logical blocks=7814037168
> 
>   Logical block length=512 bytes
> 
>   Logical blocks per physical block exponent=0
> 
>   Lowest aligned logical block address=0
> 
> Hence:
> 
>   Device size: 4000787030016 bytes, 3815447.8 MiB, 4000.79 GB
> 
> [root at Filer-20-241 ~]#
> 
> 
> 
> [root at Filer-20-241 ~]# camcontrol modepage da1 -v -m 10 | grep DPICZ
> 
> DPICZ:  1
> 
> [root at Filer-20-241 ~]#
> 
> 
> 
> I did toggle the DPICZ on the drive from 1 to 0 and back.  The sg_readcap still shows 'type 2 protection', and that gpart still shows the SCSI errors.  I've narrowed this down to the Seagate ST4000NM0005, w/ a DOM of 03/2016.  We also have Constellation ES.3
> drives model ST4000NM0023 that don't exhibit this issue.
> 
> 
> 
> I did go through the URLs that you have mentioned and that's how I found that using sg_format did address this issue.  Again, that works only for new drives and we have appliances that already have data, for which sg_format isn't an option.
> 
> 
> 
> Is this boiling down to the 'type 2 protection' tag that we see in sg_readcap?  if so, would there be a way to turn it off?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> From: Ken Merry [ken at freebsd.org]
> 
> 
> 
> Sent: Thursday, October 19, 2017 2:17 PM
> 
> 
> 
> To: Shiva Bhanujan
> 
> 
> 
> Cc: 
> freebsd-scsi at freebsd.org
> 
> 
> 
> Subject: Re: FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> By the way, the message you referenced is here:
> 
> 
> 
> 
> 
> 
> 
> 
> 
> https://lists.freebsd.org/pipermail/freebsd-scsi/2017-January/007237.html
> 
> 
> 
> 
> 
> 
> 
> 
> 
> And there is more here:
> 
> 
> 
> 
> 
> 
> 
> 
> 
> https://bugs.freenas.org/issues/14517
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Ken
> 
> 
> 
> 
> 
> 
> 
>> 
> 
> 
> Ken Merry
> 
> 
> 
> ken at FreeBSD.ORG
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Oct 19, 2017, at 5:15 PM, Ken Merry <ken at freebsd.org> wrote:
> 
> 
> 
> 
> 
> 
> 
> 
> 
> What does sg_readcap —16 show for these drives?
> 
> 
> 
> If it has type 2 protection turned on, check to see what the DCIPZ value is in the control mode page:
> 
> 
> 
> camcontrol modepage daX -v -m 10
> 
> 
> 
> If that is set to 0, add a -e to the above command line and see if you can set it to 1.  That may or may not help anything.
> 
> 
> 
> The mpr(4) and mps(4) drivers try to support protection information if it is turned on on the drive.  So, they set the protection information if protection information is turned on in the drive.  For that reason, setting the DCIPZ bit may not fix it.
> 
> 
> 
> There could be a problem with how that is implemented that’s causing the drives to reject the command, but I’m not sure.
> 
> 
> 
> If it is, Steve (CCed) can help us debug it.
> 
> 
> 
> Ken
> 
>> 
> Ken Merry
> 
> ken at FreeBSD.ORG
> 
> 
> 
> 
> 
> 
> 
> On Oct 17, 2017, at 9:54 PM, Shiva Bhanujan <Shiva.Bhanujan at Quorum.com> wrote:
> 
> 
> 
> Sorry.  perhaps I have failed to mention, the SCSI errors are only w/ the seagate drives.  These are of the model ST4000NM0023.
> 
> 
> 
> 
> 
> From: Shiva Bhanujan
> 
> Sent: Tuesday, October 17, 2017 6:53 PM
> 
> To: Kenneth D. Merry
> 
> Cc: 
> freebsd-scsi at freebsd.org <mailto:freebsd-scsi at freebsd.org>
> 
> Subject: RE: FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3
> 
> 
> 
> Please note, that this isn't an issue w/ Toshiba drives.  is this a firmware issue by any chance?
> 
> 
> 
> 
> 
> 
> 
> From: 
> owner-freebsd-scsi at freebsd.org <mailto:owner-freebsd-scsi at freebsd.org> [owner-freebsd-scsi at freebsd.org
> <mailto:owner-freebsd-scsi at freebsd.org>] on behalf of Shiva Bhanujan [shiva.bhanujan at quorum.net
> <mailto:shiva.bhanujan at quorum.net>]
> 
> Sent: Tuesday, October 17, 2017 6:08 AM
> 
> To: Kenneth D. Merry
> 
> Cc: 
> freebsd-scsi at freebsd.org <mailto:freebsd-scsi at freebsd.org>
> 
> Subject: RE: FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3
> 
> 
> 
> Since I started having the SCSI errors, I ended up running sg_format to format the disks. I've found that once the disks are formatted using sg_format, there are no SCSI errors. The errors that show up during the format are towards the end of the dmesg output.
> 
> 
> 
> (da0:mpr0:0:8:0): SCSI sense: NOT READY asc:4,4 (Logical unit not ready, format in progress)
> 
> (da0:mpr0:0:8:0): Progress: 9% (6256/65536) complete
> 
> 
> 
> once the format is done, I can successfully format and partition using gpart.
> 
> 
> 
> 
> 
> The errors that show up when I try to run gpart for the first time are as follows:
> 
> 
> 
> (da9:mpr0:0:17:0): READ(10). CDB: 28 00 00 00 00 00 00 01 00 00
> 
> (da9:mpr0:0:17:0): CAM status: SCSI Status Error
> 
> (da9:mpr0:0:17:0): SCSI status: Check Condition
> 
> (da9:mpr0:0:17:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
> 
> (da9:mpr0:0:17:0): Error 22, Unretryable error
> 
> 
> 
> 
> 
> It seems that it's the read that is failing, and is being tagged as an illegal request. While sg_format will address the issue at hand, this isn't an option for us, because there are appliances that were formatted using FreeBSD 10.2, and an upgrade to 10.3
> 
> or 11.x might be an issue?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ________________________________
> 
> From: Kenneth D. Merry [ken at FreeBSD.ORG <mailto:ken at FreeBSD.ORG>]
> 
> Sent: Monday, October 16, 2017 7:31 PM
> 
> To: Shiva Bhanujan
> 
> Cc: 
> freebsd-scsi at freebsd.org <mailto:freebsd-scsi at freebsd.org>
> 
> Subject: Re: FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3
> 
> 
> 
> On Tue, Oct 17, 2017 at 01:19:27 +0000, Shiva Bhanujan wrote:
> 
> Hi Ken,
> 
> 
> 
> I've attached the output of dmesg. Here's the SCSI CDB for a sample drive, da3.
> 
> 
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 00 00 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 02 00 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 ba 00 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 bc 00 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 a0 00 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 a0 02 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 ba 22 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 bc 22 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 00 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 02 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 9f fc 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 9f fe 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 00 00 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 02 00 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 ba 00 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 bc 00 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 a0 00 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 a0 02 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 ba 22 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(16). CDB: 88 00 00 00 00 01 d1 c0 bc 22 00 00 01 00 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 00 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 00 02 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 9f fc 22 00 01 00 00
> 
> (da3:mpr0:0:11:0): READ(10). CDB: 28 00 00 9f fe 22 00 01 00 00
> 
> 
> 
> 
> 
> My understanding is that FreeBSD 11.1 contains the mpr(4) driver? I've tried this w/ 11.1, w/ the same results.
> 
> 
> 
> 
> 
> 
> 
> Yes, the mpr(4) driver is in all recent FreeBSD releases.
> 
> 
> 
> In looking at the dmesg, this is telling:
> 
> 
> 
> (da0:mpr0:0:8:0): WRITE(6). CDB: 0a 00 00 00 01 00
> 
> (da0:mpr0:0:8:0): CAM status: SCSI Status Error
> 
> (da0:mpr0:0:8:0): SCSI status: Check Condition
> 
> (da0:mpr0:0:8:0): SCSI sense: NOT READY asc:4,4 (Logical unit not ready, format in progress)
> 
> (da0:mpr0:0:8:0): Progress: 9% (6256/65536) complete
> 
> (da0:mpr0:0:8:0): Error 16, Unretryable error
> 
> 
> 
> If the drives are in the process of formatting, I guess it may make sense
> 
> for them to reject read commands. Otherwise, it makes no sense for a hard
> 
> drive to reject reads.
> 
> 
> 
> Are you able to check the status of the format? You should be able to send
> 
> a test unit ready and figure out how far along the format is:
> 
> 
> 
> camcontrol tur da0 -v
> 
> 
> 
> And so on for each of the drives.
> 
> 
> 
> Ken
> 
> 
> 
> ________________________________
> 
> From: Kenneth D. Merry [ken at FreeBSD.ORG <mailto:ken at FreeBSD.ORG><mailto:ken at FreeBSD.ORG>
> <mailto:ken at FreeBSD.ORG>>]
> 
> Sent: Monday, October 16, 2017 7:42 AM
> 
> To: Shiva Bhanujan
> 
> Cc: 
> freebsd-scsi at freebsd.org <mailto:freebsd-scsi at freebsd.org><mailto:freebsd-scsi at freebsd.org>
> <mailto:freebsd-scsi at freebsd.org>>
> 
> Subject: Re: FreeBSD 10.3/11.0 SCSI errors with Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3
> 
> 
> 
> On Fri, Oct 13, 2017 at 20:12:02 +0000, Shiva Bhanujan wrote:
> 
> Hello,
> 
> 
> 
> I have a FreeBSD 10.3 install in a HVM on XenServer 6.5. The HBA330 SAS-3 controller is in pcipassthrough mode to the FreeBSD VM. When I try to access the disks (/dev/da0...) using gpart, I get SCSI errors, like the following:
> 
> 
> 
> 
> 
> 
> 
> (da0:mpr0:0:0:0): CAM status: SCSI Status Error
> 
> 
> 
> (da0:mpr0:0:0:0): SCSI status: Check Condition
> 
> 
> 
> (da0:mpr0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
> 
> 
> 
> 
> 
> 
> 
> The error message above is missing the SCSI CDB. We need that in order to
> 
> figure out what command the drive is complaining about.
> 
> 
> 
> The error message means that FreeBSD is sending a SCSI command that the
> 
> drive doesn't support. That can be benign, or it can cause a problem.
> 
> 
> 
> So, what error does gpart give you when you have this problem?
> 
> 
> 
> I get the same errors w/ FreeBSD 11.0 also. Running 10.3 natively also has the same result.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Please note, that these errors don't show up on a Fusion-MPT SAS-2 controller, or a MegaRAID SAS 2208 controller. Additionally, FreeBSD 10.2 doesn't have any SCSI errors on the HBA330 SAS-3 controller either.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Is there a different version of the mpr driver I should be using? I haven't checked the differences between the mpr driver in 10.2 vs 10.3 and 11.0. I do see that there are others who have experienced these issues. Can somebody please provide me some pointers
> 
> as to why this is occurring? Or if there are some driver changes that I might be able to incorporate?
> 
> 
> 
> 
> 
> 
> 
> In general, the latest mpr(4) driver is the best one. The driver itself
> 
> generally doesn't send SCSI commands (there are a few exceptions), but
> 
> rather passes them through from the upper layers of CAM.
> 
> 
> 
> Please note, that I have gone through the mail titled "scsi error at SEAGATE ST1200MM0088 TT31" and have started sg_format on all the SEAGATE disks. Having said that, I still need to figure out what would happen, if the disks
> 
> were written to using FreeBSD 10.2, which doesn't seem to have SCSI errors, and when I try to upgrade to 10.3. Any help is appreciated.
> 
> 
> 
> 
> 
> 
> 
> Send the full error messages, and we may be able to figure out what's going
> 
> on.
> 
> 
> 
> Ken
> 
> --
> 
> Kenneth Merry
> 
> ken at FreeBSD.ORG <mailto:ken at FreeBSD.ORG><mailto:ken at FreeBSD.ORG>
> <mailto:ken at FreeBSD.ORG>><mailto:ken at FreeBSD.ORG>
> <mailto:ken at FreeBSD.ORG>>
> 
> ________________________________
> 
> 
> 
> 
> 
> 
> 
> --
> 
> Kenneth Merry
> 
> ken at FreeBSD.ORG <mailto:ken at FreeBSD.ORG><mailto:ken at FreeBSD.ORG>
> <mailto:ken at FreeBSD.ORG>>
> 
> ________________________________
> 
> _______________________________________________
> 
> freebsd-scsi at freebsd.org <mailto:freebsd-scsi at freebsd.org>
> mailing list
> 
> https://lists.freebsd.org/mailman/listinfo/freebsd-scsi <https://lists.freebsd.org/mailman/listinfo/freebsd-scsi>
> 
> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org <mailto:freebsd-scsi-unsubscribe at freebsd.org>"
> 
> 
> 
> 
> 
> _______________________________________________
> 
> freebsd-scsi at freebsd.org mailing list
> 
> https://lists.freebsd.org/mailman/listinfo/freebsd-scsi
> 
> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org"
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> 
> freebsd-scsi at freebsd.org mailing list
> 
> https://lists.freebsd.org/mailman/listinfo/freebsd-scsi
> 
> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org"
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 



More information about the freebsd-scsi mailing list