• 1 Post
  • 9 Comments
Joined 1 year ago
cake
Cake day: April 30th, 2025

help-circle

  • You mean in the context of high availability?

    tl;dr: It’s to test if the cluster fail-over configuration is working properly.

    So this was before things like Kubernetes or Terraform were a thing, so had to be done by the operating system itself. The simplest HA cluster is made of two nodes, one in “active node”, the other “passive”. The active node does all the work, and the passive node just keeps its data synchronised with the active node. I used to use DRBD for this, which is a system for copying writes to the active node over a network link to the passive node. That only gives you a “second, up-to-date copy” which is not that useful on its own - you also need a way to automatically switch over to using the passive node if the active one “dies”, and for that I used to use “heartbeat”, which simply passes packets back and forth between the two cluster members - ping-pong style - and if the passive node notices that the active node hasn’t sent its scheduled packet for, say, 10 seconds, it cuts it off the current active node (kills it), and promotes itself to the active role, thus preserving the service. Killing the “other node” is necessary to stop data corruption or user requests going to a node that can’t actually service them, and is called STONITH - Shoot The Other Node In The Head. STONITH can involve an electronically controlled switch, which literally cuts off power to the “other” node, or can isolate it on the network, by shutting down its network ports on the switch, or in a VM setup, sending a notification to the hypervisor to kill the VM.

    The reason you need to be able to kill the kernel on the active node, is that when you manually shut down the active node, it automatically informs the passive node that it’s going down, known as an “orderly fail-over”, and you’re not actually testing if the heartbeat fail-over works, you’re just testing an orderly fail-over. Killing the active node’s kernel tests that the passive node is properly configured to take over during a catastrophic failure of the active node. You can watch the heartbeat status go from “up” to “down”, and then see the passive node decide to take over, promote itself and bring up its services, and begin processing requests.

    To make sure it’s all working, you need to test orderly fail-overs first, from both nodes, then test disorderly fail-overs both ways, by using the kernel gun on the active node.

    Things moved on from Heartbeat-based HA clusters to multimode clusters managed by Corosync and other software, enabling other strategies to be employed. This was eventually supplanted by “orchestration” systems like Kubernetes, and proprietary Virtual Cloud systems that move this functionality to the platform rather than the operating system.


  • Nah man. “kill” doesn’t shut the system down quickly. This is the “instant death” way - the kernel reset gun - no shutdown scripts, no disk sync, just reset to BIOS boot sequence, instantly:

    As root:

    echo 1 > /proc/sys/kernel/sysrq

    echo b > /proc/sysrq-trigger

    If you change out the “b” in the second command for “o” it will just halt the kernel instead of rebooting. Still switched on, but the system is doing absolutely nothing.

    I used to use this trick all the time to test high availability server clusters.


  • Sounds great, look forward to seeing that. After using it a bit more, another thing occurred to me - there’s no way to open arbitrary files. I don’t use MarkDown for “just notes” or “just one thing”, I keep markdown files all over the place. I had set the repository directory to be that of my blog posts during first run, but then I can’t open things in my notes directory or documents folder, and I can’t see anywhere in the settings dialogue to change it. Am I missing something?



  • Seems quite good - I’ve tried a LOT of MarkDown editors over the years, but until quite recently, I’d stuck with Zettlr for a long time. I’ve recently reinstalled my laptop, which made me look for alternatives to some software, and I’ve been playing round with MarkText for the last few days, which seems nice.

    HelixNotes is definitely good - if I had to drop MarkText, I think I could get on well with it. I like that they have a debian repository, so I can keep it updated with the usual system update software. I downloaded the AppImage as a quick test, but it didn’t work because it was compiled against an old version of glibc.

    The only thing I don’t like so far is the format toolbar is at the bottom of the editor screen, and I haven’t found a way to move it.



  • The court has decided not to tell the jury that the trial for the accusation of burglary will result in terrorism sentences if they are found guilty; the defendants have been told they are not allowed to state their motivation of preventing the production of weapons that were to be used in the ongoing genocide in Gaza, and the press was gagged from reporting on it.

    In other words, it was going to look to the jury like it was purely a burglary, but the defendants were going to be sentenced for a different, much more serious crime, and no-one was allowed to talk about it. This is because in the previous trials, most of the defendants were acquitted by the jury, because the defendants used the crime of conscience defence.