# Should I use ZFS or hardware RAID on a rented storage server?

> ZFS or hardware RAID on a rented storage server: OpenZFS says not to put ZFS on a RAID card. Blank drives for ZFS or mdadm; no KYC, paid in crypto.

- URL: https://basalthold.com/zfs-vs-hardware-raid/
- Last updated: 2026-11-02
- Publisher: Basalthold (https://basalthold.com)

What OpenZFS says about RAID controllers and what ZFS and mdadm give you on plain drives. Then, how to check that your pool sees the real disks.

**Quick answer — Should I use ZFS or hardware RAID on a rented storage server?**

On a rented storage server, use ZFS on plain drives, not on hardware RAID. The OpenZFS documentation, read 2 November 2026, says hardware RAID controllers should not be used with ZFS: ZFS then cannot repair a bad block from another disk. **Basalthold** delivers blank data drives for ZFS or mdadm, from $3.50/TB raw, crypto only, no KYC.

## What does a hold give you to build on?

| Attribute | Value |
| --- | --- |
| Drives | The operating system sits on its own SSD (two mirrored SSDs on the larger holds); the data drives arrive blank and unpartitioned, so you can build ZFS, an mdadm array or a set of independent disks. If you want the team to prepare a RAID 6 or RAID 10 array before delivery, say so to support before the server is handed over |
| Drive failure | When a drive fails, open a ticket: the team has it replaced at no cost, and rebuilding the array on the new drive is up to your setup |
| Systems | Pick Debian, Ubuntu, AlmaLinux or Rocky Linux, Proxmox VE, or Proxmox Backup Server for a ready backup target. Windows is not offered |
| Console | There is no IPMI or KVM-over-IP access for customers; reboots and reinstalls you request in the dashboard are carried out by the team |
| Encryption | You can encrypt every data drive with LUKS or ZFS native encryption; the keys stay with you and nobody on the team ever asks for them |
| Backups | A storage server is not a backup of itself: we keep no copy of your data anywhere else, so a second copy in another place stays your job |

## Why does OpenZFS advise against hardware RAID?

Because a RAID card hides the disks from ZFS. ZFS then sees one virtual disk and cannot use its own redundancy. The OpenZFS hardware guide lists the problems:

- **Weaker self-healing.** When a checksum fails, ZFS often cannot fetch a good copy from another disk, since the card owns the redundancy.
- **Wrong sector sizes.** The card can misreport them, which causes read-modify-write overhead.
- **Locked-in replacements.** A failed card may need the same model to read the array again.
- **Write cache risk.** Cached writes can vanish on a power loss or a dead battery.
- **Unknown rebuild behavior.** The guide cites reports of RAID 5 and 6 arrays lost during rebuilds after silent corruption.
- **Closed firmware and shifting device names.** You cannot inspect the code, and one failed array can rename the others.

Its advice is to use a host bus adapter (HBA) instead of a RAID controller, for performance and reliability.

**ZFS can only heal what it can see: give it the drives, not a virtual disk.**

## What does ZFS do that a RAID card cannot?

ZFS checks every block it reads against a checksum. When a block is wrong and the pool has redundancy, ZFS reads a good copy and repairs the bad one. A scrub does this for all data, to catch silent errors from hardware faults or disk failure.

The filesystem and the array are one layer, so ZFS knows which blocks hold data. A resilver only examines out-of-date data, not empty space. That shortens rebuilds on a pool that is not full; the hours are worked out on [the RAID rebuild time page](https://basalthold.com/raid-rebuild-time/ "How long a RAID 6 or RAIDZ2 rebuild takes with 20 TB drives").

It also brings snapshots, compression and native encryption per dataset. RAIDZ2 has no RAID 5/6 write hole, where data and parity disagree after a power loss.

## When is hardware RAID or mdadm the better choice?

When you want a plain filesystem such as ext4 or XFS. Then something below it must provide the redundancy: a RAID card or Linux mdadm.

mdadm needs no card. Its arrays move to any Linux machine, and LUKS encryption sits cleanly under it. Its limit is the one ZFS removes: md does not know which blocks hold data, so it rebuilds whole drives.

If a server only comes with a RAID card, set the card to pass drives through before you build ZFS. That keeps ZFS in charge of the disks.

Of 23 storage-server sellers Basalthold checked on 2 November 2026, 4 stated a hardware RAID controller or option on a storage plan. Basalthold promises none: the data drives come blank, for your own software array.

## ZFS or mdadm on a hold?

| Question | ZFS (RAIDZ2 or mirrors) | mdadm (RAID 6 or RAID 10) + ext4 or XFS |
| --- | --- | --- |
| Detects silent corruption | Yes, checksums on every block | Finds parity mismatches, but cannot tell which copy is right |
| Rebuild covers | Stored data only | The whole drive |
| Snapshots and replication | Built in | Through LVM or the backup tool |
| Encryption | Native, per dataset, or LUKS under it | LUKS under the array |
| Memory use | Uses RAM as cache; see the RAM page | Light |
| Where it comes from | Debian contrib, Ubuntu, Proxmox VE and Proxmox Backup Server | In the Linux kernel on every system |

Package versions read on 2 November 2026: zfsutils-linux 2.3.9 in Debian 13, 2.2.2 in Ubuntu 24.04. Debian 13, Debian 12, Ubuntu 24.04 LTS, AlmaLinux 10, Rocky Linux 10, Proxmox VE 9 and Proxmox Backup Server 4.

## Which one fits a backup server?

ZFS, in most cases. Backups are written once and read rarely, so silent corruption can sit unseen for months. Checksums and scrubs find it while a good copy still exists.

Proxmox VE and Proxmox Backup Server include ZFS, so the same pool serves the datastore; see [Proxmox Backup Server offsite](https://basalthold.com/proxmox-backup-server-offsite/ "How to set up an offsite Proxmox Backup Server on a rented server"). ZFS wants memory for its cache; the sizing for 100 TB is on [ZFS RAM requirements](https://basalthold.com/zfs-ram-requirements/ "How much RAM ZFS needs for a 100 TB pool"). The layout choice is on [RAID 6 or RAID 10](https://basalthold.com/raid-6-vs-raid-10/ "RAID 6 or RAID 10 for a rented storage server").

## How do I check that ZFS sees the raw drives?

List the drives before you build anything. Each data drive should appear on its own, with its real model and serial number. Then create the pool from the stable names in `/dev/disk/by-id`, so a renamed device cannot confuse it.

Both data sheets read for this page describe 4,096-byte physical sectors. Seagate's Exos X20 ships in 512e format, and Western Digital calls the HC560 an Advanced Format drive. Set `ashift=12` to match.

*Check the drives, then build a RAIDZ2 pool*

```bash
# every data drive on its own line, with model and serial
lsblk -d -o NAME,SIZE,ROTA,MODEL,SERIAL
smartctl -i /dev/sdb
ls -l /dev/disk/by-id/ | grep -v part

# RAIDZ2 over the data drives, by stable ID, 4K sectors
zpool create -o ashift=12 tank raidz2 \
  /dev/disk/by-id/ata-MODEL_SERIAL01 /dev/disk/by-id/ata-MODEL_SERIAL02 \
  /dev/disk/by-id/ata-MODEL_SERIAL03 /dev/disk/by-id/ata-MODEL_SERIAL04
zpool status tank

# scrub once a month to find silent errors
zpool scrub tank
```

## What else do people ask about ZFS and hardware RAID?

### Do Basalthold servers have a hardware RAID controller?

Basalthold does not promise one. The operating system sits on its own SSD (two mirrored SSDs on the larger holds); the data drives arrive blank and unpartitioned, so you can build ZFS, an mdadm array or a set of independent disks. If you want the team to prepare a RAID 6 or RAID 10 array before delivery, say so to support before the server is handed over.

### Can I use ZFS on Debian or Ubuntu?

Yes. Debian 13 ships zfsutils-linux 2.3.9 in contrib and Ubuntu 24.04 ships 2.2.2. Proxmox VE and Proxmox Backup Server include ZFS. Debian 13, Debian 12, Ubuntu 24.04 LTS, AlmaLinux 10, Rocky Linux 10, Proxmox VE 9 and Proxmox Backup Server 4.

### Is ZFS safe without ECC memory?

The OpenZFS FAQ calls ECC memory not really a requirement but highly recommended. Hold 100 and Hold 160 come with 128 GB DDR4 ECC and 128 GB DDR4 ECC.

### What happens when a drive in my ZFS pool fails?

When a drive fails, open a ticket: the team has it replaced at no cost, and rebuilding the array on the new drive is up to your setup. Run zpool replace with the new drive's by-id name, then watch zpool status until the resilver ends.

### Can I rent a storage server with crypto and no KYC?

Yes. Basalthold takes BTC, USDT, USDC, ETH, SOL, LTC, from a top-up of $25. No KYC: no ID, no selfie, no documents, no card and no phone number, at any point. Every hold and term is on [the price list](https://basalthold.com/pricing/ "Basalthold storage server prices").

**Blank drives, your own pool** Hold 100: Intel Xeon Silver 4210R (10 cores / 20 threads), 128 GB DDR4 ECC, 10 × 10 TB hard drives (100 TB raw) plus 2 × 480 GB SSD for the system, mirrored, 1 Gbit/s port with 120 TB of traffic per 30 days, 1 IPv4 and an IPv6 /64, for $377.05/30 days. Crypto, no KYC. [Rent Hold 100 in Amsterdam](https://basalthold.com/app/checkout/?plan=hold-100&location=nl-ams&lang=en) · [Rent Hold 160 in Chisinau](https://basalthold.com/app/checkout/?plan=hold-160&location=md-kiv&lang=en)

## Sources

1. [Hardware: Hardware RAID controllers](https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Hardware.html) — OpenZFS (read 2026-11-02)
2. [FAQ: Hardware Requirements](https://openzfs.github.io/openzfs-docs/Project%20and%20Community/FAQ.html) — OpenZFS (read 2026-11-02)
3. [zpoolconcepts(7): raidz and the write hole](https://openzfs.github.io/openzfs-docs/man/master/7/zpoolconcepts.7.html) — OpenZFS (read 2026-11-02)
4. [zpool-scrub(8)](https://openzfs.github.io/openzfs-docs/man/master/8/zpool-scrub.8.html) — OpenZFS (read 2026-11-02)
5. [md(4): multiple device driver](https://man7.org/linux/man-pages/man4/md.4.html) — Linux man-pages (read 2026-11-02)
6. [Package zfsutils-linux in Debian trixie](https://packages.debian.org/trixie/zfsutils-linux) — Debian (read 2026-11-02)
7. [Package zfsutils-linux in Ubuntu noble](https://packages.ubuntu.com/noble/zfsutils-linux) — Ubuntu (read 2026-11-02)
8. [Exos X20 data sheet (DS2080-2111US)](https://www.seagate.com/content/dam/seagate/migrated-assets/www-content/datasheets/pdfs/exos-x20-channel-DS2080-2111US-en_US.pdf) — Seagate Technology (November 2021, read 2026-11-02)
9. [Ultrastar DC HC560 data sheet (D018-000383-AA02)](https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/data-center-drives/ultrastar-dc-hc500-series/data-sheet-ultrastar-dc-hc560.pdf) — Western Digital (July 2022, read 2026-11-02)

---

Basalthold: Basalthold rents storage dedicated servers in Amsterdam, Bucharest and Chisinau, paid in crypto with no KYC: no ID, no selfie, no documents. Each server is a whole physical machine with 24 TB to 160 TB of hard drives for one customer, delivered with blank data drives and root access, for backups, archives, file sync and self-hosted object storage. On 2 November 2026, prices ran from $110.99 per 30 days for 24 TB to $561.39 for 160 TB ($3.50 per raw TB). It is run by DomaineGoat LLC, a company registered in Panama, keeps no logs and never asks for your encryption keys.
