[OpenIndiana-discuss] scsa1394, 32 bit processors, and disks == 2TB in size?

Brandon Wahurst warhurst_002 at yahoo.com
Sun Jan 26 14:49:33 UTC 2014


First I'd like to say hello to the user community.  It has been almost 15 years since I've touched a Solaris box and I
now have been looking at ZFS for reliable storage, and have decided that OpenSolaris is the best bet for using ZFS
as ZFS on Linux appears to have myriad bugs and Btrfs, well, I won't start any storage wars here, but I'll just say it
really isn't the right fit for me.  In that vein, I am planning on getting a 64-bit server type setup, but until then, I've been
dusting off an older 32-bit setup for doing some testing.  The hardware is pretty old (probably about 7 years now, not
quite ancient).  Its an old model SS51G shuttle with a 1.7Ghz Celeron and 2GB of ram.  Speedwise, its a dog, and I'm sure
it hits several other performance bottlenecks.  Currently, I'm trying to disregard performance and just test the setup.  In
that vein I've been trying to get OI to recognize a disk that is actually 3TB (yeah, I know, "32 bit, there's your problem right there!").  
Before I get a flood of, "you really need 64 bit hardware", or "3TB won't be recognized", I'll state that I already knew that.
Previously, I had set up a FreeBSD system and it had similar problems with 3TB, but I thought I could possibly change the
block size to 4K, however, the disk reporting seemed to prevent me from actually doing that.  I'll get to that in a second.  Additionally,
even though FreeBSD seemed somewhat stable, OpenSolaris appears, from the outside, to be more stable still, and this is
ultimately what I want, so I thought I'd try OI.

All of that said, let me explain the setup a little further:

The 3TB disk is in an external storage enclosure that supports large disks, but it also has the ability to make them appear like 2TB disks.
This appeared to be enough to make things work in FreeBSD.  It was annoying to lose 1TB, but at least it saw the disk.  The enclosure
is on a Firewire bus, so OI sees the disk, but it appears that the scsa1394 driver reports that 0xFFFFFFFF sectors is too large for a 32 bit
system.  Here is the output of prtconf -v for the firewire:

            Device Minor Nodes:
                dev=(33,0)
                    dev_path=/pci at 0,0/pci1106,3044 at 10:devctl
                        spectype=chr type=minor
                        dev_link=/dev/1394/hba0
            unit, instance #0
                Hardware properties:
                    name='initiator-interconnect-type' type=string items=1
                        value='SPI'
                    name='scsi-tag-age-limit' type=int items=1
                        value=00000002
                    name='scsi-selection-timeout' type=int items=1
                        value=000000fa
                    name='scsi-watchdog-tick' type=int items=1
                        value=0000000a
                    name='scsi-reset-delay' type=int items=1
                        value=00000bb8
                    name='scsi-options' type=int items=1
                        value=00107ff8
                    name='scsi-enumeration' type=int items=1
                        value=00000000
                    name='active-dma-flush' type=int items=1
                        value=00000001
                    name='unit-dir-offset' type=int items=1
                        value=0000000a
                    name='reg' type=int items=6
                        value=0030e002.ee45480e.00000000.00000000.00000000.00000000
                    name='compatible' type=string items=2
                        value='firewire00609e,010483' + 'firewire0030e0,00f946'
                    name='hp-node' type=int items=1
                        value=00000000
                disk (driver not attached)
                    Hardware properties:
                        name='inquiry-revision-id' type=string items=1
                            value='0'
                        name='inquiry-product-id' type=string items=1
                            value='RAID'
                        name='inquiry-vendor-id' type=string items=1
                            value='External'
                        name='inquiry-device-type' type=int items=1
                            value=00000000
                        name='class' type=string items=1
                            value='scsi'
                        name='scsa1394' type=boolean
                        name='compatible' type=string items=1
                            value='sd'
                        name='hotpluggable' type=boolean
                        name='pm-capable' type=int items=1
                            value=00000001
                        name='lun' type=int items=1
                            value=00000000
                        name='target' type=int items=1
                            value=00000000


As you can see here, the disk driver isn't attached.  It appears that as soon as the scsa1394 driver sees the disk is 0xFFFFFFFF sectors (I'd write that in
decimal, but its easier to see that its bumping the 32 bit boundary here), it bails, which is understandable to some extent, but that means that I can't even
use a 2TB disk.  I can not appear to format the disk as it does not appear anymore now that the driver detached.  I could swear it WAS available once, but
somehow, its gone completely now.

Question 1:  Is there some way I can convince the scsa1394 driver that it really *IS* capable of accessing the drive (at least as far as 2TB)?  I would like
to at least set the disk up as a ZFS system (actually, I've been saying disk, but there are really a pair of them).

Question 2:  Is there some OTHER way to label the disk so that I might be able to use 3TB?  I.e. forcing 4K sectors?  I know that 4K sector sizes may be
a "sore" issue in OpenSolaris, meaning it hasn't exactly been resolved.  Although I'm not sure it is resolved anywhere else either, as I think most OS's
are depending on 64 bit to save their bacon for large disks.

Question 3:  Earlier I mentioned it had been 15 years since I'd touched a Solaris box.  As I've looked through the documentation, I am reminded of the large
binders that used to come with Solaris that would actually tell you practically what every command did in excruciating, but much appreciated detail.  However,
I am also reminded of the long hours spent poring over such documentation looking for just the right switch or option to any given command.  I've tried using
some of the search tools at the Oracle documentation sites to solve this problem.  However, entering disk, or SCSI, or firewire in combination with anything
seemed to produce a myriad results.  Is there a better way to search through that documentation?  Or even a better indexed set?  When you have general
terms like "disk" or even, surprisingly, "firewire" it seems to just clutter results.

Question 4: (Last one this round, I promise) Is there a good overview to the commands for inserting/reinserting drivers into OpenSolaris?  The system really
is quite a bit different, although some commands are coming back to me.  As an addendum, how about providing driver parameters?  I tried to comb
through the docs, but I can see its going to take a while to find what I'm searching for.  

Anyway, thanks for taking the time to read my tale of woe, and hopefully, there is a positive way to resolve this (other than get 64 bit... I'm working on that...
servers don't grow on trees around here.  Maybe they do elsewhere.)  I am looking forward to being able to have safe reliable storage for my data.



More information about the OpenIndiana-discuss mailing list