新闻  |   论坛  |   博客  |   在线研讨会
Linux 集群的存储和共享文件系统
wxy_88kl | 2008-04-30 11:03:38    阅读:4792   发布文章

从多个独立的硬件和软件,包括 System x™ 和 IBM TotalStorage®,创建一个可运行的 Linux® 集群。第 3 部分提供了设置存储后端所需的操作指导的前半部分内容,包括有关存储架构、所需硬件和 Storage Area Network 的详细信息。

简介

本文是系列文章中的第 3 部分,该系列涵盖了安装和设置一个大型 Linux 计算机集群的全部内容。有关如何从多个独立的硬件和软件创建一个可运行的 Linux(R) 集群的资源很多,本系列力求把这些公共领域里的资源中的最新信息集中起来以供您参考。本系列文章无意为您提供有关如何设计一个新的大型 Linux 集群的基础知识;要获得一般性的架构方面的知识,请参考本文中提到的相关参考资料和 Redbooks™。

本系列是针对系统架构师和系统工程师使用 IBM eServer Cluster 1350 框架(关于该框架的更多信息,请参见 参考资料)计划和实现 Linux 集群而设计的。其中的一部分内容可能会与集群管理员的日常集群操作有关。本文的每个章节都针对相同的示例安装。

本系列的 第 1 部分 详细阐述了设置集群硬件的操作指导。 第 2 部分 带您亲历了硬件配置的后续步骤:安装软件,这其中会用到 IBM systems 管理软件、Cluster Systems Management (CSM) 和节点安装。

第 3 部分是两篇有关集群后端存储的文章中的上部,这两篇文章合在一起,全面介绍了存储的硬件配置以及 IBM 共享文件系统 GPFS (General Parallel File System ) 的安装和配置。本部分将侧重于讨论存储系统的架构、硬件准备以及存储区域网络(Storage Area Network,SAN)的设置。本系列的第 4 部分即最后一部分则提供了有关特定于此示例集群存储后端的 CSM 的详细信息,尤其是如何执行存储系统的节点安装以及 GPFS 的集群配置。

存储架构

在继续之前,先阅读一下本系列 第 1 部分 中有关总体架构的章节将会很有益处。

图 1 给出了本系列中描述的示例集群的存储配置概览。此配置在本文中将进一步加以解释。该设置基于 GPFS 版本 2.3。包括一个大型的 GPFS 集群,该集群分成两个逻辑部分,共用一个大型文件系统。示例设计还提供了应付灾难的恢复能力,如果存储后端的一半丢失,另一半仍可继续操作。


图 1. 存储架构概览
存储架构

图 1 显示了四个存储服务器,可管理由两个磁盘子系统提供的存储。在右上角,可以看到一个 tie-breaker 服务器。网络连接和光纤连接也显示出来以供参考。所有这些内容会在本文的后续章节详细加以介绍。集群的其他部分显示为云状,本文不会涉及。更多关于该集群其他部分的信息,请参看本系列的 第 1 部分 和 第 2 部分 。

节点

GPFS 集群的大部分节点都运行 Red Hat Enterprise Linux 3。本例使用服务器/客户机架构,其中,少数几个服务器通过光纤通道拥有对存储的可见性。它们充当集群其他部分的网络共享磁盘 (NSD) 服务器。这意味着大多数 GPFS 集群的成员都将使用 NSD 服务器经由 IP 访问存储。NSD 节点(即存储节点)一共有四个:GPFS 集群的逻辑分区各两个。它们均按对分组,每一对管理其中的一个存储子系统。

Tiebreaker

集群的每一半都包含完全相同数目的节点,若其中的一半丢失,就会带来仲裁问题。通过 GPFS,若要使文件系统保持可用,就需要有一个有效的节点仲裁。Quorum 由 Quorum = ( number of quorum nodes / 2 ) + 1 定义。

在本例所示的这种配置中,集群由完全相同的两个部分组成,若其中任何一个丢失,GPFS 文件系统都会不可用。为了避免这种情况,系统采用了一个 tie-breaker 节点。此节点的物理位置与主集群不在一起。这意味着若任何一部分不可用,另一部分都能继续访问 GPFS 文件系统。这是通过使用三个故障组得以实现的,我们将在 数据复制 一节详细对之进行介绍。这意味着数据的两个副本都可用:集群的每一半各一个。

架构

如图 1 所示,每个节点均连接至两个网络。其中的第一个网络用于计算流量和总的集群通信。第二个网络则专门针对 GPFS,为那些不具有 Storage Area Network (SAN) 存储系统直观视图的节点提供经由 IP 的存储访问。这个网络使用巨大帧来获得好的性能。有关存储网络的更详细的信息,请参阅本系列第 4 部分的 GPFS 网络调优一节。

存储区域网络

本解决方案的存储后端包括两个磁盘子系统,均为 IBM TotalStorage DS4500(之前为 FAStT 900)磁盘系统,每一个都附带完全填充过的 EXP710 扩展磁盘柜。每个 DS4500 均被配置成 RAID 5 4+P 阵列外加热后备磁盘。

每个 DS4500 均由一对存储服务器所有。在这两个服务器间拆分 4+P 阵列,以便每个服务器都可充当阵列其中一半的主服务器、阵列另一半的备用服务器。这样一来,若任何一个服务器故障,另一个服务器都能立即作为主服务器从故障的服务器接管磁盘。

数据复制

本例中,GPFS 会复制 GPFS 文件系统中的数据或元数据。存储被拆分成三个故障组。每一个故障组都包括一组共享共同故障点的逻辑磁盘(从操作系统不难发现,这里,一个磁盘对应于一个 LUN,这个 LUN 是 DS4500 上的一个磁盘阵列)。此系统中的故障组由如下部分组成:

  • 故障组 1 中的一个 DS4500 系统
  • 故障组 2 中一个 DS4500 系统
  • 属于 tie-breaker 节点的本地磁盘

在创建 GPFS 文件系统时,应该先将数据和元数据的副本数量指定为 2。所以,对于如上定义的故障组,每半个部分都会包含文件系统的一个副本。第 3 个故障组是解决磁盘仲裁问题所必需的,以便如果存储的其中一半离线之后,磁盘仲裁能立即发挥作用且文件系统也能保持总可以被访问。

硬件准备

如所提到的,此集群包含两个 IBM TotalStorage DS4500 设备,二者组成了此解决方案的存储后端。有关此硬件的更多信息,可以在 参考资料 一节找到。

IBM 使用 IBM TotalStorage DS4000 EXP710 光纤通道(FC)存储扩展单元将两个 DS4500 系统连接起来。其中的每个单元都是一个 14-bay、2 GBps、可机架安装的 FC 封装。 有关此硬件的更多信息,可以在 参考资料 一节找到。

如下的章节涵盖了这个示例解决方案中用到的 DS4500 和 EXP710 单元的配置细节。

开关的顺序

注意,您需要以一种特定的顺序来开关 SAN 系统,以便所有存储都可被正确发现。请以如下顺序执行系统开启:

  1. SAN 交换机(允许其完全初始化)
  2. EXP 710 柜
  3. DS4500 (允许其完全初始化)
  4. 存储服务器

关闭的顺序则与之相反,如下所示:

  1. 存储服务器
  2. DS4500
  3. EXP 710
  4. SAN 交换机

连接

图 2 显示了 DS4500 单元的背面。在左侧有四个 mini-hub 端口,可用来进行主机连接。在本文,将这四个端口由左向右依次表示为 slot 1 至 slot 4,如图 1 所示。Slot 1 和 3 对应于顶部控制器,即控制器 A。Slot 2 和 4 分别对应于底部的控制器,即控制器 B。在右侧,也有四个 mini-hub 端口,可用于进行扩展柜 (EXP710) 的连接。


图 2:DS4500 的背板图
DS4500 的背板图

Cabling

每个 DS4500 都会连至两个环,如图 3 所示。


图 3:DS4500 和 EXP 柜间的示例布线
DS4500 和 EXP 柜间的示例布线

设置 EXP 封装 ID

每个 EXP 710 柜都必须有惟一的 ID。这可通过每个封装背部的面板进行设置。

为 DS4500 控制器配置 IP 地址

使用每个封装背面的串行口设置每个控制器的 IP 地址。可以使用 Windows® 中的应用程序超级终端或 Linux 上的小型计算机进行这里设置。本例使用了如下设置:

  • 波特 38400
  • 比特 8
  • 奇偶校验 无
  • 结束比特 1
  • 流量 xon/xoff

通过发送 Break(如果使用超级终端,则为 Ctrl-Break)来建立连接,然后再按下空格键来设置速度。之后,发送另一个 break 并使用退出键进入内核。默认的密码是 infiniti。

使用命令 netCfgShow 显示控制器的当前 IP 地址设置,使用命令 netCfgSet 来设置所需连接的 IP 地址、子网掩码和网关。

从 Storage Manager 发现 DS4500

这之后,可通过 Storage Manager (SM)软件对 DS4500 进行管理。对新的硬件使用最新的版本(9.1 或更高)。

您可以使用 Storage Manager 来:

  • 配置阵列和逻辑驱动器
  • 将逻辑驱动器分配给存储分区
  • 替换和重构失效的磁盘驱动器
  • 扩展阵列的规模
  • 从一个 RAID 级别转换到另一个级别

您也可以进行故障排除或执行管理任务,例如检查 TotalStorage 子系统的状态及更新 RAID 控制器的固件。要获得适合您的具体硬件的最新版 Storage Manager,请参看 参考资料。

SM 客户机可以安装在许多操作系统上。在本文所描述的示例中,SM 客户机安装于管理服务器。使用左侧的第一个按钮从 SM 客户机发现新配置好的 DS4500。要在可通过接口看到的 DS4500 上执行操作,可双击计算机名来打开新窗口。

DS4500 控制器总的配置步骤

首选,重命名 DS4500,方法是转到 Storage Subsystem > Rename…,并输入新的名称。接下来,检查时钟是否同步,方法是转到 Storage Subsystem > Set Controller Clock。在这里,确保所有时钟均已同步。现在,转到 Storage Subsystem > Change > Password,设置系统密码。

更新 DS4500 和 EXP 710 柜的固件

要从 Storage Manager 检查系统固件的等级,可转到 Advanced > Maintenance > Download > Firmware。当前的等级列于窗口的最顶部。您可以从这里向计算机下载更新的版本,但务必对此模型使用正确的固件且以特定的顺序对级别进行升级,此顺序应该是在固件代码中的注释中指定的。磁盘和 ESM 的固件也可以从 Download 菜单进行检查。

手动配置还是脚本配置

下面的章节详细介绍了 DS4500 的手动配置。请遵循本方案中的 DS4500 初始配置的操作步骤,并保存第一个 DS4500 的配置。这个操作会生成脚本,一旦 DS4500 被重置或被替换了硬件,您就可以使用此脚本来重新配置相同的 DS4500。

为了简单和准确地重新生成同样的设置,您也可以复制此脚本并加以编辑以便在其他 DS4500 上也可以使用。在此过程中,需要更改包含 DS4500 名称、磁盘位置、阵列名称和主机映射细节的域。注意这些脚本会将 Access LUN 留在主机组定义。这可手动从每个 DS4500 删除。

创建热后备磁盘

本例在每个 DS4500 上都使用了大量磁盘作为热后备。添加的方式是右键单击要分配用作热后备的磁盘,选择手动选项并输入 DS4500 的密码(在 DS4500 控制器总的配置步骤 一节设置)。

创建磁盘阵列

  1. 右键单击一个要添加到阵列的尚未分配的磁盘,选择 Create Logical Drive。
  2. 在所出现的向导中单击 Next。
  3. 选择 RAID level 5。原始驱动器已经被选中。
  4. 向阵列再添加其他四个驱动器,使其总数为 5。
  5. 在 Array Success 窗口,单击 OK,在此阵列上创建逻辑驱动器。
  6. 选择默认选项,其中整个 LUN 都被用于此逻辑驱动器。而这个逻辑驱动器的命名约定是 <ds4500 name>_array<number>。在 Advanced Parameters 之下,选择 Customize Settings。
  7. 在 I/O Characteristics 类型,选择默认,即 File System,并选择首选槽以便阵列可以在 A 和 B 间交替。在本例中,slot A 中有奇数个阵列,slot B 中有偶数个阵列。
  8. 选择 Map Later 以稍候再返回到映射。

在创建此阵列时,您会看到一个绿色的圆筒,旁边还有一个时钟。可以通过在这个逻辑磁盘名上右键单击并选择 Properties 来查看进展。

注意,此后的步骤需要您必须已经配置好 SAN 交换机并已安装和运行存储服务器,且主机总线适配器 (HBA) 也已配置,以便 HBA 的 WWPN 均可对 SAN 交换机可见,并进而对 DS4500 可见。有关这些步骤的详细信息,请参看第 4 部分的 SAN 架构 一节和 HBA 配置的相关章节。

存储分区和磁盘映射

LUN 一旦创建,就必须被分配到主机。在本例中,使用存储分区。通过创建逻辑驱动器到 LUN 的映射可以定义存储分区。这就将对特定逻辑驱动器的访问权授予了主机或主机组。在定义存储分区时,请按顺序执行这些步骤。需要首先定义拓扑结构然后再定义存储分区:

  1. 定义主机组。
  2. 定义组内的主机。
  3. 定义主机端口。
  4. 定义存储分区。

如前所述,在本例的设置中,每个 DS4500 只有一个组,包含两个存储节点,两节点间的所有在 DS4500 上的磁盘都将被 twin tailed。除了 Access LUN 之外,所有其他的 LUN 均被分配到这个组。Access LUN 用于 DS4500 的带内管理。然而,Linux 并不提供对它的支持,必须从所创建的所有节点组中删除。

创建一个新的主机组,方法是右键单击 Default Group 段并选择 Define New Host Group。输入主机组的名称。之后,创建一个新的主机,方法是右键单击所选的主机组并选择 Define Host Port。在下拉菜单,选择对应于所添加 HBA 的 WWPN。注意,若要使 WWPN 出现在此菜单,您必须在此 SAN 中已经正确对该主机进行了配置和专区划分。随后,Storage Manager 将会在 Show All Host Port Information 下看到此主机。Linux Host Type 已被选中,随后,主机端口名称也会被输入到最后的那个框内。

重复此步骤,以便每个主机都会有两个已经定义好的端口,接下来,创建存储分区,方法右键单击新创建主机组并选择 Define Storage Partition,以打开存储分区向导。单击 Next 启动该向导。选择刚刚创建的主机组,单击 Next。选择之前定义的那些 LUN 以将其包括到这里。注意 Access LUN 也必须包括进来。单击 Finish 来完成此集合。

SAN 架构

本节将介绍设置集群中的 SAN 架构所需的步骤。本例的配置中使用的 SAN 交换机是 IBM TotalStorage SAN Switch H16 交换机 (2005-H16)。有关此硬件的更多信息,请参考 参考资料。

在本节中,详细介绍了配置 SAN 交换机的步骤,参考了 H16 交换机的某些命令和接口。

为 H16 SAN 交换机配置 IP 地址和主机名

要在 H16 SAN 交换机上进行 IP 地址的初始配置,可以将此交换机随带的串行电缆(黑头、非 null modem)连接至计算机后端的端口,并使用如下的连接设置:

  • 9600 波特
  • 8 数据位
  • 无奇偶校验
  • 1 终止位
  • 无流量控制

使用默认的登录信息:用户名为 admin ,密码为 password。可使用命令 ipAddrSet 更改主机名和 IP 地址。也可使用命令 ipAddrShow 验证设置。

IP 地址一旦配置,就可以用 Web 界面来管理 SAN 交换机了。用 IP 地址连接至 SAN 交换机,浏览器必须带 Java™ 插件。要访问 Admin 界面,单击 Admin 按钮并输入用户名和密码。这里,您可以将交换机的新名字输入到相应的框中并应用这些更改。

网络中每个域的域 ID 必须惟一。本例中的所有交换机均包含在其自身的网络中,但考虑到未来合并的可能,可以改变它们的 ID。注意,在更改域 ID 之前,交换机需要被禁用。

还有一点可供参考,网络一旦可以访问此交换机,您就可以使用 Admin 界面的 Network Config 选项卡更改此 SAN 交换机的 IP 地址。这种方法是串行连接的一种替代方法。

SAN 交换机分区(zoning)

示例集群使用如下的分区原则:

  • 所有主机上的 HBA0(PCI slot 3 中的 Qlogic 光卡)划分为一区,对此 DS4500 的控制器 A(slot 1 和 3)公开
  • 所有主机上的 HBA1(PCI slot 4 中的 Qlogic 光卡) 划分为一区,对此 DS4500 的控制器 B(slot 2 和 4)公开

设置 SAN 交换机的分区可以通过前一节所介绍的交换机上的 Web 界面完成。使用窗口左下角最右侧的按钮可以访问到分区页面。欲简化分区的管理,可以为每个 WWPN 分配别名来识别附在此端口的设备。

以下介绍了如何创建别名并将其分配给主机。首先,通过单击 Create 并输入别名的名称来添加别名,然后,选择一个 WWPN 以将它分配给新建的别名。在每个端口都会有三个级别,即:

  1. 主机 WWN
  2. WWPN
  3. 注释

选择第二个级别以及 Add member,可以将第二个级别添加到别名。

创建了别名之后,下一步是通过对别名进行分组来创建各个专区(zone)。在本例的配置中,曾用到过专区,在这些专区中,每个主机上的每个 HBA 只能看到相关 DS4500 上的一个控制器。如上一节所介绍的,在本例的设置中,每个 DS4500 只将它的磁盘展示给两个主机。每个主机使用不同的连接连至控制器以分散负荷及最大化吞吐量。这种分区称为单 HBA 分区。在 SAN 级,所有主机之间相互隔离。这种分区消除了主机间不必要的 PLOGI 动作,也消除了故障的 HBA 对其他 HBA 产生影响的风险。其结果是,由于对单个专区的修改并不会影响到其他主机,所以交换机的管理更加安全。当需要添加新的主机时,请尽量创建新的专区,而不是将该主机添加到现有的一个专区内。

最后一步是将定义添加到配置中的专区,这些专区可被保存,然后激活。此外,很有必要生成一个交换机报告,方法是单击 Admin 按钮并选择 Switch Report。此报告是 html 格式的,包含手动重建交换机配置所需的全部信息。

将配置保存到另一个服务器

SAN 交换机一旦配置完毕,就可以通过 ftp 将配置上载到另一个服务器。如果需要自动重置交换机,也可以再次这么做。将配置文件保存到另一个服务器的步骤如下:

  1. 在要接收此文件的服务器上设置并启动 ftp。
  2. 以 admin(默认密码为 password)通过 telnet 登录到 SAN 交换机。
  3. 输入 configupload 命令。
  4. 输入所需信息:IP 地址、帐号和密码、将被创建的文件的名称和位置。

更新固件

可使用某个 FTP 服务器上的下载更新固件。具体步骤如下:

  1. 设置 FTP 服务器并将固件 tar 压缩包解压缩到 ftp 目录。
  2. 使用 firmwareshow 命令检查当前的固件级别。
  3. 使用 firmwaredownload 命令启动下载进程。
  4. 输入所需信息:IP 地址、帐号和密码、存有固件的当前目录(后跟 release.plist,例如 /pub/v4.4.0b/release.plist)。若 release.plist 文件没有出现,也不要惊慌,此交换机会下载和安装软件,然后重新引导。
  5. 以 admin 登录并通过命令 firmwaredownloadstatus 检查更新的状态。

结束语

本文只部分介绍了示例集群的后端设置。接下来的步骤会涉及如何使用 CSM 来完成存储后端的设置,包括执行存储系统的节点安装和 GPFS 集群配置。本系列的第 4 部分也是最后一个部分将涵盖上述内容。

原文链接:http://www.ibm.com/developerworks/cn/linux/es-clusterseriespt3/index.html

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
漫天皆白, 雪里行军情更迫。 头上高山, 风卷红旗过大关。 此行何去?
推荐文章
最近访客