summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--about/resources.gmi200
-rw-r--r--gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi50
-rw-r--r--gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi.tpl12
-rw-r--r--gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi10
-rw-r--r--gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi.tpl10
-rw-r--r--gemfeed/atom.xml62
-rw-r--r--index.gmi2
-rw-r--r--uptime-stats.gmi2
8 files changed, 193 insertions, 155 deletions
diff --git a/about/resources.gmi b/about/resources.gmi
index ee966473..a20dcabc 100644
--- a/about/resources.gmi
+++ b/about/resources.gmi
@@ -35,110 +35,110 @@ You won't find any links on this site because, over time, the links will break.
In random order:
-* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-* Concurrency in Go; Katherine Cox-Buday; O'Reilly
-* Raku Fundamentals; Moritz Lenz; Apress
-* Leanring eBPF; Liz Rice; O'Reilly
-* Systemprogrammierung in Go; Frank Müller; dpunkt
-* Java ist auch eine Insel; Christian Ullenboom;
-* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
-* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
-* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+* Modern Perl; Chromatic ; Onyx Neon Press
+* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
* Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
-* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-* Ultimate Go Notebook; Bill Kennedy
+* Java ist auch eine Insel; Christian Ullenboom;
+* Systemprogrammierung in Go; Frank Müller; dpunkt
* Data Science at the Command Line; Jeroen Janssens; O'Reilly
+* Developing Games in Java; David Brackeen and others...; New Riders
* Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
* Funktionale Programmierung; Peter Pepper; Springer
-* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
-* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
-* Higher Order Perl; Mark Dominus; Morgan Kaufmann
-* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-* DNS and BIND; Cricket Liu; O'Reilly
-* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+* Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
* Pro Puppet; James Turnbull, Jeffrey McCune; Apress
-* Developing Games in Java; David Brackeen and others...; New Riders
+* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
* 21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
-* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
+* The Docker Book; James Turnbull; Kindle
+* Perl New Features; Joshua McAdams, brian d foy; Perl School
+* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
* The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-* Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
+* Effective Java; Joshua Bloch; Addison-Wesley Professional
+* Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+* 97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
+* C++ Programming Language; Bjarne Stroustrup;
+* Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
+* Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
+* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+* Ultimate Go Notebook; Bill Kennedy
+* DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
+* Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+* Site Reliability Engineering; How Google runs production systems; O'Reilly
+* Leanring eBPF; Liz Rice; O'Reilly
* The Pragmatic Programmer; David Thomas; Addison-Wesley
+* The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
+* Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+* Higher Order Perl; Mark Dominus; Morgan Kaufmann
+* Effective awk programming; Arnold Robbins; O'Reilly
+* Raku Fundamentals; Moritz Lenz; Apress
+* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
* Polished Ruby Programming; Jeremy Evans; Packt Publishing
-* Perl New Features; Joshua McAdams, brian d foy; Perl School
-* 100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
-* The Docker Book; James Turnbull; Kindle
-* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
-* Modern Perl; Chromatic ; Onyx Neon Press
-* Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+* The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
+* Concurrency in Go; Katherine Cox-Buday; O'Reilly
+* Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
* Raku Recipes; J.J. Merelo; Apress
-* C++ Programming Language; Bjarne Stroustrup;
-* Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-* Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
-* Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
-* The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
-* Effective Java; Joshua Bloch; Addison-Wesley Professional
-* The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
+* The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
+* Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
* Terraform Cookbook; Mikael Krief; Packt Publishing
-* Effective awk programming; Arnold Robbins; O'Reilly
-* Site Reliability Engineering; How Google runs production systems; O'Reilly
+* Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+* Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+* DNS and BIND; Cricket Liu; O'Reilly
## Technical references
I didn't read them from the beginning to the end, but I am using them to look up things. The books are in random order:
-* The Linux Programming Interface; Michael Kerrisk; No Starch Press
+* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
* Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
-* Relayd and Httpd Mastery; Michael W Lucas
+* The Linux Programming Interface; Michael Kerrisk; No Starch Press
+* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
* Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
+* Relayd and Httpd Mastery; Michael W Lucas
* Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
-* Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
* BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
-* Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
## Self-development and soft-skills books
In random order:
-* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
* Atomic Habits; James Clear; Random House Business
-* Slow Productivity; Cal Newport; Penguin Random House
-* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
+* Meditation for Mortals, Oliver Burkeman, Audiobook
+* 101 Essays that change the way you think; Brianna Wiest; Audiobook
* Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-* Soft Skills; John Sommez; Manning Publications
-* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
-* Eat That Frog; Brian Tracy
+* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+* The Joy of Missing Out; Christina Crook; New Society Publishers
+* The Good Enough Job; Simone Stolzoff; Ebury Edge
* So Good They Can't Ignore You; Cal Newport; Business Plus
-* Stop starting, start finishing; Arne Roock; Lean-Kanban University
-* Getting Things Done; David Allen
-* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
* The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
-* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
-* Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
-* Eat That Frog!; Brian Tracy; Hodder Paperbacks
+* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
+* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+* Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+* Digital Minimalism; Cal Newport; Portofolio Penguin
+* Deep Work; Cal Newport; Piatkus
+* The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+* Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
+* The Bullet Journal Method; Ryder Carroll; Fourth Estate
* The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
-* Meditation for Mortals, Oliver Burkeman, Audiobook
-* The Good Enough Job; Simone Stolzoff; Ebury Edge
-* The Joy of Missing Out; Christina Crook; New Society Publishers
-* Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
-* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-* The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
* The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
-* Ultralearning; Anna Laurent; Self-published via Amazon
-* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
-* Ultralearning; Scott Young; Thorsons
+* Soft Skills; John Sommez; Manning Publications
+* Slow Productivity; Cal Newport; Penguin Random House
* The Power of Now; Eckhard Tolle; Yellow Kite
-* Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
-* The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
-* Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
+* Eat That Frog; Brian Tracy
* Influence without Authority; A. Cohen, D. Bradford; Wiley
-* The Bullet Journal Method; Ryder Carroll; Fourth Estate
-* 101 Essays that change the way you think; Brianna Wiest; Audiobook
-* Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
-* Digital Minimalism; Cal Newport; Portofolio Penguin
+* The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
+* Getting Things Done; David Allen
+* Psycho-Cybernetics; Maxwell Maltz; Perigee Books
+* Ultralearning; Scott Young; Thorsons
+* 97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
+* Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
+* The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
+* Ultralearning; Anna Laurent; Self-published via Amazon
+* Eat That Frog!; Brian Tracy; Hodder Paperbacks
* The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
-* Deep Work; Cal Newport; Piatkus
+* Stop starting, start finishing; Arne Roock; Lean-Kanban University
=> ../notes/index.gmi Here are notes of mine for some of the books
@@ -146,29 +146,29 @@ In random order:
Some of these were in-person with exams; others were online learning lectures only. In random order:
+* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
* Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
+* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
* Scripting Vim; Damian Conway; O'Reilly Online
* Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
-* Apache Tomcat Best Practises; 3-day on-site training
-* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
+* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
* The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
* Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-* Functional programming lecture; Remote University of Hagen
-* F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
-* Structure and Interpretation of Computer Programs; Harold Abelson and more...;
-* AWS Immersion Day; Amazon; 1-day interactive online training
-* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
* MySQL Deep Dive Workshop; 2-day on-site training
+* Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
+* Functional programming lecture; Remote University of Hagen
* The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
-* Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
* Protocol buffers; O'Reilly Online
+* Ultimate Go Programming; Bill Kennedy; O'Reilly Online
+* AWS Immersion Day; Amazon; 1-day interactive online training
+* Apache Tomcat Best Practises; 3-day on-site training
## Technical guides
These are not whole books, but guides (smaller or larger) which I found very useful. in random order:
-* How CPUs work at https://cpu.land
* Advanced Bash-Scripting Guide
+* How CPUs work at https://cpu.land
* Raku Guide at https://raku.guide
## Podcasts
@@ -177,57 +177,57 @@ These are not whole books, but guides (smaller or larger) which I found very use
In random order:
-* Dev Interrupted
-* BSD Now [BSD]
-* Cup o' Go [Golang]
-* Wednesday Wisdom
-* Pratical AI
-* Hidden Brain
-* Backend Banter
-* Deep Questions with Cal Newport
* Fallthrough [Golang]
-* The Changelog Podcast(s)
* Modern Mentor
+* Hidden Brain
+* Deep Questions with Cal Newport
* The ProdCast (Google SRE Podcast)
+* The Changelog Podcast(s)
* Maintainable
* The Pragmatic Engineer Podcast
+* Cup o' Go [Golang]
+* Dev Interrupted
* Fork Around And Find Out
+* Backend Banter
+* Wednesday Wisdom
+* BSD Now [BSD]
+* Pratical AI
### Podcasts I liked
I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.
-* Java Pub House
-* Go Time (predecessor of fallthrough)
-* CRE: Chaosradio Express [german]
* FLOSS weekly
* Ship It (predecessor of Fork Around And Find Out)
+* Go Time (predecessor of fallthrough)
+* CRE: Chaosradio Express [german]
+* Java Pub House
* Modern Mentor
## Newsletters I like
This is a mix of tech and non-tech newsletters I am subscribed to. In random order:
-* Register Spill
-* The Pragmatic Engineer
+* byteSizeGo
+* Applied Go Weekly Newsletter
+* Changelog News
* Ruby Weekly
-* Andreas Brandhorst Newsletter (Sci-Fi author)
-* The Imperfectionist
+* VK Newsletter
* The Valuable Dev
+* The Imperfectionist
+* Andreas Brandhorst Newsletter (Sci-Fi author)
* Monospace Mentor
+* The Pragmatic Engineer
* Golang Weekly
-* VK Newsletter
-* byteSizeGo
-* Changelog News
-* Applied Go Weekly Newsletter
+* Register Spill
## Magazines I like(d)
This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:
+* freeX (not published anymore)
* Linux Magazine
* LWN (online only)
-* freeX (not published anymore)
* Linux User
# Formal education
diff --git a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi
index df2d1654..90de2f83 100644
--- a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi
+++ b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi
@@ -34,15 +34,15 @@ This is the sixth blog post about the f3s series for self-hosting demands in a h
* ⇢ ⇢ ⇢ Verifying replication after reboot
* ⇢ ⇢ ⇢ Understanding Failover Limitations and Design Decisions
* ⇢ ⇢ ⇢ Mounting the NFS datasets
-* ⇢ ⇢ ⇢ Troubleshooting: Files not appearing in replication
+* ⇢ ⇢ Troubleshooting: Files not appearing in replication
* ⇢ ⇢ ⇢ Configuring automatic key loading on boot
* ⇢ ⇢ ⇢ Troubleshooting: zrepl Replication Not Working
-* ⇢ ⇢ ⇢# Check if zrepl Services are Running
-* ⇢ ⇢ ⇢# Check zrepl Status for Errors
-* ⇢ ⇢ ⇢# Fixing "No Common Snapshot" Errors
-* ⇢ ⇢ ⇢# Network Connectivity Issues
-* ⇢ ⇢ ⇢# Encryption Key Issues
-* ⇢ ⇢ ⇢# Monitoring Ongoing Replication
+* ⇢ ⇢ ⇢ Check if zrepl Services are Running
+* ⇢ ⇢ ⇢ Check zrepl Status for Errors
+* ⇢ ⇢ ⇢ Fixing "No Common Snapshot" Errors
+* ⇢ ⇢ ⇢ Network Connectivity Issues
+* ⇢ ⇢ ⇢ Encryption Key Issues
+* ⇢ ⇢ ⇢ Monitoring Ongoing Replication
* ⇢ ⇢ CARP (Common Address Redundancy Protocol)
* ⇢ ⇢ ⇢ How CARP Works
* ⇢ ⇢ ⇢ Configuring CARP
@@ -389,10 +389,14 @@ jobs:
interval: 1m
pruning:
keep_sender:
+ - type: last_n
+ count: 10
- type: grid
grid: 4x7d | 6x30d
regex: "^zrepl_.*"
keep_receiver:
+ - type: last_n
+ count: 10
- type: grid
grid: 4x7d | 6x30d
regex: "^zrepl_.*"
@@ -414,9 +418,15 @@ jobs:
keep_sender:
- type: last_n
count: 10
+ - type: grid
+ grid: 4x7d
+ regex: "^zrepl_.*"
keep_receiver:
- type: last_n
count: 10
+ - type: grid
+ grid: 4x7d
+ regex: "^zrepl_.*"
EOF
```
@@ -633,7 +643,7 @@ paul@f1:~ % doas zfs set readonly=on zdata/sink/f0/zdata/enc/nfsdata
And replication should work again!
-### Troubleshooting: Files not appearing in replication
+## Troubleshooting: Files not appearing in replication
If you write files to `/data/nfs/` on `f0` but they don't appear on `f1`, check if the dataset is mounted on `f0`?
@@ -699,7 +709,7 @@ Important notes:
If `zrepl` replication is not working, here's a systematic approach to diagnose and fix common issues:
-#### Check if zrepl Services are Running
+### Check if zrepl Services are Running
First, verify that `zrepl` is running on both nodes:
@@ -713,7 +723,7 @@ paul@f0:~ % doas service zrepl start
paul@f1:~ % doas service zrepl start
```
-#### Check zrepl Status for Errors
+### Check zrepl Status for Errors
Use the status command to see detailed error information:
@@ -725,7 +735,7 @@ paul@f0:~ % doas zrepl status --mode raw
# Common errors include "no common snapshot" or connection failures
```
-#### Fixing "No Common Snapshot" Errors
+### Fixing "No Common Snapshot" Errors
This is the most common replication issue, typically occurring when:
@@ -777,7 +787,7 @@ paul@f0:~ % doas zrepl status --mode raw | grep -A10 "ZFSCmds.*Active"
paul@f0:~ % doas zrepl status --mode raw | grep BytesReplicated
```
-#### Network Connectivity Issues
+### Network Connectivity Issues
If replication fails to connect:
@@ -792,7 +802,7 @@ paul@f1:~ % doas netstat -an | grep 8888
paul@f0:~ % ping 192.168.2.131
```
-#### Encryption Key Issues
+### Encryption Key Issues
If encrypted replication fails:
@@ -806,7 +816,7 @@ paul@f1:~ % doas zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key \
zdata/sink/f0/zdata/enc/nfsdata
```
-#### Monitoring Ongoing Replication
+### Monitoring Ongoing Replication
After fixing issues, monitor replication health:
@@ -1193,13 +1203,13 @@ if [ ! -f /data/nfs/nfs.DO_NOT_REMOVE ]; then
zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key zdata/enc/nfsdata
zfs set mountpoint=/data/nfs zdata/enc/nfsdata
else
- doas zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key zdata/sink/f0/zdata/enc/nfsdata
- doas zfs set mountpoint=/data/nfs zdata/sink/f0/zdata/enc/nfsdata
- doas zfs mount zdata/sink/f0/zdata/enc/nfsdata
- doas zfs set readonly=on zdata/sink/f0/zdata/enc/nfsdata
+ zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key zdata/sink/f0/zdata/enc/nfsdata
+ zfs set mountpoint=/data/nfs zdata/sink/f0/zdata/enc/nfsdata
+ zfs mount zdata/sink/f0/zdata/enc/nfsdata
+ zfs set readonly=on zdata/sink/f0/zdata/enc/nfsdata
fi
- doas service nfsd stop 2>&1
- doas service mountd stop 2>&1
+ service nfsd stop 2>&1
+ service mountd stop 2>&1
fi
diff --git a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi.tpl b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi.tpl
index b5920c6b..69ee77d0 100644
--- a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi.tpl
+++ b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.gmi.tpl
@@ -1146,13 +1146,13 @@ if [ ! -f /data/nfs/nfs.DO_NOT_REMOVE ]; then
zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key zdata/enc/nfsdata
zfs set mountpoint=/data/nfs zdata/enc/nfsdata
else
- doas zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key zdata/sink/f0/zdata/enc/nfsdata
- doas zfs set mountpoint=/data/nfs zdata/sink/f0/zdata/enc/nfsdata
- doas zfs mount zdata/sink/f0/zdata/enc/nfsdata
- doas zfs set readonly=on zdata/sink/f0/zdata/enc/nfsdata
+ zfs load-key -L file:///keys/f0.lan.buetow.org:zdata.key zdata/sink/f0/zdata/enc/nfsdata
+ zfs set mountpoint=/data/nfs zdata/sink/f0/zdata/enc/nfsdata
+ zfs mount zdata/sink/f0/zdata/enc/nfsdata
+ zfs set readonly=on zdata/sink/f0/zdata/enc/nfsdata
fi
- doas service nfsd stop 2>&1
- doas service mountd stop 2>&1
+ service nfsd stop 2>&1
+ service mountd stop 2>&1
fi
diff --git a/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi b/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi
index d7ecc0d3..d76c3f6e 100644
--- a/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi
+++ b/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi
@@ -467,7 +467,10 @@ spec:
- record: node_memory_MemTotal_bytes
expr: node_memory_size_bytes{os="freebsd"}
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="freebsd"} + node_memory_inactive_bytes{os="freebsd"} + node_memory_cache_bytes{os="freebsd"}
+ expr: |
+ node_memory_free_bytes{os="freebsd"}
+ + node_memory_inactive_bytes{os="freebsd"}
+ + node_memory_cache_bytes{os="freebsd"}
- record: node_memory_MemFree_bytes
expr: node_memory_free_bytes{os="freebsd"}
- record: node_memory_Buffers_bytes
@@ -574,7 +577,10 @@ spec:
labels:
os: openbsd
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="openbsd"} + node_memory_inactive_bytes{os="openbsd"} + node_memory_cache_bytes{os="openbsd"}
+ expr: |
+ node_memory_free_bytes{os="openbsd"}
+ + node_memory_inactive_bytes{os="openbsd"}
+ + node_memory_cache_bytes{os="openbsd"}
labels:
os: openbsd
- record: node_memory_MemFree_bytes
diff --git a/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi.tpl b/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi.tpl
index 52b6a987..7521965f 100644
--- a/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi.tpl
+++ b/gemfeed/2025-12-07-f3s-kubernetes-with-freebsd-part-8.gmi.tpl
@@ -431,7 +431,10 @@ spec:
- record: node_memory_MemTotal_bytes
expr: node_memory_size_bytes{os="freebsd"}
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="freebsd"} + node_memory_inactive_bytes{os="freebsd"} + node_memory_cache_bytes{os="freebsd"}
+ expr: |
+ node_memory_free_bytes{os="freebsd"}
+ + node_memory_inactive_bytes{os="freebsd"}
+ + node_memory_cache_bytes{os="freebsd"}
- record: node_memory_MemFree_bytes
expr: node_memory_free_bytes{os="freebsd"}
- record: node_memory_Buffers_bytes
@@ -538,7 +541,10 @@ spec:
labels:
os: openbsd
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="openbsd"} + node_memory_inactive_bytes{os="openbsd"} + node_memory_cache_bytes{os="openbsd"}
+ expr: |
+ node_memory_free_bytes{os="openbsd"}
+ + node_memory_inactive_bytes{os="openbsd"}
+ + node_memory_cache_bytes{os="openbsd"}
labels:
os: openbsd
- record: node_memory_MemFree_bytes
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index 5373fb62..fcffb188 100644
--- a/gemfeed/atom.xml
+++ b/gemfeed/atom.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
- <updated>2025-12-07T00:32:01+02:00</updated>
+ <updated>2025-12-07T10:08:23+02:00</updated>
<title>foo.zone feed</title>
<subtitle>To be in the .zone!</subtitle>
<link href="gemini://foo.zone/gemfeed/atom.xml" rel="self" />
@@ -554,7 +554,10 @@ spec:
- record: node_memory_MemTotal_bytes
expr: node_memory_size_bytes{os="freebsd"}
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="freebsd"} + node_memory_inactive_bytes{os="freebsd"} + node_memory_cache_bytes{os="freebsd"}
+ expr: |
+ node_memory_free_bytes{os="freebsd"}
+ + node_memory_inactive_bytes{os="freebsd"}
+ + node_memory_cache_bytes{os="freebsd"}
- record: node_memory_MemFree_bytes
expr: node_memory_free_bytes{os="freebsd"}
- record: node_memory_Buffers_bytes
@@ -676,7 +679,10 @@ spec:
labels:
os: openbsd
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="openbsd"} + node_memory_inactive_bytes{os="openbsd"} + node_memory_cache_bytes{os="openbsd"}
+ expr: |
+ node_memory_free_bytes{os="openbsd"}
+ + node_memory_inactive_bytes{os="openbsd"}
+ + node_memory_cache_bytes{os="openbsd"}
labels:
os: openbsd
- record: node_memory_MemFree_bytes
@@ -4002,15 +4008,15 @@ content = "{CODE}"
<li>⇢ ⇢ <a href='#verifying-replication-after-reboot'>Verifying replication after reboot</a></li>
<li>⇢ ⇢ <a href='#understanding-failover-limitations-and-design-decisions'>Understanding Failover Limitations and Design Decisions</a></li>
<li>⇢ ⇢ <a href='#mounting-the-nfs-datasets'>Mounting the NFS datasets</a></li>
-<li>⇢ ⇢ <a href='#troubleshooting-files-not-appearing-in-replication'>Troubleshooting: Files not appearing in replication</a></li>
+<li>⇢ <a href='#troubleshooting-files-not-appearing-in-replication'>Troubleshooting: Files not appearing in replication</a></li>
<li>⇢ ⇢ <a href='#configuring-automatic-key-loading-on-boot'>Configuring automatic key loading on boot</a></li>
<li>⇢ ⇢ <a href='#troubleshooting-zrepl-replication-not-working'>Troubleshooting: zrepl Replication Not Working</a></li>
-<li>⇢ <a href='#-check-if-zrepl-services-are-running'>⇢# Check if zrepl Services are Running</a></li>
-<li>⇢ <a href='#-check-zrepl-status-for-errors'>⇢# Check zrepl Status for Errors</a></li>
-<li>⇢ <a href='#-fixing-no-common-snapshot-errors'>⇢# Fixing "No Common Snapshot" Errors</a></li>
-<li>⇢ <a href='#-network-connectivity-issues'>⇢# Network Connectivity Issues</a></li>
-<li>⇢ <a href='#-encryption-key-issues'>⇢# Encryption Key Issues</a></li>
-<li>⇢ <a href='#-monitoring-ongoing-replication'>⇢# Monitoring Ongoing Replication</a></li>
+<li>⇢ ⇢ <a href='#check-if-zrepl-services-are-running'>Check if zrepl Services are Running</a></li>
+<li>⇢ ⇢ <a href='#check-zrepl-status-for-errors'>Check zrepl Status for Errors</a></li>
+<li>⇢ ⇢ <a href='#fixing-no-common-snapshot-errors'>Fixing "No Common Snapshot" Errors</a></li>
+<li>⇢ ⇢ <a href='#network-connectivity-issues'>Network Connectivity Issues</a></li>
+<li>⇢ ⇢ <a href='#encryption-key-issues'>Encryption Key Issues</a></li>
+<li>⇢ ⇢ <a href='#monitoring-ongoing-replication'>Monitoring Ongoing Replication</a></li>
<li>⇢ <a href='#carp-common-address-redundancy-protocol'>CARP (Common Address Redundancy Protocol)</a></li>
<li>⇢ ⇢ <a href='#how-carp-works'>How CARP Works</a></li>
<li>⇢ ⇢ <a href='#configuring-carp'>Configuring CARP</a></li>
@@ -4404,10 +4410,14 @@ global:
interval: 1m
pruning:
keep_sender:
+ - <b><u><font color="#000000">type</font></u></b>: last_n
+ count: <font color="#000000">10</font>
- <b><u><font color="#000000">type</font></u></b>: grid
grid: 4x7d | 6x30d
regex: <font color="#808080">"^zrepl_.*"</font>
keep_receiver:
+ - <b><u><font color="#000000">type</font></u></b>: last_n
+ count: <font color="#000000">10</font>
- <b><u><font color="#000000">type</font></u></b>: grid
grid: 4x7d | 6x30d
regex: <font color="#808080">"^zrepl_.*"</font>
@@ -4429,9 +4439,15 @@ global:
keep_sender:
- <b><u><font color="#000000">type</font></u></b>: last_n
count: <font color="#000000">10</font>
+ - <b><u><font color="#000000">type</font></u></b>: grid
+ grid: 4x7d
+ regex: <font color="#808080">"^zrepl_.*"</font>
keep_receiver:
- <b><u><font color="#000000">type</font></u></b>: last_n
count: <font color="#000000">10</font>
+ - <b><u><font color="#000000">type</font></u></b>: grid
+ grid: 4x7d
+ regex: <font color="#808080">"^zrepl_.*"</font>
EOF
</pre>
<br />
@@ -4676,7 +4692,7 @@ paul@f1:~ % doas zfs <b><u><font color="#000000">set</font></u></b> <b><u><font
<br />
<span>And replication should work again!</span><br />
<br />
-<h3 style='display: inline' id='troubleshooting-files-not-appearing-in-replication'>Troubleshooting: Files not appearing in replication</h3><br />
+<h2 style='display: inline' id='troubleshooting-files-not-appearing-in-replication'>Troubleshooting: Files not appearing in replication</h2><br />
<br />
<span>If you write files to <span class='inlinecode'>/data/nfs/</span> on <span class='inlinecode'>f0</span> but they don&#39;t appear on <span class='inlinecode'>f1</span>, check if the dataset is mounted on <span class='inlinecode'>f0</span>?</span><br />
<br />
@@ -4755,7 +4771,7 @@ paul@f1:~ % doas zfs <b><u><font color="#000000">set</font></u></b> \
<br />
<span>If <span class='inlinecode'>zrepl</span> replication is not working, here&#39;s a systematic approach to diagnose and fix common issues:</span><br />
<br />
-<span>#### Check if zrepl Services are Running</span><br />
+<h3 style='display: inline' id='check-if-zrepl-services-are-running'>Check if zrepl Services are Running</h3><br />
<br />
<span>First, verify that <span class='inlinecode'>zrepl</span> is running on both nodes:</span><br />
<br />
@@ -4772,7 +4788,7 @@ paul@f0:~ % doas service zrepl start
paul@f1:~ % doas service zrepl start
</pre>
<br />
-<span>#### Check zrepl Status for Errors</span><br />
+<h3 style='display: inline' id='check-zrepl-status-for-errors'>Check zrepl Status for Errors</h3><br />
<br />
<span>Use the status command to see detailed error information:</span><br />
<br />
@@ -4787,7 +4803,7 @@ paul@f0:~ % doas zrepl status --mode raw
<i><font color="silver"># Common errors include "no common snapshot" or connection failures</font></i>
</pre>
<br />
-<span>#### Fixing "No Common Snapshot" Errors</span><br />
+<h3 style='display: inline' id='fixing-no-common-snapshot-errors'>Fixing "No Common Snapshot" Errors</h3><br />
<br />
<span>This is the most common replication issue, typically occurring when:</span><br />
<br />
@@ -4846,7 +4862,7 @@ paul@f0:~ % doas zrepl status --mode raw | grep -A<font color="#000000">10</font
paul@f0:~ % doas zrepl status --mode raw | grep BytesReplicated
</pre>
<br />
-<span>#### Network Connectivity Issues</span><br />
+<h3 style='display: inline' id='network-connectivity-issues'>Network Connectivity Issues</h3><br />
<br />
<span>If replication fails to connect:</span><br />
<br />
@@ -4864,7 +4880,7 @@ paul@f1:~ % doas netstat -an | grep <font color="#000000">8888</font>
paul@f0:~ % ping <font color="#000000">192.168</font>.<font color="#000000">2.131</font>
</pre>
<br />
-<span>#### Encryption Key Issues</span><br />
+<h3 style='display: inline' id='encryption-key-issues'>Encryption Key Issues</h3><br />
<br />
<span>If encrypted replication fails:</span><br />
<br />
@@ -4881,7 +4897,7 @@ paul@f1:~ % doas zfs load-key -L file:///keys/f<font color="#000000">0</font>.la
zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
</pre>
<br />
-<span>#### Monitoring Ongoing Replication</span><br />
+<h3 style='display: inline' id='monitoring-ongoing-replication'>Monitoring Ongoing Replication</h3><br />
<br />
<span>After fixing issues, monitor replication health:</span><br />
<br />
@@ -5317,13 +5333,13 @@ HOSTNAME=`hostname`
zfs load-key -L file:///keys/f<font color="#000000">0</font>.lan.buetow.org:zdata.key zdata/enc/nfsdata
zfs <b><u><font color="#000000">set</font></u></b> mountpoint=/data/nfs zdata/enc/nfsdata
<b><u><font color="#000000">else</font></u></b>
- doas zfs load-key -L file:///keys/f<font color="#000000">0</font>.lan.buetow.org:zdata.key zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
- doas zfs <b><u><font color="#000000">set</font></u></b> mountpoint=/data/nfs zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
- doas zfs mount zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
- doas zfs <b><u><font color="#000000">set</font></u></b> <b><u><font color="#000000">readonly</font></u></b>=on zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
+ zfs load-key -L file:///keys/f<font color="#000000">0</font>.lan.buetow.org:zdata.key zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
+ zfs <b><u><font color="#000000">set</font></u></b> mountpoint=/data/nfs zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
+ zfs mount zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
+ zfs <b><u><font color="#000000">set</font></u></b> <b><u><font color="#000000">readonly</font></u></b>=on zdata/sink/f<font color="#000000">0</font>/zdata/enc/nfsdata
<b><u><font color="#000000">fi</font></u></b>
- doas service nfsd stop <font color="#000000">2</font>&gt;&amp;<font color="#000000">1</font>
- doas service mountd stop <font color="#000000">2</font>&gt;&amp;<font color="#000000">1</font>
+ service nfsd stop <font color="#000000">2</font>&gt;&amp;<font color="#000000">1</font>
+ service mountd stop <font color="#000000">2</font>&gt;&amp;<font color="#000000">1</font>
<b><u><font color="#000000">fi</font></u></b>
diff --git a/index.gmi b/index.gmi
index 6c5f4bec..87a29e21 100644
--- a/index.gmi
+++ b/index.gmi
@@ -1,6 +1,6 @@
# Hello!
-> This site was generated at 2025-12-07T00:34:51+02:00 by `Gemtexter`
+> This site was generated at 2025-12-07T10:08:23+02:00 by `Gemtexter`
Welcome to the foo.zone!
diff --git a/uptime-stats.gmi b/uptime-stats.gmi
index 1316aa02..a1aa3d5f 100644
--- a/uptime-stats.gmi
+++ b/uptime-stats.gmi
@@ -1,6 +1,6 @@
# My machine uptime stats
-> This site was last updated at 2025-12-07T00:34:50+02:00
+> This site was last updated at 2025-12-07T10:08:23+02:00
The following stats were collected via `uptimed` on all of my personal computers over many years and the output was generated by `guprecords`, the global uptime records stats analyser of mine.