SAS/SATA drives and controllers

HBA or RAID controller for TrueNAS: can you keep the card you have?

Sources checked · page updated · the question as people ask it: “My server has a RAID controller (Dell PERC H710/H730/H740, HPE Smart Array P4xx/P8xx or an LSI MegaRAID) - can I run TrueNAS on it in HBA/JBOD/RAID0 mode, or do I need to replace it with a real HBA?”

Quick answer

TrueNAS and OpenZFS both want each physical disk handed to ZFS directly: TrueNAS says not to use a RAID card's RAID facility and to use its HBA mode if it has one, and OpenZFS says hardware RAID controllers should not be used with ZFS. If your card is a Dell PERC H330, H730 or H830, Dell's PERC 9 guide documents an HBA mode in which every disk is a non-RAID disk under operating-system control, but switching to it means deleting every virtual disk first, and Dell says the controller's own SMART monitoring is off in that mode, so test with smartctl that each drive's SMART data still reaches the OS. If the card has no HBA mode, or fails that test, the controller TrueNAS names is a Broadcom/LSI SAS HBA running IT or Target Mode firmware.

What are you seeing?

Pick the closest symptom to open the matching diagnostic path. This is a guide to what to check and in what order; it does not read your system and does not diagnose it.

Find out how the card presents your drives
  1. 1.Identify the controller and the kernel driver bound to it, from a Linux shell on the server. -k shows the driver in use for each device and -nn shows vendor and device codes as both numbers and names.
    lspci -nnk | grep -i -A3 -E 'sas|raid'
    ReadingThe 'Kernel driver in use:' line names the driver. mpt3sas is the Linux driver for PCI-Express 12Gb/s SAS host adapters; hpsa is the driver for HP Smart Array controllers. Note the name whatever it is: the lsblk and smartctl tests that follow decide whether the drives behind it reach the OS one by one.
  2. 2.List the block devices with their model and serial. ZFS needs one device per physical drive, carrying that drive's own identity. In one TrueNAS thread a T430 owner whose PERC H730 was set up without RAID saw no disks at all in TrueNAS after a drive upgrade.
    lsblk -o NAME,MODEL,SERIAL,SIZE,TRAN
    ReadingExpect one line per physical drive, with the drive's own model and the serial printed on its label. One large device instead of several, a model string naming the controller rather than the drive, or serials that do not match the labels mean the card is presenting virtual disks; TrueNAS warns that RAID cards can mask disk serial numbers. If a column is missing, run lsblk --list-columns to see what this lsblk version offers.
  3. 3.Ask smartmontools which devices it finds.
    smartctl --scan
    ReadingPrints each device name, device type and protocol. This list does not decide the question on its own: a '-d scsi' entry does not by itself show that the OS reaches the physical drive directly. Decide on the lsblk model and serial check above and the smartctl -a test in path p2.
Test whether each drive's SMART data reaches the OS
  1. 1.Read SMART from each drive the plain way, with no device type. This is the test that matters most: TrueNAS warns that some repurposed RAID cards mask SMART health information.
    smartctl -a /dev/sdX
    ReadingIf the 'Device Model' or 'Product' line and the 'Serial Number' line show the physical drive and the SMART attributes or health section is populated, SMART passes through. If the command errors, or identifies a controller virtual disk with no drive attributes, the OS cannot read that drive's SMART directly.
  2. 2.If the plain read fails on a MegaRAID or Dell PERC card, read the drive through the controller instead. smartmontools says this device type also works for Dell PERC controllers; N (0-127) selects the disk on the controller.
    smartctl -a -d megaraid,N /dev/sdX
    ReadingFull SMART data here where the plain read failed means the drive is reachable only through the controller's RAID layer, so ZFS is still not seeing the disk itself.
  3. 3.On an HP Smart Array controller (hpsa driver), the equivalent device type is cciss. A DL380 Gen9 owner with a Smart Array P840 asked the same keep-or-replace question on the TrueNAS forums and was waiting on an LSI HBA.
    smartctl -a -d cciss,N /dev/sgN
    Readingsmartmontools' example is 'smartctl -a -d cciss,0 /dev/sg2'. Data returned only this way means the disk sits behind the Smart Array layer.
Check an existing pool for hardware RAID underneath
  1. 1.List each vdev and its member devices. OpenZFS says hardware RAID limits ZFS's ability to self-heal on checksum failures, because ZFS cannot treat the disk holding a bad sector as bad when the controller handles the redundancy, unless ZFS stores a duplicate copy. In one TrueNAS thread, a pool built on a single PERC H730P RAID5 virtual disk went SUSPENDED after I/O errors while the PERC BIOS showed every drive Online.
    zpool status -v
    ReadingA vdev whose only member is one controller virtual disk (for example one RAID5 virtual disk) holds no ZFS redundancy of its own across disks, which is the layout OpenZFS says limits ZFS's ability to self-heal on checksum failures.
  2. 2.If the pool sits on a controller virtual disk, copy the data to other storage and check the copy before you change the card. Moving a PERC 9 to HBA mode requires deleting every virtual disk on it (path p4), which destroys what is on them.
Switch a Dell PERC H330, H730 or H830 to HBA mode
  1. 1.Confirm the card is one Dell's guide covers. The PERC 9 user guide names the H330, H730 and H830 and documents two personality modes: RAID mode, the usual factory setting, and HBA mode, in which the card creates no virtual disks and every physical disk is a non-RAID disk under operating-system control.
  2. 2.Data loss: this step deletes every virtual disk on the card, and the data on those arrays is lost. Copy everything off the arrays and check the copy before you start. Then prepare the card: Dell lists these prerequisites for the RAID to HBA transition: all virtual disks removed or deleted, hot spares removed or re-purposed, foreign configurations cleared, failed disks removed and any local SED security key deleted.
    Destructive. This command destroys what is on the device and cannot be undone. Confirm the device path twice and have a backup of anything you still need before running it.
  3. 3.Data loss: this switch ends RAID mode on the card, and Dell requires its virtual disks to be deleted first, so no array on it survives. Do it only after the previous step, with the data copied off and checked. Open the Dell PERC 9 Configuration Utility (HII) and use the menu path below, then reboot.
    Destructive. This command destroys what is on the device and cannot be undone. Confirm the device path twice and have a backup of anything you still need before running it.
    Dell PERC 9 Configuration Utility (HII): Controller Management > Advanced Controller Management > Switch to HBA mode
    ReadingThe new personality takes effect after the reboot.
  4. 4.After the reboot, run lsblk and the plain smartctl read from paths p1 and p2 again. Dell states that in HBA mode SMART monitoring is disabled and the controller does not report SMART errors. That sentence is about the controller's own monitoring: no Dell page we read says whether the OS can still read each drive's SMART data through the card, so this test decides it. Forum replies disagree on the point for the H730 Mini, which is why we do not take either side.
    smartctl -a /dev/sdX
    ReadingEach drive's own model, serial and a populated SMART section mean TrueNAS can monitor the drive. An error, or a device with no drive attributes, means it cannot: go to path p5.
No usable HBA mode: RAID0 per disk, or a SAS HBA
  1. 1.Know that the two primary sources disagree on the fallback. TrueNAS says that where a RAID card has no HBA mode, a RAID0 can be configured for every disk. OpenZFS says single-drive RAID0 arrays are not recommended, for many of the same reasons as other hardware RAID. We print both and do not pick one.
  2. 2.If you take the RAID0-per-disk route, know what the cache does. On a PERC 9 write-back is the default virtual-disk cache policy, and Dell says it is also supported on single-drive RAID0 virtual disks; Dell also says all RAID volumes are presented to Windows and Linux as write-through whatever the virtual disk's actual policy. A virtual disk can be forced into write-back with no battery present; Dell recommends a power backup system when forcing it. OpenZFS says a RAID write cache adds a failure point, caches all writes rather than only synchronous ones, and can lose data if the battery fails when it is needed during a power loss.
  3. 3.Otherwise replace the card. TrueNAS's guide names Broadcom (formerly Avago, formerly LSI) SAS host bus adapters flashed with the latest IT or Target Mode firmware, and OpenZFS says an HBA is best for both performance and reliability. TrueNAS also says not to use a motherboard's built-in hardware RAID. What IT firmware is, and which cards need a flash, is covered on the IT mode page linked below.

Causes, how to confirm each, and whether hardware fixes it

CauseHow to confirmFixHardware?
The ZFS pool was built on one hardware RAID virtual disk, so ZFS holds no redundancy of its own across disks.zpool status -v shows a vdev whose only member is one controller virtual disk, and lsblk shows one large device instead of each drive.Copy the data off, present each drive to ZFS individually (HBA mode where the card has one, otherwise an HBA) and build a new pool with ZFS redundancy.No
A Dell PERC H330, H730 or H830 is still in RAID mode.smartctl -a /dev/sdX fails while smartctl -a -d megaraid,N /dev/sdX returns the drive.Copy the data off, delete the virtual disks and the other items Dell lists, and switch the card to HBA mode in the PERC 9 Configuration Utility. This destroys the arrays on the card.No
The card's HBA or passthrough mode does not pass each drive's SMART data to the OS.With the card in HBA mode, smartctl -a /dev/sdX errors or shows no drive attributes for a drive whose model and serial it should report.Replace the card with a SAS HBA running IT or Target Mode firmware.Yes
The card has no HBA, passthrough or JBOD mode.The card's documentation and configuration utility offer no such mode, and smartctl reaches the drives only through -d megaraid,N or -d cciss,N.Replace it with a SAS HBA, or configure a RAID0 per disk, which TrueNAS allows and OpenZFS does not recommend.Yes
RAID0-per-disk virtual disks run the controller's write-back cache, possibly forced with no battery.The virtual disks' cache policy is write-back (Dell's default on PERC 9), or forced write-back with no battery is selected.Present the disks directly instead, through HBA mode or an HBA. OpenZFS lists hardware write caches and battery backup units as unnecessary on an ideal ZFS controller.No
If the card has no HBA mode or fails the SMART test: SAS controllers in stock

TrueNAS names Broadcom/LSI SAS host bus adapters with IT or Target Mode firmware as the controller to use. This table lists the SAS controllers we track and mixes HBAs with RAID cards, because we store no field for a card's mode: Dell PERC H310, H710 and H730 rows can appear in it. An 'IT Mode' in a listing title is the seller's statement, not something we record, so check the listing and the maker's documentation for the card's mode before you buy, and check each row's condition, since the table shows one row per product and includes used cards.

When not to buy: If your card is a PERC H330, H730 or H830, Dell documents an HBA mode: copy the data off, switch it (this deletes its virtual disks), then run the smartctl test before buying anything. If lsblk then lists each drive with its own serial and smartctl -a /dev/sdX reads its SMART data, TrueNAS says a card in HBA mode performs indistinguishably from a standard HBA.

Every row below meets: SAS controller (stored interface: SAS). A listing whose field is not stated is excluded from a required criterion and marked “not stated” on an optional one; nothing is assumed. What the catalogue cannot evaluate: HBA by design / IT-mode firmware (vs RAID-class card) (No column stores controller mode. A model-in list was tested and rejected: the research's facts name only the Broadcom 9400/9500 series and the LSI 9211 (SAS2008) family (f6), and generally 'Broadcom/LSI SAS HBAs with IT or Target Mode firmware' (f5). No opened source establishes 9300-8i, 9300-16i, 9305-16i, 9207-8i, Dell HBA330 or HPE H240 as HBAs; HBA330 and H240 rest on unread citations (R740 tech guide, DL380 Gen9 QuickSpecs). The 9211 is named only as an older-generation chip family that needs IT firmware, and IT firmware is not a stored field. Only 9400-16i (3 products, 2 in-stock offers) would be defensible, which is too thin to carry a block.); Dell PERC H710 / H740 and HPE Smart Array HBA-mode behaviour (Research opened no Dell document for H710 (PERC 9 guide covers H330/H730/H830) or H740, and no HPE Smart Array HBA-mode document; the catalogue cannot say whether any such card has an HBA personality.). Check these on the maker's data sheet.
Product · part numberCapacityInterface · formConditionPrice$/TBCriteria
hpe-h240
HP H240 Smart Host Bus Adapter Storage Controller Plug-In Card Low Profile (726907-B21) · details
—SAS · PCIeREFURB / USED Amazon: Used / Good · sold by ReCloudIT$19.95—SAS controller (stored interface: SAS)Buy on Amazon
dell-hba330
0P2R3R DELL PERC HBA330 12G Mini Mono SAS/SATA RAID Controller · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by ConfigureSystem$20.00—SAS controller (stored interface: SAS)Buy on Amazon
Broadcom lsi 9300 8i
10Gtek 12G Internal PCIe SAS/SATA HBA Controller Card, Broadcom SAS3008 Chipset, Compatible with LSI 9300-8I · details
—SAS · PCIeREFURB / USED Amazon: Used / LikeNew · sold by 10Gtek · seller's note on the listing$29.99—SAS controller (stored interface: SAS)Buy on Amazon
dell-h710
Dell 05CT6D PERC H710 6GBPS SAS/SATA RAID Controller Mini Mono · details
—SAS · PCIeREFURB / USED Amazon: Used / VeryGood · sold by David & Ying store$30.00—SAS controller (stored interface: SAS)Buy on Amazon
dell-h310
3P0R3 - DELL 3P0R3 Dell PERC H310 Adapter HV52W 6.0Gb/s SAS / SATA RAID Controller · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by Ebargainworld$37.46—SAS controller (stored interface: SAS)Buy on Amazon
lsi-9211-8i
YiBaoTong LSI 9211-8I 6Gbps SAS HBA FW:P20 9211-8i IT Mode ZFS FreeNAS unRAID Controller Card · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by YiBaoTong$39.88—SAS controller (stored interface: SAS)Buy on Amazon
dell-hba330
Dell J7TNV PowerEdge Perc HBA330+ 12GB/s SAS RAID Controller D/PN: 0J7TNV · details
—SAS · PCIeREFURB / USED Amazon: Used / VeryGood · sold by Amazon Resale · seller's note on the listing$44.71—SAS controller (stored interface: SAS)Buy on Amazon
lsi-9300-8i
SAS HBA Card Compatible with LSI 9300-8i & D3307 IT Mode HBA Controller · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by LANPAN$49.88—SAS controller (stored interface: SAS)Buy on Amazon
lsi-9207-8i
KCMconmey LSI 9207-8i Controller HBA Card, LSI 2308 SATA SAS Host Bus Adapter. 2 * SFF-8087 Internal 6Gbps, PCI-e 3.0 x8. IT Mode Firmware. Non RAID. · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by Globusine$51.99—SAS controller (stored interface: SAS)Buy on Amazon
lsi-9211-8i
YiBaoTong LSI 9211-8I SAS2008 6Gbps SAS HBA FW:P20 LSI 9211-8i IT Mode ZFS FreeNAS unRAID Controller Card 2* SFF-8087 SATA · details
—SAS · PCIeREFURB / USED Amazon: Used / VeryGood · sold by Amazon Resale · seller's note on the listing$55.29—SAS controller (stored interface: SAS)Buy on Amazon
lsi-9207-8i
LSI Logic SAS 9207-8i Storage Controller LSI00301 · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by Zurjy$58.99—SAS controller (stored interface: SAS)Buy on Amazon
lsi-9300-8i
KCMconmey LSI 9300-8i Controller HBA Card, LSI 3008 SATA SAS Host Bus Adapter. 2 * SFF-8643 Internal 12Gbps, PCI-e 3.0 x8. IT Mode Firmware. Non RAID. · details
—SAS · PCIeNEW Amazon: New / Unknown · sold by Globusine$59.99—SAS controller (stored interface: SAS)Buy on Amazon

Prices are Amazon US, re-checked about once a day; newest price in this table . A click here is a click, not a purchase; we earn a commission on qualifying purchases. The table shows what the catalogue holds against the criteria, not an endorsement of any model for your server.

Read next on this site

Frequently asked questions

Is a RAID card in HBA mode as good as a real HBA for TrueNAS?

TrueNAS says a card in HBA mode (also called passthrough or JBOD mode) performs indistinguishably from a standard HBA. Community threads contest that for specific cards: replies in TrueNAS and Level1Techs threads called PERC passthrough quirky, a data-loss risk or, citing other users' reports, a mode that hides SMART, while another reply called those concerns FUD, and a long-standing TrueNAS community explainer says RAID controllers generally hide the physical device even in JBOD or HBA mode. That is forum opinion, not a specification, so test your own card with lsblk and smartctl rather than trusting either side.

Is the per-disk non-RAID setting on a PERC 9 the same as HBA mode?

No. In RAID mode a PERC 9 can convert individual RAID-capable disks to non-RAID disks from the BIOS configuration utility or the UEFI/HII RAID configuration utility, which is separate from switching the whole controller's personality. In HBA mode the card creates no virtual disks at all and every disk is a non-RAID disk under operating-system control. Whichever you use, run smartctl -a /dev/sdX on each drive afterwards.

What about a PERC H710, PERC H740 or an HPE Smart Array?

The Dell guide we read is the PERC 9 guide, which covers the H330, H730 and H830. We have not read a Dell document on the H710 or H740, or an HPE document on Smart Array HBA mode, so this page states nothing about their modes. The tests here work on any card: if lsblk lists each drive with its own serial and smartctl -a /dev/sdX reads its SMART data without -d megaraid,N or -d cciss,N, the OS reaches the disk directly.

What happens to a pool on a hardware RAID card if the card fails?

OpenZFS says a failed RAID controller can require replacement with the same model. In one TrueNAS thread, pools exported from an R740xd with a PERC H740 did not appear on a second R740xd with a PERC H730; with no HBA330 to hand, the poster planned a fresh install and an rsync instead.

Sources

Every technical statement above rests on one of these documents, each read on the date shown. Where a document did not state something, the page says so rather than filling the gap.

  1. TrueNAS Hardware Guide (SCALE path; page labelled TrueNAS 28 (Early) documentation) · checked
  2. CORE Hardware Guide (follows TrueNAS CORE 13.0) · checked
  3. Hardware (Performance and Tuning) - Hardware RAID controllers / Controllers · checked
  4. Dell PowerEdge RAID Controller 9 User's Guide H330, H730, and H830 - PERC 9 personality management · checked
  5. Dell PowerEdge RAID Controller 9 User's Guide H330, H730, and H830 - Switching the controller to HBA mode · checked
  6. Dell PowerEdge RAID Controller 9 User's Guide - Prerequisites for RAID to HBA mode transition · checked
  7. Dell PowerEdge RAID Controller 9 User's Guide - Non-RAID disks support · checked
  8. Dell PowerEdge RAID Controller 9 User's Guide - Virtual disk write cache policies · checked
  9. Dell PowerEdge RAID Controller 9 User's Guide - Conditions under which forced write-back with no battery is employed · checked
  10. smartctl(8) man page source (smartctl.8.in, GitHub mirror) · checked
  11. drivers/scsi/mpt3sas/Kconfig · checked
  12. HPSA - Hewlett Packard Smart Array driver (docs.kernel.org/scsi/hpsa) · checked
  13. lspci(8) man page · checked
  14. lsblk(8) man page · checked

Where people hit this

Discussions we opened and read while researching this page. They are evidence that the problem occurs and of what people tried; no specification above is sourced to a forum post.

Other sas/sata drives and controllers problems

Share:WhatsAppFacebookPost on X