| var $tag=''; var $tag_code='37305841ed909706d150224153cc55b6'; var $r_quote_bligid='4cbd76e501000b36'; var $worldcup='0'; var $worldcupball='0'; | 分类: oracle_rac |
下一步是配置 Openfiler 中的网络访问,使两个 Oracle RAC 节点(linux1 和 linux2)都有权通过存储(专用)网络访问我们的 iSCSI 卷。(我们将在下一部分中创建 iSCSI 卷!)
此外,该任务还可以使用 Openfiler Storage Control Center 通过导航到 [General] / [Local Networks] 来完成。利用 Local Networks 屏幕,管理员可以设置允许其访问 Openfiler 设备导出的资源的网络和/或主机。就本文而言,我们希望单独添加两个 Oracle RAC 节点,而不是允许整个 192.168.2.0 网络访问 Openfiler 资源。
输入每个 Oracle RAC 节点时,请注意“Name”域只是一个逻辑名称,仅供参考。根据输入节点的惯例,我仅使用了为该 IP 地址定义的节点名称。接下来,在“Network/Host”字段中输入实际节点时,始终使用其 IP 地址,即使其主机名已经在 /etc/hosts 文件或 DNS 中定义。最后,在我们的 Class C 网络中输入实际主机时,应使用子网掩码 255.255.255.255。
记住,您要为集群中的每个 RAC 节点输入专用 网络 (eth1) 的 IP 地址,这一点很重要。
图 7 为 Oracle RAC 节点配置 Openfiler 主机访问
物理存储
在本部分中,我们将创建五个 iSCSI 卷,以供集群中的两个 Oracle RAC 节点用作共享存储。这将在连接到 Openfiler 服务器的外置 USB 硬盘驱动器上执行多个步骤。
存储设备(如内置 IDE/SATA/SCSI 磁盘、外置 USB 或 FireWire 驱动器或者任何其他存储设备)可以连接到 Openfiler 服务器,并供客户端使用。如果在 OS 级发现这些设备,就可以使用 Openfiler Storage Control Center 设置和管理所有这些存储设备。
在本例中,我们将一个 500GB 的外置 USB 硬盘驱动器用于存储。在 Openfiler 服务器上,本驱动器为 /dev/sda (HDS72505 0KLAT80)。要看到该驱动器并启动 iSCSI 卷的创建过程,请从 Openfiler Storage Control Center 导航到 [Volumes] / [Physical Storage Mgmt.]:
图 8 Openfiler 物理存储
对物理磁盘进行分区
我们将执行的第一步是在 /dev/sda 外置 USB 硬盘驱动器上创建一个主分区。通过单击 /dev/sda 链接,我们可以看到“Edit”或“Create”分区的选项。由于我们将创建一个跨整个磁盘的主分区,因此可以将大多数选项保留为默认设置,唯一的修改是将“Partition Type”由“Extended partition”更改为“Physical volume”。下面是我为了在 /dev/sda 上创建主分区而指定的值:
模式: 主
分区类型:物理卷
开始柱面:1
结束柱面: 60801
现在,大小将显示 465.76 GB。要接受该设置,单击 Create 按钮。这将在我们的外置硬盘驱动器上生成一个新的分区 (/dev/sda1): 
图 9 对物理卷进行分区
卷分组管理
下一步是创建卷分组。我们将创建一个名为 rac1 的卷分组,其中包含新创建的主分区。
从 Openfiler Storage Control Center 中,导航到 [Volumes] / [Volume Group Mgmt.]。我们将看到所有现有的卷分组,或者什么也看不到(我们的情况就是这样)。使用 Volume Group Management 屏幕,输入新卷分组的名称 (rac1),单击 /dev/sda1 前面的复选框以选择该分区,最后单击“Add volume group”按钮。之后,我们会看到一个列表,其中将显示我们新创建的名为“rac1”的卷分组:
图 10 创建的新卷分组
逻辑卷
现在,我们可以在新创建的卷分组 (rac1) 中创建五个逻辑卷。
从 Openfiler Storage Control Center 中,导航到 [Volumes] / [Create New Volume]。我们将看到新创建的卷分组 (rac1) 及其块存储统计信息。该屏幕底部还提供了用于在选定的卷分组中创建新卷的选项。使用该屏幕创建以下五个逻辑 (iSCSI) 卷。在创建每个逻辑卷之后,应用程序将转至“List of Existing Volumes”屏幕。然后,您需要单击后退到“Create New Volume”选项卡以创建下一个逻辑卷,直至五个 iSCSI 卷全部创建完毕:
?/P>
| iSCSI / 逻辑卷 | |||
| 卷名 | 卷描述 | 所需空间 (MB) | 文件系统类型 |
| crs | Oracle 集群件 | 2,048 | iSCSI |
| asm1 | Oracle ASM 卷 1 | 118,720 | iSCSI |
| asm2 | Oracle ASM 卷 2 | 118,720 | iSCSI |
| asm3 | Oracle ASM 卷 3 | 118,720 | iSCSI |
| asm4 | Oracle ASM 卷 4 | 118,720 | iSCSI |
实际上,我们已经创建了五个 iSCSI 磁盘,现在可以将它们呈现给网络上的 iSCSI 客户端(linux1 和 linux2)。“List of Existing Volumes”屏幕如下:
图 11 新的逻辑 (iSCSI) 卷
授予节点新的逻辑卷的访问权限
需要先授予 iSCSI 客户端相应的权限,它才能访问新创建的 iSCSI 卷。在前面,我们将 Openfiler 配置为具有两个主机(Oracle RAC 节点),这两个主机可以配置为具有访问资源的权限。现在,我们需要授予这两个 Oracle RAC 节点访问每个新创建的 iSCSI 卷的权限。
从 Openfiler Storage Control Center 中,导航到 [Volumes] / [List of Existing Volumes]。这将显示上一部分中显示的屏幕。对于每个逻辑卷,单击“Edit”链接(在 Properties 列下)。这将显示该卷的“Edit properties”屏幕。滚动到该屏幕的底部,将两个主机由“Deny”更改为“Allow”,然后单击“Update”按钮:
图 12 授予主机对逻辑 (iSCSI) 卷的访问权限
针对全部五个逻辑卷执行该任务。
使 iSCSI 目标可供客户端使用
每次添加新的逻辑卷之后,我们都需要在 Openfiler 服务器上重新启动相关服务。在本例中,我们创建了 iSCSI 逻辑卷,因此需要重新启动 iSCSI 目标 (iscsi-target) 服务。这将使新的 iSCSI 目标可供网络上有权访问它们的所有客户端使用。
要重新启动 iSCSI 目标服务,请使用 Openfiler Storage Control Center 并导航到 [Services] / [Enable/Disable]。iSCSI 目标服务应该已经启用(几部分以前)。如果是这样,应禁用该服务,然后再启用它。(参见图 6)
通过 Openfiler 服务器上的 SSH 会话也可以完成该任务:
[root@openfiler1 ~]# service iscsi-target restart Stopping iSCSI target service:[ OK ] Starting iSCSI target service:[ OK ]
在集群中的两个 Oracle RAC 节点上配置 iSCSI 启动器!但是,创建分区应该只在 RAC 集群的一个节点上执行。
iSCSI 客户端可以是提供 iSCSI 支持(驱动程序)的任何系统(Linux、Unix、MS Windows、Apple Mac 等)。在我们的示例中,客户端是两个 Linux 服务器(linux1 和 linux2),它们运行的是 Red Hat 4。
在本部分中,我们将在两个 Oracle RAC 节点上配置 iSCSI 启动器。这包括在两个 Oracle RAC 节点上配置 /etc/iscsi.conf 文件,使其包含网络存储服务器名称 (openfiler1),以便它们能够发现在前一部分中创建的 iSCSI 卷。然后,我们将执行一项艰巨任务,即:将从 Openfiler 中发现的 iSCSI 目标名称映射到其中一个节点(即 linux1,我们将在该节点上对 iSCSI 卷进行分区)的本地 SCSI 设备名称。通常,大家认为这是一项耗时的任务,但是仅在本部分以及使用 Oracle 集群文件系统 (OCFS2) 和自动存储管理 (ASM) 对 iSCSI 卷进行格式化时才需要执行该任务。您需要知道本地 SCSI 设备名称及其映射到的 iSCSI 目标,才能了解要用于 OCFS2 的卷(设备)和属于 ASM 的卷。注意,每次重新引导其中一个 Oracle RAC 节点时,映射都可能不同。例如,在配置卷的过程中,可能将 iSCSI 目标名称“iqn.2006-01.com.openfiler:rac1.crs”识别为 linux1 上的 /dev/sdd(正如我编写的本部分中的情况)。但是,重新引导该节点后,可能会将“iqn.2006-01.com.openfiler:rac1.crs”识别为 /dev/sde。这不会成为一个问题,因为所有磁盘都由 OCFS2 或 ASM 标记(本文稍后将对此进行讨论)。当其中一个服务尝试挂载卷时,它会使用其标签,而不是使用其本地 SCSI 设备名称。
iSCSI(启动器)服务
在每个 Oracle RAC 节点上,我们都需要确保 iSCSI(启动器)服务状态良好且在运行。如果 iscsi-initiator-utils RPM(即 iscsi-initiator-utils-4.0.3.0-5.i386.rpm)没有作为操作系统安装的一部分安装,则应该将其下载并安装到每个 Oracle RAC 节点上。
要确定是否已安装了该程序包,请在两个 Oracle RAC 节点上执行以下操作:
# rpm -qa | grep iscsi iscsi-initiator-utils-4.0.3.0-5
如果未安装,可以从 RHEL4 Update 4 发行版本的第 3 张磁盘(共 4 张)上找到 iscsi-initiator-utils RPM 程序包,也可以从其中一个 Internet RPM 资源下载。
如果 iscsi-initiator-utils RPM 程序包未安装,请使用以下命令进行安装:
# rpm -Uvh iscsi-initiator-utils-4.0.3.0-5.i386.rpm warning:iscsi-initiator-utils-4.0.3.0-5.i386.rpm: V3 DSA signature:NOKEY, key ID 443e1821 Preparing... ########################################### [100%] 1:iscsi-initiator-utils ########################################### [100%]
验证 iscsi-initiator-utils RPM 已安装之后,需要在 Oracle RAC 节点(iSCSI 客户端)上执行的唯一配置步骤是在 /etc/iscsi.conf 文件中指定网络存储服务器(iSCSI 服务器)。编辑 /etc/iscsi.conf 文件,以包含指定 Openfiler 网络存储服务器主机名的 DiscoveryAddress 项。在我们的示例中,该项是:
... DiscoveryAddress=openfiler1-priv ...
在两个 Oracle RAC 节点上更改 /etc/iscsi.conf 文件之后,我们就可以在两个节点上启动(或重新启动)iscsi 启动器服务:
# service iscsi restart Searching for iscsi-based multipath maps Found 0 maps Stopping iscsid:iscsid not running Checking iscsi config:[ OK ] Loading iscsi driver:[ OK ] Starting iscsid:[ OK ]
我们还应该将两个 Oracle RAC 节点的 iSCSI 服务配置为在计算机重新引导后保持活动状态。您可以使用 Linux 命令 chkconfig 达到此目的,如下所示:
# chkconfig --level 345 iscsi on
发现 iSCSI 目标
尽管已经在两个 Oracle RAC 节点上配置了 iSCSI 启动器服务并且在运行该服务,但本部分中的发现指令只能从我们将对其进行分区并标记卷的节点(即 linux1)运行。
当 Openfiler 服务器发布可用 iSCSI 目标(当 iscsi-target 服务在 Openfiler 服务器上启动/重新启动时发生)或者当 iSCSI 启动器服务在客户端上启动/重新启动时,经过配置的客户端将收到表明新的 iSCSI 磁盘现在可用的消息。我们会在客户端的 /var/log/messages 文件中看到类似下面的内容:
... Jun 25 12:56:10 linux1 iscsi:iscsid startup succeeded Jun 25 12:56:10 linux1 iscsid[10315]:Connected to Discovery Address 192.168.2.195 Jun 25 12:56:10 linux1 kernel:iscsi-sfnet:host1:Session established Jun 25 12:56:10 linux1 kernel:iscsi-sfnet:host0:Session established Jun 25 12:56:10 linux1 kernel:iscsi-sfnet:host2:Session established Jun 25 12:56:10 linux1 kernel:scsi0 :SFNet iSCSI driver Jun 25 12:56:10 linux1 kernel:iscsi-sfnet:host3:Session established Jun 25 12:56:10 linux1 kernel:scsi1 :SFNet iSCSI driver Jun 25 12:56:10 linux1 kernel:Vendor:Openfile Model:Virtual disk Rev: 0 Jun 25 12:56:10 linux1 kernel:Type:Direct-Access ANSI SCSI revision: 04 Jun 25 12:56:10 linux1 kernel:SCSI device sda:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:10 linux1 kernel:iscsi-sfnet:host4:Session established Jun 25 12:56:10 linux1 kernel:scsi4 :SFNet iSCSI driver Jun 25 12:56:10 linux1 kernel:scsi2 :SFNet iSCSI driver Jun 25 12:56:10 linux1 kernel:Vendor:Openfile Model:Virtual disk Rev: 0 Jun 25 12:56:10 linux1 kernel:Type:Direct-Access ANSI SCSI revision: 04 Jun 25 12:56:10 linux1 kernel:SCSI device sda:drive cache:write through Jun 25 12:56:10 linux1 kernel:Vendor:Openfile Model:Virtual disk Rev: 0 Jun 25 12:56:10 linux1 kernel:Type:Direct-Access ANSI SCSI revision: 04 Jun 25 12:56:10 linux1 kernel:scsi3 :SFNet iSCSI driver Jun 25 12:56:10 linux1 kernel:Vendor:Openfile Model:Virtual disk Rev: 0 Jun 25 12:56:10 linux1 kernel:Type:Direct-Access ANSI SCSI revision: 04 Jun 25 12:56:10 linux1 kernel:SCSI device sda:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:10 linux1 kernel:Vendor:Openfile Model:Virtual disk Rev: 0 Jun 25 12:56:10 linux1 kernel:Type:Direct-Access ANSI SCSI revision: 04 Jun 25 12:56:10 linux1 kernel:SCSI device sda:drive cache:write through Jun 25 12:56:10 linux1 kernel:sda:unknown partition table Jun 25 12:56:10 linux1 kernel:Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 Jun 25 12:56:10 linux1 kernel:SCSI device sdb:4194304 512-byte hdwr sectors (2147 MB) Jun 25 12:56:10 linux1 kernel:SCSI device sdb:drive cache:write through Jun 25 12:56:10 linux1 kernel:SCSI device sdb:4194304 512-byte hdwr sectors (2147 MB) Jun 25 12:56:10 linux1 kernel:SCSI device sdb:drive cache:write through Jun 25 12:56:10 linux1 kernel:sdb:unknown partition table Jun 25 12:56:10 linux1 kernel:Attached scsi disk sdb at scsi4, channel 0, id 0, lun 0 Jun 25 12:56:10 linux1 kernel:SCSI device sdc:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:10 linux1 kernel:SCSI device sdc:drive cache:write through Jun 25 12:56:10 linux1 kernel:SCSI device sdc:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:10 linux1 kernel:SCSI device sdc:drive cache:write through Jun 25 12:56:11 linux1 scsi.agent[10455]:disk at /devices/platform/host0/target0:0:0/0:0:0:0 Jun 25 12:56:11 linux1 scsi.agent[10476]:disk at /devices/platform/host4/target4:0:0/4:0:0:0 Jun 25 12:56:11 linux1 kernel:sdc:unknown partition table Jun 25 12:56:11 linux1 kernel:Attached scsi disk sdc at scsi2, channel 0, id 0, lun 0 Jun 25 12:56:11 linux1 kernel:SCSI device sdd:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:11 linux1 kernel:SCSI device sdd:drive cache:write through Jun 25 12:56:11 linux1 kernel:SCSI device sdd:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:11 linux1 kernel:SCSI device sdd:drive cache:write through Jun 25 12:56:11 linux1 hald[3898]:Timed out waiting for hotplug event 626. Rebasing to 629 Jun 25 12:56:11 linux1 kernel:sdd:unknown partition table Jun 25 12:56:11 linux1 scsi.agent[10499]:disk at /devices/platform/host2/target2:0:0/2:0:0:0 Jun 25 12:56:11 linux1 kernel:Attached scsi disk sdd at scsi3, channel 0, id 0, lun 0 Jun 25 12:56:11 linux1 kernel:SCSI device sde:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:11 linux1 kernel:SCSI device sde:drive cache:write through Jun 25 12:56:11 linux1 kernel:SCSI device sde:243138560 512-byte hdwr sectors (124487 MB) Jun 25 12:56:11 linux1 kernel:SCSI device sde:drive cache:write through Jun 25 12:56:11 linux1 scsi.agent[10528]:disk at /devices/platform/host3/target3:0:0/3:0:0:0 Jun 25 12:56:11 linux1 kernel:sde:unknown partition table Jun 25 12:56:11 linux1 kernel:Attached scsi disk sde at scsi1, channel 0, id 0, lun 0 Jun 25 12:56:11 linux1 scsi.agent[10559]:disk at /devices/platform/host1/target1:0:0/1:0:0:0 ...
上面的各项显示客户端 (linux1) 能够与 iSCSI 存储服务器(位于 192.168.2.195 的 openfiler1-priv)建立 iSCSI 会话。
我们还可以看到本地 SCSI 设备名称如何映射到 iSCSI 目标的主机 ID 和 LUN:
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 Attached scsi disk sdb at scsi4, channel 0, id 0, lun 0 Attached scsi disk sdc at scsi2, channel 0, id 0, lun 0 Attached scsi disk sdd at scsi3, channel 0, id 0, lun 0 Attached scsi disk sde at scsi1, channel 0, id 0, lun 0
还可以通过 dmesg 命令确定本地 SCSI 设备名称如何映射到 iSCSI 目标的主机 ID 和 LUN:
# dmesg | sort | grep '^Attached scsi disk' Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 Attached scsi disk sdb at scsi4, channel 0, id 0, lun 0 Attached scsi disk sdc at scsi2, channel 0, id 0, lun 0 Attached scsi disk sdd at scsi3, channel 0, id 0, lun 0 Attached scsi disk sde at scsi1, channel 0, id 0, lun 0
现在,我们需要在客户端 (linux1) 上运行 iscsi-ls 命令,将 iSCSI 目标名称映射到本地 SCSI ID(在下面显示为 HOST ID):
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9606200/viewspace-745640/ ,如需转载,请注明出处,否则将追究法律责任。