Jump to content

Promise SATA300 TX4 Port Assignment Order


Koolkiwi

Recommended Posts

I just finished installing 2 x Promise SATA300 TX4 PCI controllers into my Asus P5B-E unRAID system, to take the total SATA-300 port count to the max of 14. :)

 

While testing, I noticed that the TX4 SATA ports are assigned by Linux in a different sequence to what is indicated on the Promise card (although the port mis-assignment is consistent on both of the cards I installed).

 

This possibly doesn't make any difference to anything, but I was wondering if this is normal behaviour, and if there was a specific reason for it (eg. this may just be a known Linux "sata_promise" driver irregularity)?

 

However, the reason why I ask is that I had intended to add the hard drives by physically installing new drives in logical port order sequence.

 

The onboard 6 x SATA ports are labeled SATA1 ... SATA6, and they correspond directly to ata1 ... ata6 (and scsi1 .. scsi6) in the unRAID syslog, so no problem here.

 

The first Promise SATA300 TX4 card is inserted into the motherboards PCI1 slot (the first PCI slot), and it's SATA ports are detected as ata7 ... ata10 (scsi7 ... scsi10) in the unRAID syslog, however the mapping of these logical port identifiers to the physical ports on the Promise card goes like this:

 

- ata7 (scsi7) is the TX4's physical "Port 3"

- ata8 (scsi8) is the TX4's physical "Port 2"

- ata9 (scsi9) is the TX4's physical "Port 4"

- ata10 (scsi10) is the TX4's physical "Port 1"

 

Likewise, for the second TX4 card installed into the motherboards PCI2 slot I get:

 

- ata11 (scsi11) is the TX4's physical "Port 3"

- ata12 (scsi12) is the TX4's physical "Port 2"

- ata13 (scsi13) is the TX4's physical "Port 4"

- ata14 (scsi14) is the TX4's physical "Port 1"

 

Both card's physical to logical port mappings are the same (so I assume this is possibly consistent across all Promise SATA300 TX4 cards)?

 

Now I'm not sure whether I should just be plugging in the drives, based on the physically labelled port sequence, or whether I should plug them in based on the logical drive sequence (ie. The 7th physical drive as the logical ata7/scsi7 drive etc.)?

 

I suppose if unRAID tells you when you have drives out of sequence when re-assembling a system, then the above is probably irrelevant.  However, I personally like to install things like this in a logically ordered sequence.  :-\

Link to comment

Koolkiwi,

 

I'm in the process of copying/moving data between two drives at the moment, so I'll have to confirm tomorrow night, but I vaguely remember noticing the same behavior with my Promise SATA300 TX4 PCI controllers.

 

More tomorrow.

 

BillK

Link to comment

Thanks BillK, it will be interesting to confirm with another installation.

 

For reference, I'm using V4.0-beta9 (I'm not sure if the "sata_promise" driver has changed in the new 2.6.20 kernel used by 4.0-beta's? - if this is a driver issue).

 

If this is the case, perhaps we need to physically re-label the ports on our TX4 cards?  :o

 

Link to comment

I've noticed this inconsistent numbering with Promise controllers as well as with different motherboards.  You can not trust the silk-screen port numbering on the cards.  Devices in linux are assigned based on how they appear in the PCI ID space.

 

The best way to deal with this issue is to ignore it.  What is important is that you know which disk "slot" in your server is "parity", "disk1", "disk2", etc., and this is determined by how you have your cables hooked up.  I suggest the following:

 

1. When building your server, connect the cables from the various ports to your hard drives in the easiest, most direct way possible, according to your h/w and case, etc.  It makes hardly any difference which particular port a hard drive is connected to.  What's most important is that the cabling is rock-solid.  If you are not using locking SATA cables, then consider securing them with hot glue.

 

2. Once cabing is complete, now you need to determine which hard drive corresponds to each "disk" (or parity).  This is easy: just make a note of each hard drive serial number appearing on the stickers attached to the hard drives.  Now install the hard drives and go to the Devices page.  You will be able to easily match up parity, disk1, disk2, ... to the physical drives you want them to correspond to.

 

3. If you have more "slots" than hard drives, just power down, move the hard drives to other slots, and repeat step 2 until all ports are accounted for.

 

--

 

If you want to read up on the gory details of linux PCI device numbering, here is one source.

Link to comment

Thanks BillK, it will be interesting to confirm with another installation.

 

Here are my results.  As you can see from my little spreadsheet, the port numbers shown in the Promise SATA300 TX4 manual DO NOT seem to line up with the PCI device numbering used by Slackware (aka unRAID).  To ensure consistency during the build, I numbered both ends of each SATA cable with a Sharpie, plugged one end of a cable into its corresponding Promise port/channel and the other end into the matching hard disk port number on the back on my 4-in-3 SATA caddy/backplane.

 

Luckily, as Tom suggested, I ALSO wrote down the serial numbers of each drive so I could assign them in the SMU in the order I wanted them to appear.

 

Cheers.

 

Link to comment
As you can see from my little spreadsheet, the port numbers shown in the Promise SATA300 TX4 manual DO NOT seem to line up with the PCI device numbering used by Slackware (aka unRAID).

 

Thanks for confirming this BillK.  Interestingly, I see from your spreadsheet that the physical port number to logical device mapping for your TX4, is identical to mine.  This makes sense based on the Linux driver port assignment sequence theory, as I imagine all TX4's would appear the same to the Linux promise driver!

 

Personally, I'm going to resolve this by documenting my own Media Server configuration table, listing the drive serial number, and the labelled SATA port that it is plugged into (of course, documenting this sort of stuff should be a recommended practice anyway!). 

 

However, as I like logical structure, I will be configuring my setup to connect the ports in logical drive sequence, instead of physical port sequence (although I know it really doesn't make any difference).

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...