summaryrefslogtreecommitdiff
path: root/gemfeed
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-12-07 10:09:53 +0200
committerPaul Buetow <paul@buetow.org>2025-12-07 10:09:53 +0200
commit818d669a5c3bb127c7193896c313ffc14e228fd0 (patch)
treed197926a22d6e206fcff39c9ceb2b500867c39d0 /gemfeed
parent6b85b84c92934b6113c7d21f33be41f291861b76 (diff)
Update content for gemtext
Diffstat (limited to 'gemfeed')
-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
5 files changed, 91 insertions, 53 deletions
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>