have you ever successfully broken the zfs to the point where it’s not recoverable?

  • lemmyvore@feddit.nl
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    5 hours ago

    I’m honestly terrified to use ZFS. Roast me if you must. It has got to be the most arcane filesystem ever. I’ve tried learning it but it looks like a million obscure gotchas just waiting to fuck up your shit. Someone will post an error and people are like “ha ha you fucker yeah you didn’t shprutzle your cache vdevs sideways. Noob mistake. Oh your data is ruined btw”.

    I mean look at that shit, “scrub repaired 0b with 5 errors”. I feel like Richmond looking at the server lights in IT Crowd. “Is it good that it’s doing that? Is it bad? I feel like I should be telling someone.”

    • GrapheneOSRuinedMyPixel@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 hours ago

      haha, no, depending on your use case zfs is mostly set and forget, you just have to get a set of sane defaults, which, at least for me, is way easier and saner than stuff like btrfs. Arch wiki is a good source for that.

      scrub is a command that reads data from disks and verifies checksums, it can automatically heal the corrupt data if some redundancy is available. 0 bytes repaired means nothing was repaired, 5 errors mean that there are 5 instances where the recalculated checksums of data did not match the expected values that were calculated when initially written. Normally the command would output ‘scrub repaired 0B with 0 errors’, that’s how you know that the pool is healthy.

      shprutzling the cache vdevs sideways is generally required only for obscure optimizations, I’ve never seen a case where a wrong setting would lead to data loss.

      The gotchas come from a single thing: the stupid CDDL licence, which is not compatible with GPL. That means that zfs is not included in linux kernel and most of the normal linux userspace filesystem stuff do not work with zfs.

      Also, keep in mind that zfs is generally almost impossible to fuck up, what I’ve done here is a result of extreme dedication and like 8 years of experience.

      • ggtdbz@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        2
        ·
        3 hours ago

        Just so I understand, since I was looking into using ZFS for my storage before hard drives went up by like 400%: you set up things in an obtuse way and you got a failure that can’t be recovered from?

        I somewhat wrapped my head around how ZFS data storage itself works, and was feeling relatively confident that it’s what I’d use.

        • GrapheneOSRuinedMyPixel@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 hours ago

          the problem here does not originate in zfs, this is a hardware failure due to a poorly supported SoC (vendor says PCIe works ‘normally’ since kernel 7.1, this system ran 6.19) and bad electricity supply

    • GrapheneOSRuinedMyPixel@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 hours ago

      do you ever get a new shiny thing and it looks like it works very nice and coherently and then you dig a bit deeper and realize that it is just a bunch of semi-broken shit held together by glue and duct tape? that’s the state of android, that is nicely obscured on pixels by google customizations

      • BakedCatboy@lemmy.ml
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        19 hours ago

        Raidz1 or z2? One of the reasons I went with z2 is because of the “raid5 is dead” thing, argument basically being, drives are so large that if 1 fails, you are statistically almost guaranteed to encounter a read error during the rebuild when you no longer have any redundancy, so double redundancy is a necessity nowadays.

          • BakedCatboy@lemmy.ml
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            16 hours ago

            Raidz5 doesn’t exist, I assume you mean raid5? And you wouldn’t know, URE is sometimes silent, and because without parity during a rebuild you would be recalculating the parity bit and assumig every read on the remaining drives is successful. Except the URE rate for drives hasn’t gone down to match the increasing size of drives - so for a full 1x read of a large drive, you’re statistically at risk to get at least 1 URE.

            In short, there is no integrity checking when rebuilding a single redundancy array after a drive failure, so just because a rebuild succeeds, doesn’t mean nothing was lost or corrupted. With double redundancy, you will still have single redundancy during a rebuild, so you would be able to detect URE and retry reads or raise an error to the user.

            Some articles may make it overblown - you won’t lose your whole array, but any files stored in the block that had the URE during rebuild would be lost. And you might not know that it happened.

            You can read about it here: https://www.servnetuk.com/insights/ure-is-raid-5-dead

          • GrapheneOSRuinedMyPixel@sh.itjust.worksOP
            link
            fedilink
            English
            arrow-up
            2
            ·
            16 hours ago

            I’ve seen a calculation somewhere for drive speed, size and scrub frequency where optimal number of extra drives was calculated. On fast storage and with weekly scrubs one extra drive should be mostly fine.

            My philosophy is any raid is not really a data contingency solution - it just saves some time when the drive fails.

        • GrapheneOSRuinedMyPixel@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          16 hours ago

          This is raidz1. Three 4TB NVME drives. I’ve built this machine as the primary server for services like immich as a fun project that enables me to say that my photo service runs faster than all the commercial stuff and is on ARM64. The downside is that the SoC is not supported by upstream very well so vendor patches had to be applied and there was some instability between that and my shitty electricity supply.

  • Ellen@discuss.tchncs.de
    link
    fedilink
    arrow-up
    2
    ·
    19 hours ago

    Trying to import my pool causes a panic, so maybe? Though am still in the middle of trying to recover, just haven’t had time to work on it yet.

    • GrapheneOSRuinedMyPixel@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      16 hours ago

      I feel very sorry for you. I have the same problem (panic on mount) with this one, but at least it works when mounting read-only. I’ve been moving data with zfs send the entire day