是否有实用的服务器主机命名约定?

是否有实用的服务器主机命名约定?

为了维护多台服务器,您如何为服务器命名?仅通过服务器的主机名,我想对服务器的服务类型进行分类,无论是否是虚拟机、阶段(alpha、beta、real)、硬件规格等。
有什么想法吗?

答案1

尽管我通常会关闭这样的问题,但是这个特定的问题却是我非常关注的问题,因此我还是会坚持。

命名方案通常可以分为两种:助记名称和功能名称。

助记名称是从其他领域重新使用的名称;《指环王》中的角色很受欢迎,元素也很受欢迎,我相信你也见过很多其他的;我自己喜欢河流。但助记名称的问题是,它们都是久经考验的名字来自人类努力的其他领域,并且它们不包含有关机器的隐性信息。它们只是名称。

功能名称是嵌入机器某些功能的名称,有时采用简单形式(solaris-database-5.example.com),有时采用更不透明的形式(s10db01.example.com)。在功能名称中,我包括不包含任何信息的名称,只要它们不是助记符(s00345.example.com)。

根据我的经验,IT 团队和经理们都喜欢功能命名方案。但上次我自作主张建立命名方案时,我去询问了那些在日常工作中使用这些名称最多的人:开发人员。

在约 40 名开发人员中,除一人外,其他人都表示他们更喜欢易记的名字。好名字对人类大脑来说很容易记住,而且我们天生就擅长将有关功能的注释与这些名字联系起来(史蒂夫·格雷格森住在隔壁。史蒂夫是一名面包师。史蒂夫开着路虎。史蒂夫借给我他的角磨机)。作为一个物种,我们天生就不擅长将类似的记忆结构与随机数联系起来。

作为一个二级方案,他们要求将功能名称嵌入 CNAME 记录中。因此,每个主机都有一个助记名称作为主名称;该名称与机箱一起存在和消亡;当机箱升级时,它会获得不同的名称。但功能名称仍然可以由任何合适的人使用,而且由于它们是 CNAME,因此许多名称可以指向单个主机。

因此,DBA 将使用 pr1db01.example.com;邮件人员将使用 pr1ms01.example.com;应用程序人员将使用 pr1je03.example.com。但是所有三个 CNAME 都指向 nile.example.com。如果某个功能被移除,CNAME 将被重新指向。如果 nile 升级,CNAME 将指向不同的机箱。但是当您登录主机时,无论是以 pr1db01 还是 pr1ms01 的身份,系统提示都会显示“nile”。当我发送一封电子邮件说 nile 将于第二天从 2300 到 0330 停机时,每个人都从这个名字中读出了他们需要的东西,因为 nile 是一个人类可以使用的名字,大脑很容易在其上挂上内部记录。

这就是我的建议。并且不要忘记 DNS 是一个分层命名空间;如果需要,可以使用层次结构作为命名方案的一部分来简化它;sol1.dba.example.com 可以是与 sol1.mail.example.com 不同的 CNAME。

答案2

有多少组织,就有多少这样的组织。我见过的大多数组织都不以服务器的功能来命名,但有些组织会这样做(有些组织只是随意编号)。通常会添加服务器的位置,但我几乎从未见过有人根据硬件规格来命名。

用于构成服务器名称的任何数据组合都具有同等的缺点(特别是,信息会很长,您需要知道所有信息才能知道服务器的名称)。但是,您可以使用某种代码,例如服务名称的 2-4 个字符、虚拟的可选 v、阶段的一个字符(通常使用的名称是 dev、UAT 和 prod),以及一些与硬件相对应的代码。也许您可以将生产域控制器命名为 dc1pvnv522us。它可以被解密,我认为它符合传统的命名要求,但它很丑陋。

我真的想不出任何实际的方法将硬件规格放在那里。您可以使用型号,但这不适用于虚拟机,也不会讨论您添加的任何内容。我不建议这样做。通常,这种数据是使用某种库存系统(可能是电子表格,也可能是资产跟踪软件)进行详细管理的。

我以前见过人们使用位置和数字资产代码(例如,vax00313d 表示沃克斯豪尔的 313 号服务器,是开发环境的一部分;服务器的规格会保存在其他地方),而且,服务器的功能、位置、环境和唯一性编号等约定也很常见(例如,dc-vaxp1 表示沃克斯豪尔的第一个生产 DC)。

使用您认为简洁的任何东西,但避免尝试在主机名中塞入太多信息。

相关内容