Hacker News new | past | comments | ask | show | jobs | submit login
RFC 1178 – Choosing a name for your computer (1990) (ietf.org)
205 points by adambyrtek on April 3, 2018 | hide | past | favorite | 173 comments



This reminds me of the Pets vs Cattle analogy https://www.engineyard.com/blog/pets-vs-cattle

With a pet, you obsess over the name and meaning of the name. With cattle, as long as names don't collide or cause problems, you couldn't care less about the name.


My personal machines are all pets ("thematrix", "heartofgold", "laputa" and "isengard") and my production systems are cattle ("sqldb01", "sqldb02", "gitea", "redis0", "redis1", "rabbitmq", "mastodon", etc.)

Mostly because for automation it's easier to know what a system does by looking at the hostname. When you manage about 30 systems all over the place, that's the only reasonable solution (I do see people trying to give pet names to their production systems but it gets out of hand and they usually just maintain a directory of what system does what somewhere)


Is that really cattle though? Instead of sql01 I’d think a more cattle based name would be db01, db02 etc so it’s database agnostic. For the redis and rabbitmq, I’d think that’s more mq01, mq02, etc for generic message queue servers. Potentially I’m taking the analogy too far though


That's also valid but I like to know exactly what type of DB is running (SQLDB runs Mysql and Postgres Nodes for example) so I can quickly jump and find servers without much thinking.


So more like dairy1, dairy2... beef1, beef2 ...


db01 is taking it into meaninglessness. Is that running PostgreSQL, Redis or MongoDB? Was Redis on db05 or cache01? That's not far from naming them server01, server02, etc.

sql01 is good if you only use sql abstraction layers, otherwise you probably even want postgres01 and mysql01. Or even postgres-olap01 and postgres-oltp01, if that's what you do.


sqldb01 and sqldb02 is fair since both run Mysql, Postgresql and Redis. There is no difference between nodes.

If had a pure mysql server I'd call it mysql01


This did sound cool to me, at the beginning of the auto-scaling, image-based, cloud times...

But then I did realize a couple of things, that improve with meaningful names:

1) Alerts impact and scope. It's easy to know what are you seeing in your phone, if balancers, rds clusters, and instances have meaningful names.

2) Metrics visualization. Maybe the graph is the same, but a meaningful legend sometimes helps.

3) SSH connection. I like to auto-complete SSH, not to copy/paste ssh and write down extra parameters like different .pem files.

4) (Inter) team communication. The same that with graph legends, for humans, it's easier with names than with ids.

5) Custom commands parametrization. The same than ssh, I prefer to be able to write down the parameter (host name, service name) of my command, without getting out of the terminal, copy the ID or IP, get back, paste, verify...

6) Costs/Reports visualization.

7) Backup management. Let's say S3 parent for the backups of a instance/service. Backup reports too.

At the end, I think that I can have cattle mentality regarding Configuration Management, System patching, Version change, etc... BUT I still can get benefits from thinking a little bit element and service names.

At the beginning (of the cloud concept), I did read pet Vs cattle, and I did think IDs were the thing. Now I think that to scale to many customers or many environments, it's better with previous thinking. Being the little string of the alert in the phone, the biggest winer.


I think the compromise is autogenerated-but-meaningful names. I wrote a Ruby script to generate memorable/meaningful names which is included as part of the automated server launch process. (https://github.com/johnd/server-name)

You never want to have to manually pick a name, or even stop to think about it, but using pure IDs for anything with a life longer than a day can get annoying.


Depends how you mean that; I would rather a machine be named prod-app-web-7 than af74b9c. At least mark the cattle by breed!


Winner winner, chicken dinner. As someone who is still managing pets, I even still prefer a standardized naming scheme. I use:

${project}-${dev/staging/web}-${web/db}

(which so far has covered my bases, I'm sure you can come up with any logical extensions if you are running load-balancers or other types of servers, add a number if you are running multiple frontends or clustered DBs, etc)

Even as someone who manages pets, I can't tell you how much time this has saved me from having to look up server names. I have done the generic "assign everything to a single machine## sequence" and it sucks ass. Was your production web server for this app machine32 or machine 54? What about the staging server? Can't even imagine the hassle of uuids as server names.

(of course so far I have done the pets thing in my internal network... but I can tell you that my father with a 40y career in managing servers for major corporations uses names like vmhost01/fsrv01/tvpc at home... which tells you what he thinks of that.)


That goes against the paradigm. I prefer that my hostnames are ambiguous, that way I'm forced to write tools to automate administrative tasks.

If I know the hostname I or my team will be tempted to make one-off changes, breaking the whole "cattle" idea.


It is still helpful to have decent names even if you're treating your machines like "cattle" instead of like "pets".

Inevitably, some bug will occur, and in my experience, it usually happens to occur on a machine (rather than all of them at once; I'm not saying this machine is special — the bug could have happened on any of them, and likely exists on all of them because they're all running the same code, but this particular machine ended up being the lucky one to serve that slightly unusual request).

Getting in and debugging the state of that machine, pulling logs, directing a coworker to look at CPU detail "frobnozz", etc. is all easier if I can easily speak or type out the machine's name. "3.dev.microservice" is much easier to type/speak than say, an IP address, an EC2 instance ID, etc.

(I fully agree on not making one-off changes, and not treating machines as pets. But I think that even after that, decent naming has a place.)

And even with cattle, the other way, I still think it's useful for the name to provide some information. I.e., 3.prod.microservice being the third or fourth instance of the production setup of "microservice" is better than say, some random entry from the periodic table of elements.


If you have to say the name of an instance you already lose.


If you do anything to the point of dogma, you've lost. Being a good sysadmin is all about being pragmatic.


Then the paradigm is wrong. Serving websites is the most important thing a webserver does, call it that. If that changes, rename it. If renaming it is impossible, you failed.


What about all the application servers behind the load balancers?


I think it's useful to give long-lived entities memorable names (literally in the sense of 'possible to remember') to allow people to draw fortuitous connections and keep similar entities distinct from each other during discussions. Even if you're just trying to keep track of which server it is that seems to be faulting.


I think its more important that names refer to long-lived resources. If I put a DB name in a connection string I want to see the same data every time. I don't care what hardware it is on.


There's no reason you can't have both.


Well, it helps to remember that RFC 1178 is from the days of single monolithic mainframes. Today we've got virtual machines that do everything, so each server can legitimately carry one name. However, if you do call it "prod-app-web-7," then you need to make sure that it's a web server for the app application in production and if that changes, you need to spin up a new server instead of reusing the VM.

But, hey we don't name infrastructure sites "Site 1" and "Site 2". They're "Milwaukee" and "Austin" and "DR". So if we do that, why name them "EMC-SAN-1" and "EMC-SAN-2"? We're going to retire that name eventually and there won't be a SAN 1 anymore. And what happens after "EMC-SAN-9"? So, instead why not "EMC-SAN-ARTEMIS" and "EMC-SAN-APOLLO" and "EMC-SAN-HADES"?

There's a distinction between physical names and logical names, too. What kind of long term nomenclature planning should we have? Look at hurricane names. The NWS does that so people remember which is which.


Okay, but a lot more people own pets than own cattle. In the computer sense as well.


I've got about 5 computers at home. Most of them have "pet" names. I've got about 500 computers at work. Have fun treating them as anything but cattle.


Reread his comment. You are the exception. I would even venture to say that a lot of HN users are also exceptions, but neither HN nor IT administrators are most people.


HN is based around web based work, databases, webservers, load balancing, stuff that can (or does) run in VMs in clouds. If that's stuff that can be automated, then great, you don't need to know the IP, let alone have a hostname.

Most of the general purpose computers (and certainly the vast majority of devices with an IP) I deal with have real world interfaces, SDI ports and/or analog/digital audio connections. I'm not going to give my encoder in Nairobi a name that doesn't say "Nairobi Encoder" (PTR returns NRB-ENC001-obe, forward lookup for NRB-ENC001), same with encoder 2 at New Scotland Yard, and the same with the ntop/monitoring box I have in the New York office. I can't self heal equipment when a lorry drives into it, but I need to know that it's the Old Bailey monitoring box that's broken.


> Reread his comment.

Thank you for implying that I didn't know exactly what I was responding to, and that I didn't read it carefully. The grandparent to my comment mentioned the cattle-pet distinction. The parent comment took that as some kind of statement of how common each situation is. I replied in a similarly loosely-connected manner, trying to reinforce the grandparent comment's point.

I fully understand that "cattle-owners" are less common, and that that's part of what the parent comment was saying. Reread the comment that they replied to, and reinterpret my comment as a reiteration of the grandparent comment, phrased in a different way.


I have known dairy farmers to name each one of their 4-500 head personally. Never seen that with beef cattle farmers though..


What kind of cattle do you think servers most resemble?


If the servers are immutable (eg in auto-scale groups) then it's more like beef cattle because you don't expect your servers / cattle to survive to old age.

If they are any servers that cannot be auto created / destroyed without human oversight - or if their downtime breaks other resources along the chain (eg non-clustered DB server) then I'd argue those servers are a little more like dairy cattle.


Ha! Excellent point.

Though with all the milking machines hooked up the dairy cows probably look more like them visually speaking..

And these days servers might be more metaphorically close, increasingly, to just the beef itself. Decentralised, to somewhat stretch the analogy.


Goats.


I've personally eaten a roast from a cow named Luke, at a beef farmer's house. It certainly happens.

He was tasty.


Migrating from Pets to Cattle for server names also means you no longer are attached to the server, so it can be replaced or shut down without any personal attachment.

That is also how I feel about Microservices these days. I may still name the service with a "pet" like symbolic name, but I treat them as cattle.

They can be split, repurposed, deleted, rewritten any day without much remorse or delay. No personal attachment.


I still name all personal and corporate laptops and pcs as pets.

But all servers are named as cattle.

But these days they may not even be cattle named as they are spun up and down so frequently in cloud environments that names makes no sense.

Pets -> Cattle -> Population?


Well, maybe, as long as you make sure you the bulls and cows are separated.


I stopped reading halfway through the shop example. When you move the machine out of the shop and give it a completely new role, rename it. I call my webserver webserver.

I never get why there's such a huge gap between admins and programmers on this. Programmers have sane, intelligent naming conventions beaten into them, and yet when I ask a sysadmin what server the Wiki is running on, half the time the answer is something like "legolas". That name would never make it through my code review.


The reason for that is that historically a single domain hosted a wide variety of services and users, so there wasn't a single meaningful name to give it, and giving it a memorable name was important for the users who relied on that name.

I don't think there's such a big gap there, either. It's not uncommon for developers to give large, general-purpose applications nondescriptive code names. This actually tends to be useful when trying to distinguish the names that marketing gives a product (which can change) with the names of the applications that back it (which shouldn't).


I remember in a previous job the IT guys started using superhero names for the machines. They were even grouped by which universe the heroes come from (marvel, dc, etc).

Even when they did descriptive names, it was all backwards like <instanceID>-<env>-<role>-<project> yielding things like 2-dev-db-something. Trying to explain how that made sorting machines by name impossible was alien speak to them.

I think the reason programmers are better with names is that we get to name many, many more things. Variables, functions, parameters, namespaces, endpoints, the list just goes on both in the small and the large.


> I call my webserver webserver.

Agreed. Nothing confuses me more than finding a network with a bunch of machines named for roles that they don't fulfill.

Even more infuriating is when you have a network like that, but the new machines have names that refer to the old ones -- so for example, the webserver may be "webserver," but the new replacement may be "real-webserver" and then the replacement of that may be "real-webserver-replacement."


This is precisely why calling the webserver "webserver" isn't a great idea. The guy who called the webserver "webserver" seems kind of lazy. This guy probably isn't going to bother renaming it when it turns into "webserver plus some other services". And if later "webserver" stops hosting the actual webserver because it's overloaded, this guy isn't going to lose sleep calling the new webserver host "real-webserver".


Imho, there's nothing wrong with throwing a number on the end to denote our 3rd webserver. And obviously, the name is only its primary function. If a sever wears 2 hats, maybe the secondary function isn't in the name. That's still more infromative than "the git repo is on huitzilipotchtli".


I'm on laptop06, desktop06, phone06, printer02, htpc02 and nas01 at the moment, incrementing the suffix when I replace a machine or add a new one.

I tack on "-linux", "-windows", "-android" and so on when appropriate.


If you're not going the "cattle" route (see other comments), I think the best strategy is to have a unique name "olympus" or whatever, and then use role aliases. That means if you take olympus and repurpose it from webserving, you still know which computer it actually is, but you swap the roles around so that when you just want to connect to the mail server, you can do that via the alias.


> half the time the answer is something like "legolas".

I think it also often depends on how many machines your sysadmins have to manage, and how many they had to manage prior to this naming scheme. Once you've experienced the pain of too many odd names, and trying to figure out how to map them to roles, you don't generally want to go back, in my experience.


> I call my webserver webserver.

which is precisely why the 'www.<domain>.<tld>' convention is so widespread..


My dad used to name computers after characters from Greek mythology. I took the idea and name my computers and devices after Norse mythology.

You get some cool names, but there is a fairly critical downside in that a lot of people struggle with spelling the names. Most people probably can't spell Odysseus correctly on the first attempt, and it's even harder to spell Jormungandr correctly.

I think that cutesy names like this are fine for personal use, but for commercial use you're better of using a more standardised schema for naming.

Another place where companies seem to love cutesy names is meeting rooms. Maybe it's because management wants to sound interesting, or maybe they just like painting bike sheds, but often they like to give non-standard names to meeting rooms, like names of native birds or something else that doesn't describe the room at all. It just makes it hard to remember which room is which. How am I meant to know which room is the Tui room, and which is the Moa room?

Either name them by location (e.g. Second Floor, NW), or by distinguishing feature, at one job we had a meeting room with no windows, so we called it the bunker.


> I think that cutesy names like this are fine for personal use, but for commercial use you're better of using a more standardised schema for naming.

The thing to keep in mind when doing this, too, is that DNS is a hierarchy. Use that.

Many companies have a naming scheme something like EX-AP-NY-FS-1 for Example Corp's Appliance Division's New York Office's File Server number 1. Try fs1.ny.ap.example.com instead. It's much cleaner, and then the New York office can have ny.ap.example.com as a search domain and refer to it as just fs1 even if there is some other fs1 in the San Francisco office. People in SF can still access the New York server and vice versa by using the fully qualified name.

It also puts administrative boundaries in the right place, so the appliance division has authority over its own names but not the names belonging to some other division.


I actually do this for my personal servers (I'm not your Dad btw).

Two decades ago when I only had a handful of servers it seemed a great idea to name them after Greek Gods (on the Zeus family line). I actually stole the concept from the DEC VAXcluster I was working with at the time. Fast forward to present day and everything being virtualised, it's trivial to boot up a new server from a template, and naming each new one has become a massive pain. As I apply a no-reuse rule, I find myself delving deeper and deeper into Greek mythology. I also try to match the name with the purpose, so the God of Messaging (Hermes) is my Mail Server, Zeus is the Hyper-V host for all his offspring etc.

It all made sense at conception, but now I've got ~40 servers doing various things, and half the time I can't remember which is which. :(

However...

In a professional environment[1] I have lost SO many hours in pointless 'naming convention' arguments. Everyone has a different view as to how it should be done. My view is to pick the defining characteristics of the servers; Is location important? Are they single role servers? Are they lab or production? Do they belong to specific part of the business?

For example: 'LDNTCADSP001' breaks down into {location}{datacentre}{role}{lab/prod}{unit-number}

* Don't use wasted character like dashes as depending on your systems you've only got X characters to play with.

* Sysadmins should always be able to identify at a glance what the server does, and where it is without having to fire up a CMDB.

--

[1] I've held senior roles in several major global Banks, where my teams managed several hundred servers on average. So this is a real-world viewpoint.


LDNTCADSP001 - I hate names like this.

It's untypable on a command line since you have to shoot all over the keyboard, and it probably won't auto-complete until you get to the last number.

There's other subtle problems to: its not sparse enough for the same reason. You're putting a lot of stock in an operator always seeing the right sequence of numbers, especially if your fleet grows and you now have a LDNTCADSP101 and LDNTCADSP110 for example.

They're also unpronounceable - you can't communicate them to other people verbally quickly or reliably.

The best thing we've currently done at my work is assign single-use mnemonic names to all the servers (and, I'm pushing for it to be everything) - so we have "subsidy", "until", "wedding", "opulent" as server names. Easy to remember when you're debugging, easy to say, and a sparse namespace - you're exceedingly unlikely to mistake one for the other, and they'll autocomplete easily. It plays right into the human associative memory too.


>They're also unpronounceable - you can't communicate them to other people verbally quickly or reliably.

This is my recent life as I started a (hopefully temporary) phone support role and the place I work has desktops with names like that but also, inexplicably, using all the hard letters in to hear well over the phone.

Ex: HPDHHPDEDPD-TS

Thanks goodness the folks I'm talking to can use a semblance of the phonetic alphabet.


It's 'horses for courses' - what works for one organisation might not work for another. Scale is also an issue; you can't use clever word based names when you have 50,000 desktops on the estate.

Again, in my view (based on several years as a support monkey at the beginning of my career), desktops/laptops should be named based on their asset tags, LT891334 or DT993115 etc. That way, when you ask the user 'what's the machine name' and they have no idea, you can say 'read me the number that's on that big white sticker on the lid'.


>Again, in my view (based on several years as a support monkey at the beginning of my career), desktops/laptops should be named based on their asset tags, LT891334 or DT993115 etc. That way, when you ask the user 'what's the machine name' and they have no idea, you can say 'read me the number that's on that big white sticker on the lid'.

I wasn't disagreeing with you at all and I really like your solution. I was trying to provide an example of desktops I deal with now that are sometimes impossible to distinguish on the phone without going full NATO alphabet.


I sometimes got quite confused as both my university and hall of residence both had gateways named 'bifrost', 'heimdal' and servers 'thor', 'loke', etc.

(I ended up setting different terminal prompts depending on which domain the current machine was under.)


Nice coincidence is that one of the main db servers I work against is bifrost :-)


My first big kid job had the best meeting room names. It was a small company so there were only a handful of rooms to remember and only one floor.

Triangle: It was triangular.

Rainier: View (or maybe painting?) of Mt. Rainier.

Elvis: Blue Suede Chairs.

My current office uses normal floor and room numbers for conference room reservations but one of them has an "OUTATIME" CA plate taped to the window and a flux capacitor poster on the wall. We refer to it as "DeLorean".


My office uses names of famous scientists and engineers for the conference rooms although not all of them are named. At one point, these rooms were listed in Outlook by the person's name instead of the room number. So you would have this massive list of names and have no idea if that room is the one on the next floor or on the other side of the country. They recently redid the conference room directory so now you when you sort alphabetically you can see state, building, floor, room number, then whatever cutesy name the room has.


I used to do sysadmin consulting, and one of our clients had a new director of IT come in. One of his first orders of business was to have us rename all the hosts (around 100 of them) from role-based names (db01, web01, storage01) to city names.

So when an alert came in at 3am that "mulhouse" is down, you had to know that Mulhouse is a French city AND France denotes database machines. And the city names were often fairly obscure, of the 100 names, I had only heard of a handful of them. "Is that name Icelandic or Finnish?"

That director of IT didn't last long.


When I worked at Yahoo, all personal machines were given a simple two-dictionary-word name. e.g. My desktop was sawbeauty. I always thought this was pretty elegant. All the names were pretty short. There was minimal ambiguity. And it scaled really well.


An aside re: Yahoo -- Somewhere I have my website logs from the 1995-96 timeframe. I'll have to try to dig 'em up. I remember the day the site got listed on Yahoo, however. I got hits from machines with names like "scabies.yahoo.com", "ratbastard.yahoo.com", and "srinija.yahoo.com". There were some others, but I can't remember them (scurvy, maybe?). (I remember reading the Wired article about Yahoo in '96, seeing the name "Srinija Srinivasan", and figuring out what that last hostname meant.)


That’s well before my time at Yahoo. By the time I joined, their IT group preinstalled and named every device with a two-word nonoffensive moniker. By then they weren’t giving out 3rd level domains anymore either. :)


Found the logs! Woo-hoo!

Monday, July 1, 1996 - We got hits from: polio.yahoo.com, pilsner.yahoo.com, mead.yahoo.com, scabies.yahoo.com, ratbastard.yahoo.com, lambic.yahoo.com, stout.yahoo.com, scorpio.yahoo.com, and srinija.yahoo.com. The Wired article had already come out at that point so I must have just remembered Srinija Srinivasan's name from the article.

Later in 1996 and in early '97 we got hits from: suppository.yahoo.com, boils.yahoo.com, tuberculosis.yahoo.com, and lobo.yahoo.com.

So, I see an alcoholic beverage theme and a disease theme. Yay!


I've always followed the two-word scheme, but not so random as just the first sci-fi or cartoon names that sprung to mind.

Recent incarnations have been: StarshipEnterprise CaptainKirk MysteryMachine

Two words seems expedient, and a coupling of 2 + 2 or 2 + 1 syllables (loosely speaking) seems to leech into memory pretty well.


This doesn't exactly abide by the RFC but I name all my computers after dead rockstars e.g. "david-bowie", "george-harrison", "jimi-hendrix", "elvis-presley" It's become a tradition of mine :) The lab computers at Rutgers use design patterns, unix commands, and programming languages for the names: https://report.cs.rutgers.edu/nagiosnotes/iLab-machines.html


I use names from the 2003 Cincinnati Bengals roster.

I can't wait until I need to use t-j-houshmandzadeh.

My cloud hosting account uses players on the active roster; my little hobby home servers use players from the practice squad.

https://en.wikipedia.org/wiki/2003_Cincinnati_Bengals_season...


I use dead Austrian economists: "mises", "menger", "hayek", "lachmann", "kirzner".


... but what if supply can't keep up with demand??


A few years ago Rutgers had labs with machines named after breakfast cereals, soups, and pasta: https://web.archive.org/web/20081228003151/http://www.cs.rut...

Also iirc there was a set of servers named after arcade games, zaxxon.cs is still resolving at least.


I think dead rockstars were used for Lisp machines at the MIT AI Lab back in the 1980s. So you're in good company :-)

Personally, I've always been fond of pagan deities.


A guy I worked with would name the machines based on the atomic number of the last part of the IP address, i.e. 192.168.1.2 would be helium.

Eventually it becomes really annoying, don’t do this.


Why is it annoying? Isn't it easy to tell the IP address?


Only if you know the periodic table blind, but this could be a good approach to actually learn it. I'm just not that sure many people want to learn chemistry while administering the IT.


Hummmm, in Asian we can't graduate high school without memorizing the whole damn thing.


What a useful skill...


My High school forced 2 dead languages on me (Latin, Greek) for 2 years.

Think I'd rather have the periodic table.


I suspect people living in Athens may be rather upset by the assertion they don't speak Greek!

(Yes, I assume you meant ancient greek)

High School teaches tons of crap. I spent 5 years doing French, and while I remember "J'ai joue le foot" (which was a lie), that's about it, I could pick up more French in 3 months worth of weekly evening classes.

Even the French I know doesn't help - I went to a kiosk at Gare du Nord, having just got off the train from Brussels. "Je Voudrai une cafe sil-vou-plait". "Three-fifty" comes the response. Bloody French.

High School languages in the UK (and other English speaking contries) would be far better giving a smörgåsbord of the basics of French, German, Spanish, Italian, Russian, Arabic, Mandarin, and Portugese. Being able to say "Hello, good to meet you", "Thank you", "Excuse me, where are the toilets", "Could I have the bill please", understand a few phrases (tickets please etc), and have a fighting chance at reading and ordering from a menu, etc, in most countries of the world would be very beneficial. 4 years, 2 languages per year. Perhaps more important than the language specifics are the customs, even things like composting train tickets,

(Of course with translate apps, map apps, etc the menu/map problem is going away, but the customs and some language overview would go a long way - when train tickets neet composting, when tipping is required (USA), not required (most countries), and actually an insult (many far east places). Being able to recognize which toilet to go in - W or F - is helpful).

Wider cultural education would be a massive benefit to Americans in general, who on the whole don't get the chance to travel that say Brits do.


Really? In my adult life I can't remember the last time it would have been genuinely useful (not just a neat party trick) to have the periodic table memorized, but a sizable chunk of the English language has Latin or Greek roots. I definitely think that's more useful, if only to have a better sense of the language you're speaking.


Remembering the number of higher elements is a pain so if you do this in lieu of DNS it's not as clever as it first seems. I too had a co-worker who loved this naming scheme and I thought it was great, just not in lieu of having a name resolution scheme that's not "quick what number is strontium"


It limits you to 120-odd options, but that information is a quick web search away so I'm not sure the issue you mentioned is a huge restriction. Google provides it in their quick results search for "strontium atomic number".


You could always use the Systematic names [1] to fill out the rest of the byte past the 118 proper named elements, giving you a full subnet of names. (ununennium through bipentpentium)

I wonder if you start to do chemistry on the names if you need to track multiple subnets? 192.168.11.17 might be sodium-chloride (NaCl).

[1] https://en.wikipedia.org/wiki/Systematic_element_name


Because you can run out of IPs and all machines have to have static IPs and because it breaks if you decide to subnet and because who knows the atomic number of californium and because machines can just set their own hostname and because of byod etc. etc.


I'm a fan of the names of the "First Generation" computers like ENIAC, EDVAC, ILLIAC, etc. My Raspberry Pi honors Pi inventor Eben Upton and is named EBENAC, the Economical British Educational Networked ARM Computer.


https://en.wikipedia.org/wiki/MANIAC_I

Metropolis chose the name MANIAC in the hope of stopping the rash of silly acronyms for machine names,[2] although von Neumann may have suggested the name to him.


There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.

One thing to keep in mind here is that naming should be done with a lifetime matching the thing being named. If a given machine might have many roles in its lifetime, asset names ought be separate from role names. So calling a machine db2 might not be a good idea unless you have 100% confidence it will only ever be a database machine.

So a62848 could be asset 62848, which then can have all kinds of exciting metadata and services pointing to it that may change over the asset's lifetime without needing to update the host name.

Baking metadata into a name is usually going to lead to sadness when later attempting to rename.

(While I'm the product manager for Google's datacenter software team I'm not speaking for Google here.)


Great points!

One of the nice side effects of using the cloud is production systems don't normally change name anymore.

I can name a machine db2, and if I don't need it anymore, it's quick to destroy it, and create a new machine of the same size named appserver15.


It's kind of sad this task has mostly gone away for large datacenters, where choosing names for the thousands of servers is impractical. h223-16-32a just doesn't have same cachet as the carefully selected names.


NASA has a rigid host naming scheme that is based on the center, the org code, and the property tag number. Fortunately, we can use aliases, or I would go mad.


This is my favorite naming scheme, although I usually skip the codenames and assign functional names to everything:

https://www.mnxsolutions.com/devops/a-proper-server-naming-s...


Interesting - the author, Don Libes, is also known for Expect:

https://en.wikipedia.org/wiki/Don_Libes


With multiple computers on the same network, it's fun (if not productive) to come up with names within a theme (e.g. characters from a novel, place names from some country etc.)


I use elements from the periodic table. The ones that sound cool!

Carbon, Hydrogen, Nitrogen, Neon, Tungsten, Helium, Sodium, etc

Wifi names are after noble gases.

PC hardware are all stable metals.

iPhone/iPad accessories are all non-metals.

and finally, random IOT devices are radioactive elements.


Me too on the periodic table names, but with a bit of creativity related to the machine too:

- Helium - my Surface 3, because it's light

- Lead - my heavy Linux laptop

- Lithium - the Mac Mini I bought to keep from going crazy using a decade old Macbook Pro for iOS development

- Caesium - my Dell "workstation" Windows laptop, because I bought it to save time (compared to running Windows + Visual Studio in a VM)

- Uranium and Thorium - the beefy Xeon workstations that run a bunch of VMs and things - named because they put out so much heat that they might be radioactive


It's quite funny that we share the host names Helium and Caesium. My Linux machines are radioactive because I tinker with them a lot and am bound to reinstall every few months.


Heh, yeah, there's that too...


>random IOT devices are radioactive elements.

Scheme-compliant _and_ metaphorically apt. Love it.


Please tell me you're using Technetium for something special.


Perfect for the box doing muscle tissue image processing


Yes! This site may be of interest: https://namingschemes.com/


Hope my shitty server won't die now.. I have been planning to migrate this to faster stuff..


This is a gold mine!


The best thing about this approach is that replacment computers can use related but distinct versions of their ancestor's names.

For instance, my old server was called TheQ (i.e. 'Q' from James Bond) and the new one is named Judy, because Judy Dench plays 'M' in the most recent films. It's convoluted, but it's neat to have what is effectively your own mythology.


I've been using character names from my favourite movies. A different movie for each network (or each zone in a network, or however you want to categorise it).

Home network is all character names from LOTR, home office is Expanse, etc.

It's fun to try pick suitable names from the movie, for the device, eg my HTPC is Gimli, because it's a small case but carries more than its weight. Gaming PC is Gandalf because it's entirely white.

Sub-categories of characters is good for sub-categories of devices, so all our phones/tablets are named after the Elves.

The main problem with this method is the HOURS you spend angsting over the correct names because it's actually fun.


I once worked somewhere that used locations from LOTR, but by the time I got there, they were down to obscure things on the map that you wouldn't know if you weren't a true fan.


In which Tolkien language do you select the names?


We had servers like Rauros and Caradhras, but all of the newer machines had numbers, since they were well into going virtual when I got there.


I've used characters from sesame street, solar system objects, stars (astronomical), colors, and classic car models (with subnets grouped by manufacturer).


Back in college, the CS department used planets. The department I worked in used organ names (brain and pineal being the two I recall). At my previous job, we used city/town names for virtual machines (plenty to choose from, and some quite amusing, like "truth-or-consequences" (in New Mexico for the record)).


i use the names of my favorite greek gods/goddesses in a (slightly) meaningful way. my monster tower is ATHENA, the goddess of knowledge. my laptop is ARTEMIS the hunter, and my phone is fleet-footed HERMES.


This particular theme is extremely common for servers.


I used to enjoy using names from The Wheel of Time series, the forsaken especially. I’ll admit to spending a bit more time than was practical on the endeavor, but I think it sort of helped me “bond” and care more about them?

Ah, it was fun at any rate. I miss you, Lanfear!


See RFC 2100 for additional commentary on naming host:

https://tools.ietf.org/html/rfc2100


One shop I worked at briefly went with "female serial killers" for their naming convention. So you can just imagine the type that worked there.


Quote from RFC: "Just because a person is named "Don" doesn't mean he is the ruler of the world (despite what the "Choosing a Name for your Baby" books say)."

If only the RFC knew what we know now.


I like following a naming theme. I used to be a ballet dancer so I use ballet steps for my machine names: Enterlace, Revoltade, ... They are all single words that are super uncommon outside of the ballet world


Good luck getting someone who is unfamiliar with those to spell it out from sound alone. Though with the prevalence of text communication (not seen at the time) this is less of a problem than when this was written.


I ended up with a scheme by accident that is hard both to spell and speak for most people. I don't have many problems with names like mictlantecuhtli, xolotl, or macuilxochitl (well, except for the fact that I can't pronounce consonant final tl and end up with /təl/ instead), but I totally see why others have problems with it.

On the plus side, if I ever get one of those "you have a virus" scam calls, I can probably string the caller out for a while trying to get them to spell out the name of the computer that supposedly has the virus...


You're totally right. If the voice communication was more crucial, I would definitely think twice before going with this scheme.


My family's machines at home are all named after fictional robots, names don't get recycled when the boxes die which makes it a fun challenge when a new one arrives. So far we've had:

johnnyfive marvin katya gerty kryten robbie

Doing our best to avoid dipping into Star Wars laziness. (And HAL is verboten too.)


I've been using "Words that start with Q" since High School and surprisingly haven't recycled a name yet for a machine, and I've gone through nearly a dozen or so.

quiddity quilt quasar quantum quack quiz...

It's funny how a silly naming rule like that winds up sticking for a couple decades.


Oh that's good. I hope you ban yourself from using dictionaries to help.

Our main constraint is that it has to be a robot that my wife, a devout sci-fi sceptic, has heard of. Probably it would make more sense for her machines to be named after obscure British Jacobeans and mine to be robots but since I've paid for all of them, I get to choose.


We went with Dakota (not Lakota) names for numbers. Admittedly we might have skipped some of the longer names. Recently we added some named after color. Every department was supposed to find a way to include the language somewhere. [edit: servers only, PCs get names based on room / building]


I registered island.nu when the TLD launched. .nu was the first TLD that you could register under that wasn't a com/net/org or my own country's TLD.

All of my machines are named after islands:

Mauritius Sable Padre Nauru Jarvis etc.


Related: If you want to name things this Wiki has different proposals: http://namingschemes.com/


yeah, when I proposed we change to more sensible names for our servers, our admin asked for examples whereupon I answered "i.e. we could name them after planets"

his face lights up and says "yeah! like planet01, planet02, planet03.."


Some fun CMU computer cluster name themes from the past:

  * Prisons (statesville, graterford, etc.): Macs
  * Astronauts (resnik, white, aldrin): DECstations
  * Disasters (flood, famine, humanity?): More aged DECstations
  * Climates (tundra, steppe, island): SPARCstation 5s 
  * Characters of Sir Arthur Conan Doyle's
  * Wood (elm, pine, smoke): Printers


I had a personal SPARCstation 5 at university. I named it 'sparky'. I probably could have done better.


Long ago I had an IPX. It was called ... ipx.$domain. Then I got another one. And it was called ... ipy.$domain.

You'll never guess what the third one was called...


Bit nasty to name the machine after an obsolete layer 3 protocol, innit?


Wasn't this one of the birthplaces of NextStations?

any insight there?


Hmm, I can't recall any presence whatsoever of NeXT hardware, nor commingling of NeXT software in the CMU Andrew environment. There was a certain amount of SGI Indigo gear for specialty purposes.


cheers..

IIRC I recall hearing something about this due to NeXT (and now apple's) use of CMU Mach.. but universities are big places :b


personally, I really hate the "name the machine something cute / funny / in joke". In a previous company, everything was names after Italian towns, and while the IT staff knew what "rome" was, the rest of use had issues decyphering what the hell was happening.

This was applied to both VM hosts and VMs, so you had to remember that "livigno" ran VMs x,y,z, and was actually in the backup DC.

A later company had a better scheme:

Hosts: <service>-<role><number>-<data center>-r<rack ID>-u<rack U location>

e.g.: nova-compute0042-uswest-rF20-u23L

VMs: <service>-<role><number>-<region>-az<availability zone>

e.g. designate-mdns009-uswest-az3

This really does help debuging issues at a glance (e.g. you can see that all VMs in uswest az1 are down at a glance), or directing people to a failed node (replace disk 5 in nova-compute0042-uswest-rF20-u23L is very clear what machine needs maintenance - in the us west DC go to rack f20, and the left hand blade in u23 needs disk 5 swapped).


The need to overload hostnames like that to me just says you haven't got your inventory system in order.

For the price of actually using my asset DB, my alerts can be sliced and diced exactly by the datacentre/rack/whatever because I'm properly tagging everything.

Whereas for all the times I've heard "oh we won't move servers and if we do we'll re-image them..." just last month (and still ongoing) people have been dragging racks between floors, plugging them in and that's it - so fixed names like that get stuck.


Sure - but from the easy of human pattern matching looking a list of hostnames in a monitoring system without needing to click to a different page I think it is worth it.

If you are in the habit of moving racks, then I would agree keeping it only in an inventory system makes sense, but that also requires the asset system to be updated when a rack moves - at which point changing a hostname (which can be autogenerated by dhcp based on that system) an easy step to add.


Somewhat dorky things like this are pretty common in computing and I love it!


There was an ISP / hosting provider in Dayton, OH, named "donet.com". For years and years their DNS was available for public zone transfers and they had wonderful computer names like powdered, glazed, chocolate, and my favorite, dayold. (Looks like some of those names are still around, too, even after they "rebranded"...)


I use space missions. Soyuz--MS-02 for the one I'm currently using.


The worst choice we've done in terms of host name was for our server at my uni's robotics lab. The lab itself has a strong Tintin theme, and the various computers continue this tradition, with the (french) names Tournesol, Milou, and... Dupont for a random lab computer, while the production server got Dupond (the english equivalents are Thomson and Thompson). While funny, this isn't extremely practical, especially the first few months, while getting accustomed to it.

Nowadays, we prefer to name them after something more meaningful, like Archibald [Captain Haddock's first name, fitting for an Arch machine], Winry, or Delphine (Windows and Debian, respectively). This makes easy to identify the machine and its operating system, which I like including in the host name.

Overall, I find that having a clear theme helps (to know we are talking about a computer's name), and clear rules for the naming scheme also help, both for picking the name, and guessing its function/characteristics from the name.

I would definitely go with some DNS-based convention like the one @zrm mentioned when having to manage bigger clusters or geographically disparate pieces of equipment, though.

I would also disagree with something in this RFC: I don't mind tying a hostname to the host function, as I usually reimage/reinstall the operating system when changing it, making it easy to rename it. This also helps with keeping everything modular enough that it can be quickly installed on a new machine, and prevents "ossification" of the various configuration files. This includes giving a replacement computer the same name as the one being replaced.

Finally, when managing a truly dynamic cluster (computers that boot a PXE image with little to no local storage, and take their jobs from a control server), I don't even bother naming them, and will choose something semi-random like the MAC address (even a link-local/DHCP address, or the md5 of one of these). As those are temporary identifiers, they are managed dynamically, and do not need to be remembered.


In the past I have used stringed instruments: "lute", "banjo", "dobro", etc. Recently it seems I just have a single Linux box at each location, which server is named "box".


My favorite theme was Japanese terms from the game Go (wei-qi). Joseki, fuseki, sente. It was educational as well as distinctive. The spellings are also easier than my other theme of Polish delicacies.


I’ve been running through names of Greek and Roma deities for my machines, which work super well. They can even be themed (all mobile / wireless clients are named after dieties of death).


Do you mean Roman or Roma? I know nothing of Roma folklore.


For the FarmShare cluster, systems in version 1 of the cluster were named corn/barley/rye plus some number, for login/compute/GPU systems.

The current version of the cluster is named rice/wheat/oat plus a number. It lets us combine some originality in with automatic naming.

We’re already thinking about what to do for the next generation. And when we move all of the administrative systems (like the job schedulers) into VMs, we’re thinking of calling the underlying physical hardware quadrotriticale.


On the subject of themes, I’ve always wanted to name a collection of computers with genericized trademarks: like bikini, popsicle, kleenex, or my favorite, thermos!


>> For example, a distributed database had been built on top of several computers

This is 1990, amazing awareness of what computers are capable of already.


Name things that are the least likely to be misleading.

i.e. the thing least likely to change. Which is almost always the physical location. eg. usa-sf-23


One exception where it's actually pretty useful to have a location-specific name: printers (or any other resource where people really need to know the physical location of the device, like DVD burners, 3D printers, or whatever). It's nice to know what room to go to to find your printout. :-)

Of course then you do have to make sure to rename it if it gets moved.


There are enough Pokemon to name my servers. ;)


I don't think this is the original post that I remember from years ago, but the StarCraft convention has always intrigued me: https://slifty.com/2011/03/starcraft-network/


I use mythological gods when naming my devices. For example: loki, odin, thor, and zeus. I like short and easy to remember names.

What naming conventions do people use for storage devices? I recently created a zfs pool and ended up reusing the computer name, but it becomes a bit awkward to say you're opening foo on foo.


I have been using starship names from Star Trek since basically forever.

enterprise, voyager, relativity, defiant etc


Have worked on a cluster where an explicit prohibition in these guidelines was violated ! The admin decided to name machines after quarks, hence "up", "down", "charm" etc. Can't say it caused any particular issues.


I've used norse mythology (using danish versions of names) in the past. The DNS servers were "odin" and "mimer". Webservers were "valhalla" and "udgaard", the DHCP server was "Yggdrasil". Etc.


I encountered an otherwise ordinary pizza place yesterday that had all its pizzas renamed after stellar objects (stars, star signs, galaxies).

Quite amusing except my internal dictionary of well-known pizza names had to be replaced by a linear lookup.


I used to name my pets after my pets. Thing is, the boxes outlived the animals.

At that point the names become memorials and it's nice to ssh into them. The only glitch so far is it's difficult to decommission the roles.


For as long as I can remember, I’ve used ship names from Battlestar Galactica, which are mostly just names from Greek mythology. Galactica, Cerberus, Triton. Pegasus, Valkyrie, Celestus, Prometheus, etc.


> For example, amorphous names such as rivers, mythological places and other impossibilities are very suitable. ("earth" is not yet a domain name.)

This'll probably be changing soon...


The first time I rented a server I was looking around my room to think of a cool hostname and saw “yavapai” on my backpack. Since then I’ve just been using names of Native American tribes.


Also, don’t use automatically generated names based on a person’s name without a review. Sharon Hiterman[1] will not be amused.

1) not a real person, but a real family name paired with a common first name


We did this at a former employer and had a librarian with the username "scatt".


Neat. I use the names of moons, like Europa, Io, Callisto, etc.


If you needed to name a whole bunch of machines, you could use the list of named minor planets ("asteroids"):

https://en.wikipedia.org/wiki/List_of_named_minor_planets:_A

1,479 just in the letter A.


I've always named mine after Red vs Blue characters.

Laptop=sheila. Desktop=tex. Server=lopez. Names are recycled when the machine is replaced.


> Random strings are inappropriate for the same reason that they are so useful for passwords. They are hard to remember.

"useful" :)


I use uncommon female names that are at least six characters in length.

Cirocco - from John Varley's Gaean trilogy

Lorelei - from the Styx song


Interesting how much of this doesn’t apply in the configuration based cloud world, and how much of it does :)


The Japanese lab I was at name all the machines by Pokemon names. we get to pick which Pokemon we want.


The second hard problem, naming things


Fwiw I don't think this advice applies well to virtual machines created by things like docker.


When I was at Google I named my machine Myriad. No one seemed to appreciate the subtlety. ;-)


I use rivers of hell from Greek mythology. Cocytus, Acheron, Lethe, Phlegathon, Styx.


Unsurprisingly, I've done this in the past.


Username checks out


I was really looking to see if it was April 1st thing back at the time. The RFC was so funny it reminded me of standard random number = 4 [1].

[1]: https://www.xkcd.com/221/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: