Networks and Pizza

Having finally merged some code that’s been stuck in my craw, I decided on a mini-celebration: pizza and eggplant parmigiana, although sadly I forgot about the beer in the fridge. Oh, well; it’ll be there to go with the leftovers 😋.

On the flip side, I think it’s almost time to declare Zeta an operational battle station.

The first problem was I/O performance. Her predecessor, Cream had been pressed into sharing its Wi-FI with Rimuru, leaving the SMB shares on Cream only accessible via wireless clients. Having fished out the aerials that came with Rimuru’s Motherboard 2.0, that solved that connectivity gotcha. But not the simple fact that the file server and the clients are within a meter or two of each other, and the access point is across the house! As much as I suspect a mesh system will be the upgrade path for my network, I’m not replacing that router until it dies or Wi-Fi 7 is ready to rock.

Thus, my shiny new file server was only achieving about 5 MB/s connectivity with my Mac and PC on the other side of the L-shaped monster. Now, I’ve never expected big things of Samba compared to NT’s SMB stack, but Samba’s got waaaay better performance than that and so does Zeta’s hand me down platter drives. My solution to this problem? Gigabit!

At first, I attempted to solve this problem using the combination of libvirt and pfSense. But, I didn’t have much luck getting the bridging to work in order to have a VM on the host be a router while the client functions as the physical. In the end, I discarded this idea and configured Zeta to function as the router for my little local IPv6 network. Yeah, that’s right: I said IPv6, baby! Since this is a local network intended to join Zeta (server), Shion (Mac), and Rimuru (PC) and the occasional other machine, I opted to set this up as IPv6. There’s no real need for IPv4 in my desk’s wired LAN. Maybe I’ll enable IPv4, so I can jack old PowerBook G3 into the switch since MacOS 9.x probably lacks IPv6 support the way Sonoma lacks AppleTalk support 🤣.

Configuring things was pretty easy. A little bit of radvd to enable the Router Advertisement and Router Solicitation issues and for good measure, setup DHCPv6 as an insurance policy, and configured the Ethernet port with the desired address and itself as the gateway. In the future, I may try setting up BIND, so I can have DNS A records map to Zeta’s IPv4 address on the household Wi-Fi and AAAA records map to Zeta’s IPv6 on the desk’s Ethernet, or perhaps even separate domains. But I’m a little hesitant of taking out DNS whenever I reboot the server.

On the flip side, thanks to the lack of fuckwittery, Samba and the SMB stacks on Mac and NT just handles this case fine. Navigating to \\ZETA or smb://ZETA while jacked into the local Ethernet switch nets me about 80 to 115 MB/s, or roughly how fast you can spew data over a Gigabit link to SATA powered things. Seems that the SMB stacks are smart enough to prefer the local Ethernet, but something more DNS aware is how to fix cases like SSH.

The next phase has been setting up the virtual machine environment, which will probably replace the Parallel’s VMs I sometimes spin up on my Mac and the WSL2 environments on my PC. For this, it basically amounted to setting up a bridge interface with the same IP information and using Zeta’s Ethernet port as its bridge port. Then setting the virtual machine’s second interface to bridge to LAN, so that it can be routable over the local switch.

Thus, Shion, Rimuru -> Zeta works. Shion, Rimuru, Zeta -> some VM on Zeta works. Muhuahuaha!

Decommissioning Cream

As the process of migrating files from Cream to Zeta continues, and rather devolves into making more like 1983 than 2023, I am reminded of how much I despise using Windows machines in important roles on my network.

Yes, the whole experiment of using Windows 10 for my home file server worked out pretty well relative to what I expected. But also, yes–it has pissed me off a lot over the years.

More than a few times in the last 6 – 8 years or however long it has been, I’ve thought to myself, “Gee, if I had just loaded Debian or FreeBSD a few months later like I had planned…” that it would have been cheaper in the long run. To be fair, there have also been times that I found it rather neat, but most of those involved things like ssh/scp becoming (mostly) first class citizens in the land of NT.

I am sure, whether or not Zeta proves to be closer to the “Ten year server” plan than Cream did, AlmaLinux will at least be less of a pain in my ass than NT was.

RAM versus I/O

And this my friends, is why I love having extra memory!

[terrypoulin@zeta ~]$ dd if=/dev/zero of=./dd.test bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 0.38554 s, 5.4 GB/s
[terrypoulin@zeta ~]$ dd if=/dev/zero of=./dd.test2 bs=1M count=2000 oflag=direct
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 4.01215 s, 523 MB/s
[terrypoulin@zeta ~]

This machine has a cheapo 1 TB Inland Professional 2.5″ SATA SSD to serve as its system disk. But she’s got 64 freaking gigs of RAM. Yes, that’s right – sixty-four freaking gigs!

[terrypoulin@zeta ~]$ free -h
               total        used        free      shared  buff/cache   available
Mem:            61Gi       966Mi        57Gi       8.0Mi       4.1Gi        60Gi
Swap:           31Gi          0B        31Gi

The first dd command writes 2 GB of zeros to a file one MB at a time, as fast as the system can go. Thanks to the OS being able to say, “Hey, I’ve got memory to buffer that; carry on wayward son,” it is completed Really Damn Fast. This buffering isn’t good for the case of a slow removable disk (or IMHO, oh shit, batteries), but is very effective when doing a lot of file I/O such as compiling software or working on large projects with many files. By contrast if the system had little available memory, it wouldn’t go so fast.

The second command, effectively says the same thing but uses Direct I/O to ensure the data is spewed the disk quickly and immediately, meaning that we get the speed a decent SATA SSD can achieve when combined with its own little bit of internal buffering. But we don’t experience the crazy speeeeeeeed that is RAM.

Why is this important for Zeta? Well, Zeta is replacing Cream — which means she has an 8 TB storage array to take care of, spends most of her life dealing with networked file transfers, streaming media to client machines, and unlike Cream, will end up running several virtual machines thanks to having enough extra memory. Did I mention, fire sales on DDR4 have already begun to make way for DDR5? 😁

Odd reflection before bed

For the most part, the high point that Windows NT has achieved for me is “Not pissing me off by default” and becoming a fairly decent shell upon which to use the Linux things that I care about without needing a second machine or dual boot, thanks to WSL. The era of Windows 10 also brought iterative improvements to system components I care about like the command line environment. But versus native Linux, the main win for me is better access to DirectX games and Microsoft’s office apps.

But truth is, there are certain parts of Windows that are likely to always piss me off. Namely Bluetooth support, and to a somewhat lesser extent anything related to USB or networking will inevitably drive me nuts given enough time around NT.

Thinking about this as I finish up a few things before bed, I realize I typically like using MacOS. The aspects that piss me off tend to revolve around muscle memory, like how some common PC shortcuts are cmd+key and others are ctrl+key. Which are shell level uniquenesses not systemic design. On that note, I’ll add that I tend to find iOS/iPadOS rather more meh, or average than pleasant.

By contrast things that irk me so about using modern Linux as a desktop are the quality of mail clients, lol.

Somehow the joys that are using Cream’s internet connection sharing to power Rimuru’s networking requirements, is reminding me that converting to a mesh network is one of the cheaper ideas on my long term planning board.

Dang gum computers (>.<)

Strange definitions of fun

Decided to take a break from my expedition into Subnatica’s Lost River and break out my old PowerBook Duos. I must have a strange concept of fun.

I’m a little saddened that the Duo 2300c has gone to smear and physical rubber band land while it’s been in storage. But I now know a few things about how it boots. Thanks to Shion unexpectedly being able to mount its drive, I know the system doesn’t boot because the 8.6 install files from Apple’s anthology repo are looking for 8.5 files. Nuts. On the flip side I also learned that plugging in my Duo 230’s drive, that it will boot on the 2300c. Actually runs pretty nice despite it all being emulated, since all the applications on that drive are either for a Motorola 68030 or older, or a fat binary for both.

Given the state of the screen, even if it has a snazzy PowerPC, I opted to swap my memory cards back so that the 230 has 24M of RAM and the 2300c probably has 8M or whatever. At first, after seeing the state of the screen, I decided to try seeing if the touchpad could be swapped. The 2300c and 230 top covers only differ in the labelling and having a trackpad mounted where the cutout for the trackball would go. Sadly, I wasn’t about to use the trackpad, so I swapped these back. I don’t mind the 230’s trackball, so much as it tends to stick or stop sensing the ball rolling no matter what I do to the darn thing. Probably should just buy a Wombat to connect a USB mouse to it.

Interestingly, I also learned that the 2300c mainboard has both its new IDE header and an old SCSI header in exactly the same place as the earlier 230 and its relations. The machines are really, really similar. I’m pretty sure that the only major differences are adapting the chipset to accommodate a PowerPC instead of a Motorola processor. Since the screen is going bad and its keyboard sticks less than the 1992 one, I decided to at least switch out the keyboards so that the 230 has a better typing experience.

25 years and moving on

About twenty five years ago, I wondered how well Internet Connection Sharing might work. Well, I did see it work for about 5 minutes until I hit the power cycle test. Then I remembered it’s been that many years without any experience showing that windows should be used as a piece of routing infrastructure.

The first experiment resulted in losing Remote Desktop to Cream and having to fetch an HDMI cable and juggle over my keyboard and mouse. Okay, that’s fair enough, it was a 50/50 shot if I was clicking share on the right interface.

Second experiment actually worked great. Sharing the wireless interface caused Rimuru to gain itself an acceptable DHCP response and route traffic through Cream at 192.168.137.1 and was placed on a similar subnet, complete with access to the one true gateway. Cream’s fan when into hyperdrive but otherwise it was effective.

Third experiment was a fireball. Decided to reboot Cream and verify that it came up, it is my file server after all. At which point everything ceased working and regardless of actions taken, Rimuru can’t get a response from Cream. The only way that Rimuru seems to regain network access through Cream’s Ethernet port is to break out Shion, remote to Cream over the wireless, and toggle the sharing property off and on again on the Wi-Fi interface.

So I think I can say that ICS is a good ad-hoc solution. The kind where you’re in a closet and need an Ethernet to wireless thing and don’t have a Raspberry Pi handy, except most laptops no longer come with wired network adapters. Having failed the great reboot test, I am declaring it ineffective for my purposes versus switching to a mesh network.

Ya know, I’m reminded that letting Cream remain on Windows 10 instead of wiping it out for a load of FreeBSD or Debian was in itself an experiment. Yeah, I guess asking more than Plex and SMB was too much for this experiment. But I suppose I’ve gotten a lot of use out of this little NUC. Even if there’s been plenty of times I’ve wanted to turn it into creamed corn.

The L-Shaped Beast

The new desk is now largely operational, although it’s going to be a while before a proper chair mat arrives.

It’s amazing having the room to pull the desk out enough to be able to access cables. Not to mention, you know, having an actual study instead of a tiny ass desk crammed next to a couch or a bed.

I’ve made use of my host of binder clips to help secure cabling and keep it mostly out of sight, while taking advantage of the space to have a much easier time swapping cables between Rimuru (desktop) and Shion (laptop). Unlike my old desk, the monitor arm even has enough room to clamp on the desk instead of getting all edgy, lol.

Amusingly to me, Rimuru doesn’t connect to Wi-Fi despite it being a feature of the replacement motherboard. So for right now the gaming focus will likely remain on Steam Deck. In any case, Shion is happy as a clam and gets decent 5 Ghz everywhere in the building. In the long term, I might see if my aging Asus plays nice with younger models since it supports their mesh mode or just wait until Wi-Fi 7 is a thing.

Anyway, I’ve rather missed having an actual desk space with mouse, monitor, and keyboard. Shion and Nerine serve me well for most computer tasks outside of gaming, but there are times where the dire lack of places to sit and work is irksome. For bonus points the L-shaped beast provides ample room for all my stuff and provides a similar layout to my space at work.

Wi-Fi signal strength

In Googling about how devices classify the signal strength to the number of bars on a Wi-Fi icon, I came across this wonderful page from Dong Knows Tech. I think that I might clip this to my notes for ease of sharing, as it gives a nice balance between what someone may want to know without going to deep into the maths. Which over the years, I’ve mostly learned to just pay attention to as doubling and halving of power, because smarter people than me created radio stuff. That page also gives good re-enforcements for the less savvy, that while more dBm is better the difference between two values in dBm isn’t a straight line: it’s curvy. I especially like how it explains the difference between broadcast power and received signal, because most normal people don’t use negative numbers as often as us code monkeys do.

Also was helpful for me since I’ve now learned how to bring up the data on my Mac without having to pop over to system information. Sitting in my dining area off the kitchen, Shion gets a respectable enough -74 to -77 dBm — now consider, my 10 year old Asus is literally across the house and on the second floor. Making me at the furthest point from my router that doesn’t involve sitting in front of the fire place or stepping outside onto the patio. My dining area is actually the worst point inside despite the fireplace being further from the router, because the stairs and kitchen cabinets lay in between: that is to say, my fireplace has better line of sight but worse distance to my router; my dining area has shorter distance but more obstacles in terms of pipes, studs, and drywall, and you know an actual floor/ceiling instead of just looking over the upstairs railing. The dBm value is a good read of this, as standing in front of my fireplace, Shion reads about -62 to -67 dBm.

For me, I’m finding that the 5 Ghz Wi-Fi 5 (802.11ac) from my old RT-AC68 is good enough that I am getting usable signal virtually everywhere in my home. On the 2.4 Ghz band, devices show full Wi-Fi bars pretty much everywhere when scanning for networks. Most of my devices are on 5 Ghz, so I’m finding a lack of reason to shift. I was a little concerned about what the modem’s location would do to signal if my router is next to it.

And then I remembered, I used to have to put an entire apartment building between me and my Asus before my phone’s Wi-Fi crapped out 😂

ARM Power

When you realize you haven’t charged your laptop in more than a week and it still has half a charger left.

Stick that in your x86, Intel!