2022: Year in Review
2022 was certainly an interesting year. While the world events were rather depressing, we are not here to talk about them. Instead, let us explore what I did this year—if just to help me remember it years down the line.
In January, I ended up messing around with my domains. I wrote about this in
a previous blog post, but here’s a summary: To improve email delivery, I
moved this website from quantum2.xyz
to quantum5.ca
. Furthermore, I saw
qt.ax
was open for registration, and registered it to use as my URL shortener.
While switching to quantum5.ca
was a relatively straightforward procedure,
registering qt.ax
at a rather steep price of €32/year would bring about a
rather interesting sequence of events, as we shall see later.
I also talked earlier about my globally distributed backend, which in January consisted of three nodes: Montréal, Amsterdam, and Sydney. By the end of the year, this would change significantly.
In February, I implemented my own version of the French Republican Calendar for fun, which spawned a whole series of posts on the subject. At the end of the month, AMD dropped the retail price of the Ryzen 9 5950X, at which point I impulsively bought one to replace my 3900X, which would have some interesting consequences.
In March, I upgraded my rather basic home server to use my old 3900X and gave it 64 GiB of RAM, dramatically increasing its processing power. This would open it to a lot more interesting uses than a simple home NAS. By the end of the year, it would have some rather interesting hardware inside and run multiple virtual machines.
As for the globally distributed backends, I added my server in Las Vegas to cover the West Coast of North America. I also ordered two new servers: one in Tokyo and another in Singapore, to add to my globally distributed backend. These were really cheap, but neither would be up by end of the year.
In April, I became a registrar for .ax
domains in order to get the
wholesale rate for domain registration, since I didn’t want to pay €32 every
year for my URL shortener. Yes, really, I applied to become a domain registrar
to save a few euros. If you run whois qt.ax
, you will see:
Registrar
registrar............: Quantum
www..................: https://quantum5.ca
My ISP also tempted me with a discount to upgrade from 500 Mbps symmetric fibre Internet to 1500 Mbps download and 940 Mbps upload. This would create more problems, as I needed a 2.5 Gbps Ethernet adapter on my server to serve as the uplink instead of the Gigabit Ethernet adapter. I eventually bought one off AliExpress. In practice, I was able to hit around 1600 Mbps down and 1000 Mbps up.
Furthermore, I also bought quantum.st
, but have not decided whether I want to
switch domains yet again. Let me know your thoughts if you have them.
In May, I decided that connecting my desktop to my home server vis 2.5 Gbps Ethernet simply did not cut it. Instead, I started looking for cheap network adapters on eBay. However, I set my budget too low, and this would prove a mistake. I bought a pair of Mellanox ConnectX-2s that supported 10 Gbps Ethernet and DDR InfiniBand (20 Gbps nominal, 16 Gbps usable). They arrived surprisingly quickly, but were nothing but trouble.
First of all, since these ConnectX-2s supported InfiniBand and Ethernet, they used QSFP+ connectors which are incompatible with most 10 Gbps devices that used SFP+ without an adapter. This was not so problematic when I only have two devices and could get by with a QSFP+ DAC (direct attach copper) cable.
The next problem was that DDR InfiniBand is twice as fast as 10 Gbps Ethernet, at least on paper. Since I would be putting a lot of performance on the line, I decided to run them in InfiniBand mode, which proved to be a huge pain given that everything else I had was Ethernet. I ended up creating a separate IP subnet for InfiniBand and configured my home server to route between that and my Ethernet network.
And then another problem arose: while InfiniBand can be routed at L3, it can’t
be bridged at L2, which created a lot of headaches for my virtual machines. I
could simply use Gigabit Ethernet for my VMs, but since I upgraded my Internet
connection to 1.5 Gbps download, this wouldn’t do. I could set up my desktop to
be a router as well, but that was too annoying. Instead, I used the terrible
idea of running gretap
over IP over InfiniBand and bridging it with my
Ethernet network. To be honest, this was a rather silly idea, but I was able to
hit 5 Gbps in the virtual machine.
In the end, the InfiniBand performance was only around 13 Gbps. This was faster than 10 Gbps Ethernet, but not by much. The cause was that the ancient card only supported PCIe 2.0. Since Ryzen motherboards only have a PCIe ×4 slot, this completely kneecaps the performance to a theoretical 16 Gbps.
Lesson learned: don’t cheap out and try to run InfiniBand, especially as the only network connection.
Perhaps due to all the excitement in May, nothing interesting happened in June.
In July, I bought a 2 TB SSD for my server, intent on creating an SSD NAS. However, I got bored and only finished this last week. On Prime Day, I also picked up an electronic piano for a significant discount.
In August, I started learning to play the piano. Having zero experience, I started with a piece I liked, Debussy’s Clair de lune, since it didn’t seem too difficult. This would prove to be a huge mistake—as it turned out, while the first and last pages didn’t look so hard, it got a lot worse in the middle.
This ended up being a huge timesink, and I didn’t get much else done outside of work for September or October. At least I did manage to learn the piece in the end, though I am not that good at it. Here’s something I recorded today:
In November, I managed to snag an RTX 3060 Ti for a bargain price, but somehow, after installing it, the ConnectX-2 in my desktop finally gave up the ghost. I doubt it had anything to do with the GPU since the card was falling off the PCIe bus at random for a while. At this point, I had no choice but to downgrade to 2.5 Gbps Ethernet.
November also saw me lose my Sydney and Singapore nodes. This was because OVH decided to charge a monthly fee per IP, resulting in the reseller I was using going out of business. I spun up a much more expensive replacement node in Sydney, but have not done anything yet for Singapore to save some money, since all traffic would automatically failover to Tokyo or Sydney anyway.
Furthermore, correcthorse.pw, the domain for my secure xkcd-style password generator, also saw a major price hike, more than doubling the annual cost. This proved to be a bitter pill to swallow, but I would not take this valuable service away from my users. For security reasons, I would never add ads to absorb some of the cost.
In December, I decided to the right thing for my home network. I bought a pair of Mellanox ConnectX-3s with support for 40 Gbps Ethernet and FDR InfiniBand (56 Gbps) to replace the broken ConnectX-2s. Given the pain InfiniBand had inflicted upon me last time, I decided to go with 40 Gbps Ethernet this time around. Everything worked basically out of the box. I should have done this back in May. As it turns out, I can only hit around 27 Gbps due to PCIe 3.0 bottlenecks, but this is enough to saturate a PCIe 3.0 NVMe drive. InfiniBand wouldn’t have made a difference either.
I also applied for an ASN (autonomous system number), receiving AS200351 from RIPE NCC. I chose the European RIR over the American one (ARIN) mostly for cost reasons, since it would cost at least US$550 with the latter. Next year, I intend to roll out IPv6 anycast DNS for this website to make it even faster.
At some point, the Tokyo node went down. I didn’t realize it, mostly because of the automatic failover to Las Vegas. I should consider replacing the node with something better, hopefully with BGP support now that I have my own ASN. I may also do the same for the Sydney node.
With rising costs for everything I am doing, I’ve finally decided to add the option to support this blog and my various other endeavours. You can now support me via GitHub Sponsors, Ko-fi, or Stripe—if you wish to do so.
That’s about it for this year. Hopefully, I’ll find some time next year to write about more interesting things, such as BGP, IPv6 anycast, and other networking things. Happy new year!