未找到结果

您的搜索操作未匹配到任何结果。

我们建议您尝试以下操作,以帮助您找到所需内容:

  • 检查关键词搜索的拼写。
  • 使用同义词代替键入的关键词,例如,尝试使用“应用”代替“软件”。
  • 请尝试下方显示的热门搜索之一。
  • 重新搜索。
热门问题

在 Oracle Enterprise Linux 和 iSCSI 上构建自己的 Oracle RAC 11g 集群

了解如何用不到 2700 美元在 Oracle Linux 上搭建和配置 Oracle RAC 11g 第 2 办开发集群.
作者:Jeffrey Hunter

CB105v0-->

    目录

    全部展开 全部收起
  • 1.简介

    熟悉 Oracle Real Application Clusters (RAC) 11g 技术的最有效方法之一是访问一个实际的 Oracle RAC 11g 集群。没有什么方法比直接体验它们能够更好地理解其优势了,这些优势包括容错、安全性、负载平衡和可伸缩性。

    遗憾的是,对于很多商家而言,典型的生产级 RAC 配置所需的硬件投入使它们无法实现这一目标。一个小型的只有两个节点的集群可能花费 10000 美元至 20000 美元以上,此花费甚至不包括 RAC 生产环境的核心 — 共享存储。大多数情况下,这会是一个存储区域网 (SAN),起价通常为 10000 美元。

    对于那些没有大笔现金但希望熟悉 Oracle RAC 11g 的人们而言,本指南提供了一种低成本的替代方法来配置 Oracle RAC 11g R2 系统,它使用现成的商用组件和可下载的软件,估计成本在 2200 美元到 2700 美元之间。该系统将由一个双节点集群组成,这两个节点均运行适用于 x86_64 的 Oracle Enterprise Linux (OEL) R5 Update 4、适用于 Linux x86_64 的 Oracle RAC 11g R2 和 ASMLib 2.0。Oracle RAC 的所有共享磁盘存储将基于 iSCSI,iSCSI 使用在第三个节点(该节点在本文中称为网络存储服务器)上运行的 Openfiler 2.3 版 x86_64。

    尽管本文应与 Red Hat Enterprise Linux 一同使用,但 Oracle Enterprise Linux(免费提供)也可满足需要(即使不能更为稳定),它包括 ASMLib 软件包(不包括 ASMLib 用户空间库,这个需要单独下载)。

    本指南仅供教学使用,因此安装很简单,仅用于演示想法和概念。例如,本文中共享的 Oracle 集群件文件(OCR 和表决文件)以及所有物理数据库文件将仅安装在一个物理磁盘上,而实际上应在多个物理驱动器上配置这些文件。另外,每个 Linux 节点仅配置两个网络接口 — eth0 用于连接公共网络,eth1 用于 Oracle RAC 专用互连“和”连接网络存储服务器以便进行共享 iSCSI 访问。而在实现生产级 RAC 时,专用互连至少应是千兆位级(或以上)、有冗余路径,并且“仅”供 Oracle 用来传输 Cluster Manager 和 Cache Fusion 的相关数据。应在另一个冗余的千兆位网络上配置第三个专用网络接口(例如,eth2)以访问网络存储服务器 (Openfiler)。

    Oracle 文档

    尽管本指南提供了成功安装完整的 Oracle RAC 11g 系统的详细说明,但它绝不能替代 Oracle 官方文档(参见下面的列表)。除本指南外,用户还应参考以下 Oracle 文档,以便全面了解 Oracle RAC 11g 的其他配置选项、安装和管理。Oracle 的官方文档网站是 docs.oracle.com

    • Oracle Grid Infrastructure 安装指南 — 适用于 Linux 的 11g R2 (11.2)
    • Clusterware 管理和部署指南 — 11g R2 (11.2)
    • Oracle Real Application Clusters 安装指南 — 适用于 Linux 和 UNIX 的 11g R2 (11.2)
    • Real Application Clusters 管理和部署指南 — 11g R2 (11.2)
    • Oracle Database 两日速成和 Real Application Clusters 指南 — 11g R2 (11.2)
    • Oracle Database 存储管理员指南 — 11g R2 (11.2)

    网络存储服务器

    Openfiler 构建于 rPath Linux 之上,它是一个基于浏览器的免费网络存储管理实用程序,可在一个框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN)。整个软件体系与许多开源应用(如 Apache、Samba、LVM2、ext3、Linux NFS 和 iSCSI Enterprise Target)相连接。Openfiler 将这些随处可见的技术组合到一个易于管理的小型管理解决方案中,该解决方案的前端是一个基于 Web 的功能强大的管理界面。

    Openfiler 支持 CIFS、NFS、HTTP/DAV 和 FTP,但是,我们将仅使用它的 iSCSI 功能为 Oracle RAC 11g 所需的共享存储组件实现低成本的 SAN。操作系统和 Openfiler 应用将安装在一个内置 SATA 磁盘上。另一个内置 73GB 15K SCSI 硬盘将被配置为一个“卷组”,用于满足所有共享磁盘存储需求。Openfiler 服务器将配置为使用该卷组进行基于 iSCSI 的存储,并且将在我们的 Oracle RAC 11g 配置中使用该服务器存储 Oracle Grid Infrastructure 和 Oracle RAC 数据库所需的共享文件。

    Oracle Grid Infrastructure 11g R2 (11.2)

    在 Oracle Grid Infrastructure 11g R2 (11.2) 中,自动存储管理 (ASM) 和 Oracle Clusterware 软件一起打包到一个二进制版本中并安装到同一个主目录中,这个主目录称为 Grid Infrastructure 主目录。要使用 Oracle RAC 11g R2,您必须安装 Grid Infrastructure。在安装程序的询问过程之后,会启动配置助手以配置 ASM 和 Oracle Clusterware。虽然这种组合的产品安装称为 Oracle Grid Infrastructure,但 Oracle Clusterware 和 Automatic Storage Manager 仍然是独立的产品。

    在集群中的两个节点上安装并配置 Oracle Grid Infrastructure 后,下一步将是在两个 Oracle RAC 节点上安装 Oracle RAC 软件。

    在本文中,我们在两个节点上使用可选的作业角色划分配置来安装 Oracle Grid Infrastructure 和 RAC 软件。我们会为每个 Oracle 软件产品创建一个操作系统用户作为该产品的所有者 — "grid"作为 Oracle Grid Infrastructure 的所有者,“oracle”作为 Oracle RAC 软件的所有者。在本文中,grid 的用户是我们创建作为 Oracle Grid Infrastructure 二进制文件所有者的用户。该用户将是 Oracle Clusterware 和 Oracle 自动存储管理二进制文件的所有者。而 oracle 用户是我们创建作为 Oracle 数据库二进制文件 (Oracle RAC) 所有者的用户。这两个 Oracle 软件所有者必须以 Oracle Inventory 组 (oinstall) 作为其主组,这样每个 Oracle 软件安装所有者都有权写入中央清单 (oraInventory),以便正确设置 OCR 和 Oracle Clusterware 资源的权限。Oracle RAC 软件所有者还必须以 OSDBA 组和可选的 OSOPER 组作为其辅助组。

    自动存储管理和 Oracle Clusterware 文件

    如上所述,自动存储管理 (ASM) 现在已与 Oracle Clusterware 完全集成在 Oracle Grid Infrastructure 中。Oracle ASM 和 Oracle Database 11g R2 提供了较以前版本更为增强的存储解决方案。该解决方案能够在 ASM 上存储 Oracle Clusterware 文件,即 Oracle 集群注册表 (OCR) 和表决文件(VF,又称为表决磁盘)。这一特性使 ASM 能够提供一个统一的存储解决方案,无需使用第三方卷管理器或集群文件系统即可存储集群件和数据库的所有数据。

    和数据库文件一样,Oracle Clusterware 文件也存储在 ASM 磁盘组中,从而使用 ASM 磁盘组的冗余配置。例如,一个常规冗余配置的 ASM 磁盘组将保存一个双向镜像的 OCR。磁盘组中一个磁盘出现故障不会妨碍对 OCR 的访问。就高冗余配置的 ASM 磁盘组(三向镜像)而言,两个独立的磁盘出现故障不会影响对 OCR 的访问。而采用外部冗余配置,Oracle 不提供任何保护。

    为了防止物理磁盘故障,Oracle 针对每个磁盘组只允许一个 OCR。在生产系统中配置 Oracle Clusterware 文件时,Oracle 建议使用常规或高冗余配置的 ASM 磁盘组。如果在操作系统级或硬件级已存在磁盘镜像,您可以使用外部冗余配置。

    对表决文件的管理类似于 OCR。这些文件遵循 ASM 磁盘组的冗余配置,但是其管理方式不同于磁盘组中的常规 ASM 文件。每个表决磁盘放置在磁盘组的一个特定磁盘上。表决文件的磁盘及其在磁盘上的位置存储在 Oracle Clusterware 内部。

    下面的示例说明,在使用本指南安装 Oracle Grid Infrastructure 后 ASM 如何存储 Oracle Clusterware 文件。要查看 OCR,请使用 ASMCMD:

     
     [grid@racnode1 ~]$ 
     asmcmd
     ASMCMD> 
     ls -l +CRS/racnode-cluster/OCRFILE
     Type Redund Striped Time Sys Name
     OCRFILE UNPROT COARSE NOV 22 12:00:00 Y REGISTRY.255.703024853
     
     +CRS/racnode-cluster/OCRFILEREGISTRY.255.703024853crsctl query css votedisk
     [grid@racnode1 ~]$ 
     crsctl query css votedisk
     ## STATE File Universal Id File Name Disk group
     -- ----- ----------------- --------- ---------
     1. ONLINE 4cbbd0de4c694f50bfd3857ebd8ad8c4 (ORCL:CRSVOL1) [CRS]
     Located 1 voting disk(s).
     

    如果您决定不使用 ASM 管理 OCR 和表决磁盘文件,Oracle Clusterware 仍然允许将这些文件存储在一个集群文件系统(如 Oracle Cluster File System R2 (OCFS2))或 NFS 系统中。请注意,除非现有系统正在进行升级,否则不再支持在原始设备或块设备上安装 Oracle Clusterware 文件。

    本指南的以前版本使用 OCFS2 存储 OCR 和表决磁盘文件。本指南将介绍在 ASM 上存储 OCR 和表决磁盘文件,具体是存储在一个名为 +CRS 的磁盘组中,该磁盘组使用外部冗余配置,只有一个 OCR 位置和一个表决磁盘位置。ASM 磁盘组应在共享存储器上创建,大小至少为 2GB。

    Oracle 物理数据库文件(数据、联机重做日志、控制文件、存档重做日志)将安装在 ASM 上一个名为 +RACDB_DATA 的 ASM 磁盘组中,而快速恢复区将在一个名为 +FRA 的 ASM 磁盘组上创建。

    两个 Oracle RAC 节点和网络存储服务器配置如下:

    节点
    节点名称 实例名称 数据库名称 处理器 RAM 操作系统
    racnode1 racdb1 racdb.idevelopment.info 1 个双核 Intel Xeon,3.00 GHz 4GB OEL 5.4 - (x86_64)
    racnode2 racdb2 1 个双核 Intel Xeon,3.00 GHz 4GB OEL 5.4 - (x86_64)
    openfiler1     2 个 Intel Xeon,3.00 GHz 6GB Openfiler 2.3 - (x86_64)
    网络配置
    节点名称 公共 IP 地址 专用 IP 地址 虚拟 IP 地址 SCAN 名称 SCAN IP 地址
    racnode1 192.168.1.151 192.168.2.151 192.168.1.251 racnode-cluster-scan 192.168.1.187
    racnode2 192.168.1.152 192.168.2.152 192.168.1.252
    openfiler1 192.168.1.195 192.168.2.195  
    Oracle 软件组件
    软件组件 OS 用户 主组 辅助组 主目录 Oracle 基目录/Oracle 主目录
    Grid Infrastructure grid oinstall asmadmin, asmdba, asmoper /home/grid /u01/app/grid
    /u01/app/11.2.0/grid
    Oracle RAC oracle oinstall dba, oper, asmdba /home/oracle /u01/app/oracle
    /u01/app/oracle/product/11.2.0/dbhome_1
    存储组件
    存储组件 文件系统 卷大小 ASM 卷组名 ASM 冗余 Openfiler 卷名
    OCR/表决磁盘 ASM 2GB +CRS 外部 racdb-crs1
    数据库文件 ASM 32 GB +RACDB_DATA 外部 racdb-data1
    快速恢复区 ASM 32 GB +FRA 外部 racdb-fra1

    本文内容仅按文档规定配置才有效,绝对不可采用其他替代。此处唯一的例外是供应商硬件的选择(即,计算机、网络设备和内置/外置硬盘驱动器)。确保您从供应商处购买的硬件在 Enterprise Linux 5 和 Openfiler 2.3(最终版本)上受支持。

  • 2.Oracle RAC 11g 概述

    在介绍构建 RAC 集群的详细信息之前,首先阐明集群的定义将很有帮助。集群是一组两个或多个互连的计算机或服务器,对最终用户和应用来说,它们就像是一台服务器,通常共享同一组物理磁盘。集群的主要优势在于提供了一个高可用的框架,在该框架中,一个节点(例如,运行一个 Oracle 实例的数据库服务器)出现故障不会中断整个应用。如果其中一个服务器出现故障,其他正常运行的(一个或多个)服务器可以接管故障服务器的负载,应用继续正常运行,完全不受故障影响。

    实际上,集群计算机的概念在几十年前就出现了。第一个成功的集群产品由 DataPoint 在 1977 年开发完成,该产品名为 ARCnet。ARCnet 产品在实验室的学术环境中获得了很大成功,但未能真正投放到商业市场。直到 20 世纪 80 年代,Digital Equipment Corporation (DEC) 才发布了针对 VAX/VMS 操作系统的 VAX 集群产品。

    随着针对 Digital VAX 集群产品的 Oracle 6 发布,Oracle 成为在数据库级别支持集群的第一个商业数据库。但是不久之后,Oracle 意识到 VAX/VMS 集群产品中的锁管理器不太适合数据库应用,还需要一个更高效、可伸缩性更强的分布式锁管理器 (DLM)。Oracle 决定为 VAX/VMS 集群产品设计并编写自己的 DLM,以提供数据库所需的细粒度块级锁定。Oracle 自己的 DLM 随附 Oracle 6.2 推出,第一个运行并行服务器的数据库 Oracle Parallel Server (OPS) 因此诞生了。

    OPS 在 Oracle 7 中得到了扩展,不仅支持 VAX/VMS 集群产品,还支持大多数 UNIX 环境。该框架不仅要求供应商提供的集群件运行良好,还要适用于复杂的环境,以设置并管理所涉及的多个给定层。在 Oracle 8 中,Oracle 引入了一个集成到 Oracle 内核中的通用锁管理器。在更高版本的 Oracle 中,这称为集成分布式锁管理器 (IDLM),依赖于称为操作系统依赖 (OSD) 层的附加层。这个新模型为 Oracle 铺平了道路,使其不仅拥有自己的 DLM,还可以在未来版本中创建自己的集群件产品。

    随 Oracle9i 一同推出的 Oracle Real Application Clusters (RAC) 是 Oracle Parallel Server 的后续版本。由于使用了相同的 IDLM,Oracle 9i 仍然可以依赖于外部集群件,但却是第一个包含自己的集群件产品(称为 Cluster Ready Services (CRS))的版本。在 Oracle 9i 中,CRS 只能用于 Windows 和 Linux。到了 Oracle 10g R1,Oracle 的集群件产品可用于所有操作系统,成为了 Oracle RAC 所需的集群技术。随着 Oracle Database 10g R2 (10.2) 的发布,Cluster Ready Services 被重命名为 Oracle Clusterware。如果使用 Oracle 10g 或更高版本,Oracle Clusterware 是大多数运行 Oracle RAC 的平台所需的唯一集群件(Tru 集群除外,您仍需要供应商集群件)。您仍然可以使用其他供应商的集群件(如果该集群件通过了认证),但是请记住,Oracle RAC 仍然需要 Oracle Clusterware,因为它与数据库软件完全集成。本指南使用 Oracle Clusterware,该集群件从 11g R2 (11.2) 开始就是 Oracle Grid Infrastructure 的一个组件了。

    与 OPS 一样,Oracle RAC 允许多个实例同时访问同一个数据库(存储)。通过允许系统进行扩展,RAC 提供了容错、负载平衡和性能优势。同时,由于所有实例都访问同一个数据库,因此一个节点出现故障不会导致无法访问数据库。

    Oracle RAC 的核心是共享磁盘子系统。集群中的每个实例都必须能够访问集群中所有其他实例的所有数据、重做日志文件、控制文件和参数文件。为了使所有实例都能访问数据库,数据磁盘必须全局可用。每个实例都有自己的本地可读写重做日志文件和 UNDO 表空间。集群中的其他实例必须能够访问这些文件(只读),以便在系统出现故障时恢复该实例。一个实例的重做日志文件只能由该实例自己写入,其他实例只能在系统故障期间读取该实例。另一方面,UNDO 可以在正常数据库操作(例如,CR 构建)期间随时读取。

    Oracle RAC 和 OPS 的一个很大区别就是增加了缓存融合。在 OPS 中,从一个实例到另一个实例的数据请求需要先将数据写入磁盘,然后请求的实例才可以读取这些数据(在获得所需的锁之后)。这一过程称为磁盘 ping 操作。有了缓存融合,可利用复杂的锁定算法通过高速互联传递数据。

    并非所有数据库集群解决方案都使用共享存储。一些供应商使用联合集群方法,在这种方法中,数据分布在多台计算机中,而不是由所有计算机共享。但是,对于 Oracle RAC,多个实例使用一组相同的磁盘存储数据。Oracle 的集群方法利用了集群中所有节点的集体处理能力,同时提供了故障切换安全性。

    Dell、IBM 和 HP 等供应商提供了预先配置的面向生产环境的 Oracle RAC 解决方案。但是,本文将重点讨论如何使用 Linux 服务器和低成本的共享磁盘解决方案 iSCSI 整合您自己的 Oracle RAC 11g 环境以进行开发和测试。

    有关 Oracle RAC 的更多背景知识,请访问 OTN 上的 Oracle RAC 产品中心

  • 3.共享存储概述

    现在,光纤通道是最流行的共享存储解决方案之一。前面曾提到过,光纤通道是一种高速串行传输接口,用于在点到点 (FC-P2P)、仲裁环路 (FC-AL) 或交换式拓扑结构 (FC-SW) 中连接系统与存储设备。光纤通道支持的协议包括 SCSI 和 IP。光纤通道配置最多可支持 127 个节点,每个方向上最高可实现每秒 2.12 Gb 的吞吐量,预期可达 4.25 Gbps。

    但是,光纤通道的价格很昂贵。单是光纤通道交换机的起价就可能需要约 1000 美元。这还不包括光纤通道存储阵列和高端驱动器,一个 36GB 驱动器的价格可达 300 美元左右。典型的光纤通道安装包括用于服务器的光纤通道卡。基本安装的费用为大约 10000 美元,还不包括构成集群的服务器的成本。

    SCSI 是光纤通道的一种较为便宜的替代方法。SCSI 技术提供了可接受的共享存储性能。但对于那些习惯了基于 GPL 的 Linux 价格的管理员和开发人员来说,即使是 SCSI(一个双节点集群的价格在 2000 美元到 5000 美元左右)也可能超出预算。

    另一种流行的解决方案是基于 NAS 的 Sun NFS(网络文件系统)。只有在您使用网络设备或类似的设备时,它才可以用于共享存储。具体来说就是,您需要拥有能够保证在 NFS 上进行直接 I/O、将 TCP 作为传输协议并且读/写块大小为 32K 的服务器。有关可用于 Oracle RAC 的受支持的网络连接存储 (NAS) 设备,请参见 Oracle Metalink 上的 Certify 页面。其中一个主要缺陷限制了使用 NFS 和 NAS 进行数据库存储的优势,即,性能降低和复杂的配置要求。标准的 NFS 客户端软件(使用操作系统提供的 NFS 驱动程序的客户端系统)没有针对 Oracle 数据库文件 I/O 访问模式进行优化。随着 Oracle 11g 的推出,一个称为 Direct NFS Client 的新特性将 NFS 客户端功能直接集成到 Oracle 软件中。通过该集成,Oracle 可以优化 Oracle 软件与 NFS 服务器之间的 I/O 路径,从而显著提高性能。Direct NFS Client 可以为数据库负载简化(在许多情况下可以自动化)NFS 客户端配置的性能优化。要了解有关 Direct NFS Client 的更多信息,请参见标题为“Oracle 数据库 11g Direct NFS Client”的 Oracle 白皮书。

    本文将采用的共享存储基于 iSCSI 技术,使用网络存储服务器(随 Openfiler 安装)。该解决方案提供了一个低成本的光纤通道替代方案,只用于测试和教学目的。考虑到方案中使用低端硬件,不应将其用于生产环境。

  • 4.iSCSI 技术

    多年以来,光纤通道存储区域网 (FC SAN) 是构建基于网络的存储解决方案所使用的唯一技术。光纤通道基于以前的一组 ANSI 协议(称为光纤分布式数据接口 (FDDI))开发,可在存储网络上移动 SCSI 命令。

    FC SAN 的优势包括提高了性能、磁盘利用率、可用性以及可伸缩性等,但最重要的是支持服务器集群!但是,FC SAN 现在仍受三个主要缺点的限制。首先是价格。尽管构建 FC SAN 的成本在近几年有所下降,但进入成本对于 IT 预算有限的小公司来说仍然是高的惊人。第二个缺点是硬件组件不兼容。采用 FC SAN 之后,许多产品制造商对光纤通道规范的解释各不相同,从而导致许多互连问题。如果从公共制造商购买光纤通道组件,这通常不是一个问题。第三个缺点是光纤通道网络不是以太网!它需要一种不同的网络技术,并要求数据中心人员具备另外一组技能。

    随着千兆位以太网的普及以及对降低成本的需要,基于 iSCSI 的存储系统逐渐成为光纤通道的有力竞争对手。现在,iSCSI SAN 仍然是 FC SAN 的最大竞争者。

    2003 年 2 月 11 日,经过互联网工程任务组 (IETF) 的批准,互联网小型计算机系统接口(一般称为 iSCSI)成为一个基于互联网协议 (IP) 的存储网络标准,用于建立和管理基于 IP 的存储设备、主机和客户端之间的连接。iSCSI 是 SCSI-3 规范框架中定义的数据传输协议,它与光纤通道的类似之处在于它也负责在存储网络上运送块级数据。块级通信意味着数据以“块”的形式在主机和客户端之间传输。数据库服务器依赖此类通讯(而不是大多数 NAS 系统使用的文件级通讯)来工作。与 FC SAN 一样,iSCSI SAN 是一个专用于存储的单独物理网络,但其组件与典型 IP 网络 (LAN) 中的组件基本相同。

    尽管 iSCSI 拥有光明的前景,但很多早期批评者很快指出了其在性能方面的内在不足。iSCSI 的优势是能够利用大家熟悉的 IP 网络作为传输机制。但是,TCP/IP 协议非常复杂并且占用过多的 CPU 资源。而使用 iSCSI,大部分对数据进行的处理(TCP 和 iSCSI)都由软件执行,比完全通过硬件处理的光纤通道慢得多。将每个 SCSI 命令映射到等价 iSCSI 事务所带来的开销过大。对许多公司来说,解决方案是取消 iSCSI 软件启动器,投资能够从服务器 CPU 中分流 TCP/IP 和 iSCSI 处理的专用卡。这些专用卡有时称为 iSCSI 主机总线适配器 (HBA) 或 TCP 分流引擎 (TOE) 卡。还要考虑到目前 10 Gb 以太网是主流!

    与其他新技术一样,iSCSI 具有一组自己的缩略语和术语。就本文而言,用户只需要了解 iSCSI 启动器与 iSCSI 目标之间的区别即可。

    iSCSI 启动器

    从本质上说,iSCSI 启动器是一个客户端设备,它连接到服务器(在本例中是 iSCSI 目标)提供的某一服务,并发起对该服务的请求。iSCSI 启动器软件需要安装在每个 Oracle RAC 节点(racnode1 和 racnode2)上。

    iSCSI 启动器可以用软件实现,也可以用硬件实现。软件 iSCSI 启动器可用于大部分主要操作系统平台。对于本文,我们将使用 iscsi-initiator-utils RPM 中提供的免费 Linux Open-iSCSI 软件驱动程序。iSCSI 软件启动器通常与标准网络接口卡 (NIC)(大多数情况下是千兆位以太网卡)配合使用。硬件启动器是一个 iSCSI HBA(或 TCP 卸载引擎 (TOE) 卡),它本质上只是一个专用以太网卡,其上的 SCSI ASIC 可以从系统 CPU 内卸载所有工作(TCP 和 SCSI 命令)。iSCSI HBA 可以从许多供应商处购买,包括 Adaptec、Alacritech、Intel 和 QLogic。

    iSCSI 目标

    iSCSI 目标是 iSCSI 网络的“服务器”组件。它通常是一个存储设备,包含您所需的信息并响应来自(一个或多个)启动器的请求。就本文而言,节点 openfiler1 将是 iSCSI 目标。

    因此,根据有关 iSCSI 的所有这些讨论,是否意味着光纤通道很快就会消失?可能不会。多年以来,光纤通道凭借其极快的速度、灵活性和强健的可靠性,为自己的能力提供了有力的证明。对高性能存储、大型复杂连接以及任务关键可靠性有严格要求的客户将毫不犹豫地继续选择光纤通道。

    在结束本节内容之前,我认为有必要提供一个比较各种类型磁盘接口和网络技术速度的列表。对于每种接口,我提供了以每秒千位 (kb)、千字节 (KB)、兆位 (Mb)、兆字节 (MB)、千兆位 (Gb) 以及千兆字节 (GB) 为单位的最大传输速率,较常用的以灰色突出显示。

    磁盘接口/网络/总线S 速度
    Kb KB Mb MB Gb GB
    串行 115 14.375 0.115 0.014    
    并行(标准) 920 115 0.92 0.115    
    10Base-T 以太网     10 1.25    
    IEEE 802.11b 无线 Wi-Fi(2.4 GHz 频带)     11 1.375    
    USB 1.1     12 1.5    
    并行 (ECP/EPP)     24 3    
    SCSI-1     40 5    
    IEEE 802.11g 无线 WLAN(2.4 GHz 频带)     54 6.75    
    SCSI-2(快速 SCSI/快速窄带 SCSI)     80 10    
    100Base-T 以太网(高速以太网)     100 12.5    
    ATA/100(并行)     100 12.5    
    IDE     133.6 16.7    
    快速宽带 SCSI(宽带 SCSI)     160 20    
    超级 SCSI(SCSI-3 / Fast-20 / 超窄带)     160 20    
    超级 IDE     264 33    
    超宽 SCSI(快速宽带 20)     320 40    
    Ultra2 SCSI     320 40    
    FireWire 400 - (IEEE1394a)     400 50    
    USB 2.0     480 60    
    宽带 Ultra2 SCSI     640 80    
    Ultra3 SCSI     640 80    
    FireWire 800 - (IEEE1394b)     800 100    
    千兆以太网     1000 125 1  
    PCI - (33 MHz / 32 位)     1064 133 1.064  
    串行 ATA I - (SATA I)     1200 150 1.2  
    宽带 Ultra3 SCSI     1280 160 1.28  
    Ultra160 SCSI     1280 160 1.28  
    PCI - (33 MHz / 64 位)     2128 266 2.128  
    PCI - (66 MHz / 32 位)     2128 266 2.128  
    AGP 1x - (66 MHz / 32 位)     2128 266 2.128  
    串行 ATA II - (SATA II)     2400 300 2.4  
    Ultra320 SCSI     2560 320 2.56  
    FC-AL 光纤通道     3200 400 3.2  
    PCI-Express x1 - (双向)     4000 500 4  
    PCI - (66 MHz / 64 位)     4256 532 4.256  
    AGP 2x - (133 MHz / 32 位)     4264 533 4.264  
    串行 ATA III - (SATA III)     4800 600 4.8  
    PCI-X - (100 MHz / 64 位)     6400 800 6.4  
    PCI-X - (133 MHz / 64 位)       1064 8.512 1
    AGP 4x - (266 MHz / 32 位)       1066 8.528 1
    10G 以太网 - (IEEE 802.3ae)       1250 10 1.25
    PCI-Express x4 - (双向)       2000 16 2
    AGP 8x - (533 MHz / 32 位)       2133 17.064 2.1
    PCI-Express x8 - (双向)       4000 32 4
    PCI-Express x16 - (双向)       8000 64 8
  • 5.硬件和成本

    用于构建示例 Oracle RAC 11g 环境的硬件包括三台 Linux 服务器(两个 Oracle RAC 节点和一台网络存储服务器)以及可在许多本地计算机商家或通过互联网购买的组件。

    Oracle RAC 节点 1 - (racnode1)
    Dell PowerEdge T100
    • 双核 Intel(R) Xeon(R) E3110,3.0 GHz,6MB 缓存,1333MHz
    • 4GB,DDR2,800MHz
    • 160GB 7.2K RPM SATA 3Gbps 硬盘驱动器
    • 集成显卡 - (ATI ES1000)
    • 集成千兆以太网 - (Broadcom(R) NetXtreme IITM 5722)
    • 16x DVD 驱动器
    • 无键盘、显示器或鼠标-(已连接至 KVM 切换器)
    450 美元
    1 - 以太网 LAN 卡

     

    用于 RAC 与 racnode2 及 Openfiler 网络存储的互联。

     

    每一个适用于 Oracle RAC 的 Linux 服务器应当包含两个 NIC 适配器。Dell PowerEdge T100 包含嵌入式 Broadcom(R) NetXtreme IITM 5722 千兆以太网 NIC,可用于连接至公共网络。第二个 NIC 适配器将用于专有网络(RAC 互联和 Openfiler 网络存储)。选择与适用于专有网络的网络切换器的最大数据传输速度相兼容的适当 NIC 适配器。就本文而言,我为专有网络使用了千兆以太网切换器(和 1Gb 以太网卡)。

     

         千兆以太网
    90 美元
    Oracle RAC 节点 2 - (racnode2)
    Dell PowerEdge T100
    • 双核 Intel(R) Xeon(R) E3110,3.0 GHz,6MB 缓存,1333MHz
    • 4GB,DDR2,800MHz
    • 160GB 7.2K RPM SATA 3Gbps 硬盘驱动器
    • 集成显卡 - (ATI ES1000)
    • 集成千兆以太网 - (Broadcom(R) NetXtreme IITM 5722)
    • 16x DVD 驱动器
    • 无键盘、显示器或鼠标-(已连接至 KVM 切换器)
    450 美元
    1 - 以太网 LAN 卡

     

    用于 RAC 与 racnode1 及 Openfiler 网络存储的互联。

     

    每一个适用于 Oracle RAC 的 Linux 服务器应当包含两个 NIC 适配器。Dell PowerEdge T100 包含嵌入式 Broadcom(R) NetXtreme IITM 5722 千兆以太网 NIC,可用于连接至公共网络。第二个 NIC 适配器将用于专有网络(RAC 互联和 Openfiler 网络存储)。选择与适用于专有网络的网络切换器的最大数据传输速度相兼容的适当 NIC 适配器。就本文而言,我为专有网络使用了千兆以太网切换器(和 1Gb 以太网卡)。

     

         千兆以太网
    90 美元
    网络存储服务器 - (openfiler1)
    Dell PowerEdge 1800
    • 双核 3.0GHz Xeon / 1MB 缓存 / 800FSB (SL7PE)
    • 6GB ECC 内存
    • 500GB SATA 内部硬盘驱动器
    • 73GB 15K SCSI 内部硬盘驱动器
    • 集成显卡
    • 单嵌入式 Intel 10/100/1000 千兆网卡
    • 16x DVD 驱动器
    • 无键盘、显示器或鼠标-(已连接至 KVM 切换器)

    注意:操作系统和 Openfiler 应用程序将安装在 500GB 内置 SATA 磁盘上。第二个内部 73GB 15K SCSI 硬盘配置用于数据库存储。Openfiler 服务器将配置为使用第二个硬盘驱动器来提供基于 iSCSI 的存储,并且将在我们的 Oracle RAC 11g 配置中用于存储 Oracle Clusterware 所需的共享文件以及集群化数据库文件。

    请注意,任何类型的硬盘(内部或外部)都应当适用于数据库存储,但前提是可以被网络存储服务器 (Openfiler) 识别且具有足够的空间。例如,我可以在 500GB 内部 SATA 磁盘上为 iSCSI 目标创建一个额外的分区,但是在本示例中,我决定使用速度更快的 SCSI 磁盘。

    800 美元
    1 - 以太网 LAN 卡

     

    用于专有网络上的网络存储。

     

    网络存储服务器(Openfiler 服务器)应当包含两个 NIC 适配器。Dell PowerEdge T1800 机器包含集成式 10/100/1000 以太网适配器,可用于连接至公共网络。第二个 NIC 适配器将用于专有网络(Openfiler 网络存储)。选择与适用于专有网络的网络切换器的最大数据传输速度相兼容的适当 NIC 适配器。就本文而言,我为专有网络使用了千兆以太网切换器(和 1Gb 以太网卡)。

     

         千兆以太网
    125 美元
    杂项组件
    1 - 以太网交换机

     

    用于 racnode1-priv 与 racnode2-priv 之间的互联,这两个节点位于 192.168.2.0 网络上。此切换器还将用于处理 Openfiler 的网络存储流量。就本文而言,我为专有网络使用了千兆以太网切换器(和 1Gb 以太网卡)。

     

        千兆以太网
    50 美元
    6 - 网络电缆 10 美元
    10 美元
    10 美元
    10 美元
    10 美元
    10 美元
    可选组件
    KVM 切换器

    本指南要求访问所有节点(服务器)的控制台,以便于安装操作系统并执行一些配置任务。当管理非常少量的服务器时,可以为每一台服务器连接各自的显示器、键盘和鼠标来访问其控制台。然而,随着要管理的服务器数量的增加,这种解决方案将不再可行。一种更加实用的解决方案是配置一台包含显示器、键盘和鼠标的专有计算机,可直接访问每一个服务器的控制台。键盘、视频和鼠标切换器(可称为 KVM 切换器)让这种解决方案成为了可能。KVM 切换器是一种硬件设备,可允许用户通过一组键盘、视频显示器和鼠标来控制多台计算机。Avocent 提供了一种高质量且极具经济性的 4 端口切换器,其中包括四根六类电缆:

    有关 KVM 切换器的详细说明和使用指南,请参阅以下文章:“适用于家庭和企业的 KVM 切换器”。

    340 美元
    总计   2455 美元 

    我们接下来将开始安装过程。我们已经讨论了本示例中将要使用的硬件,接下来看一下连接所有硬件组件后的环境状况(单击下图以查看大图)

    图 1:架构

    图 1:架构

    我们即将开始详细介绍安装过程。请注意,本文档中的大多数任务都需要在两个 Oracle RAC 节点(racnode1 和 racnode2)上执行。我将在每一个小节的开头指示是否应当在两个 Oracle RAC 节点或网络存储服务器 (openfiler1) 上执行任务。

  • 6.安装 Linux 操作系统

    在集群中的两个 Oracle RAC 节点上执行以下安装。

    本小节概述用于安装 Linux 操作系统的屏幕。本指南适用于面向 x86_64 的 Oracle Enterprise Linux Release 5 Update 4,并遵循 Oracle 关于执行“默认 RPM”安装类型的建议,以确保成功安装 Oracle RDBMS 所需的所有 Linux O/S 软件包均已就位。

    在两个 Oracle RAC 节点上安装 Oracle Enterprise Linux 操作系统之前,应当先安装适用于公共和专有网络的 NIC 接口卡。

    根据您的硬件架构,为 x86 或 x86_64 下载以下适用于 Oracle Enterprise Linux Release 5 Update 4 的 ISO 映像。

    适用于 Oracle Enterprise Linux 的 Oracle 软件交付云

    32 位 (x86) 安装

    • V17787-01.zip   (582 MB)
    • V17789-01.zip   (612 MB)
    • V17790-01.zip   (620 MB)
    • V17791-01.zip   (619 MB)
    • V17792-01.zip   (267 MB)

    下载 Oracle Enterprise Linux 操作系统后,解压各个文件。随后,您将拥有以下 ISO 映像,这些 ISO 映像都需要刻录到 CD:

    • Enterprise-R5-U4-Server-i386-disc1.iso
    • Enterprise-R5-U4-Server-i386-disc2.iso
    • Enterprise-R5-U4-Server-i386-disc3.iso
    • Enterprise-R5-U4-Server-i386-disc4.iso
    • Enterprise-R5-U4-Server-i386-disc5.iso

    注意: 如果 Linux RAC 节点安装了 DVD,则可以更加便捷地使用单一 DVD 映像:

    • V17793-01.zip   (2.7 GB)

    解压单一 DVD 映像文件并将其刻录至 DVD:

    • Enterprise-R5-U4-Server-i386-dvd.iso

    64 位 (x86_64) 安装

    • V17795-01.zip   (580 MB)
    • V17796-01.zip   (615 MB)
    • V17797-01.zip   (605 MB)
    • V17798-01.zip   (616 MB)
    • V17799-01.zip   (597 MB)
    • V17800-01.zip   (198 MB)

    下载 Oracle Enterprise Linux 操作系统后,解压各个文件。随后,您将拥有以下 ISO 映像,这些 ISO 映像都需要刻录到 CD:

    • Enterprise-R5-U4-Server-x86_64-disc1.iso
    • Enterprise-R5-U4-Server-x86_64-disc2.iso
    • Enterprise-R5-U4-Server-x86_64-disc3.iso
    • Enterprise-R5-U4-Server-x86_64-disc4.iso
    • Enterprise-R5-U4-Server-x86_64-disc5.iso
    • Enterprise-R5-U4-Server-x86_64-disc6.iso

    注意:如果 Linux RAC 节点安装了 DVD,则可以更加便捷地使用单一 DVD 映像:

    • V17794-01.zip   (3.2 GB)

    解压单一 DVD 映像文件并将其刻录至 DVD:

    • Enterprise-R5-U4-Server-x86_64-dvd.iso

    如果要将上述 ISO 文件下载到 MS Windows 计算机,则可以通过许多选项将这些映像(ISO 文件)刻录到 CD/DVD。您可能已经拥有适当的软件并熟悉如何将映像刻录到 CD/DVD。如果您不熟悉此过程,并且尚未安装将映像刻录到 CD/DVD 所需的软件,则可以使用以下两个软件包:

    在将 Oracle Enterprise Linux 映像(ISO 文件)下载并刻录到 CD/DVD 之后,将 OEL 磁盘 #1 插入到第一台服务器(在本示例中为 racnode1)中,开启电源并按照以下说明回答安装屏幕提示。在第一个节点上完成 Linux 安装之后,在第二个节点上执行相同的 Linux 安装,同时用节点名称 racnode1 替换 racnode2 并在适当的位置使用不同的 IP 地址。

    引导屏幕
    第一个屏幕是 Oracle Enterprise Linux 引导屏幕。在引导时:当提示时,按[回车键]开始安装过程。

    介质测试
    当要求测试 CD 介质时,按 Tab 键跳至[Skip]并按下[回车键]。如果发生任何错误,则介质刻录软件会发出警告。几秒钟后,安装程序应当会检测到显卡、显示器和鼠标。随后,安装程序进入 GUI 模式。

    欢迎使用 Oracle Enterprise Linux
    在欢迎屏幕上,单击[下一步]以继续。

    语言/键盘选择
    接下来的两个屏幕将提示您输入语言和键盘设置。根据您的配置做出适当的选择。

    检测之前的安装
    请注意,如果安装程序检测到 Oracle Enterprise Linux 的早期版本,则会询问您是要“安装 Enterprise Linux”还是“升级现有安装”。请始终选择“安装 Enterprise Linux”。

    磁盘分区设置
    选择[删除所选驱动器上的所有分区并创建默认布局],然后选中[查看和修改分区布局]选项。点击[下一步]继续。

    随后会显示一个对话框,提示您是否确实要删除所有 Linux 分区。点击[是]确认此警告。

    分区

    随后,安装程序将允许您查看(并根据需要修改)其自动选择的磁盘分区。对于大多数自动布局,安装程序将为我的配置选择 100MB for/dev/sda 并划分为两个分区 - 一个针对 /boot 分区 (/dev/sda1),而磁盘的其余部分则专用于名为 VolGroup00 的 LVM (/dev/sda2)。随后,将 LVM 卷组 (VolGroup00) 划分为两个 LVM 分区 - 一个用于根文件系统 (/),另一个用于交换。

    分区阶段的主要问题是确保根据 Oracle 的要求分配足够的交换空间(这是可用 RAM 的倍数)。以下是 Oracle 对交换空间的最低要求:

    可用 RAM 交换空间要求
    1024MB 到 2048MB 之间 RAM 大小的 1.5 倍
    2049MB 到 8192MB 之间 等于 RAM 的大小
    超过 8192MB RAM 大小的 0.75 倍

    就此安装而言,我将接受所有自动选择的大小。(由于安装了 4GB RAM,因此包括 5952MB 的交换空间。)

    如果出于任何原因,自动布局未配置足够的交换空间,则可以在此屏幕上轻松加以更改。要增加交换分区的大小,请[编辑]卷组 VolGroup00。这将显示"Edit LVM Volume Group:VolGroup00"对话框。首先,点击[编辑]并将根文件系统 (/) 的大小调小,即减去希望添加到交换分区中的容量。例如,要添加另一个 512MB 进行交换,您可以将根文件系统的大小减小 512MB(即 36032MB - 512MB = 35520MB)。现在,将您从根文件系统减小的空间 (512MB) 添加到交换分区。完成后,在"Edit LVM Volume Group:VolGroup00"对话框中点击[OK]。

    如果您对磁盘布局满意,点击 [下一步] 继续。

    引导加载程序配置

    默认情况下,安装程序将使用 GRUB 引导加载程序。要使用 GRUB 引导加载程序,请接受所有默认值,然后单击[下一步]继续。

    网络配置

    在开始安装操作系统之前,请确保在每一台 Linux 机器中都安装了两个 NIC 接口(卡)。该屏幕应当已经成功检测到各个网络设备。由于我们将使用此计算机来托管 Oracle 数据库,因此需要对网络配置进行一些更改。当然,您在此处的设置将取决于您的网络配置。关键是永远不要为计算机配置 DHCP,因为它将用于托管 Oracle 数据库服务器。您需要使用静态 IP 地址来配置计算机。您还需要使用真实的主机名称来配置服务器。

    首先,请确保为每一个网络设备选中[启动时激活]。安装程序可以选择默认不激活 eth1。

    其次,按以下步骤[编辑] eth0 和 eth1。验证是否已选择“启用 IPv4 支持”选项。选择“手动配置”单选按钮并取消选中选项以使用“动态 IP 配置 (DHCP)”,并为您的环境配置静态 IP 地址和网络掩码。取消选中选项以“启用 IPv6 支持”。您可以选择为本指南中归档的 eth0 和 eth1 使用不同的 IP 地址。请将 eth1(互连)放置在与 eth0(公共网络)不同的子网上:

    eth0:
    - 选中选项以[启用 IPv4 支持]
    - 取消选中选项以使用[动态 IP 配置 (DHCP)] - (选择手动配置)
       IPv4 地址:192.168.1.151
       前缀(网络掩码):255.255.255.0
    - 取消选中[启用 IPv6 支持]选项

    eth1:
    - 选中选项以[启用 IPv4 支持]
    - 取消选中选项以使用[动态 IP 配置 (DHCP)] - (选择手动配置)
       IPv4 地址:192.168.2.151
       前缀(网络掩码):255.255.255.0
    - 取消选中[启用 IPv6 支持]选项

    继续手动设置主机名。我为第一个节点使用了"racnode1",并为第二个节点使用了"racnode2"。提供网关和 DNS 服务器,结束此对话框。

    时区选择

    为您的环境选择适当的时区,然后点击[下一步]继续。

    设置根密码

    选择一个根密码,然后点击[下一步]继续。

    软件包安装默认项

    默认情况下,Oracle Enterprise Linux 会安装典型服务器所需的大多数软件。但是,要成功安装 Oracle 软件,还需要其他一些软件包 (RPM)。安装程序包含“自定义软件”选项,该选项可允许添加 RPM 分组,例如“开发库”或“旧版库支持”。添加此类 RPM 分组并不是问题。但是,取消选择任何“默认 RPM”分组或单个 RPM 可能会导致 Oracle Grid Infrastructure 故障和 Oracle RAC 安装尝试。

    就本文而言,请选中[立即自定义]单选按钮,然后点击[下一步]继续。

    您将在此处选择要安装的软件包。Oracle 软件所需的大多数软件包都被分组为“软件包组”(即应用程序 -> 编辑器)。由于这些节点将托管 Oracle Grid Infrastructure 和 Oracle RAC 软件,因此请确认至少选择了以下软件包组进行安装。对于许多 Linux 软件包组,并非与该组相关联的所有软件包都会选择用于安装。(在选择软件包组后,请注意“可选软件包”按钮。)因此,尽管选择了要安装的软件包组,但 Oracle 所需的某些软件包却没有安装。实际上,Oracle 需要的一些软件包并不属于任何可用的软件包组(即 libaio-devel)。不用担心!下一节提供了面向 Oracle Enterprise Linux 5 的 Oracle Grid Infrastructure 11g R2 和 Oracle RAC 11g R2 所需的软件包的完整列表。安装操作系统后,需要从 Oracle Enterprise Linux CD 手动安装这些软件包。至于现在,请安装以下软件包组:

    • 桌面环境
      • GNOME 桌面环境
    • 应用
      • 编辑器
      • 图形互联网
      • 基于文本的互联网
    • 开发
      • 开发库
      • 开发工具
      • 旧式软件开发
    • 服务器
      • 服务器配置工具
    • 基础系统
      • 管理工具
      • 基础
      • Java
      • 旧式软件支持
      • 系统工具
      • X Window 系统

    除了上述软件包以外,请选择希望为此节点安装的所有其他软件包,切勿忘记选择任何“默认”RPM 软件包。选择要安装的软件包后,点击[下一步]继续。

    关于安装

    此屏幕基本上是一个确认屏幕。点击[下一步]开始安装。如果要使用 CD 安装 Oracle Enterprise Linux,则系统会要求您在安装过程中切换 CD,具体取决于所选择的软件包。

    配置

    就是这样。您已经在第一个节点 (racnode1) 上成功安装了 Oracle Enterprise Linux。安装程序将从 CD-ROM 驱动器中弹出 CD/DVD。取出 CD/DVD,然后点击[重新启动]以重新启动系统。

    安装后向导欢迎屏幕

    当系统第一次启动进入 Oracle Enterprise Linux 时,它将弹出“欢迎”屏幕的另一个“安装后向导”。安装后向导可允许您进行最终的 O/S 配置设置。在“欢迎”屏幕上,点击[下一步]继续。

    许可协议

    阅读许可协议。选择“是,我同意许可协议”,然后点击[下一步]继续。

    防火墙

    在此屏幕上,请确保选择[禁用]选项,然后点击[下一步]继续。

    系统将弹出关于未设置防火墙的警告对话框。当发生这种情况时,请点击[是]继续。

    SELinux

    在 SELinux 屏幕上,选择[禁用]选项,然后点击[下一步]继续。

    系统将弹出一个警告对话框,指出更改 SELinux 设置需要重新启动系统,以便于重新标记整个文件系统。当发生这种情况时,请点击[是]确认将在首次启动(安装后向导)完成后重新启动系统。

    Kdump

    接受 Kdump 屏幕上的默认设置(禁用),然后点击[下一步]继续。

    日期和时间设置

    请根据需要调整日期和时间设置,然后点击[下一步]继续。

    创建用户

    请根据需要创建任何其他(非 Oracle)操作系统用户帐户,然后点击[下一步]继续。就本文而言,我不会创建任何其他操作系统帐户。我将在本指南的稍后部分创建"grid"和"oracle"用户帐户。

    如果您选择不定义任何其他操作系统用户帐户,请点击[继续]确认警告对话框。

    声卡

    仅当向导检测到声卡时才会显示此屏幕。在声卡屏幕上,点击[下一步]继续。

    更多 CD

    在“更多 CD”屏幕上,点击[结束]。

    重新启动系统

    由于我们更改了 SELinux 选项(更改为禁用),因此系统将提示您重新启动系统。点击[确定]重新启动系统以正常使用。

    登录屏幕
    重新启动计算机后将显示登录屏幕。使用"root"用户帐户以及在安装过程中提供的密码登录。

    在第二个节点上执行相同的安装

    在第一个节点上完成 Linux 安装之后,对第二个节点 (racnode2) 重复上述步骤。在配置计算机名称和网络时,请确保配置正确的值。就我的安装而言,以下是我为 racnode2 配置的值:

    首先,请确保为每一个网络设备选中[启动时激活]。安装程序可以选择不激活 eth1。

    其次,按以下步骤[编辑] eth0 和 eth1。验证是否已选择“启用 IPv4 支持”选项。选择“手动配置”单选按钮并取消选中选项以使用“动态 IP 配置 (DHCP)”,并为您的环境配置静态 IP 地址和网络掩码。取消选中选项以“启用 IPv6 支持”。您可以选择为本指南中归档的 eth0 和 eth1 使用不同的 IP 地址。请将 eth1(互连)放置在与 eth0(公共网络)不同的子网上:

    eth0:
    - 选中选项以[启用 IPv4 支持]
    - 取消选中选项以使用[动态 IP 配置 (DHCP)] - (选择手动配置)
       IPv4 地址:192.168.1.152
       前缀(网络掩码):255.255.255.0
    - 取消选中选项以[启用 IPv6 支持]

    eth1:
    - 选中选项以[启用 IPv4 支持]
    - 取消选中选项以使用[动态 IP 配置 (DHCP)] - (选择手动配置)
       IPv4 地址:192.168.2.152
       前缀(网络掩码):255.255.255.0
    - 取消选中选项以[启用 IPv6 支持]

    继续手动设置主机名。我为第二个节点使用了"racnode2"。提供网关和 DNS 服务器,结束此对话框。

  • 7.安装 Oracle RAC 所需的 Linux 软件包

    在集群中的两个 Oracle RAC 节点上安装以下所需的 Linux 软件包。

    安装 Enterprise Linux 之后,下一步是验证并安装 Oracle Clusterware 和 Oracle RAC 所需的所有软件包 (RPM)。Oracle Universal Installer (OUI) 将在安装过程中对您的计算机进行检查,以验证其是否满足适当的操作系统软件包要求。为确保这些检查成功完成,请在开始 Oracle 安装之前验证本小节中记录的软件要求。

    尽管 Oracle 的许多必需软件包是在 Enterprise Linux 安装期间安装的,但有一些缺失的软件包是软件包组中的可选项,或者并未存在于任何软件包组中!

    在 Enterprise Linux 5 平台上运行的 Oracle Grid Infrastructure 11g R2 和 Oracle RAC 11g R2 需要本小节中列出的软件包(或更高版本)。

    32 位 (x86) 安装

    • binutils-2.17.50.0.6
    • compat-libstdc++-33-3.2.3
    • elfutils-libelf-0.125
    • elfutils-libelf-devel-0.125
    • elfutils-libelf-devel-static-0.125
    • gcc-4.1.2
    • gcc-c++-4.1.2
    • glibc-2.5-24
    • glibc-common-2.5
    • glibc-devel-2.52
    • glibc-headers-2.5
    • kernel-headers-2.6.18
    • ksh-20060214
    • libaio-0.3.106
    • libaio-devel-0.3.106
    • libgcc-4.1.2
    • libgomp-4.1.2
    • libstdc++-4.1.2
    • libstdc++-devel-4.1.2
    • make-3.81
    • sysstat-7.0.2
    • unixODBC-2.2.11
    • unixODBC-devel-2.2.11

    上面列出的每一个软件包都可以在 Enterprise Linux 5 - (x86) CD 上的 CD #1、CD #2 和 CD #3 中找到。尽管可以查询每一个软件包以确定需要安装缺少的软件,但是一种更为简单的方法是从五张 CD 中运行 rpm -Uvh PackageName 命令,如下所示。对于已经存在且最新的软件包,RPM 命令将忽略安装,并向控制台打印输出一条警告消息,表明已安装该软件包。

     
     
     # 
     From Enterprise Linux 5.4 (x86)- [CD #1]
     mkdir -p /media/cdrom
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh binutils-2.*
     rpm -Uvh elfutils-libelf-0.*
     rpm -Uvh glibc-2.*
     rpm -Uvh glibc-common-2.*
     rpm -Uvh kernel-headers-2.*
     rpm -Uvh ksh-2*
     rpm -Uvh libaio-0.*
     rpm -Uvh libgcc-4.*
     rpm -Uvh libstdc++-4.*
     rpm -Uvh make-3.*
     cd /
     eject
     
     
     # 
     From Enterprise Linux 5.4 (x86) - [CD #2]
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh elfutils-libelf-devel-*
     rpm -Uvh gcc-4.*
     rpm -Uvh gcc-c++-4.*
     rpm -Uvh glibc-devel-2.*
     rpm -Uvh glibc-headers-2.*
     rpm -Uvh libgomp-4.*
     rpm -Uvh libstdc++-devel-4.*
     rpm -Uvh unixODBC-2.*
     cd /
     eject
     
     
     # 
     From Enterprise Linux 5.4 (x86) - [CD #3]
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh compat-libstdc++-33*
     rpm -Uvh libaio-devel-0.*
     rpm -Uvh sysstat-7.*
     rpm -Uvh unixODBC-devel-2.*
     cd /
     eject
     
     
     
     

    64 位 (x86_64) 安装

    • binutils-2.17.50.0.6
    • compat-libstdc++-33-3.2.3
    • compat-libstdc++-33-3.2.3(32 位)
    • elfutils-libelf-0.125
    • elfutils-libelf-devel-0.125
    • elfutils-libelf-devel-static-0.125
    • gcc-4.1.2
    • gcc-c++-4.1.2
    • glibc-2.5-24
    • glibc-2.5-24(32 位)
    • glibc-common-2.5
    • glibc-devel-2.5
    • glibc-devel-2.5(32 位)
    • glibc-headers-2.5
    • ksh-20060214
    • libaio-0.3.106
    • libaio-0.3.106(32 位)
    • libaio-devel-0.3.106
    • libaio-devel-0.3.106(32 位)
    • libgcc-4.1.2
    • libgcc-4.1.2(32 位)
    • libstdc++-4.1.2
    • libstdc++-4.1.2(32 位)
    • libstdc++-devel 4.1.2
    • make-3.81
    • sysstat-7.0.2
    • unixODBC-2.2.11
    • unixODBC-2.2.11(32 位)
    • unixODBC-devel-2.2.11
    • unixODBC-devel-2.2.11(32 位)

    上面列出的每一个软件包都可以在 Enterprise Linux 5 - (x86_64) CD 上的 CD #1、CD #2、CD #3 和 CD #4 中找到。尽管可以查询每一个软件包以确定需要安装缺少的软件,但是一种更为简单的方法是从六张 CD 中运行 rpm -Uvh PackageName 命令,如下所示。对于已经存在且最新的软件包,RPM 命令将忽略安装,并向控制台打印输出一条警告消息,表明已安装该软件包。

     
     
     # 
     From Enterprise Linux 5.4 (x86_64)- [CD #1]
     mkdir -p /media/cdrom
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh binutils-2.*
     rpm -Uvh elfutils-libelf-0.*
     rpm -Uvh glibc-2.*
     rpm -Uvh glibc-common-2.*
     rpm -Uvh ksh-2*
     rpm -Uvh libaio-0.*
     rpm -Uvh libgcc-4.*
     rpm -Uvh libstdc++-4.*
     rpm -Uvh make-3.*
     cd /
     eject
     
     
     # 
     From Enterprise Linux 5.4 (x86_64) - [CD #2]
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh elfutils-libelf-devel-*
     rpm -Uvh gcc-4.*
     rpm -Uvh gcc-c++-4.*
     rpm -Uvh glibc-devel-2.*
     rpm -Uvh glibc-headers-2.*
     rpm -Uvh libstdc++-devel-4.*
     rpm -Uvh unixODBC-2.*
     cd /
     eject
     
     
     # 
     From Enterprise Linux 5.4 (x86_64) - [CD #3]
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh compat-libstdc++-33*
     rpm -Uvh libaio-devel-0.*
     rpm -Uvh unixODBC-devel-2.*
     cd /
     eject
     
     
     # 
     From Enterprise Linux 5.4 (x86_64) - [CD #4]
     mount -r /dev/cdrom /media/cdrom
     cd /media/cdrom/Server
     rpm -Uvh sysstat-7.*
     cd /
     eject
     
     
  • 8.网络配置

    在集群中的两个 Oracle RAC 节点上执行以下网络配置。

    尽管我们在 Linux 安装过程中配置了一些网络设置,但务必不要略过此部分,其中的关键步骤将检查您是否具有 Oracle Grid Infrastructure 集群安装所需的网络硬件和互联网协议 (IP) 地址。

    网络硬件需求

    以下是网络配置的硬件需求列表:

    • 每一个 Oracle RAC 节点必须至少具有两个网络适配器或网络接口卡 (NIC):一个用于公共网络接口,另一个用于专有网络接口(互联)。要使用多个 NIC 来支持公共网络或专有网络,Oracle 建议您使用 NIC 绑定。请为公共网络和专有网络使用不同的绑定(例如,为公共网络使用 bond0 并为专有网络使用 bond1),因为在安装过程中,每一个接口都将被定义为一个公共接口或一个专有接口。本文未涵盖 NIC 绑定。
    • 与每一个网络的网络适配器相关联的公共接口名称在所有节点上必须相同,而且与网络适配器相关联的专有接口名称在所有节点上也必须相同。
    • 例如,对于我们的双节点群集,您无法在 racnode1 上将 eth0 作为公共接口来配置网络适配器,而在 racnode2 上将 eth1 作为公共接口。公共接口名称必须相同,因此需要在两个节点上将 eth0 配置为公共。您还应当在同一网络适配器上配置专有接口。如果 eth1 是 racnode1 的专有接口,则 eth1 必须是 racnode2 的专有接口。

    • 对于公共网络,每一个网络适配器都必须支持 TCP/IP。
    • 对于专有网络,互联必须使用支持 TCP/IP(最低要求 1 千兆位以太网)的高速网络适配器和交换机来支持用户数据报协议 (UDP)。 UDP 是 Oracle RAC 的默认互联协议,而 TCP 是 Oracle Clusterware 的互联协议。您需要使用交换机来实现互联。Oracle 建议您使用专有交换机。 Oracle 并不支持使用令牌环或交叉电缆实现互联。

    • 对于专有网络,所有指定互联接口的端点必须在网络上处于完全可访问状态。不应存在未连接至每一个专有网络接口的节点。您可以使用 ping 测试互联接口是否可访问。
    • 在安装 Oracle Grid Infrastructure 期间,您需要确定 OUI 在集群节点上检测到的每一个网络接口的计划用途。您需要确定每一个接口是公共接口专有接口还是未使用,而且您需要为 Oracle Clusterware 和 Oracle RAC 使用相同的专有接口。 您可以将各个单独的接口绑定至一个通用接口,以便于在 NIC 故障时实现冗余,但是 Oracle 建议您不要为 Oracle Clusterware 和 Oracle RAC 创建单独的接口。如果您使用多个 NIC 来实现专有互联,则 Oracle 建议您使用 NIC 绑定。请注意,除非使用绑定,否则多个专有接口将提供负载均匀,但不提供故障切换。 从 Oracle Clusterware 11g R2 开始,您不再需要为互联提供专有名称或 IP 地址。您在子网上标识为专有的 IP 地址将指定为集群成员节点的专有 IP 地址。您不需要在主机目录中手动配置这些地址。如果希望为互联实现名称解析,则可以在主机文件或 DNS 中配置专有 IP 名称。但是,Oracle Clusterware 会将安装过程中定义的接口指定为专有接口(例如 eth1),并分配给专有子网所使用的子网。实际上,就本指南而言,我将继续在 RAC 互联的每一个节点上包含一个专有名称和 IP 地址。其中包含自助文档并在专有网络上提供了一系列端点,可用于进行故障排除:

       
       
       192.168.2.151 racnode1-priv
       192.168.2.152 racnode2-priv
       
       

    • 在使用 iSCSI 进行网络存储的生产环境中,强烈建议使用 TCP/IP 分流引擎 (TOE) 卡为该存储流量配置第三个冗余网络接口(例如 eth2)。为了简洁起见,本文将在与 RAC 专有互联 (eth1) 相同的网络上配置 iSCSI 网络存储流量。在同一网络接口上结合 Oracle RAC 的 iSCSI 存储流量和缓存融合流量非常适用于低成本测试系统,但绝不应当考虑将其应用于生产环境。 TOE 的基本理念是将 TCP/IP 协议的处理从主处理器分流至适配器或系统中的硬件。TOE 通常嵌入在网络接口卡 (NIC) 或主机总线适配器 (HBA) 中,并用于减少 CPU 和服务器 I/O 子系统处理的 TCP/IP 处理量以及提高整体性能。

    分配 IP 地址

    回想一下,每一个节点至少需要配置两个网络接口 — 一个用于专有 IP 地址,另一个用于公共 IP 地址。在 Oracle Clusterware 11g R2 之前,所有 IP 地址都需要由网络管理员使用静态 IP 地址手动分配 — 而不应使用 DHCP。这将包含节点的公共 IP 地址、RAC 互联、虚拟 IP 地址 (VIP)、11g R2 的新成员以及 Single Client Access Name (SCAN) IP 地址。事实上,在我之前的所有文章中,我都会重点指出永远都不应使用 DHCP 来分配这些 IP 地址中的任何一个。在 11g R2 中,您现在可以通过两种选项来为每一个 Oracle RAC 节点分配 IP 地址 — 一种是使用 DHCP 的 Grid Naming Service (GNS) 方法,另一种则是使用 DNS 手动分配静态 IP 地址的传统方法。

    网格命名服务 (GNS)

    从 Oracle Clusterware 11g R2 开始引入了第二种分配 IP 地址命名 网格命名服务 (GNS) 的方法,可支持使用 DHCP 来分配所有专有互联地址以及大多数 VIP 地址。正如 Oracle 所述,GNS 和 DHCP 是 Oracle 最新 Grid Plug and Play (GPnP) 特性的关键要素,该特性可消除每一个节点的配置数据,而且无需显式添加和删除节点步骤。GNS 通过自主管理集群网络需求实现了动态网格基础设施。尽管使用 GNS 配置 IP 地址无疑具有其优势,而且比手动定义静态 IP 地址具有更高的灵活性,但这种方式要以复杂性为代价,在构建低成本 Oracle RAC 时还需要本指南中未定义的组件。例如,在集群中激活 GNS 需要基于公共网络的 DHCP 服务器,这不在本文讨论范围之内。

    要了解相关优势以及配置 GNS 的更多详细信息,请参见 Oracle Grid Infrastructure 安装指南 — 适用于 Linux 的 11g R2 (11.2)。

    手动分配静态 IP 地址 — (DNS 方法)

    如果您选择不使用 GNS,则 Oracle Clusterware 11g R2 仍然支持手动定义静态 IP 地址,本文将使用这种方法来分配所有必需的 Oracle Clusterware 网络组件(节点的公共 IP 地址、RAC 互联、虚拟 IP 地址和 SCAN)。

    请注意,本节的标题包含“DNS 方法”短语。Oracle 建议在开始 Oracle 网格基础设施安装之前,在域名服务器 (DNS) 中手动配置静态 IP 地址。然而,在构建低成本 Oracle RAC 时,并非总是能够访问 DNS 服务器。在 11g R2 之前,这不会造成巨大的阻碍,因为可以在不使用 DNS 的情况下在所有节点上的主机文件 (/etc/hosts) 中定义每一个 IP 地址。这将包含节点的公共 IP 地址、RAC 互联和虚拟 IP 地址 (VIP)。

    而 Oracle Grid Infrastructure 11g R2 发生了一些变化。

    我们先从 RAC 专有互联开始。现已不再需要在 Oracle 网格基础设施安装过程中为互联提供专有名称或 IP 地址(即 racnode1-priv 或 racnode2-priv)。Oracle Clusterware 现在会将安装过程中定义的接口指定为专有接口(例如 eth1),并将其地址分配给专有子网,本文中的这一地址为 192.168.2.0。如果希望为互联实现名称解析,则可以在主机文件或 DNS 中配置专有 IP 名称。实际上,就本指南而言,我将继续在 RAC 互联的每一个节点上包含一个专有名称和 IP 地址。其中包含自助文档并在专有网络上提供了一系列端点,可用于进行故障排除:

     
     
     192.168.2.151 racnode1-priv
     192.168.2.152 racnode2-priv
     

    节点的公共 IP 地址和虚拟 IP 地址 (VIP) 在 11g R2 中保持相同。Oracle 建议为每一个要通过 DNS 解析的名称和 IP 地址定义名称,并包含在每一个节点的主机文件中。在当前版本和早期版本的 Oracle 网格基础设施中,Oracle Clusterware 可以仅使用主机文件来解析节点和 VIP 的公共 IP 地址:

     
     
     192.168.1.151 racnode1
     192.168.1.251 racnode1-vip
     192.168.1.152 racnode2
     192.168.1.252 racnode2-vip
     

    单一客户端访问名称 (SCAN) 虚拟 IP 是 11g R2 中的新特性,这也引起了最为广泛的讨论!需要在 GNS 或 DNS 中配置 SCAN 轮询解析为三个地址(建议)或至少一个地址。如果选择不使用 GNS,则 Oracle 要求通过 DNS 而不是通过主机文件来解析 SCAN。如果无法通过 DNS(或 GNS)解析 SCAN,则在 Oracle 网格基础设施安装过程中,Cluster Verification Utility 检查将以失败告终。如果您无法访问 DNS,请参阅我在“不使用 DNS 配置 SCAN”部分中提供的一种简单的解决方法。这需要修改 nslookup 实用程序,并且应当在安装 Oracle 网格基础设施之前执行。

    面向集群的单一客户访问名称 (SCAN)

    如果您曾经负责通过添加新节点来扩展 Oracle RAC 集群(或通过删除节点来收缩 RAC 集群),那么您一定知道查看所有客户端列表并更新其 SQL*Net 或 JDBC 配置以反映新节点或已删除节点的痛苦!为了解决这一问题,Oracle 11g R2 引入了一项全新的特性,即单一客户访问名称 (SCAN)。SCAN 是一项新特性,可为客户端提供单一主机名来访问在集群中运行的 Oracle 数据库。如果您在集群中添加或删除节点,那么使用 SCAN 的客户端无需更改其 TNS 配置。SCAN 资源及其相关联的 IP 地址为客户端提供了稳定的名称来进行连接,而独立于集群中的节点。在 Oracle 网格基础设施安装的面谈阶段,您需要提供主机名和最多三个 IP 地址供 SCAN 资源使用。为了实现高可用性和可扩展性,Oracle 建议您配置 SCAN 名称,确保其解析为三个 IP 地址。SCAN 至少需要解析为一个地址。

    SCAN 虚拟 IP 名称类似于用于节点虚拟 IP 地址的名称,例如 racnode1-vip。但是,与虚拟 IP 不同的是,SCAN 与整个集群相关联,而不是与单一节点相关联,而且可以与多个 IP 地址相关联,而不仅仅是一个地址。请注意,SCAN 地址、虚拟 IP 地址和公共 IP 地址都必须位于同一子网上。

    SCAN 应配置为可通过使用集群内的网格命名服务 (GNS) 或使用域名服务 (DNS) 解析来进行解析。

    在本文中,我将使用 DNS 方法将 SCAN 配置为仅解析为一个手动配置的静态 IP 地址(但实际上并未在 DNS 中定义它):

    192.168.1.187 racnode-cluster-scan

    配置公共和专有网络

    在本文的双节点示例中,我们需要在两个 Oracle RAC 节点上配置网络以访问公共网络及其专有互连。

    在 Enterprise Linux 中配置网络设置最简单的方法就是使用程序“网络配置”。网络配置是一个 GUI 应用,可以在命令行中作为"root"用户帐户启动,如下所示:

     
     
     [root@racnode1 ~]# 
     /usr/bin/system-config-network &
     
     

    使用网络配置应用时,您需要同时配置 NIC 设备以及 /etc/hosts 文件。这两项任务都可以使用网络配置 GUI 来完成。请注意,两个节点的 /etc/hosts 设置是相同的,而且我删除了所有与 IPv6 相关的条目。例如:

    ::1 localhost6.localdomain6 localhost6

    我们的示例 Oracle RAC 配置将使用以下网络设置:

    Oracle RAC 节点 1 - (racnode1)
    设备 IP 地址 子网 网关 用途
    Oracle RAC 节点 1 - (racnode1)
    设备 IP 地址 子网 网关 用途
    eth0 192.168.1.151 255.255.255.0 192.168.1.1 将 racnode1 连接至公共网络
    eth1 192.168.2.151 255.255.255.0   将 racnode1 (interconnect) 连接至 racnode2 (racnode2-priv)
    /etc/hosts
     
     # Do not remove the following line, or various programs
     # that require network functionality will fail.
     
     127.0.0.1 localhost.localdomain localhost
     
     
     # Public Network - (eth0)
     192.168.1.151 racnode1
     192.168.1.152 racnode2
     
     # Private Interconnect - (eth1)
     192.168.2.151 racnode1-priv
     192.168.2.152 racnode2-priv
     
     # Public Virtual IP (VIP) addresses - (eth0:1)
     192.168.1.251 racnode1-vip
     192.168.1.252 racnode2-vip
     
     # Single Client Access Name (SCAN)
     192.168.1.187 racnode-cluster-scan
     
     # Private Storage Network for Openfiler - (eth1)
     192.168.1.195 openfiler1
     192.168.2.195 openfiler1-priv
     
     # Miscellaneous Nodes
     192.168.1.1 router
     192.168.1.105 packmule
     192.168.1.106 melody
     192.168.1.121 domo
     192.168.1.122 switch1
     192.168.1.125 oemprod
     192.168.1.245 accesspoint
     
    Oracle RAC 节点 2 - (racnode2)
    设备 IP 地址 子网 网关 用途
    eth0 192.168.1.152 255.255.255.0 192.168.1.1 将 racnode2 连接至公共网络
    eth1 192.168.2.152 255.255.255.0   将 racnode2 (interconnect) 连接至 racnode1 (racnode1-priv)
    /etc/hosts
     
     # Do not remove the following line, or various programs
     # that require network functionality will fail.
     
     127.0.0.1 localhost.localdomain localhost
     
     
     # Public Network - (eth0)
     192.168.1.151 racnode1
     192.168.1.152 racnode2
     
     # Private Interconnect - (eth1)
     192.168.2.151 racnode1-priv
     192.168.2.152 racnode2-priv
     
     # Public Virtual IP (VIP) addresses - (eth0:1)
     192.168.1.251 racnode1-vip
     192.168.1.252 racnode2-vip
     
     # Single Client Access Name (SCAN)
     192.168.1.187 racnode-cluster-scan
     
     # Private Storage Network for Openfiler - (eth1)
     192.168.1.195 openfiler1
     192.168.2.195 openfiler1-priv
     
     # Miscellaneous Nodes
     192.168.1.1 router
     192.168.1.105 packmule
     192.168.1.106 melody
     192.168.1.121 domo
     192.168.1.122 switch1
     192.168.1.125 oemprod
     192.168.1.245 accesspoint
     

    以下屏幕截图中仅显示了 Oracle RAC 节点 1 (racnode1)。请确保两个 Oracle RAC 节点的网络设置均正确无误。

    图 2:网络配置屏幕,节点 1 (racnode1)

    图 2:网络配置屏幕,节点 1 (racnode1)

    图 3:以太网设备屏幕,eth0 (racnode1)

    图 3:以太网设备屏幕,eth0 (racnode1)

    图 4:以太网设备屏幕,eth1 (racnode1)

    图 4:以太网设备屏幕,eth1 (racnode1)

    图 5:网络配置屏幕,/etc/hosts (racnode1)

    图 5:网络配置屏幕,/etc/hosts (racnode1)

    配置网络之后,您可以使用 ifconfig 命令来验证一切正常。以下示例来自 racnode1:

     
     
     [root@racnode1 ~]# 
     /sbin/ifconfig -a
     
     eth0 Link encap:Ethernet HWaddr 00:14:6C:76:5C:71
     inet addr:192.168.1.151 Bcast:192.168.1.255 Mask:255.255.255.0
     inet6 addr: fe80::214:6cff:fe76:5c71/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:759780 errors:0 dropped:0 overruns:0 frame:0
     TX packets:771948 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000
     RX bytes:672708275 (641.5 MiB) TX bytes:727861314 (694.1 MiB)
     Interrupt:177 Base address:0xcf00
     
     eth1 Link encap:Ethernet HWaddr 00:0E:0C:64:D1:E5
     inet addr:192.168.2.151 Bcast:192.168.2.255 Mask:255.255.255.0
     inet6 addr: fe80::20e:cff:fe64:d1e5/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:120 errors:0 dropped:0 overruns:0 frame:0
     TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000
     RX bytes:24544 (23.9 KiB) TX bytes:8634 (8.4 KiB)
     Base address:0xddc0 Memory:fe9c0000-fe9e0000
     
     lo Link encap:Local Loopback
     inet addr:127.0.0.1 Mask:255.0.0.0
     inet6 addr: ::1/128 Scope:Host
     UP LOOPBACK RUNNING MTU:16436 Metric:1
     RX packets:3191 errors:0 dropped:0 overruns:0 frame:0
     TX packets:3191 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0
     RX bytes:4296868 (4.0 MiB) TX bytes:4296868 (4.0 MiB)
     
     sit0 Link encap:IPv6-in-IPv4
     NOARP MTU:1480 Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0
     RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
     
     
     

    确认 RAC 节点名称未在回送地址中列出

    请确保节点名称(racnode1 或 racnode2)包含在 /etc/hosts 文件的回送地址中。如果机器名称列出在回送地址条目中,如下所示:

     
     
     127.0.0.1 
     
     racnode1
     localhost.localdomain localhost
     

    需要将其删除,如下所示:

    127.0.0.1 localhost.localdomain localhost

    如果回送地址中列出了 RAC 节点名称,那么您将在 RAC 安装过程中收到以下错误:

     
     ORA-00603: ORACLE server session terminated by fatal error
     
     or
     
     ORA-29702: error occurred in Cluster Group Service operation
     
     
     

    检查并关闭 UDP ICMP 拒绝

    在 Linux 安装过程中,我选择不配置防火墙选项。默认情况下,安装程序会选择配置防火墙选项。这已经多次产生问题,因此我希望再次确认未配置防火墙选项,并确保 udp ICMP 过滤功能已关闭。

    如果 UDP ICMP 被防火墙阻止或拒绝,那么 Oracle Clusterware 软件将在运行几分钟后崩溃。当 Oracle Clusterware 进程崩溃时,您可以在 <machine_name>_evmocr.log 文件中找到如下所示的内容:

     
     
     08/29/2005 22:17:19
     oac_init:2: Could not connect to server, clsc retcode = 9
     
     
     08/29/2005 22:17:19
     a_init:12!: Client init unsuccessful : [32]
     ibctx:1:ERROR: INVALID FORMAT
     proprinit:problem reading the bootblock or superbloc 22
     

    当遇到此类错误时,解决方案是删除 UDP ICMP (iptables) 拒绝规则 - 或者直接关闭防火墙选项。随后,Oracle Clusterware 软件将开始正常运行而不会崩溃。应当使用root用户帐号来执行以下命令:

    1. 检查并确保防火墙选项已关闭。如果防火墙选项已停止(如下例中所示),则不需要继续执行以下步骤。
       
       
       
       [root@racnode1 ~]# 
       /etc/rc.d/init.d/iptables status
       Firewall is stopped.
       
    2. 如果防火墙选项正在运行,那么您需要先手动禁用 UDP ICMP 拒绝:
       
       
       [root@racnode1 ~]# 
       /etc/rc.d/init.d/iptables stop
       Flushing firewall rules: 
       
       OK ]
       Setting chains to policy ACCEPT: filter 
       
       OK ]
       Unloading iptables modules: 
       
       OK ]
       
       
    3. 随后,关闭 UDP ICMP 拒绝以便于下次服务器重启(应始终关闭):
       
       [root@racnode1 ~]# 
       chkconfig iptables off
       
       
  • 9.集群时间同步服务

    在集群中的两个 Oracle RAC 节点上执行以下集群时间同步服务。

    Oracle Clusterware 11g R2 及更高版本要求在部署 Oracle RAC 的群集中的所有节点之间实现时间同步。Oracle 提供了两种时间同步选项:操作系统配置的网络时间协议 (NTP) 或全新的 Oracle 集群时间同步服务 (CTSS)。Oracle 集群时间同步服务 (ctssd) 专为 Oracle RAC 数据库无法访问 NTP 服务的组织而设计。

    配置 NTP 不在本文的讨论范围之内,因此将使用集群时间同步服务作为网络时间协议。

    配置集群时间同步服务 - (CTSS)

    如果您希望使用集群时间同步服务在集群中提供同步服务,那么请取消配置并卸载网络时间协议 (NTP)。

    要停用 NTP 服务,您需要停止现有 ntpd 服务,从初始化序列中禁用该服务并删除 ntp.conf 文件。要在 Oracle Enterprise Linux 上完成这些步骤,请在两个 Oracle RAC 节点上以 root 用户身份运行以下命令:

     
     [root@racnode1 ~]# 
     /sbin/service ntpd stop
     [root@racnode1 ~]# 
     chkconfig ntpd off
     [root@racnode1 ~]# 
     mv /etc/ntp.conf /etc/ntp.conf.original
     

    同时删除以下文件:

     
     
     [root@racnode1 ~]# 
     rm /var/run/ntpd.pid
     
     

    该文件保存 NTP daemon 的 pid。

    当安装程序发现 NTP 协议未处于活动状态时,则会自动安装集群时间同步服务(活动模式)并跨节点同步时间。如果发现配置了 NTP,则集群时间同步服务将以观察者模式启动,而且集群中的 Oracle Clusterware 不会执行任何活动时间同步。

    要确认 ctssd 在安装后处于活动状态,请以网格安装所有者 (grid) 的身份输入以下命令:

     
     
     [grid@racnode1 ~]$ 
     crsctl check ctss
     CRS-4701: The Cluster Time Synchronization Service is in Active mode.
     CRS-4702: Offset (in msec): 0
     

    配置网络时间协议 - (仅当不使用上述 CTSS 时)

    注意: 请注意,本指南将使用集群时间同步服务在集群中的两个 Oracle RAC 节点之间实现时间同步。本小节仅用于归档目的,可供已在其域内使用 NTP 的组织使用。

    如果您正在使用 NTP 并且希望继续使用 NTP 而不是集群时间同步服务,则需要在 NTP 初始化文件中设置 -x 标志,以防止向后调整时间。完成此任务后,重新启动网络时间协议守护 daemon。

    要在 Oracle Enterprise Linux、Red Hat Linux 和 Asianux 系统上执行此操作,请编辑 /etc/sysconfig/ntpd 文件以添加 -x 标志,如下例所示:

     
     
     # Drop root to id 'ntp:ntp' by default.
     OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
     # Set to 'yes' to sync hw clock after successful ntpdate
     SYNC_HWCLOCK=no
     # Additional options for ntpdate
     NTPDATE_OPTIONS=""
     

    随后,重新启动 NTP 服务。

    # /sbin/service ntp restart

    在 SUSE 系统上,使用以下设置修改配置文件 /etc/sysconfig/ntp:

    NTPD_OPTIONS="-x -u ntp"

    使用以下命令重新启动 daemon:

    # service ntp restart
  • 10.安装 Openfiler

    在网络存储服务器 (openfiler1) 上执行以下安装。

    在两个 Oracle RAC 节点上配置网络后,下一步是将 Openfiler 软件安装到网络存储服务器 ( openfiler1) 上。本文稍后会将网络存储服务器配置为 iSCSI 存储设备,从而满足所有 Oracle Clusterware 和 Oracle RAC 共享存储需求。

    Openfiler 构建于 rPath Linux 之上,它是一个基于浏览器的免费网络存储管理实用程序,可在一个框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN)。整个软件体系与许多开源应用程序(如 Apache、Samba、LVM2、ext3、Linux NFS 和 iSCSI Enterprise Target)相连接。Openfiler 将这些随处可见的技术组合到一个易于管理的小型管理解决方案中,该解决方案的前端是一个基于 Web 的功能强大的管理界面。

    Openfiler 支持 CIFS、NFS、HTTP/DAV 和 FTP,但是,我们将仅使用它的 iSCSI 功能为 Oracle RAC 11g 所需的共享存储组件实现低成本的 SAN。操作系统和 Openfiler 应用程序将安装在一个内置 SATA 磁盘上。另一个内置 73GB 15K SCSI 硬盘将被配置为一个“卷组”,用于满足所有共享磁盘存储需求。Openfiler 服务器将配置为使用该卷组进行基于 iSCSI 的存储,并且将在我们的 Oracle RAC 11g 配置中使用该服务器存储 Oracle Clusterware 和 Oracle RAC 数据库所需的共享文件。

    请注意,任何类型的硬盘(内部或外部)都应当适用于数据库存储,但前提是可以被网络存储服务器 (Openfiler) 识别且具有足够的空间。例如,我可以在 500GB 内部 SATA 磁盘上为 iSCSI 目标创建一个额外的分区,但是在本示例中,我决定使用速度更快的 SCSI 磁盘。

    要了解有关 Openfiler 的更多信息,请访问其网站:http://www.openfiler.com/

    下载 Openfiler

    使用以下链接下载 适用于 x86 或 x86_64 的 Openfiler NAS/SAN Appliance 第 2.3 版(最终版本),具体取决于您的硬件架构。本指南使用 x86_64。下载 Openfiler 后,您需要将 ISO 映像刻录到 CD。

    32 位 (x86) 安装

    64 位 (x86_64) 安装

    如果要将上述 ISO 文件下载到 MS Windows 计算机,则可以通过许多选项将这些映像(ISO 文件)刻录到 CD。您可能已经拥有适当的软件并熟悉如何将映像刻录到 CD。如果您不熟悉此过程,并且尚未安装将映像刻录到 CD 所需的软件,则可以使用以下两个软件包:

    安装 Openfiler

    本小节概述用于安装 Openfiler 软件的屏幕。就本文而言,我选择使用所有默认选项安装 Openfiler。唯一需要手动更改的就是配置本地网络设置。

    安装完成后,服务器将重新启动以确保所有必需的组件、服务和驱动程序已启动且得到识别。重新启动后,Openfiler 服务器将发现任何外部硬盘驱动器(如果已连接)。

    有关更加详细的安装说明,请访问 http://www.openfiler.com/learn/。但是,我建议为此 Oracle RAC 11g 配置使用下面提供的说明。

    在将 Openfiler 软件安装到网络存储服务器之前,您应当安装两个 NIC 接口(卡),同时连接并开启所有外部硬盘驱动器(如果使用外部硬盘驱动器)。

    下载 Openfiler ISO 镜像(ISO 文件)并将其刻录到 CD 后,将 CD 插入网络存储服务器(本例中为 openfiler1),开启电源并按照以下说明回答安装屏幕提示。

    引导屏幕

    第一个屏幕是 Openfiler 引导屏幕。在引导时:当提示时,按[回车键]开始安装过程。

    介质测试

    当要求测试 CD 介质时,按 Tab 键跳至[Skip]并按下[回车键]。如果发生任何错误,则介质刻录软件会发出警告。几秒钟后,安装程序应当会检测到显卡、显示器和鼠标。随后,安装程序进入 GUI 模式。

    欢迎使用 Openfiler NSA

    在欢迎屏幕上,点击[下一步]继续。

    键盘配置

    下一个屏幕会提示您输入键盘设置。根据您的配置做出适当的选择。

    磁盘分区设置

    下一个屏幕询问是使用“自动分区”还是“随带 Disk Druid 的手动分区”来执行磁盘分区。尽管正式 Openfiler 文档建议使用手动分区,但由于我的示例配置非常简单,因此我还是选择使用“自动分区”。

    选择[自动分区],然后点击[下一步]继续。

    自动分区

    如果之前在这台机器上安装了 Linux,则下一个屏幕将询问您是要“删除”还是“保留”旧分区。选择[删除此系统上的所有分区]选项。对于我的示例配置,我仅选择 500GB SATA 内部硬盘驱动器 [sda] 来支持操作系统和 Openfiler 应用安装。我取消选择 73GB SCSI 内部硬盘驱动器,因为该磁盘将在下一节中将专门用于创建单一“卷组”,用于满足 Oracle Clusterware 和 Oracle RAC 的所有基于 iSCSI 的共享磁盘存储需求。

    我还选中了[查看(并根据需要修改)所创建的分区]复选框。点击[下一步]继续。

    随后会显示一个对话框,提示您是否确实要删除所有分区。点击[是]确认此警告。

    Partitioning

    随后,安装程序将允许您查看(并根据需要修改)其为上一个屏幕中选择的硬盘自动选择的磁盘分区。在几乎所有情况下,安装程序都会为 /boot 选择 100MB,这是足够的交换空间,而其余都将转至该磁盘(或多个磁盘)的根 (/) 分区。在此示例中,我对安装程序建议的 /dev/sda 分区非常满意。

    安装程序还将显示所发现的任何其他内部硬盘。对于我的示例配置,安装程序将 73GB SCSI 内部硬盘驱动器识别为 /dev/sdb。现在,我将“删除”此驱动器上的所有分区(只有一个,即 /dev/sdb1)。在下一节中,我将为这个特定的硬盘创建所需的分区。

    在开始安装 Openfiler 之前,请确保在网络存储服务器中安装了两个 NIC 接口(卡)。该屏幕应当已经成功检测到各个网络设备。

    首先,请确保为每一个网络设备选中[启动时激活]。安装程序可以选择默认不激活 eth1。

    其次,按以下步骤[编辑] eth0 和 eth1。您可以选择为 eth0 和 eth1 使用不同的 IP 地址,这没有问题。但是,您必须将 eth1(存储网络)配置到在您为 racnode1 和 racnode2 上的 eth1 配置的同一子网上:

    eth0:
    - 取消选中[使用 DHCP 配置]选项
    - 选中[启动时激活]
    - IP 地址:192.168.1.195
    - 掩码:255.255.255.0

    eth1:
    - 取消选中[使用 DHCP 配置]选项
    - 选中[启动时激活]
    - IP 地址:192.168.2.195
    - 掩码:255.255.255.0

    继续手动设置主机名。我使用"openfiler1"作为主机名。提供网关和 DNS 服务器,结束此对话框。

    时区选择

    下一个屏幕可允许您配置时区信息。根据您的位置做出适当的选择。

    设置根密码

    选择一个根密码,然后点击[下一步]继续。

    关于安装

    此屏幕基本上是一个确认屏幕。点击[下一步]开始安装。

    配置

    就是这样。您已成功在网络存储服务器上安装了 Openfiler。安装程序将从 CD-ROM 驱动器中弹出 CD。取出 CD,然后点击[重新启动]以重新启动系统。

    如果重启后一切顺利,您现在应当看到一个文本登录屏幕和用于管理 Openfiler 服务器的 URL。

    修改 Openfiler 服务器上的 /etc/hosts 文件

    尽管并非强制,但我通常会将 /etc/hosts 文件的内容从 Oracle RAC 节点之一复制到新的 Openfiler 服务器。这样在测试集群网络时可便于名称解析。

  • 11.使用 Openfiler 配置 iSCSI 卷

    在网络存储服务器 (openfiler1) 上执行以下配置任务。

    Openfiler Storage Control Center 用于执行 Openfiler 管理工作 — 这是一款基于浏览器的工具,可通过端口 446 上建立 https 连接。例如:

    https://openfiler1.idevelopment.info:446/

    在 Openfiler Storage Control Center 主页中,使用管理员身份登录。Openfiler 的默认管理登录凭证如下:

    • 用户名:openfiler
    • 密码:password

    管理员看到的第一个页面是[状态]/[系统信息]屏幕。

    要使用 Openfiler 作为 iSCSI 存储服务器,我们需要执行六项主要任务;设置 iSCSI 服务、配置网络访问、识别和分区物理存储、创建新卷组、创建所有逻辑卷,最后为每一个逻辑卷创建新的 iSCSI 目标。

    服务

    要控制服务,我们将使用 Openfiler Storage Control Center 并导航至 [服务] / [管理服务]:

    图 6:启用 iSCSI Openfiler 服务

    图 6:启用 iSCSI Openfiler 服务

    要启用 iSCSI 服务,请点击“iSCSI 目标服务器”服务名称下的“启用”链接。此后,“iSCSI 目标服务器”状态应变更为“已启用”。

    ietd 程序实现了 iSCSI Enterprise Target 软件的用户级部分,用于在 Linux 上构建 iSCSI 存储系统。启用 iSCSI 目标后,我们应当能够通过 SSH 连接至 Openfiler 服务器并看到 iscsi-target 服务正在运行:

     
     [root@openfiler1 ~]# 
     service iscsi-target status
     ietd (pid 14243) is running...
     

    网络访问配置

    下一步是在 Openfiler 中配置网络访问,以识别需要通过存储(专有)网络访问 iSCSI 卷的两个 Oracle RAC 节点(racnode1 和 racnode2)。请注意,本小节稍后将创建 iSCSI 逻辑卷。另请注意,此步骤实际上并未向两个 Oracle RAC 节点所需的 iSCSI 卷授予适当的权限。为此,本小节将在稍后部分为每一个逻辑卷更新 ACL

    与上一节一样,在 Openfiler 存储控制中心中,导航到 [系统] / [网络设置] 来配置网络访问。在页面底部的“网络访问配置”部分中,管理员可以设置网络和/或主机,并允许它们访问 Openfiler 设备导出的资源。就本文而言,我们希望单独添加两个 Oracle RAC 节点,而不是允许整个 192.168.2.0 网络访问 Openfiler 资源。

    在输入每一个 Oracle RAC 节点时,请注意“名称”字段只是一个逻辑名称,仅供参考。作为输入节点时的惯例,我只使用为该 IP 地址定义的节点名称。接下来,在“网络/主机”字段中输入实际节点时,请始终使用其 IP 地址,尽管您的 /etc/hosts 文件或 DNS 中可能已经定义了其主机名。最后,在我们的 C 类网络中输入实际主机时,请使用子网掩码 255.255.255.255。

    请务必记住,您将为集群中的每一个 RAC 节点输入专有网络的 IP 地址 (eth1)。

    下图显示了添加两个 Oracle RAC 节点的结果:

    图 7:为 Oracle RAC 节点配置 Openfiler 网络访问

    图 7:为 Oracle RAC 节点配置 Openfiler 网络访问

    物理存储

    在本节中,我们将创建三个 iSCSI 卷,作为集群中的两个 Oracle RAC 节点的共享存储。这需要在连接至 Openfiler 服务器的内部 73GB 15K SCSI 硬盘上执行多个步骤。

    内部 IDE/SATA/SCSI/SAS 磁盘、存储阵列、外部 USB 驱动器、外部 FireWire 驱动器或任何其他存储设备等存储设备均可以连接至 Openfiler 服务器并用于支持客户端。在操作系统级别发现这些设备之后,即可使用 Openfiler Storage Control Center 来设置和管理所有这些存储。

    在本例中,我们使用一个 73GB 内部 SCSI 硬盘来满足共享存储需求。在 Openfiler 服务器上,此驱动器被视为 /dev/sdb (MAXTOR ATLAS15K2_73SCA)。要查看驱动器并开始创建 iSCSI 卷,请从 Openfiler Storage Control Center 导航至 [卷] / [块设备]:

    图 8:Openfiler 物理存储 - 块设备管理

    图 8:Openfiler 物理存储 - 块设备管理

    对物理磁盘进行分区

    我们将执行的第一步是在 /dev/sdb 内部硬盘驱动器上创建一个主分区。通过点击 /dev/sdb 链接,我们将看到“编辑”或“创建”分区的选项。由于我们将创建跨整个磁盘的单一主分区,因此大多数选项都可以保留为默认设置,其中唯一一项更改是将“分区类型”从“扩展分区”更改为“物理卷”。以下是我在 /dev/sdb 上创建主分区时指定的值:

    模式:
    分区类型:物理卷
    开始柱面:1
    结束柱面:8924

    大小现在显示为 68.36 GB。点击“创建”按钮以接受此设置。这会在我们的内部硬盘上生成一个新分区 (/dev/sdb1):

    图 9:对物理卷进行分区

    图 9:对物理卷进行分区

    卷组管理

    下一步是创建一个卷组。我们将创建一个名为 racdbvg 的卷组,其中包含新创建的主分区。

    在 Openfiler Storage Control Center 中,导航至 [卷] / [卷组]。我们可以在其中看到任何现有的卷组,或者和本例中一样没有任何卷组。使用卷组管理屏幕,输入新卷组的名称 (racdbvg),点击 /dev/sdb1 前面的复选框以选择该分区,最后点击“添加卷组”按钮。之后,我们会看到一个列表,其中显示了我们新创建的名为“racdbvg”的卷组:

    图 10:已创建的新卷组

    图 10:已创建的新卷组

    逻辑卷

    我们现在可以在新创建的卷组 (racdbvg) 中创建三个逻辑卷。

    在 Openfiler Storage Control Center 中,导航至 [卷] / [添加卷]。我们可以看到新创建的卷组 (racdbvg) 及其块存储统计信息。此屏幕底部还提供了在所选卷组中创建新卷的选项 - (在“racdbvg”中创建一个卷)。使用此屏幕创建以下三个逻辑 (iSCSI) 卷。创建每一个逻辑卷后,应用会指向“管理卷”屏幕。随后,您需要点击返回“添加卷”选项卡并创建下一个逻辑卷,直到创建所有三个 iSCSI 卷:

    iSCSI / 逻辑卷
    卷名 卷描述 空间要求 (MB) 文件系统类型
    racdb-crs1 racdb - ASM CRS Volume 1 2,208 iSCSI
    racdb-data1 racdb - ASM Data Volume 1 33,888 iSCSI
    racdb-fra1 racdb - ASM FRA Volume 1 33,888 iSCSI

    实际上,我们已经创建了三个 iSCSI 磁盘,现在可以将它们提供给网络上的 iSCSI 客户端(racnode1 和 racnode2)。“管理卷”屏幕应如下所示:

    图 11:新逻辑 (iSCSI) 卷

    图 11:新逻辑 (iSCSI) 卷

    iSCSI 目标

    此时,我们有三个 iSCSI 逻辑卷。但是,在 iSCSI 客户端能够访问它们之前,需要为每一个卷创建一个 iSCSI 目标。每一个 iSCSI 逻辑卷都将映射至特定的 iSCSI 目标,并且将为两个 Oracle RAC 节点授予该目标的适当网络访问权限。就本文而言,iSCSI 逻辑卷与 iSCSI 目标之间将建立一对一映射。

    创建和配置 iSCSI 目标涉及三个步骤;创建唯一的目标 IQN(基本上是新 iSCSI 目标的通用名称),将上一节中创建的其中一个 iSCSI 逻辑卷映射至新创建的 iSCSI 目标,最后为两个 Oracle RAC 节点授予访问新 iSCSI 目标的权限。请注意,上一节中创建的每一个 iSCSI 逻辑卷都需要执行此过程。

    就本文而言,下表列出了新的 iSCSI 目标名称(目标 IQN)及其映射至的 iSCSI 逻辑卷:

    iSCSI 目标 / 逻辑卷映射
    目标 IQN iSCSI 卷名 卷描述
    iqn.2006-01.com.openfiler:racdb.crs1 racdb-crs1 racdb - ASM CRS Volume 1
    iqn.2006-01.com.openfiler:racdb.data1 racdb-data1 racdb - ASM Data Volume 1
    iqn.2006-01.com.openfiler:racdb.fra1 racdb-fra1 racdb - ASM FRA Volume 1

    我们现在准备创建三个新的 iSCSI 目标 - 每个 iSCSI 逻辑卷一个。以下示例描述了通过创建 Oracle Clusterware / racdb-crs1 目标来创建新 iSCSI 目标所需的三个步骤 ( iqn.2006-01.com.openfiler:racdb.crs1)。上表中列出的三个新 iSCSI 目标都需要重复这三个步骤。

    创建新目标 IQN

    在 Openfiler Storage Control Center 中,导航至 [卷] / [iSCSI 目标]。验证已选中灰色“目标配置”子选项卡。此页面可允许您创建一个新的 iSCSI 目标。系统会自动为新 iSCSI 目标(也称为“目标 IQN”)的名称生成默认值。以下是一个示例目标 IQN " iqn.2006-01.com.openfiler:tsn.ae4683b67fd3":

    图 12:创建新 iSCSI 目标:默认目标 IQN

    图 12:创建新 iSCSI 目标:默认目标 IQN

    我倾向于用更有意义的内容来代替默认目标 IQN 的最后一部分。对于第一个 iSCSI 目标 (Oracle Clusterware / racdb-crs1),我将修改默认目标 IQN,即将 " tsn.ae4683b67fd3" 字符串替换为 " racdb.crs1",如以下图 13 所示:

    图 13:创建新 iSCSI 目标:替换默认目标 IQN

    图 13:创建新 iSCSI 目标:替换默认目标 IQN

    对新的 Target IQN 满意后,点击“添加”按钮。这将创建一个新的 iSCSI 目标,随后会打开一个页面,可允许您修改新 iSCSI 目标的许多设置。就本文而言,无需更改新 iSCSI 目标的任何设置。

    LUN 映射

    创建新 iSCSI 目标后,下一步是将适当的 iSCSI 逻辑卷映射至该目标。在“目标配置”子选项卡下,验证在“选择 iSCSI 目标”部分中选择了正确的 iSCSI 目标。如果不正确,请使用下拉菜单选择正确的 iSCSI 目标,然后点击“更改”按钮。

    接下来,点击名为“LUN 映射”的灰色子选项卡(位于“目标配置”子选项卡旁边)。找到适当的 iSCSI 逻辑卷(在本例中为 /dev/racdbvg/racdb-crs1)并点击“映射”按钮。您无需更改此页面上的任何设置。点击卷 /dev/racdbvg/racdb-crs1 的“映射”按钮后,您的屏幕应该类似于图 14

    图 14:创建新 iSCSI 目标:映射 LUN

    图 14:创建新 iSCSI 目标:映射 LUN

    网络 ACL

    在 iSCSI 客户端能够访问新创建的 iSCSI 目标之前,需要为其授予适当的权限。之前,我们在 Openfiler 中为两个主机(Oracle RAC 节点)配置了网络访问权限。这两个节点需要通过存储(专有)网络访问新 iSCSI 目标。我们现在需要为两个 Oracle RAC 节点授予访问新 iSCSI 目标的权限。

    点击名为“网络 ACL”的灰色子选项卡(位于“LUN 映射”子选项卡旁边)。对于当前的 iSCSI 目标,将两个主机的“访问”从“拒绝”更改为“允许”,然后点击“更新”按钮:

    图 15:创建新 iSCSI 目标:更新网络 ACL

    图 15:创建新 iSCSI 目标:更新网络 ACL

    返回“创建新目标 IQN”部分并为其余两个 iSCSI 逻辑卷执行这三个任务,同时替换在“iSCSI 目标/逻辑卷映射”表中找到的值。

  • 12.在 Oracle RAC 节点上配置 iSCSI 卷

    12.在 Oracle RAC 节点上配置 iSCSI 卷

    在集群中的两个 Oracle RAC 节点上配置 iSCSI 启动器。但是,应当仅在 RAC 集群中的节点之一上执行创建分区的操作。

    iSCSI 客户端可以是任何提供 iSCSI 支持(驱动程序)的系统(Linux、Unix、MS Windows、Apple Mac 等)。在本例中,客户端是两个 Linux 服务器,即 racnode1 和 racnode2,运行 Oracle Enterprise Linux 5.4。

    在本节中,我们将在两个 Oracle RAC 节点上配置 iSCSI 软件启动器。Oracle Enterprise Linux 5.4 包含 Open-iSCSI iSCSI 软件启动器,可从 iscsi-initiator-utils RPM 中获取该软件启动器。这与之前版本的 Oracle Enterprise Linux (4.x) 有所不同,该版本包含作为 Linux-iSCSI 项目中的一部分而开发的 Linux iscsi-sfnet 软件驱动程序。所有 iSCSI 管理任务(如发现和登录)都将使用 Open-iSCSI 中包含的命令行界面 iscsiadm。

    iSCSI 软件启动器将被配置为自动登录至网络存储服务器 (openfiler1) 并发现上一节中创建的 iSCSI 卷。随后,我们将使用 udev 为所发现的每一个 iSCSI 目标名称创建持久本地 SCSI 设备名称(即 /dev/iscsi/crs1)。拥有一致的本地 SCSI 设备名称和所映射到的 iSCSI 目标,有助于在配置 ASM 时区分三个不同的卷。但是,在此之前,我们需要先安装 iSCSI 启动器软件。

    注意: 本指南使用 ASMLib 2.0,它是 Oracle 数据库的自动存储管理 (ASM) 特性的支持库。ASMLib 将用于标记本指南中使用的所有 iSCSI 卷。默认情况下,ASMLib 已经为与 ASM 一起使用的存储设备提供了持久路径和权限。此功能消除了使用存储设备路径和权限更新 udev 或 devlabel 文件的需要。在本文和实践中,我仍然选择为使用 udev 发现的每一个 iSCSI 目标名称创建持久本地 SCSI 设备名称。这提供了一种自我归档方法,有助于快速识别每一个卷的名称和位置。

    安装 iSCSI(启动器)服务

    对于 Oracle Enterprise Linux 5.4,默认情况下不会安装 Open-iSCSI iSCSI 软件启动器。该软件包含在 iscsi-initiator-utils 软件包中,可从 CD #1 中找到该软件包。要确定是否安装了此软件包(大多数情况下未安装),请在两个 Oracle RAC 节点上执行以下操作:

     
     
     [root@racnode1 ~]# 
     rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n"| grep iscsi-initiator-utils
     

    如果未安装 iscsi-initiator-utils 软件包,则将 CD #1 加载到每一个 Oracle RAC 节点中,然后执行以下操作:

     
     [root@racnode1 ~]# 
     mount -r /dev/cdrom /media/cdrom
     [root@racnode1 ~]# 
     cd /media/cdrom/Server
     [root@racnode1 ~]# 
     rpm -Uvh iscsi-initiator-utils-*
     [root@racnode1 ~]# 
     cd /
     [root@racnode1 ~]# 
     eject
     
     

    验证现已安装 iscsi-initiator-utils 软件包:

     
     
     [root@racnode1 ~]# 
     rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n"| grep iscsi-initiator-utils
     iscsi-initiator-utils-6.2.0.871-0.10.el5 (x86_64)
     
     

    配置 iSCSI(启动器)服务

    验证两个 Oracle RAC 节点上均安装了 iscsi-initiator-utils 软件包之后,启动 iscsid 服务并设置其在系统启动时自动启动。我们还将配置 iSCSI 服务自动启动,以便于在系统启动时登录到所需 iSCSI 目标。

     
     
     [root@racnode1 ~]# 
     service iscsid start
     Turning off network shutdown. Starting iSCSI daemon: 
     
     OK ]
     
     
     OK ]
     
     [root@racnode1 ~]# 
     chkconfig iscsid on
     [root@racnode1 ~]# 
     chkconfig iscsi on
     

    现在 iSCSI 服务已启动,请使用 iscsiadm 命令行界面来发现网络存储服务器上的所有可用目标。这应当在两个 Oracle RAC 节点上执行,以验证配置是否正常运行:

     
     [root@racnode1 ~]# 
     iscsiadm -m discovery -t sendtargets -p openfiler1-priv
     192.168.2.195:3260,1 iqn.2006-01.com.openfiler:racdb.crs1
     192.168.2.195:3260,1 iqn.2006-01.com.openfiler:racdb.fra1
     192.168.2.195:3260,1 iqn.2006-01.com.openfiler:racdb.data1
     

    手动登录至 iSCSI 目标

    至此,iSCSI 启动器服务已启动,每一个 Oracle RAC 节点都可以从网络存储服务器中发现可用目标。下一步是手动登录至每一个可用目标,可以使用 iscsiadm 命令行界面来执行此操作。两个 Oracle RAC 节点上都需要运行此任务。请注意,我需要指定 IP 地址,而不是网络存储服务器的主机名 (openfiler1-priv) - 我认为这是必需的,因为(上述)发现显示了使用 IP 地址的目标。

     
     [root@racnode1 ~]# 
     iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 192.168.2.195 -l
     [root@racnode1 ~]# 
     iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data1 -p 192.168.2.195 -l
     [root@racnode1 ~]# 
     iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra1 -p 192.168.2.195 -l
     
     

    配置自动登录

    下一步是确保客户端将在机器启动时(或 iSCSI 启动器服务启动/重新启动时)自动登录到上述每一个目标。与上述手动登录过程一样,在两个 Oracle RAC 节点上执行以下操作:

     
     [root@racnode1 ~]# 
     iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.crs1 -p 192.168.2.195 --op update -n node.startup -v automatic
     [root@racnode1 ~]# 
     iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.data1 -p 192.168.2.195 --op update -n node.startup -v automatic
     [root@racnode1 ~]# 
     iscsiadm -m node -T iqn.2006-01.com.openfiler:racdb.fra1 -p 192.168.2.195 --op update -n node.startup -v automatic
     

    创建持久本地 SCSI 设备名称

    在本节中,我们将为每一个 iSCSI 目标名称创建持久本地 SCSI 设备名称。这将使用 udev 来完成。拥有一致的本地 SCSI 设备名称和所映射到的 iSCSI 目标,有助于在配置 ASM 时区分三个不同的卷。这并不是一项严格的需求,因为我们将为所有卷使用 ASMLib 2.0,而这提供了一种自我归档方法来快速识别每一个 iSCSI 卷的名称和位置。

    当任何一个 Oracle RAC 节点启动以及 iSCSI 启动器服务启动时,它将自动登录到以随机方式配置的每一个目标,并将其映射至下一个可用的本地 SCSI 设备名称。例如,目标 iqn.2006-01.com.openfiler:racdb.crs1 可能会映射到 /dev/sdb。我实际上可以通过查看 /dev/disk/by-path 目录来确定所有目标的当前映射:

     
     
     [root@racnode1 ~]# 
     (cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}')
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs1-lun-0 -> ../../sdb
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data1-lun-0 -> ../../sdd
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra1-lun-0 -> ../../sdc
     

    我们可以使用上述输出建立以下当前映射:

    当前 iSCSI 目标名称到本地 SCSI 设备名称映射
    iSCSI 目标名称 SCSI 设备名称
    iqn.2006-01.com.openfiler:racdb.crs1 /dev/sdb
    iqn.2006-01.com.openfiler:racdb.data1 /dev/sdd
    iqn.2006-01.com.openfiler:racdb.fra1 /dev/sdc

    但是,每次重新启动 Oracle RAC 节点时,此映射可能会发生更改。例如,在重新启动后,可能会确定 iSCSI 目标 iqn.2006-01.com.openfiler:racdb.crs1 映射到本地 SCSI 设备 /dev/sdc。因此,依赖于使用本地 SCSI 设备名称是不切实际的,因为在重新启动后无法预测 iSCSI 目标映射。

    我们需要的是一个可供引用的一致设备名称(即 /dev/iscsi/crs1),它在重启后始终指向适当的 iSCSI 目标。这就是名为 udev 的动态设备管理工具的用武之地。udev 使用符号链接提供动态设备目录,这些链接使用一系列可配置规则指向实际设备。当 udev 接收到设备事件(例如,客户端登录到 iSCSI 目标)时,它会将其配置的规则与 sysfs 中提供的可用设备属性进行匹配以识别设备。匹配规则可能会提供额外的设备信息或指定设备节点名称和多个符号链接名称,并指示 udev 运行其他程序(例如 SHELL 脚本)作为设备事件处理过程的一部分。

    下一步是创建一个新的规则文件。该文件将被命名为 /etc/udev/rules.d/55-openiscsi.rules 且仅包含一行 name=value 对,用于接收我们感兴趣的事件。它还将定义一个调用 SHELL 脚本 (/etc/udev/scripts/iscsidev.sh) 来处理事件。

    在两个 Oracle RAC 节点上创建以下规则文件 /etc/udev/rules.d/55-openiscsi.rules:

     
     
     ..............................................
     # /etc/udev/rules.d/55-openiscsi.rules
     KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c/part%n"
     ..............................................
     
     

    我们现在需要创建 UNIX SHELL 脚本。当收到此事件时将调用该脚本。让我们首先在两个 Oracle RAC 节点上创建一个单独的目录来存储 udev 脚本:

     
     [root@racnode1 ~]# 
     mkdir -p /etc/udev/scripts
     
     

    接下来,在两个 Oracle RAC 节点上创建 UNIX shell 脚本 /etc/udev/scripts/iscsidev.sh:

     
     
     ..............................................
     #!/bin/sh
     
     # FILE: /etc/udev/scripts/iscsidev.sh
     
     BUS=${1}
     HOST=${BUS%%:*}
     
     -e /sys/class/iscsi_host ] || exit 1
     
     file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"
     
     target_name=$(cat ${file})
     
     # This is not an open-scsi drive
     if -z "${target_name}" ]; then
     exit 1
     fi
     
     # Check if QNAP drive
     check_qnap_target_name=${target_name%%:*}
     if $check_qnap_target_name = "iqn.2004-04.com.qnap" ]; then
     target_name=`echo "${target_name%.*}"`
     fi
     
     echo "${target_name##*.}"
     ..............................................
     

    在创建 UNIX SHELL 脚本之后,将其更改为可执行文件:

     
     
     [root@racnode1 ~]# 
     chmod 755 /etc/udev/scripts/iscsidev.sh
     

    现在已经配置了 udev,接下来在两个 Oracle RAC 节点上重新启动 iSCSI 服务:

     
     
     [root@racnode1 ~]# 
     service iscsi stop
     Logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]
     Logging out of session [sid: 7, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]
     Logging out of session [sid: 8, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]
     Logout of [sid: 6, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]: successful
     Logout of [sid: 7, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]: successful
     Logout of [sid: 8, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]: successful
     Stopping iSCSI daemon: 
     
     OK ]
     
     [root@racnode1 ~]# 
     service iscsi start
     iscsid dead but pid file exists
     Turning off network shutdown. Starting iSCSI daemon: 
     
     OK ]
     
     
     OK ]
     Setting up iSCSI targets: Logging in to [iface: default, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]
     Logging in to [iface: default, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]
     Logging in to [iface: default, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]
     Login to [iface: default, target: iqn.2006-01.com.openfiler:racdb.crs1, portal: 192.168.2.195,3260]: successful
     Login to [iface: default, target: iqn.2006-01.com.openfiler:racdb.fra1, portal: 192.168.2.195,3260]: successful
     Login to [iface: default, target: iqn.2006-01.com.openfiler:racdb.data1, portal: 192.168.2.195,3260]: successful
     
     
     OK ]
     

    我们来看看最终的结果:

     
     
     [root@racnode1 ~]# 
     ls -l /dev/iscsi/*
     /dev/iscsi/crs1:
     total 0
     lrwxrwxrwx 1 root root 9 Nov 3 18:13 part -> ../../sdc
     
     /dev/iscsi/data1:
     total 0
     lrwxrwxrwx 1 root root 9 Nov 3 18:13 part -> ../../sde
     
     /dev/iscsi/fra1:
     total 0
     lrwxrwxrwx 1 root root 9 Nov 3 18:13 part -> ../../sdd
     
     

    以上清单显示 udev 完成了其应当完成的工作!我们现在拥有了一组一致的本地设备名称,可用于引用 iSCSI 目标。例如,我们可以安全地假定设备名称 /dev/iscsi/crs1/part 将始终引用 iSCSI 目标 iqn.2006-01.com.openfiler:racdb.crs1。我们现在通过一致的 iSCSI 目标名称与本地设备名称相映射,如下表所述:

    iSCSI 目标名称到本地设备名称映射
    iSCSI 目标名称 本地设备名称
    iqn.2006-01.com.openfiler:racdb.crs1 /dev/iscsi/crs1/part
    iqn.2006-01.com.openfiler:racdb.data1 /dev/iscsi/data1/part
    iqn.2006-01.com.openfiler:racdb.fra1 /dev/iscsi/fra1/part

    在 iSCSI 卷上创建分区

    我们现在需要在跨整个卷大小的各个 iSCSI 卷上创建一个主分区。如前所述,我将使用自动存储管理 (ASM) 来存储 Oracle Clusterware 所需的共享文件、物理数据库文件(数据/索引文件、联机重做日志文件和控制文件)以及集群数据库的快速恢复区 (FRA)。

    Oracle Clusterware 共享文件(OCR 和表决磁盘)将存储在名为 +CRS 的 ASM 磁盘组中,该磁盘组将配置为外部冗余。集群数据库的物理数据库文件将存储在名为 +RACDB_DATA 的 ASM 磁盘组中,该磁盘组也将配置为外部冗余。最后,快速恢复区(RMAN 备份和归档重做日志文件)将存储在名为 +FRA 的第三个 ASM 磁盘组中,该磁盘组也将配置为外部冗余。

    下表列出了将创建的三个 ASM 磁盘组以及它们将包含哪些 iSCSI 卷:

    Oracle 共享驱动器配置
    文件类型 ASM 磁盘组名称 iSCSI 目标(短)名称 ASM 冗余 大小 ASMLib 卷名
    OCR 和表决磁盘 +CRS crs1 外部 2GB ORCL:CRSVOL1
    Oracle 数据库文件 +RACDB_DATA data1 外部 32 GB ORCL:DATAVOL1
    Oracle 快速恢复区 +FRA fra1 外部 32 GB ORCL:FRAVOL1

    如上表所示,我们需要在每一个 iSCSI 卷上都创建一个 Linux 主分区。fdisk 命令在 Linux 中用于创建(和删除)分区。对于每一个 iSCSI 卷,您都可以在创建主分区时使用默认值,因为默认操作是使用整个磁盘。您可以安全地忽略任何可能表明设备不包含有效 DOS 分区(或 Sun、SGI 或 OSF 磁盘标签)的警告。

    在本例中,我将从 racnode1 中运行 fdisk 命令,并使用 udev 在上一节中创建的本地设备名称在每一个 iSCSI 目标上创建单一主分区:

    • /dev/iscsi/crs1/part
    • /dev/iscsi/data1/part
    • /dev/iscsi/fra1/part

    注意:在每一个 iSCSI 卷上创建单一分区时,只能从 Oracle RAC 集群中的一个节点运行!(即 racnode1)

     
     
     # ---------------------------------------
     
     [root@racnode1 ~]# 
     fdisk /dev/iscsi/crs1/part
     Command (m for help): 
     n
     Command action
     e extended
     p primary partition (1-4)
     p
     Partition number (1-4): 
     1
     First cylinder (1-1012, default 1): 
     1
     Last cylinder or +size or +sizeM or +sizeK (1-1012, default 1012): 
     1012
     
     Command (m for help): 
     p
     
     Disk /dev/iscsi/crs1/part: 2315 MB, 2315255808 bytes
     72 heads, 62 sectors/track, 1012 cylinders
     Units = cylinders of 4464 * 512 = 2285568 bytes
     
     Device Boot Start End Blocks Id System
     /dev/iscsi/crs1/part1 1 1012 2258753 83 Linux
     
     Command (m for help): 
     w
     The partition table has been altered!
     
     Calling ioctl() to re-read partition table.
     Syncing disks.
     
     # ---------------------------------------
     
     [root@racnode1 ~]# 
     fdisk /dev/iscsi/data1/part
     Command (m for help): 
     n
     Command action
     e extended
     p primary partition (1-4)
     p
     Partition number (1-4): 
     1
     First cylinder (1-33888, default 1): 
     1
     Last cylinder or +size or +sizeM or +sizeK (1-33888, default 33888): 
     33888
     
     Command (m for help): 
     p
     
     Disk /dev/iscsi/data1/part: 35.5 GB, 35534143488 bytes
     64 heads, 32 sectors/track, 33888 cylinders
     Units = cylinders of 2048 * 512 = 1048576 bytes
     
     Device Boot Start End Blocks Id System
     /dev/iscsi/data1/part1 1 33888 34701296 83 Linux
     
     Command (m for help): 
     w
     The partition table has been altered!
     
     Calling ioctl() to re-read partition table.
     Syncing disks.
     
     
     # ---------------------------------------
     
     [root@racnode1 ~]# 
     fdisk /dev/iscsi/fra1/part
     Command (m for help): 
     n
     Command action
     e extended
     p primary partition (1-4)
     p
     Partition number (1-4): 
     1
     First cylinder (1-33888, default 1): 
     1
     Last cylinder or +size or +sizeM or +sizeK (1-33888, default 33888): 
     33888
     
     Command (m for help): 
     p
     
     Disk /dev/iscsi/fra1/part: 35.5 GB, 35534143488 bytes
     64 heads, 32 sectors/track, 33888 cylinders
     Units = cylinders of 2048 * 512 = 1048576 bytes
     
     Device Boot Start End Blocks Id System
     /dev/iscsi/fra1/part1 1 33888 34701296 83 Linux
     
     Command (m for help): 
     w
     The partition table has been altered!
     
     Calling ioctl() to re-read partition table.
     Syncing disks.
     
     

    验证新分区

    从 racnode1 创建所有必需的分区后,您现在应当使用以下命令作为 Oracle RAC 集群 (racnode2) 中所有其余节点的“root”用户帐户,以便于向内核通知分区更改。请注意,从 Openfiler 发现的 iSCSI 目标名称与本地 SCSI 设备名称的映射在两个 Oracle RAC 节点上将有所不同。这不是问题,也不会造成任何问题,因为我们不会使用本地 SCSI 设备名称,而是使用 udev 在上一节中创建的本地设备名称。

    从 racnode2 中,运行以下命令:

     
     
     [root@racnode2 ~]# 
     partprobe
     
     [root@racnode2 ~]# 
     fdisk -l
     
     Disk /dev/sda: 160.0 GB, 160000000000 bytes
     255 heads, 63 sectors/track, 19452 cylinders
     Units = cylinders of 16065 * 512 = 8225280 bytes
     
     Device Boot Start End Blocks Id System
     /dev/sda1 * 1 13 104391 83 Linux
     /dev/sda2 14 19452 156143767+ 8e Linux LVM
     
     Disk /dev/sdb: 35.5 GB, 35534143488 bytes
     64 heads, 32 sectors/track, 33888 cylinders
     Units = cylinders of 2048 * 512 = 1048576 bytes
     
     Device Boot Start End Blocks Id System
     /dev/sdb1 1 33888 34701296 83 Linux
     
     Disk /dev/sdc: 35.5 GB, 35534143488 bytes
     64 heads, 32 sectors/track, 33888 cylinders
     Units = cylinders of 2048 * 512 = 1048576 bytes
     
     Device Boot Start End Blocks Id System
     /dev/sdc1 1 33888 34701296 83 Linux
     
     Disk /dev/sdd: 2315 MB, 2315255808 bytes
     72 heads, 62 sectors/track, 1012 cylinders
     Units = cylinders of 4464 * 512 = 2285568 bytes
     
     Device Boot Start End Blocks Id System
     /dev/sdd1 1 1012 2258753 83 Linux
     
     

    最后一步,您应当在两个 Oracle RAC 节点上运行以下命令以验证 udev 是否为每个新分区创建了新的符号链接:

     
     [root@racnode2 ~]# 
     (cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}')
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs1-lun-0 -> ../../sdd
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.crs1-lun-0-part1 -> ../../sdd1
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data1-lun-0 -> ../../sdc
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.data1-lun-0-part1 -> ../../sdc1
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra1-lun-0 -> ../../sdb
     ip-192.168.2.195:3260-iscsi-iqn.2006-01.com.openfiler:racdb.fra1-lun-0-part1 -> ../../sdb1
     
     

    以上清单显示 udev 确实为每一个新分区创建了新的设备名称。在本指南稍后为 ASMlib 配置卷时,我们将使用这些新设备名称:

     

    • /dev/iscsi/crs1/part1
    • /dev/iscsi/data1/part1
    • /dev/iscsi/fra1/part1