news.yc had a link to Don Libes' rfc 1178. It comes across as very Old Testament, basically one proposition (use a theme to generate uncommon words) with a whole lot of "Never ever do X" for X in range(10).

While eliminating only the really bad ideas leaves a lot of space open in the Venn diagram view of machine naming, we should probably sit down and think about why we name machines and how we use those names. With that in mind, we can try painting this shed.

  1. Short names work better than longer. Yes, we can turn on bash tab completion and put hostnames like slartibartfast in /etc/hosts, however it just adds up to a bunch of extra work to distinguish that machine from how many other machines? Say that each extra character in length (conservatively) buys you 2 bits of information, with 14 characters, you'd better have a nice data center to house all those machines.
  2. Use easily spelled and said names. Some sysadmins have a primarily visual memory for words, while some have an auditory memory. So to make machine name memorization easier, we should use names that spell like they sound, and sound like they spell. Unfortunately, English sucks for bijective mappings between sounds (phonemes) and their spelling (orthography). Check's pronunciation for your word to see how close the pronunciation maps to the spelling (e.g. compare snot and phlegm).
  3. Use a naming scheme that fits your planned deployment. Somewhere between 1 and 100 machines, names become something you want to automate; so you either maintain a pool of available names (like hurricanes), or name a class of machines and form the name from a combination of class and the current count of how many have been deployed.
  4. Reflect DNS's hierarchy. Do you really have a flat list of hosts? Or does an intrisic hierarchy emerge? Keeping your installation well-managed in DNS ( subdomains; hosts with A, PTR, SRV records ) usually helps organize your naming. Even if you don't publish all records to the Internet.

That's all I can think of so far; any other pointers?