Getting my head around the choice between sleeping and 'tickers'
If you have a program that wants to do something periodically, sayonce every ten seconds, the obvious and simplest way is to justsleep for ten seconds after each time you do the thing. For example:
while True: collect_device_stats() publish_device_stats() time.sleep(10)
Some languages and libraries also offer an API that I've seen calleda 'ticker'; Go, for example, has time.Ticker . A ticker signals or invokesyou
Putting some extra 'obvious' information into our temperature alerts
As part of our Prometheus system ,we monitor the temperature in our machine rooms and wiring areasand send out alerts if the temperature gets what we consider to be'too high'. The alert email generated for high temperatures is aslight variation of our general alert message; it has some genericframing, a specific message generated in Prometheus to describe thesituation, and a convenient link to the Grafana dashboard for thattemperature sensor.
We don't fix the AC systems in our machine rooms ourselves; for themost
Putting IPMIs on a port isolated network to deal with shared network interfaces
Yesterday I wrote about the problem of 'shared' IPMI networkinterfaces , which is that when thehost and the IPMI both have access to the same physical networkport, you're exposed to a compromised host putting itself on your secure IPMI network and compromising otherIPMIs (and then hosts) over it. There was a discussion about this on lobste.rs ,where lobste.rs user sn made an excellent suggestion :
The L2 feature you are looking for is called a protected port. Thisshould be available
The problem of 'shared' IPMI network interfaces
These days, most of our servers have some form of IPMI support, including a network connection for their IPMI and anyassociated services (like KVM over IP). However, there is a significantvariation in how this network connection is provided in hardware, andthat causes some problems for actually using IPMI with less expensiveservers in environments where you care about security.
The best servers have a separate physical network port that's onlyaccessible to and used by the IPMI. The physical machine may havethree network ports on
Our ZFS spares handling system for ZFS on Linux
When we ran Solaris fileservers and then OmniOS fileservers weended up building our own system for handling replacing failed diskswith spares, which I wrote about years ago in part 1 , 2 , 3 , and 4 . When we migrated to our currentgeneration of Linux based ZFS fileservers ,many of our local software for OmniOS migrated over almost completelyunchanged. This included (and includes) our ZFS spares system, whichremains mostly unchanged from the Solaris and OmniOS era (both in howit operates and in the actual code involved
Digital microwaves show an example of good UI doing what you wanted
Every so often, you encounter a bit of UI that does what you meanto do so transparently that you don't even notice that the UI isbreaking its own 'how it works' rules to do so. You could say thatthis is the complete reverse of robot logic ,as seen yesterday in trying to change your password on Linux . Recently I realized that I'd runinto such a 'do what I mean even though it doesn't fit' UI in plainordinary microwaves, of all
Linux PAM leads to terrible error messages from things like passwd
Here is a puzzle for you. Suppose that you're trying to change yourpassword on a typical Linux system, as happens periodically (and aswe make new logins on our systems do immediately), and you get thefollowing:
; passwdChanging password for user cks.Current password: passwd: Authentication token manipulation error
What has gone wrong here? What should you do to fix it? Should youtry again, or instead send email to your system administrators toget them to fix it?
Well, you
Keeping backup ZFS on Linux kernel modules around
I'm a long term user of ZFS on Linux and over pretty much all of the time I've used it, I've built itfrom the latest development version. Generally this means I updatemy ZoL build at the same time as I update my Fedora kernel , since a ZoL update requires a kernel rebootanyway. This is a little bit daring, of course, although the ZoLdevelopment version has generally been quite solid (and this way Iget the latest features and improvements long before I otherwise
Some thoughts on us overlooking Illumos's syseventadm
In a comment on my praise of ZFS on Linux's ZFS event daemon , Joshua M. Clulow noted that Illumos (and thus OmniOS) has an equivalent in syseventadm , which dates back toSolaris. I hadn't previously known about syseventadm , despitehaving run Solaris fileservers and OmniOSfileservers for the better part of a decade,and that gives me some tangled feelings.
I definitely wish I'd known about syseventadm while we were stillusing OmniOS (and even Solaris), because it would probably havesimplified
My varied types of Firefox windows
When I wrote about what I want out of my window manager , I mentioned that I have a plethoraof Firefox windows, generally iconified to my desktop . This may sound like things are out ofcontrol (and in a way they are), but there is some method to mymadness. I actually have a number of different sorts of Firefoxwindows.
In no particular order, I have Firefox windows for:
- things that I'm actively working on or using. These are thewindows that are most likely to