内容


IBM PureApplication System 如何使用 DNS 将工作负载部署到数据中心的网络上

Comments

简介

IBM PureApplication System(W1500 以及 W1700 v1.0 与 v1.1)是一个盒装云计算系统(cloud computing system-in-a-box),配有用来在云中部署和执行工作负载的集成硬件和软件,换句话说,拥有将私有云环境添加到企业数据中心所需的一切功能。就像连接到 TCP/IP 网络的任何计算机一样,PureApplication System 使用 DNS 来定位网络上的资源,以便可以连接到这些资源。

本文将介绍 IBM PureApplication System v1.1(后面将它简称为 “系统”)如何使用 DNS。本文说明了如何配置系统的网络设置来使用数据中心的 DNS 服务器,以及如何配置系统对 DNS 的依赖关系,它期望 DNS 能够回答哪些请求,当系统不能正常使用 DNS 时会发生什么错误。

这些信息主要用于:

  • 网络管理员 使 DNS 服务器在数据中心的网络上可用,并确保为它们配置了必要的 DNS 数据。
  • IBM 技术专业人士 帮助客户配置他们的系统,并将它正确连接到数据中心的网络。

本文中包含的插图展示了 v1.1.0.2。为了执行此处所示的配置,您需要具有以下权限:

  • 对 Manage 硬件资源的硬件管理(Full 权限)。
  • 对 Manage 云资源的云组管理(Full 权限)。

接下来的部分将解释什么是 DNS,以及在系统中的哪些地方指定它。随后,我们将了解如何使用这些设置,以及在设置不正确时如何进行故障排除。

什么是 DNS?

DNS(Domain Name System,域名系统)是 Internet Protocol(IP,互联网协议)的标准化可选特性。DNS 服务器侦听端口 53(UDP 和 TCP)上的请求。它将域名(比如 mycomputer)转换成 IP 地址(比如 192.168.1.2),还可以进行反向的转换。将主机名转换成 IP 地址,被称为正向查找,而反向查找是指使用 IP 地址来查找它的主机名。

特定网络的 DNS 服务器配置了特定于在其网络上的资源位置的一组数据。这个数据被称为 DNS 记录,包括主机名和 IP 地址之间的映射。DNS 记录有一个 time to live(TTL,生存时间)属性,该属性指定了 DNS 客户端应缓存记录的最长时间。

DNS 服务器由 IP 网络管理员进行配置并在网络上发布。管理员在 DNS 服务器上配置一组 DNS 记录,并使用特定 IP 地址将服务器托管在网络上。为了确保可用性,除了第一个 DNS 服务器之外,还可以托管第二个 DNS 服务器。这两个 DNS 服务器使用不同的 IP 地址连接到的网络,但它们包含相同的 DNS 记录,因此提供了相同的查找答案。对于希望获得冗余性的 DNS 客户端,可以将它配置为使用一个 DNS 服务器作为主 DNS,使用另一个作为辅助 DNS。这两个 DNS 服务器的前面还可以有第三个 IP 地址,即所谓的虚拟IP地址 (VIP),它们可以充当两个 DNS 服务器的地址的代理。这样一来,DNS 客户端就可以配置 VIP,并自动连接到 VIP 选择用于负载均衡和故障转移的那个服务器。

为了让客户端能够成功地使用 DNS 服务器,它要克服两个主要挑战:

  • 连通性:客户端必须能够通过网络连接 DNS 服务器。

    这意味着客户端的 IP 地址必须有一条通路到达 DNS 服务器的 IP 地址。如果客户端被作为虚拟局域网 (VLAN) 的成员连接到网络,那么该 VLAN 还必须有一条通路到达 DNS 服务器的 IP 地址。DNS 服务器侦听端口 53 上的请求,所以通路上的所有防火墙都必须在端口 53 上允许通过有效的 DNS 包。

  • 内容:DNS 服务器必须包含 DNS 记录,将网络资源映射到客户端想连接的地址。

    如果客户端希望连接到特定的主机名,则必须在 DNS 服务器中定义那些主机名的 IP 地址。如果客户希望能够从 IP 地址查找主机名,那么 DNS 服务器必须定义反向查找。

当 DNS 正常工作时,客户端可以连接到 DNS 服务器,并执行查找,将主机名转换到 IP 地址,反之亦然。

DNS 网络设置

IBM PureApplication System 不实现或包含 DNS 服务器;更确切地说,它需要访问数据中心网络上的至少一个 DNS 服务器。在两个地方可以配置网络设置,其中包括 DNS 服务器的地址:

  • PureSystems Manager,在它的系统设置中。
  • 每个 IP 组。

PureSystems Manager 是 PureApplication System 内的中央管理组件,它使用了 DNS,这意味着 PureSystems Manager 的 IP 地址必须能够到达系统管理 VLAN 上的 DNS 服务器。

在 IBM 安装系统时,PureSystems Manager 配置了用于连接到 DNS 的网络设置。使用系统设置向导来进行配置,该向导采用了在 Technical and Delivery Assessment (TDA) 中收集的配置数据。因此,如果使用的是已设置并连接到数据中心网络的系统,那么该系统的 PureSystems Manager 应该已经配置了一个 DNS 服务器。不过,如果系统似乎无法成功使用 DNS,那么您需要了解这些设置,以便验证它们是否正确,并调试可能是出错的地方。

PureSystems Manager 必须能够达到在系统管理网络 VLAN 上的 DNS 服务器。让我们回顾一下在哪里可以找到所有这些设置。

PureSystems Manager 所使用的 DNS 服务器可以在 System Settings 页面上进行配置(导航到 System Console > System > Settings > Domain Name Service (DNS))。为至少一个 DNS 服务器输入 IP 地址(而不是主机名)。您可以指定多个条目,它们将按照列出的顺序进行搜索。图 1 显示的系统配置的 DNS 服务器为 172.17.248.2

图 1. 域名服务 (DNS) 设置
域名服务 (DNS) 设置
域名服务 (DNS) 设置

DNS 设置页面还包括一个 Lookup 小部件,用于查找主机名和 IP 地址。您将在 故障排除 中使用它。

在系统管理网络上必须可以访问该 DNS 服务器,这是分配到机架交换机(ToR)顶部的端口 64 的 VLAN。该网络可以是数据中心的网络中的任何有效 VLAN,但它应该不同于应用程序数据所使用的 VLAN。该 VLAN ID 在 Customer Network Configuration 页面上的 Management LAN Port 部分中进行配置(导航到 System Console > System > Customer Network Configuration > Management LAN Port)。图 2 显示了一个已配置好系统管理网络的系统,其 VLAN ID 为 716

图 2. Management LAN Port – Aggregate Port 64 设置
Management LAN Port – Aggregate Port 64 设置
Management LAN Port – Aggregate Port 64 设置

PureSystems Manager 的 IP 地址也在同一个 Management LAN Port 部分中进行配置。PureSystems Managers 使用了三个 IP 地址,每个 PureSystems Manager(系统包含两个,用于主用/备用)一个 IP 地址,还有一个 IP 地址是 VIP(也被称为浮动 IP 地址),用于访问当前的主服务器。图 3 显示的系统配置了一个管理 IP 地址 172.18.112.32(和对应的主机名 rack16psm.purescale.raleigh.ibm.com;此映射应该被包含在 DNS 服务器中)。

图 3. Management LAN Port – Aggregate Port 64 设置
Management LAN Port – Aggregate Port 64 设置
Management LAN Port – Aggregate Port 64 设置

再次总结一下,PureSystems Manager 的 IP 地址必须能够到达在系统管理网络 VLAN 上的 DNS 服务器。在本例中:

  • 图 1 显示了一个 DNS 服务器,使用了 IP 地址 172.17.248.2。
  • 图 2 显示在 VLAN 716 上的一个系统管理网络。
  • 图 3 显示一个 PureSystems Manager,使用 IP 地址 172.18.112.32。

这意味着,在 PureSystems中Manager 的 IP 地址(图 3 中的 172.18.112.32)上运行的任何 TCP/IP 客户端计算机都需要在管理网络上有一条路径(图 2 中的 VLAN 716)通过端口 53 到达该 DNS 服务器的 IP 地址(在图 1 中的 172.17.248.2)。如果 PureSystems Manager 不能到达 DNS 服务器,那么它就不能使用 DNS。

IP 组的 DNS 网络设置

每个 IP 组中的 IP 地址都必须能够到达在 IP 组的 VLAN 上的 DNS 服务器。让我们回顾一下在哪里可以找到所有这些设置。

您可以在 IP Groups 页面上查看 IP 组(导航到 System Console > Cloud > IP Groups 并选中 IP 组)。下表显示了针对一个 IP 组所显示的数据。

如表 1 所示,每个 IP 组都包含以下设置:

  • 一对 DNS 服务器,一个用作主服务器(必须),一个用作备用服务器(可选)。
  • 一个 VLAN ID。
  • 一个网络地址。
表 1. IP 组网络设置
属性
版本ipv4
网络地址172.17.112.0
网络掩码255.255.248.0
网关172.17.112.1
主 DNS172.15.248.101
备用 DNS(无)
VLAN636

必须在网络上使用该地址定义 VLAN,并且在该 VLAN 上必须能够到达 DNS 服务器的 IP 地址。

要知道,为一个 IP 组指定的 DNS 服务器可以与为 PureSystems Manager 指定的服务器不同。此外,每个 IP 组可以指定不同的 DNS 服务器。系统仅需要一个 DNS 服务器,该服务器被用于 PureSystems Manager 以及所有 IP 组。但该系统还支持网络架构,其中 PureSystems Manager 有一个 DNS 服务器,每个 IP 组也有自己的 DNS 服务器。

如表 2 所示,每个 IP 组都包含一个 IP 地址列表:当系统控制台显示一个 IP 组时,它不仅会列出 IP 地址,还列出每个 IP 所对应的主机名。系统通过使用 DNS 服务器执行查找,获取每个 IP 地址的主机名。

表 2. IP 组网络设置
状态IP 地址主机名操作
*172.17.117.2ipas-lpar-117-002.purescale.raleigh.ibm.com
*172.17.117.3ipas-lpar-117-003.purescale.raleigh.ibm.com
*172.17.117.4ipas-lpar-117-004.purescale.raleigh.ibm.com
*172.17.117.5ipas-lpar-117-005.purescale.raleigh.ibm.com
172.17.117.6ipas-lpar-117-006.purescale.raleigh.ibm.comx
172.17.117.7ipas-lpar-117-007.purescale.raleigh.ibm.comx
172.17.117.8ipas-lpar-117-008.purescale.raleigh.ibm.comx
172.17.117.9ipas-lpar-117-009.purescale.raleigh.ibm.comx

在表 2 中,一个 IP 组不仅显示了每个 IP 地址的主机名,而且该 IP 地址是当前正被使用(通过一个已部署的虚拟机)的 IP 地址。“状态” 列中的 “*” 表示正在使用。“操作” 列中的 “X” 表示用户可以从 IP 组中删除一个IP地址。只有当地址不在使用状态时才可以删除它。

同样,每一个 IP 组中的 IP 地址必须能到达 IP 组的 VLAN 上的 DNS 服务器。在本例中,这意味着表 2 中列出的每个 IP 地址都需要在指定的 VLAN(表 1 中的 VLAN 636)上有一条路径可以通过端口 53 到达该 DNS 服务器的 IP 地址(表 1 中的 172.15.248.101)。如果 IP 地址无法到达 DNS 服务器,那么使用这些 IP 地址的模式部署就无法顺利完成(参阅 故障排除)。

如何使用 DNS

现在您知道了系统的哪些部分配置网络设置,包括 DNS,您可能会问:为什么系统需要 DNS?为什么 PureSystems Manager 和 IP 组中的 IP 地址都需要 DNS?DNS 服务器需要包含哪些数据?

在使用系统时,DNS 在三个方面发挥着作用。前两个方面必需使用 DNS,而对于第三个方面,DNS 是可选的。在回顾过系统如何使用 DNS 后,我们来看看 DNS 服务器需要包含哪些数据才可以回答查询。

显示 IP 组

PureSystems Manager 使用 DNS 的主要任务是显示 IP 组。如表 2 所示,当系统控制台显示一个 IP 组时,它会显示 IP 地址的列表和每个地址对应的主机名。IP 组对象本身仅包含 IP 地址的列表。当系统控制台显示列表时,它使用在 PureSystems Manager 的设置中指定的 DNS 服务器来查找每个 IP 地址的主机名。

部署模式

当系统部署一个模式时 - 假设用于部署模式的环境配置文件将由属性提供的 IP 地址设置为 IP Groups(这是一种典型做法,该做法使得部署比 Pattern Deployer 设置的自动化更好;请参阅 IBM 知识中心里的 创建环境配置文件)- 部署引擎使用 DNS 服务器。每当引擎创建虚拟机 (VM) 时,它都会从部署程序指定的 IP 组中获取一个 IP 地址,然后通过在指定 IP 组中的 DNS 服务器中查找该 IP 地址来获取 VM 的主机名。

此外,在系统重新启动 VM 时,虚拟化管理器将会使用 DNS 服务器。不论 VM 的 IP 地址是否是从一个 IP 组获得的,每个 VM 重新启动时都会出现这种情况。

表 3 列出了部署包含单个核心操作系统部件的简单虚拟系统模式所包含的步骤。在部署期间和部署之后,这些步骤都显示在模式实例的 History 部分。许多步骤都用到 DNS。其中特别需要注意的是 maestro 脚本包。如表 3 所示,该脚本包通常运行得很快(在本例中为 11 秒)。正如您将在故障排除中看到的,当 DNS 没有正确设置时,部署要么完全失败,要么成功,但需要花费的时间要长很多。

表 3. 模式部署的历史记录
操作时间戳
虚拟系统已被部署May 1, 2014, 4:13:58 PM
脚本包 Must Gather Logs 在虚拟机 VM123 上成功完成May 1, 2014, 4:13:58 PM
在虚拟机 VM123 上执行脚本包 Must Gather LogsMay 1, 2014, 4:13:40 PM
脚本包 maestro 在虚拟机 VM123 上成功完成May 1, 2014, 4:13:39 PM
在虚拟机 VM123 上执行脚本包 maestroMay 1, 2014, 4:13:28 PM
执行脚本包May 1, 2014, 4:13:28 PM
启动虚拟机 VM123May 1, 2014, 4:11:45 PM
在虚拟系统 VSys123 中启动虚拟机。May 1, 2014, 4:11:45 PM
注册虚拟系统 VSys123May 1, 2014, 4:08:02 PM
模式部署启动。May 1, 2014, 4:08:01 PM
生成拓扑结构和网络的模型May 1, 2014, 4:07:46 PM
保留云资源May 1, 2014, 4:07:45 PM
部署已排队May 1, 2014, 4:07:43 PM

运行应用程序

一旦模式实例被部署,应用程序还是否需要 DNS 就会完全取决于应用程序(包括其中间件)是否使用了主机名,以及如何配置操作系统来解析主机名。在默认情况下,当系统部署 VM 时,它会在操作系统中配置 DNS 服务器的 IP 地址,这样,在有需要的时候,操作系统就可以使用它。但是,如果应用程序选择不使用 DNS 服务器,那么也可以将操作系统配置为不使用 DNS。这通常在模式部署期间进行配置,例如通过使用在虚拟机上运行的脚本包来配置其操作系统的主机文件,并将它从 DNS 断开。

DNS 记录

如果 PureSystems Manager 和每个 IP 组都可以到达其相应的 DNS 服务器,则需要在这些服务器中配置哪些数据(被称为 DNS 记录)?(如果他们都使用一台服务器,那么所有的数据都必须在该服务器上可用。)

  1. 首先要明白的是,当一个 DNS 服务器列出系统上部署的虚拟机要使用的 IP 地址/主机名对的时候,它需要为这个 IP 地址/主机名对同时定义正向和反向查找。(请参阅 IBM 知识中心的 管理 DNS 服务器)。PureSystems Manager 所使用的 DNS 服务器和 IP 组所使用的 DNS 服务器都需要这样进行配置。
  2. PureSystems Manager 所使用的 DNS 服务器必须列出在所有 IP 组中的所有 IP 地址,因为这些组都有可能在系统控制台中显示。对于每个 IP 地址,该 DNS 服务器必须列出 IP 的主机名,因为系统控制台中也会显示主机名。必须为所有地址提供正向和反向查找。系统控制台使用这些查找来确定是否已正确显示 IP 组。
  3. IP 组所使用的 DNS 必须列出了在该特定 IP 组中的所有 IP 地址,因为这些 IP 都有可能用于部署 VM。对于每个 IP 地址,该 DNS 服务器必须列出 IP 的主机名,因为主机名也会被分配给 VM。必须为所有地址提供正向和反向查找。部署引擎在构建模式实例时要使用两个查找方向。
  4. 如果 PureSystems Manager 使用的 DNS 服务器不同于任何 IP 组的 DNS 服务器,那么每个 IP 地址都必须列出两次,一次是在 PureSystems Manager 的 DNS 中,另一次是在 IP 组的 DNS 中。这两个 DNS 服务器都必须列出 IP 地址的主机名;它们应该为某个给定的 IP 地址列出相同的主机名。

像大部分 DNS 客户端那样,系统缓存 DNS 数据。根据在 DNS 服务器中设置的记录 TTL,缓存中的每条记录都会过期。如果记录在服务器中被改变,那么系统不会反映这种变化,直到超过 TTL 的过期时间。

故障排除

现在您了解系统用来连接到 DNS 的网络设置,以及系统如何使用 DNS,那么这些解释将会导致这样一个问题:如果系统没有正确设置 DNS 会出现什么样的问题? 通常,您可能会遇到三种类型的问题:

  • 无法显示 IP 组

    系统在 DNS 不能正常工作时的其中一个挑战是,它不能正常显示 IP 组。当您在系统控制台中选中一个 IP 组时,它不会立即显示 IP 组,控制台将会处于挂起状态,一直试图显示该组的所有详细信息,或者它将显示 IP 地址列表以外的所有详细信息(表 2),但将挂起无法显示 IP 地址列表的部分(表 3)。这样的挂起将持续几分钟,因为控制台会在一个又一个反向查找上超时。当所有地址都超时后,控制台将会只显示 IP 地址,而不显示其主机名。这是因为 IP 地址像其他属性一样,都是存储在 IP 组数据中的值,但主机名必须从 DNS 查找。

    如果显示挂起,然后显示地址,而不显示主机名的 IP 组,则表示发生了两个问题之一:

    • PureSystems Manager 不能到达 DNS 服务器。
    • DNS 服务器没有为 IP 组中的所有 IP 地址定义正向和反向查找(其主机名没有显示的那些 IP 地址)。

    如果控制台无法正常显示任何 IP 组,要么是因为 PureSystems Manager 无法到达 DNS 服务器,要么是因为 DNS 服务器没有正确定义任何 IP 地址的映射。如果控制台只能正常显示一部分 IP 组,那么 PureSystems Manager 能够到达 DNS,所以服务器肯定是只正确定义了一部分的 IP 地址的映射。

    为了更准确地诊断问题,可以使用图 1 所示的 Lookup 小部件。这个小部件并没有做什么特别的或专有的事情;它只是包含在控制台中,使用起来比较方便。这个小部件将会运行 nslookup 命令,像任何 UNIX® 计算机那样,使用 PureSystems Manager 的 IP 地址连接到系统管理 VLAN,并配置 DNS 服务器的 IP 地址。使用该小部件,看看它是否可以查找无法正确显示的其中一个 IP 地址的主机名。请务必再次使用它输入主机名和查询 IP 地址:

    • 如果小部件可以根据主机名成功查找到地址,反向的查找也成功,那么针对该 IP 地址的 DNS 设置是正确的。
    • 如果小部件不能执行查找,则表示它不能到达 DNS。
    • 如果小部件表示输入的数据没有匹配的 IP 地址或主机名,那么系统可以到达 DNS,但 DNS 服务器中没有正确定义数据。

    请记住,您需要针对有代表性的 IP 地址样本进行这个测试,包括正向和反向测试,确保它们都能正常工作。如果不能正常显示某个 IP 组,那么在该组中失败的地址在这个小部件中也将失败。

  • 部署模式的问题

    当 D​​NS 不能正常工作时,系统的另一个挑战是,模式部署也将失败,或者虽然最终成功了,但需要花更长的时间。如果 PureSystems Manager 或 IP 组都不能到达他们的 DNS 服务器,或者两者都不包含 IP 地址的主机名,那么部署将会失败。当 IP 组无法解析 IP 地址的主机名,但 PureSystems Manager 可以解析它时,部署将会成功,但 DNS 超时将会延迟它。例如,在一个系统中,当其 IP 组的 DNS 最后被正确设置时,如表 3 的所示的简单模式的部署时间就会从 34 分钟缩短至 6 分钟。

    在部署过程中,每个失败的 DNS 查询都需要 10 分钟的超时时间。因此,发生这种情况的警示信号通常是某个步骤从需要几秒钟的运行时间变成需要 600 秒以上的运行时间。对于表 3 中所示的简单模式,maestro 脚本包的运行时间应该是 11-12 秒。如果 DNS 不能正常工作,该脚本包的运行将会花费 10 分 12 秒的时间。该脚本包花费了 10 分钟来让 DNS 超时,然后用 12 秒在没有查找结果的情况下完成它的工作。

    您可能会认为,如果一个 IP 组的 DNS 设置不正确,部署将会失败,或者至少 VM 不会有主机名。其实,只要 PureSystems Manager 可以正常使用 DNS,部署仍然会成功(除非有其他故障原因),而且每个 VM 都有相应的 IP 地址/主机名对。如果在 IP 组的服务器上的 DNS 查找超时,那么 PureSystems Manager 将会使用其 DNS 服务器来获取主机名(假设 PureSystems Manager 可以成功地显示 IP 组)。所以,问题不是模式部署失败,而是它需要更长的时间。

  • 虚拟机无法连接到网络资源

    一旦部署好了虚拟机,就可以接受测试它,以便确认它可以使用其 IP 地址正确地到达 DNS。假设在操作系统上没有执行其他配置来改变主机设置或 DNS 网络设置,我们可以认为,如果虚拟机在被部署后无法到达它的 DNS 服务器,并执行成功的查找,那么它在部署过程中很可能也不会成功。

    为了测试已部署的 VM,通过 SSH 连接到它的操作系统。在 VM 的操作系统内,尝试执行以下网络任务:

    • 使用 nslookup 按 IP 地址或主机名查找 PureSystems Manager。
    • 使用 ping 来查找 PureSystems Manager 或 DNS 服务器。
    • 使用 SSH 连接到 PureSystems Manager 或 DNS 服务器。

    即使在这些其他服务器上禁用了 ping 和 SSH 服务,VM 至少应该能够在网络上找到他们,并显示错误,告知该服务无法正常工作。如果 VM 提供的错误是它不能在网络上找到这些服务器,或者只是处于挂起状态并且超时,则表示没有正确设置 DNS。

结束语

本文回顾了 DNS 作为任何 IP 网络的一部分的工作原理的基本知识,如何在 PureApplication System 中使用 DNS 的功能,以及如何使用 DNS,还有如何解决涉及系统的 DNS 使用的问题。有了这些信息,您就可以配置 PureApplication System 的 DNS 服务器,并配置 PureApplication System 使用它们,帮助确保系统正确地将您的工作负载部署到数据中心的网络。

致谢

作者感谢 IBM 员工 Alan Booth、Ivan Heninger、Mike Law、Brad Broge、Santiago Ortega、Adam Geiger、Erhan Ekici 和 Hendrik van Run。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, Cloud computing
ArticleID=984096
ArticleTitle=IBM PureApplication System 如何使用 DNS 将工作负载部署到数据中心的网络上
publish-date=09242014