Author Archives: Joseph Lo
Following my desire to consolidate 3 of my NASes into one box, It becomes quickly apparent that physically cramming all the drives into one box is less of a problem than actually finding a budget motherboard hardware setup that is capable of controlling all the drives.
Sure, one can buy a server grade motherboard such as the Supermicro X10SL7-F which can take in an insane 14 x drives in one go, but at Aud $278 + Aud $38.95 shipping, the cost quickly escalated to Aud $314 which is not exactly a good budget solution to go with; given that one will really need to import this motherboard from Newegg and the like. One could also buy the latest gaming motherboard such as the Asus Z270 Taichi which sport 10 x SATA 3 connectors. This will set your wallet back just as much.
Fortunately there are other options around. One of the best option is to use a “Host Bus Adapter”, aka HBA. In the context of storage drives, HBAs are essentially an interface card which allows you to connect multiple external devices such as SATA drives to the computer’s PCI-E bus.
Now why is HBA a good option. These days you can get an almost new (if not brand new) HBA card at a fraction of what it would cost a server grade/gamer grade motherboard. Take for instance the IBM M1015, one of the most well loved HBA card; this typically is selling for USD50 on ebay (less if you find a good deal from time to time).
Most of these HBA cards allow you to connect up to 8 drives. And if you need to connect more drives, by all means add additional HBA cards (assuming that the motherboard has sufficient PCI-E lanes to handle all the bus traffic). And if the card fails, replacement will not cost an arm or a leg and it is practically achievable to keep spare HBAs around for the just in case moment.
Many of these HBA cards also happen to double as a raid controller. These days we don’t really need (or want) a raid controller. We have our operating system taking care of all the disk redundancies. OS such as FreeNAS, Nas4Free, Xpenology, unRaid, etc are all capable of handling software raid reliably. I have used Xpenology and unRaid in the past but decided that I am going to stick with unRaid for this new NAS box I am building.
To enable software like unRaid to reliably use the HBA, it is important that the HBA “presents” the drives in a “transparent (pass through mode)” manner. This will require us to “remove” the raid component on the HBA and the way to do it is to overwrite the original firmware on the HBA with suitable firmware. After the HBA is flashed this way, they are commonly referred to be working in “IT mode”.
Just as a note, there are many consideration one should make in regards to buying a HBA card as this is quite platform centric. So it is important to check for these:
1) Is the HBA fully supported by the software raid platform that you are intending to use. For instance the Supermicro SASLP-MV8 8 port HBA is great for unRaid but only up to a certain version. The latest version is reported to have issues with this HBA. So it is important to do lots of research. You really dont want a situation whereby you start getting drives suddenly become undetected and the data are lost in the interim. If the data is important to you, then this justify the research effort.
2) Does the HBA fully support the hard drive size you want to use. At this moment in time, I am limiting myself to 4TB drives so 4TB drives support is important to me. But I also want the card to be capable of handling up to 8TB.
3) Does the HBA support drive spindown. This can be a very important consideration if you want to reduce the energy usage of the NAS, considering this runs 24/7.
4) Does the HBA have good/reasonable power requirement.
5) Does the HBA have the kind of formfactor you need; for instance the Dell H200 HBA has the SAS connector ports on the top of the card. The Dell H310 has these ports on the sides. This kind of little details could bring an issue to your build if you are not careful enough.
I must say researching for these HBAs can be an exhausting experience. Most good sources of information are contributed by end users/system builders who dwells in tech forums and information are scattered everywhere.
I have come to the conclusion that I would want a Dell H310. So here is how I flashed my Dell H310 to IT mode.
Must Read Information
Thanks to all the great people on the net, thankfully there are how to guides for this kind of stuff. But I have found that even with how to guides, it is never that straightforward for me and indeed I have encountered more problems than what I would have wished for.
These articles are almost too famous not to list them here:
There are obviously many other articles out there. The www is a big place.
My Flashing Guide
So here is how my journey goes:
1. As my target hardware is an unRaid box, I don’t want to muck around with my production drives. So I disconnected all the hard drives first I like to keep the hardware as bare as possible as there are obviously less things to worry about when things go wrong.
2. I downloaded and created a new usb boot disk containing the latest version of unRaid. It is a trial version but just what I need to test.
3. I use Matt’s link (see first article above) to download all the necessary files and create a bootable freedos USB drive.
4. Many article talks about masking certain pins on the card. It is important to note that this may or may not be necessary. To check this, I insert the Dell H310 into the PC, and boot the PC with the freedos usb drive. I find that with my hardware combination, the PC boots just fine with the HBA in its original firmware. For the record, I am using an Asrock H81M mATX 1150 motherboard which I repurposed from my HTPC. No pin masking necessary for me. Yippee. If this does not boot for you, then you will need to go through this ordeal.
So after I insert the card and boot, this is what I see when the PC booted up.
Once Freedos is loaded, I type the following at the dos prompt.
megacli.exe -AdpAllInfo -aAll -page 20
Very soon I come to finding what is the SAS address of my card.
Now following the tutorial, I run the following command:
megarec.exe -writesbr 0 sbrempty.bin
This is the part when I started to get a bit loss. Many guides seem to assume that this will return with a failure. It gives instruction what to do if this step fails but is not very clear what is the next step if this returns a success, as what I have shown here.
So I continue on with the following command:
megarec.exe –cleanflash 0
Now I rebooted the PC back to freedos.
When I execute the command
sas2flsh.exe –o –f 6GBPSAS.fw
I get an error which says “Failed to initialize PAL. Exiting Program.”
After reading the instruction again, I realized I need to boot the PC into EFI mode to execute a slightly different commandline.
I have some issues booting the PC into EFI. For whatever reason, even though I have selected the right settings in the UEFI bios to set the PC to boot into EFI mode, it refuses to do so. It becomes better once I disable USB 3.0 mode on the UEFI bios. This overcome the issue.
Please do also make sure that you don’t have secure boot enabled in the bios.
Now I rebooted again and when EFI is booted, this will look something like this:
type the following to enter into the usb folder. It is always fd0 if you only have 1 x usb drive plugged in.
Now execute the sas2flash command but now we have to select the EFI equivalent.
sas2flash.efi –o –f 6GBPSAS.fw
For whatever reason it will report that it is “unable to process commands”. I ignore this.
At the command prompt again, I type the following. The “XXXXXXXXX” string is the SAS address of the card.
sas2flash_p19.efi –o –f sasadd XXXXXXXXXXXXXXXX
Now when this is done, the PC have to be rebooted again. Boot this back to EFI mode.
Type the following command:
sas2flash.efi –o –f 2118it.bin
Type Y when it prompts
Now when the prompt returns, type the following to see if the firmware has indeed been flashed.
The command returns something very positive and my understanding is that this should conclude the flashing exercise. But when I next booted into unRaid, I find that unRaid is unable to see any of the drives! No good.
So I rebooted the PC again to EFI mode. And I now run this command just to try. Again the “XXXXX” string is the unique SAS address.
sas2flash_p19.efi –o –sadadd XXXXXXXXXXXXXXXX
Now the command seem successful and just to be sure, I see if the HBA can be found and listed.
Next I booted unRaid using the USB disk and this time, viola, unRaid can see the disks!
There are several drives which I have not swapped out, namely the 2TB ones but here is a screenshot which shows 9 x hard drives connected.
So far I am pleased with the Dell H310.
I hope the above, together with all the other excellent tutorials on the web, will give you an even smoother IT flashing experience.