Solved [Solved] 3 TB drive reporting 2 TB - yet others don't

This seems odd. I'm building an EXSI-based storage server. I have a LSI SAS2008 based card (a Dell PERC H310 cross flashed to IT firmware), which is passed-through to a new FreeBSD 10 VM. There are eight 3 TB drives hanging off of the card. That much of it seems to be working. I see the disks in dmesg (serial numbers stripped out):

Code:
da3 at mps0 bus 0 scbus3 target 2 lun 0
da3: <ATA ST3000DM001-1CH1 CC24> Fixed Direct Access SCSI-6 device
da3: Serial Number             W1F2####
da3: 600.000MB/s transfers
da3: Command Queueing enabled
da3: 2861588MB (5860533168 512 byte sectors: 255H 63S/T 364801C)
da3: quirks=0x8<4K>
da4 at mps0 bus 0 scbus3 target 3 lun 0
da4: <ATA ST3000DM001-1CH1 CC24> Fixed Direct Access SCSI-6 device
da4: Serial Number             W1F2####
da4: 600.000MB/s transfers
da4: Command Queueing enabled
da4: 1907750MB (3907073134 512 byte sectors: 255H 63S/T 243204C)
da4: quirks=0x8<4K>
da7 at mps0 bus 0 scbus3 target 6 lun 0
da7: <ATA ST3000DM001-1CH1 CC24> Fixed Direct Access SCSI-6 device
da7: Serial Number             W1F2####
da7: 600.000MB/s transfers
da7: Command Queueing enabled
da7: 2861588MB (5860533168 512 byte sectors: 255H 63S/T 364801C)
da7: quirks=0x8<4K>
However, notice that da4 is reporting 2 TB. Notice that the drive models match da3 and da7, which both report 3 TB. After a little googling I thought maybe it was the partition table, so I destroyed the GPT on da4 and rebooted. It still shows 2 TB.

Any thoughts from anyone? Thanks in advance.
 
Re: 3 TB drive reporting 2 TB - yet others don't

Maybe a jumper or internal configuration to have it limit capacity for backwards compatibility? Does diskinfo -v da4 look different from the other drives?
 
Re: 3 TB drive reporting 2 TB - yet others don't

There are no jumpers set, but I think you're onto something. This was the one drive of the eight that I tried to update firmware on, but the Seagate firmware utility told me 'no'. I have since pointed the Seagate DiscWizard at the drive (in another machine), but it doesn't do anything, just reports there are no drives for it to act on. That might be because the machine I tried it on isn't in AHCI mode, it's in Intel fakeraid mode, but I'm not changing that as it will probably make Windows unbootable.

diskinfo definitely shows different numbers between da4 and the others.

So, AFAICT, that means it isn't a GPT vs. MBR thing, the drive is actually reporting 2 TB to the OS.

All the googling I do points me at the GPT/MBR thing though, can't find anything related to the hardware forcing itself down to 2 TB.
 
Re: 3 TB drive reporting 2 TB - yet others don't

The protective MBR in GPT is limited to 2 TB, but that's a software thing. It does not affect the capacity the drive reports to the operating system. That can be tested by destroying any partitioning on that drive with (as long as it's still da4) gpart destroy -F da4.

diskinfo(8) reads the actual capacity, too.
 
Re: 3 TB drive reporting 2 TB - yet others don't

wblock@ said:
The protective MBR in GPT is limited to 2TB, but that's a software thing. It does not affect the capacity the drive reports to the operating system. That can be tested by destroying any partitioning on that drive with (as long as it's still da4) gpart destroy -F da4.
That was the first thing I did. After that didn't do it I wrote a megabyte of zeros to da4 with dd if=/dev/zero of=/dev/da4 bs=1M count=1. I rebooted the VM between each command. It still reports 2 TB. I'll fire the machine back up so I can copy-paste the diskinfo numbers here.
 
Re: 3 TB drive reporting 2 TB - yet others don't

Output from diskinfo (serial numbers and hostname redacted):
Code:
# diskinfo -v da4
da4
        512             # sectorsize
        2000421444608   # mediasize in bytes (1.8T)
        3907073134      # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        243204          # Cylinders according to firmware.
        255             # Heads according to firmware.
        63              # Sectors according to firmware.
                    W1F2####    # Disk ident.

# diskinfo -v da3
da3
        512             # sectorsize
        3000592982016   # mediasize in bytes (2.7T)
        5860533168      # mediasize in sectors
        4096            # stripesize
        0               # stripeoffset
        364801          # Cylinders according to firmware.
        255             # Heads according to firmware.
        63              # Sectors according to firmware.
                    W1F2####    # Disk ident.
The firmware must be wrong. I've cross-posted this to the Seagate support forum, at this point I'm pretty sure it's not related to FreeBSD.

Thank you for replying. If anyone happens to have any other thoughts I'm still very willing to hear it.
 
Re: 3 TB drive reporting 2 TB - yet others don't

I've solved this issue. In case anyone cares, here's what happened.

It appears the one machine I plugged this 3 TB drive into has a "feature" (very large air-quotes go here) where the motherboard BIOS writes some data to a Host Protected Area, effectively resizing the drive. Obviously this "feature" isn't supposed to need a whole TB but bugs happen. I was able to solve this by using a tool to remove the HPA, which in itself took some planning - the tools that solve this apparently need the motherboard to be in IDE or AHCI mode, while my home machine was in fakeraid mode.
 
Back
Top