ZFS: third time through

Fascinating–I had just finished a scrub on June 6. Then a drive started dying. Now I’ve attempted to replace it, but an adjacent drive also had errors. I feel like I’m in a bit of a pickle. This snapshot had the error, so I deleted the snapshot and did a zfs clear tank, and the scrub process automatically restarted:

tank/VMs/l_4548-f30m64r@0000-installed:/lf541-f30-64-sda.img
  pool: tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Sat Jul  4 09:31:08 2020
	3.61T scanned out of 5.02T at 474M/s, 0h51m to go
	464G resilvered, 71.96% done
config:

	NAME                                                      STATE     READ WRITE CKSUM
	tank                                                      DEGRADED     0     0     0
	  mirror-0                                                DEGRADED     0     0     0
	    wwn-0x5000c500536ffa79                                ONLINE       0     0     0
	    replacing-1                                           DEGRADED     0     0     0
	      8130638507939855275                                 UNAVAIL      0     0     0  was /dev/disk/by-id/wwn-0x5000c5006e3d9d3f-part1
	      wwn-0x5000cca24cd7f690                              ONLINE       0     0     0
	  mirror-1                                                ONLINE       0     0     0
	    wwn-0x5000c5005226b37b                                ONLINE       0     0     0
	    wwn-0x5000c500522766b5                                ONLINE       0     0     0
	  mirror-3                                                ONLINE       0     0     0
	    wwn-0x5000cca223ca0714                                ONLINE       0     0     0
	    wwn-0x5000cca224cb6a3b                                ONLINE       0     0     0
	logs
	  mirror-2                                                ONLINE       0     0     0
	    nvme-SAMSUNG_MZVPW128HEGM-00000_S347NY0HB06043-part1  ONLINE       0     0     0
	    nvme-SAMSUNG_MZVPW128HEGM-00000_S347NY0HB06165-part1  ONLINE       0     0     0
	cache
	  nvme-eui.002538cb61020e02-part2                         ONLINE       0     0     0
	  nvme-eui.002538cb61020e7c-part2                         ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        <0xb081>:<0x2>

So at the bottom it has a unnamed file reference and it is prolly going to stick at 71.x% for the next two hours.

Next Scrap

This beautiful piece of wood was passed on from an instrument builder, it looks like a perfect species for a fretboard. It’s 1-1/4″ thick. I desire 7/8″ for dice to slide, and 13/16″ is narrow enough to make them wedge.

I have some narrow gauge saw blades but not nearly so thin as a band saw blade. So if my kerf is 1/8″, I have problems. I cannot see how to make dice boxes tall enough to have the nice presentation face as a lid without using a separate 6″ slab to cut from.

It might be possible to carefully join a second piece of wood into the spare 4″ scrap from four 6″ boxes, but pairing this wood with something uninspiring is unattractive. I don’t have an acrylic mix, which might be fun.

I’m unsure how to finish this wood, too. Is linseed going to darken it? I used linseed on Jesse’s bass neck and it was perfect, but that was totally different wood. I guess it would be sensible to cut a piece off the end and treat it to see the effect.

Maple dice box

I came across a 2×6 scrap of what I’ve been told is maple. I sawed it up into a few dice boxes that I’m using my router to hollow. Each is going to be finished with linseed oil, but constructed in slightly different manners. This one is the first time I’ve used brass threaded inserts, which are surprisingly fragile.

I enjoy the look of the separation that exposed the grain.

And three magnets seem to keep it closed well enough. I might use more or use bigger magnets on the next ones.

Adding Lots of Storage Pools to Libvirt

I do not enjoy having subdirectories involved for storing files in libvert. The virt-manager interface is just way too brutal about how you manually add storage pools. After much ranting, I wrote a bash script to add these directories for my VM disk images.

  1 #!/bin/bash
  2 
  3 set -e
  4 #set -x
  5 existing_pools=()
  6 export existing_pools
  7 
  8 function add_this_dir() {
  9     local -n xisting_pools="$1"
 10     if [ ! -d "$2" ]; then
 11       echo "add_this_dir: $2 is not a directory"
 12       return
 13     fi
 14     local shortname=`basename $2`
 15     if [[ " ${xisting_pools[@]} " =~ " $2 " ]]; then
 16       echo "$2 already exists"
 17       sudo virsh pool-start "$shortname"  &>/dev/null ||:
 18       sudo virsh pool-autostart "$shortname"  &>/dev/null ||:
 19       return
 20     fi
 21     if [[ " ${xisting_pools[@]} " =~ " $shortname " ]]; then
 22       echo "$shortname already exists"
 23       sudo virsh pool-start "$shortname" &>/dev/null ||:
 24       sudo virsh pool-autostart "$shortname" &>/dev/null  ||:
 25       return
 26     fi
 27     sudo virsh pool-define-as --name $shortname --type dir --target "$2" --source-path "$2"
 28     sleep 1
 29     sudo virsh pool-start "$shortname" &>/dev/null ||:
 30     sudo virsh pool-autostart "$shortname"  &>/dev/null ||:
 31     sleep 1
 32 }
 33 
 34 while read L; do
 35   if [[ x$L = x ]]; then continue; fi
 36   hunks=($L) 
 37   existing_pools+=("${hunks[0]}")
 38 done < <(sudo virsh pool-list --all | grep -v -e Autostart -e '----' )
 39 
 40 echo "You have these existing pools defined: "
 41 echo "%%${existing_pools[@]}%%"
 42 
 43 while read D; do
 44   add_this_dir existing_pools "/tank/VMs/$D"
 45 done < <(ls /tank/VMs) 
 46 while read D; do
 47   add_this_dir existing_pools "/tank/softlib/iso/$D"
 48 done < <(ls /tank/softlib/iso)

 

Bass of Spades assembled!

Jesse worked hard on the Bass from morning to night, with some long interruptions to build fencing around the chicken run. We started off the morning by soldering the knobs and and the pickups.

It took filing a rough spot on the bridge and flux to get the ground wire soldered to the bridge. Then we used a chisel to carve a spot for the solder bump.

Before I knew it, Jesse had punded in the peg post collars and had put the neck on the body.

He was really excited to get his first string on a peg!

After dinner, Jesse had screwed most of the pickups on. He unfortunately broke a drill bit of in the body when sinking pilot holes for the low pickup. We had to drill some surrounding area out and use needle nose to back out the bit. And when we did, Jesse got right on to adjusting his bridge.

We finished off the evening listening to Red Hot Chilli Peppers and Primus.