Skip to content
    • About
    • Contact

/root

OpenZFS
  • unit/zap: uint64 keys

    June 6th, 2026

    robn introduced a test suite for the ZFS Attribute Processor (ZAP) with this commit: https://github.com/robn/zfs/commit/1d601eb83b1b849edba047feae5137f0adb93ee2

    Since then several API functions of ZAP were implemented as unit tests. With my new commit I introduce a uint64 keys test that provides coverage for binary uint64-array keys that are also used by the dedup table (DDT) and the block reference table (BRT).

    The test runs dnode operations including: add, lookup, length, lookup_length, update and remove as they are implemented in module/zfs/zap.c

    To build and run the test use the instructions here: https://github.com/openzfs/zfs/blob/master/tests/unit/README.md

    The results:

    > make unit
    UNITTEST tests/unit/test_zap
    Running test suite with seed 0x8f27c767...
    zap.mock_microzap_sanity [ OK ] [ 0.00001072 / 0.00001014 CPU ]
    zap.mock_fatzap_sanity [ OK ] [ 0.00002379 / 0.00002299 CPU ]
    zap.zap_basic
    type=micro [ OK ] [ 0.00002169 / 0.00002172 CPU ]
    type=fat [ OK ] [ 0.00002119 / 0.00002120 CPU ]
    zap.zap_add
    type=micro [ OK ] [ 0.00000964 / 0.00000965 CPU ]
    type=fat [ OK ] [ 0.00002727 / 0.00002665 CPU ]
    zap.zap_update
    type=micro [ OK ] [ 0.00001184 / 0.00001185 CPU ]
    type=fat [ OK ] [ 0.00001811 / 0.00001806 CPU ]
    zap.zap_remove
    type=micro [ OK ] [ 0.00001190 / 0.00001192 CPU ]
    type=fat [ OK ] [ 0.00002998 / 0.00002978 CPU ]
    zap.zap_count
    type=micro [ OK ] [ 0.00001882 / 0.00001843 CPU ]
    type=fat [ OK ] [ 0.00001707 / 0.00001706 CPU ]
    zap.zap_contains
    type=micro [ OK ] [ 0.00001400 / 0.00001359 CPU ]
    type=fat [ OK ] [ 0.00001650 / 0.00001651 CPU ]
    zap.zap_length
    type=micro [ OK ] [ 0.00001039 / 0.00001038 CPU ]
    type=fat [ OK ] [ 0.00002450 / 0.00002413 CPU ]
    zap.zap_increment
    type=micro [ OK ] [ 0.00001459 / 0.00001457 CPU ]
    type=fat [ OK ] [ 0.00002773 / 0.00002737 CPU ]
    zap.zap_int
    type=micro [ OK ] [ 0.00002339 / 0.00002288 CPU ]
    type=fat [ OK ] [ 0.00003203 / 0.00003164 CPU ]
    zap.zap_int_keys
    type=micro [ OK ] [ 0.00001585 / 0.00001579 CPU ]
    type=fat [ OK ] [ 0.00004489 / 0.00004479 CPU ]
    zap.microzap_stats [ OK ] [ 0.00001210 / 0.00001212 CPU ]
    zap.fatzap_stats [ OK ] [ 0.00001901 / 0.00001899 CPU ]
    zap.uint64_keys [ OK ] [ 0.00001770 / 0.00001764 CPU ]
    zap.cursor
    type=micro [ OK ] [ 0.00002167 / 0.00002166 CPU ]
    type=fat [ OK ] [ 0.00003274 / 0.00003226 CPU ]
    zap.cursor_serialize
    type=micro [ OK ] [ 0.00002177 / 0.00002173 CPU ]
    type=fat [ OK ] [ 0.00002936 / 0.00002924 CPU ]
    zap.cursor_release_unused
    type=micro [ OK ] [ 0.00001119 / 0.00001115 CPU ]
    type=fat [ OK ] [ 0.00001867 / 0.00001856 CPU ]
    zap.cursor_release_advance
    type=micro [ OK ] [ 0.00001058 / 0.00001056 CPU ]
    type=fat [ OK ] [ 0.00001544 / 0.00001544 CPU ]
    zap.cursor_release_empty
    type=micro [ OK ] [ 0.00000918 / 0.00000907 CPU ]
    type=fat [ OK ] [ 0.00001564 / 0.00001563 CPU ]
    zap.cursor_release_one
    type=micro [ OK ] [ 0.00001696 / 0.00001662 CPU ]
    type=fat [ OK ] [ 0.00001843 / 0.00001841 CPU ]
    zap.zap_value_search
    type=micro [ OK ] [ 0.00001555 / 0.00001551 CPU ]
    type=fat [ OK ] [ 0.00002377 / 0.00002379 CPU ]
    zap.zap_value_search_mask
    type=micro [ OK ] [ 0.00001525 / 0.00001524 CPU ]
    type=fat [ OK ] [ 0.00002293 / 0.00002288 CPU ]
    41 of 41 (100%) tests successful, 0 (0%) test skipped.
  • My 3-2-1 backup topology

    June 6th, 2026
    1. My Samsung Galaxy A55 smartphone as well my Arch Linux Desktop get synced with Synology Drive to my Synology DS425+ NAS.
    2. Then a HyperBackup task runs every night to sync the contents to my Aoostar WTR Max TrueNAS Server.
    3. Finally a dedicated StorJ S3 storage backup task runs to an off-site encrypted destination.
  • Grafana TrueNAS server metrics

    June 6th, 2026

    Grafana coupled with Prometheus as a docker container that provides CPU, RAM, network bandwidth metrics and much more.

    Over 1 billion downloads in DockerHub!!

    https://hub.docker.com/r/grafana/grafana

    https://github.com/grafana/grafana

  • n8n CI failure automation

    June 4th, 2026

    This workflow automates the detection of OpenZFS CI failure detection via Gotify notifications !!

  • This dude created a YT channel to hate on C++

    June 4th, 2026
  • Arch Linux 01.06.2026

    June 4th, 2026
  • TrueNAS 25.10.4 is Now Available

    June 3rd, 2026

    Notable changes:

    • Updates the Linux kernel to the latest 6.12 LTS release (v6.12.91). This update mitigates several kernel vulnerabilities, including the Dirty-Frag local privilege escalation (CVE-2026-43284 and CVE-2026-43500), the CIFSwitch local privilege escalation in the CIFS client (CVE-2026-46243), a ptrace privilege issue (CVE-2026-46333), and the related Fragnesia privilege escalation in the ESP-in-TCP path (CVE-2026-46300). It also enables additional CPU side-channel mitigations.
    • Updates Samba to version 4.22.10 to address multiple security vulnerabilities.
      This Samba maintenance release resolves several CVEs, including a missing access check that let read-only users set or delete reparse point attributes (CVE-2026-1933) and a flaw in the WORM (Write Once, Read Many) module that allowed protected files to be overwritten by renaming a new file over them (CVE-2026-2340). See the Samba 2026 security release impact statement for the TrueNAS-specific impact assessment, or the Samba 4.22.10 release notes for the complete upstream list.
    • Fixes a potential double free when freeing blocks cloned after deduplication table pruning.
      Blocks created through block cloning could be freed more than once if their deduplication table (DDT) entries had already been pruned, because the free path did not check the block reference table (BRT) first.
    • Fixes virtual machines stored on NFSv4.1 datasets failing to power on.
      A change introduced in 25.10.2.1 could cause the NFSv4 change cookie to move backward after a file left the cache due to memory pressure, a remount, or a reboot. NFSv4.1 clients that depend on a monotonic change cookie, notably VMware ESXi, rejected the affected files. A virtual machine stored on an NFSv4.1-exported ZFS dataset then failed to power on with the error “The file specified is not a virtual disk.” This release reverts that change while a complete fix is finalized upstream.
    • Fixes a kernel crash in the iSCSI target layer during SCSI bus or LUN resets.
      A use-after-free in the clustered locking path of the iSCSI target could crash the system during a SCSI reset, most often on Enterprise High Availability (HA) systems while a peer controller was leaving the cluster. The target layer now waits for lock teardown to complete before releasing the associated memory.
    • Improves iSCSI LUN replacement during High Availability failover.
      On Enterprise HA systems, cleanup of a replaced LUN could stall during failover while a peer controller was being evicted from the cluster, which blocked later LUN replacements. Cleanup is now held until the cluster coordination it depends on has finished.
    • Fixes a validation error that blocked static network configuration on some High Availability systems.
      On HA-capable systems, saving a static network configuration could incorrectly fail with “Enabling DHCPv4/v6 on HA systems is unsupported” even when DHCP was not being enabled. This affected fresh installs before any interface had a saved configuration. The check now triggers only when DHCP or IPv6 autoconfiguration is explicitly enabled.
    • Improves Active Directory rejoin, reset, and recovery handling.
      This release hardens the Active Directory rejoin and directory services reset operations, improves domain controller selection on systems with more than one available controller, and produces clearer diagnostics when a join or authentication problem occurs.
    • Fixes ZFS automatic snapshots not being created after a Time Machine backup until the Mac reconnects.
      When a Time Machine SMB share has automatic snapshots enabled, recent macOS versions (Tahoe and later) sometimes keep the SMB session open after a backup completes instead of disconnecting, which prevented the post-backup ZFS snapshot from being taken until the client reconnected or restarted. The snapshot logic is updated to handle these persistent Time Machine sessions.
    • Reduces excessive winbind log messages for failed user and group lookups.
      When Active Directory is enabled, looking up a user or group that does not exist (for example through getpwnam or getgrnam) generated a warning for every failed lookup, which could rapidly fill the winbind log. These messages are now logged at informational level instead of as warnings.

    https://www.truenas.com/docs/scale/25.10/gettingstarted/versionnotes/#25.10.4

  • It hit the fan

    June 2nd, 2026
  • ARC analysis on my TrueNAS: 98% Hit Ratio!!

    June 1st, 2026

    My home server configuration:

    The server runs TrueNAS SCALE (release 26.0.0-BETA.1) on an AMD Ryzen 7 PRO 8845HS, with 32 GiB of memory and no swap configured. Alongside ZFS it hosts a substantial collection of services including Portainer-managed containers, immich, Forgejo, FreshRSS, Jellyfin an automation platform, several PostgreSQL databases, an identity provider, and a number of smaller tools. At the moment of measurement, the operating system reported the following:

                total   used   free   buff/cache   available
    Mem:         30Gi   27Gi   1.2Gi      3.8Gi        3.3Gi

    Uptime stats:

    The following figures come from /proc/spl/kstat/zfs/arcstats, accumulated over an uptime of 53 days:

    MetricValue
    ARC size5.04 GiB
    ARC target (c)5.09 GiB
    Maximum (c_max)29.68 GiB
    Minimum (c_min)0.96 GiB
    L2ARCnone configured

    The hit and miss rates, derived from the raw counters, break down as follows:

    Access classHit rateMiss rate
    Overall96.4%3.6%
    Demand data98.05%1.95%
    Demand metadata97.91%2.09%
    Prefetch data6.0%94.0%
    Prefetch metadata66.9%33.1%

    Live view of hit/miss performance:

    Because the counters above are cumulative since boot, they represent an average spanning nearly two months and cannot, on their own, describe the system’s present behaviour. To capture that, I sampled the cache once per second under active load using arcstat:

        time  read  ddread  ddh%  dmread  dmh%  pread  ph%   size      c  avail
    22:23:43   949     867  98.8      77  98.7      5    0   5.3G   5.3G   118M
    22:23:44   668     384  97.7     284   100      0    0   5.3G   5.3G   425M
    22:23:45  1.5K    1.1K  98.5     432   100     39  2.6   5.3G   5.3G   367M
    22:23:46   686     421  98.6     248   100     17    0   5.3G   5.3G   344M

    With reads peaking at roughly 1500 per second, the demand-data hit rate held steady at approximately 98% matching that of the uptime, thus confirming that the long-term average is not concealing a recent decline in performance. The cache is presently serving requests just as effectively as it has, on average, throughout its uptime.

    ddh% : Demand-data hit

    dmh% : Demand-metadata hit


    Stats were obtained from /proc/spl/kstat/zfs/arcstats, with live sampling via arcstat.

    The equivalent figures are available on FreeBSD under kstat.zfs.misc.arcstats.

  • PriceBuddy

    June 1st, 2026

    RAM prices are getting high, so I set up a self-hosted price tracking service called PriceBuddy to monitor specific products on Amazon.de, Amazon.com, and Geizhals.

    I also built a SeleniumBase scraper to parse data from the Geizhals website.

  • FreeBSD 15.1 RC2 available

    May 31st, 2026

    Happy testing fellow geeks.

  • When for God’s sake !!!!

    May 31st, 2026
  • Beszel for monitoring my TrueNAS server

    May 31st, 2026

    Very beautiful graphs !!!

    https://beszel.dev

  • Updating package index before package removal in QEMU VM hosts

    May 31st, 2026

    One line of code can change a bunch of failed CI matrix runs!!

  • Anki 26.05 Beta 2 released!

    May 31st, 2026

    https://github.com/ankitects/anki/releases/tag/26.05b2

←Previous Page
1 … 6 7 8 9 10 … 149
Next Page→

Blog at WordPress.com.

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy
Loading Comments...
  • Subscribe Subscribed
    • /root
    • Already have a WordPress.com account? Log in now.
    • /root
    • Subscribe Subscribed
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar