Can ZFS mirror install boot with 1 failed drive?

Started by ender526, April 27, 2022, 12:48:29 AM

Previous topic - Next topic
Hello,

I am considering re-installing using a zfs mirror for redundancy more than data integrity. If I lose my FW to a bad drive I lose internal dns and internet. So my goal would be if I lost a drive, that both drives would be bootable and I could stay up on a single drive until Amazon prime delivered another drive. My question is, are both drives bootable when using the installer mirror option by default, Or do I need to mess with the partition tables?

Thanks!

May 28, 2022, 09:13:56 PM #1 Last Edit: May 28, 2022, 09:16:16 PM by _Alchemist_
Quote from: ender526 on April 27, 2022, 12:48:29 AMMy question is, are both drives bootable when using the installer mirror option by default, Or do I need to mess with the partition tables?

Hello ender526,

I just installed OPNsense 22.1.2 on a spare PC (Biostar J3160NH) with two Seagate 2TB SATA HDDs (zfs mirror) and tried booting with both, only the first and only the second HDD.

This were my results:

  • Both HDDs: Boots just fine, as expected
  • Only the first HDD (ada0): Boots just fine
  • Only the second HDD (ada1): Boots just fine, but the CLI is broken (the screen hangs at the Kernel loading messages)

The Web GUI could be reached in all three cases.

Some more System information (the system time can be ignored):

Both HDDs

root@OPNsense:~ # zpool status
  pool: zroot
state: ONLINE
  scan: resilvered 4.80M in 00:00:01 with 0 errors on Wed Jul 29 00:52:21 2015
config:

NAME          STATE     READ WRITE CKSUM
zroot         ONLINE       0     0     0
  mirror-0    ONLINE       0     0     0
    ada0p4    ONLINE       0     0     0
    gpt/zfs1  ONLINE       0     0     0

errors: No known data errors
root@OPNsense:~ # camcontrol devlist
<SEAGATE ST2000NM0033 NS01>        at scbus0 target 0 lun 0 (pass0,ada0)
<SEAGATE ST2000NM0033 NS01>        at scbus1 target 0 lun 0 (pass1,ada1)
root@OPNsense:~ # opnsense-version
OPNsense 22.1.2_2 (amd64/OpenSSL)


First HDD only

root@OPNsense:~ # zpool status
  pool: zroot
state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-2Q
  scan: resilvered 5.70M in 00:00:01 with 0 errors on Wed Jul 29 00:43:16 2015
config:

NAME          STATE     READ WRITE CKSUM
zroot         DEGRADED     0     0     0
  mirror-0    DEGRADED     0     0     0
    ada0p4    ONLINE       0     0     0
    gpt/zfs1  UNAVAIL      0     0     0  cannot open

errors: No known data errors
root@OPNsense:~ # camcontrol devlist
<SEAGATE ST2000NM0033 NS01>        at scbus0 target 0 lun 0 (pass0,ada0)
root@OPNsense:~ # opnsense-version
OPNsense 22.1.2_2 (amd64/OpenSSL)


Second HDD only

root@OPNsense:~ # zpool status
  pool: zroot
state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-2Q
  scan: resilvered 4.80M in 00:00:01 with 0 errors on Wed Jul 29 00:52:21 2015
config:

NAME          STATE     READ WRITE CKSUM
zroot         DEGRADED     0     0     0
  mirror-0    DEGRADED     0     0     0
    ada0p4    UNAVAIL      0     0     0  cannot open
    gpt/zfs1  ONLINE       0     0     0

errors: No known data errors
root@OPNsense:~ # camcontrol devlist
<SEAGATE ST2000NM0033 NS01>        at scbus1 target 0 lun 0 (pass0,ada0)
root@OPNsense:~ # opnsense-version
OPNsense 22.1.2_2 (amd64/OpenSSL)


I hope this answered your question. :)
OPNsense: Intel Core i5-6500, 16 GB RAM, 2x 120GB SSD ZFS-mirror, 4x Intel i350-T4