Jump to content
The Unraid Annual Cyber Weekend Sale is here 🔥 ×

Adaptec 71605 16i SATA port HBA card for ~$50 review and how to fix write cache disabled


Recommended Posts

Posted (edited)

Ok, so I was looking into LSI HBA cards and they all seemed overpriced / over-hyped compared to other options.

 

After looking around a lot I was debating between the HP240 and Adaptec as they both offered more features for less money.

 

I ended up going with the adaptec 71605 as I got a really good deal on it and it checked all the boxes except trim support for consumer SSD's like basically all other HBA's.

 

16 sata ports

PCIE Gen3 x8

No need to flash the card for HBA funcality, just simply switch to HBA mode in the cards bios

Built in driver support in unraid and every other OS I have tried it with

Can be found for less then $50 fairly easily on ebay (I got mine for a bit over half that during a sale)

 

So I have been using it for a bit over a month now and have to say, I am quite happy with my choice. I can hit over 2GB/sec speeds on my 5x 128gb cache pool but I am CPU bottlenecked at that point (all cores pegged to 100%). Others have reported 4500MB/s combined speeds and still not reaching a bottleneck.

 

The heatsink does need some airflow like all HBA cards. I built a funnel out of poster board that covers half a 120mm side panel fan and it keeps it nice and cool with the fan at the lowest speed ~500rpm.

 

The bios is also pretty simple to figure out as well, reset all settings to default and don't setup any raid settings and it will work. Although switching it to HBA mode and enabling drive listing on boot is better for our use case IMHO.

 

Overall I am very happy with this card and recommend it.

 

 

 

The only issue I have had is that the default write-cache setting is "Drive dependent". Sounds fine on paper but I had several drives just suddenly stop supporting write caching after a reboot and hdparm could no re-enable it nor would it work on another computer.

 

This setting should always be set to "enabled always" and never changed.

 

EDIT: I figured out how to fix this from within unraid after some more playing around, I will leave the old windows fix in a zip archive below in case some of that helped get this working.

 

hdparm does not work to fix this, nor does the normal smartctl command. There is a more advanced smartctl command that does work though!

smartctl -s wcache-sct,on,p /dev/sdX

This got it working on a drive I added to the server after fixing the others without having to revert to windows. No need to reboot or anything, takes effect immediately.

 

The ",p" is supposed to make the command persistent.

 

 

I archived the rest of this thread for future reference in case someone needs it in the attached zip file, including the dskcache windows program.

 

dskcache - Tool for fixing write cache on hard drives.zip Archived instructions for fixing write-cache disabled on Adaptec HBA card.zip

Edited by TexasUnraid
  • Like 5
  • Upvote 1
Posted (edited)

Very useful and detail, never know write_cache issue.

 

I always think should I buy one .... but the chance which I use almost zero and this HBA power usage seems a little bit high.

Edited by Benson
Posted
1 hour ago, Benson said:

Very useful and detail, never know write_cache issue.

 

I always think should I buy one .... but the chance which I use almost zero and this HBA power usage seems a little bit high.

Power usage on this card is around ~15w according to my watt meter (not exact as I made some other changed to the hardware at the same time). Considering this is pcie gen3 with 16 ports, that is a bit better then average from my research.

 

Naturally the 8 port pcie gen 2 cards will use less, think they were generally closer to 8-10w.

Posted (edited)

I was messing with adding in a new drive I will be using for parity and it had write cache disabled, I decided to try a fix I found after finishing the last drives by using a more advanced smartctl command and what do you know, it worked! Much easier then using windows, don't even have to reboot.

smartctl -s wcache-sct,on,p /dev/sdX

I edited the OP with this command.

Edited by TexasUnraid
  • Like 4
Posted
21 hours ago, TexasUnraid said:

I was messing with adding in a new drive I will be using for parity and it had write cache disabled, I decided to try a fix I found after finishing the last drives by using a more advanced smartctl command and what do you know, it worked! Much easier then using windows, don't even have to reboot.


smartctl -s wcache-sct,on,p /dev/sdX

I edited the OP with this command.

I have a 3tb SATA drive that has an endlessy disabled write cache.  The fix described in Fix Common Problems does not last, (hdparm).  I am new to Unraid and Linux.  I assume you ran this from a terminal window just as the hdparm command?  I ask because I do not want to hose my system and I know there are vast amount of things I have yet to learn.

Posted (edited)

Correct, that is run from the terminal just like the hdparm command.

 

Just copy/paste it and make sure to update the X at the end to the correct drive.

 

Worst case you could use user scripts to run the hdparm command at first array start if this doesn't work.

Edited by TexasUnraid
  • Like 1
Posted

Bravo!  It appears to have worked.  I ran the command, ran Fix Common Problems and the error was not there.  I stopped the array, rebooted and ran Fix Common Problems again, still no error.

Posted
On 7/23/2020 at 11:15 PM, TexasUnraid said:

I was messing with adding in a new drive I will be using for parity and it had write cache disabled, I decided to try a fix I found after finishing the last drives by using a more advanced smartctl command and what do you know, it worked! Much easier then using windows, don't even have to reboot.


smartctl -s wcache-sct,on,p /dev/sdX

I edited the OP with this command.

Good find, @Squiddo you mind adding this to the the related FAQ entry?

Posted (edited)
5 hours ago, johnnie.black said:

Good find, @Squiddo you mind adding this to the the related FAQ entry?

Go for it, I was actually going to suggest it when I found that it worked but was not sure where to do that.

 

There is also another command you could add there as well, it didn't work for me but might work for others:

smartctl -s wcache,on /dev/sdX
Quote

wcache[,on|off] - [ATA] Gets/sets the volatile write cache feature (if supported). The write cache is usually enabled by default.

 

This is the more advanced command and was needed in my case:

smartctl -s wcache-sct,on,p /dev/sdX
Quote

wcache-sct[,ata|on|off[,p]] - [ATA only] Gets/sets the write cache feature through SCT Feature Control (if supported). The state of write cache in SCT Feature Control could be "Controlled by ATA", "Force Enabled", or "Force Disabled". SCT Feature control overwrites the setting by ATA Set Features command (wcache[,on|off] option). If SCT Feature Control sets write cache as "Force Enabled" or "Force Disabled", the setting of wcache[,on|off] is ignored by the drive. SCT Feature Control usually sets write cache as "Controlled by ATA" by default. If ',p' is specified, the setting is preserved across power cycles.

 

Edited by TexasUnraid
Posted (edited)
14 minutes ago, 1812 said:

thank you for sharing. I have been looking for an inexpensive 16i card and this looks like it will fit the bill

 

Glad I could help, Been stressing it the last few days doing a parity build and other IO intensive things at the same time (basically constant 1 - 1.5GB/s+ IO non-stop) and it has held up great.

 

Although I do wounder if any of the linux software packages they offer for this card would work with unraid's slackware?

 

https://storage.microsemi.com/en-us/support/raid/sas_raid/sas-71605/

 

It would be kind of nice to be able to see the cards temp and it offers some other functionality like the write cache settings. Would be cool if it could be in a docker or something but no idea if that is possible.

Edited by TexasUnraid
Posted (edited)

Interestingly, I recently stopped and started the array and when it restarted the write cache was disabled on a few drives again. I know this was not the cards fault since the computer was not restarted and it happened with the array restart. So it must be something about how unraid interacts with the card that is causing the write cache to be disabled.

 

Luckily it is not an issue, performance is only minorly effected in some quick tests I did with the write cache off and fixing it is very simple with the above smartctl command.

 

I went ahead and made up this script that runs hourly to ensure I don't have to mess with this again, I will leave it here in case someone else wants to use it. It prints the starting status of the drive, it then enables the cache and then prints the status of the write cache again to make sure it changed.

 

It is perfectly fine to run it on all the drives.

 

#!/bin/bash
#description=This script will enable write cache for all drives with /dev/sd* names.
#backgroundOnly=
#arrayStarted=
#noParity=
#argumentDescription=
#argumentDefault=


for DRIVE in /dev/sd*[a-z] ; do
  echo Below here ------------------------------------------------------------Drive = $DRIVE
  echo
  echo Write cache status before making changes to $DRIVE:
  hdparm -ACW $DRIVE
  echo
  smartctl -s wcache-sct,on,p $DRIVE
  echo
  echo Write cache status after making changes to $DRIVE:
  hdparm -ACW $DRIVE
  echo
done

 

Edited by TexasUnraid
  • Like 1
  • 2 years later...
Posted
On 8/3/2020 at 1:09 AM, TexasUnraid said:

Interestingly, I recently stopped and started the array and when it restarted the write cache was disabled on a few drives again. I know this was not the cards fault since the computer was not restarted and it happened with the array restart. So it must be something about how unraid interacts with the card that is causing the write cache to be disabled.

 

Luckily it is not an issue, performance is only minorly effected in some quick tests I did with the write cache off and fixing it is very simple with the above smartctl command.

 

I went ahead and made up this script that runs hourly to ensure I don't have to mess with this again, I will leave it here in case someone else wants to use it. It prints the starting status of the drive, it then enables the cache and then prints the status of the write cache again to make sure it changed.

 

It is perfectly fine to run it on all the drives.

 


Hi, do you see the temperatures from all of your disk with this controller?

  • 2 months later...
Posted

Big thanks to you for creating this thread. It helped me choose the right controller without going way over budget or having to hope whatever comes from China in x months is genuine.

  • 3 weeks later...
Posted

Thank you my firend, for years I could never get write cache enabled, the command smartctl -s wcache-sct,on,p /dev/sdX worked for me and my shucked Seagate ST4000VN000 & ST6000VX0001 drives, good vibes all around!

  • Like 1
Posted (edited)

So i was trying to fix this exact problem. But i did a bad turn when i enabled in the Bios HBA settings the write to Cache to all enabled. This made all my drives unmountable. Since parity was ok,t he only option i found is to rebuilt everything. But the card itself is gread having no issues. Well as long you are not changing settings after adding a drive xD

Edited by Sumeragy

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...