(转)利用openfiler实现iSCSI

摘要:
Openfiler支持网络体系结构中的文件级NAS和块级SAN,并支持CIFS、NFS、HTT/DAV、FTP和iSCSI协议。Openfiler是一个基于Linux 2.6内核和其他开源程序(如apache、samba、lvm2、ext3、Linux NFS和iSCSI企业目标)的存储管理操作系统。Openfiler的默认用户名为Openfiler,密码为password。还要注意,此步骤实际上并未授予两个OracleRAC节点访问iSCSI逻辑卷所需的相应权限。与上一节一样,我们使用OpenfilerStorageControlCenter,然后转到[System]/[NetworkSetup]完成网络访问配置。这将在连接到Openfiler服务器的内置73GB15KSCSI硬盘上执行多个步骤。在Openfiler服务器上,驱动器显示为/dev/sdb。

转自:http://czmmiao.iteye.com/blog/1735417


openfiler 
openfiler是一个基于浏览器的网络存储管理工具。来自于Linux系统。openfiler在一个网络架构里面里面支持文件级的NAS和数据块级的SAN,支持CIFS,NFS,HTT/DAV,FTP 和iSCSI协议。openfiler是一个存储管理操作系统,基于Linux 2.6内核和其他开源程序比如apache,samba,lvm2,ext3,Linux NFS和iSCSI企业级target。他把这些所有的技术集成在一个很小的,易于管理的强大的web界面里。

配置openfiler

openfiler的安装和安装linux类似,十分简单这里不做过多介绍,不明白的读者可以自行查阅资料。以下配置环境是以RAC配置为基础,目标是将openfiler上的存储空间已共享存储的方式划分给rac1和rac2两个节点。

浏览器:Firefox3.6(不推荐用IE进行此设置,下面会讲原因)
客户端操作系统:RHEL 5.4
iSCSI客户端:open-iscsi-2.0-871

要将 Openfiler 用作 iSCSI 存储服务器,我们需要执行六个主要任务:设置 iSCSI 服务、配置网络访问、指定物理存储器并对其分区、创建新的卷组、创建所有逻辑卷,最后,为每个逻辑卷创建新的 iSCSI 目标。

服务

在浏览器 输入https://192.168.2.195:446/ 开启Openfiler的Web界面 ,这里192.168.2.195为openfiler系统的ip,446为服务端口。Openfiler的默认用户名为openfiler,密码为password。

要控制服务,我们使用 Openfiler Storage Control Center 并转到 [Services] / [Manage Services]:

要启用 iSCSI 服务,单击“iSCSI target server”服务名称后面的“Enable”链接。之后,“iSCSI target server”状态应变为“Enabled ”。

ietd 程序将实现 iSCSI Enterprise Target 软件的用户级部分,以便在 Linux 上构建 iSCSI 存储系统。启用 iSCSI target 之后,我们应该能够通过 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 Storage Control Center 并转到 [System] / [Network Setup] 来完成网络访问配置。通过页面底部的“Network Access Configuration”部分,管理员可以设置网络和/或主机以允许其访问 Openfiler appliance 导出的资源。就本文而言,我们希望单独添加两个 Oracle RAC 节点,而不是允许整个 192.168.2.0 网络访问 Openfiler 资源。

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

记住,您要为集群中的每个 RAC 节点输入专用 网络 (eth1 ) 的 IP 地址,这一点很重要。

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

物理存储

在本节中,我们将创建三个 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 转到 [Volumes] / [Block Devices]:

对物理磁盘进行分区 
我们要执行的第一步是在 /dev/sdb 内置硬盘上创建一个主分区。单击 /dev/sdb 链接,我们会看到“Edit”或“Create”选项,分别用于编辑和创建分区。由于我们将创建一个跨整个磁盘的主分区,因此可以将大多数选项保留为默认设置,唯一的修改是将“Partition Type ”由“Extended partition”更改为“Physical volume ”。下面是我为了在 /dev/sdb 上创建主分区而指定的值:
模式: Primary
分区类型: Physical volume
开始柱面: 1
结束柱面: 8924
现在,大小将显示 68.36 GB。要接受该设置,单击“Create”按钮。这将在我们的内置硬盘上生成一个新的分区 (/dev/sdb1 ):

  
图 9 :对物理卷进行分区

卷组管理

下一步是创建卷组 。我们将创建一个名为 racdbvg 的卷组,其中包含新创建的主分区。从 Openfiler Storage Control Center 中转到 [Volumes] / [Volume Groups]。我们将看到所有现有的卷组,或者什么也看不到(我们的情况就是这样)。在 Volume Group Management 屏幕中,输入新卷组的名称 (racdbvg ),单击 /dev/sdb1 前面的复选框以选中该分区,最后单击“Add volume group”按钮。之后,我们会看到一个列表,其中显示出我们新创建的这个名为“racdbvg ”的卷组:
 逻辑卷

现在,我们可以在新创建的卷组 (racdbvg ) 中创建三个逻辑卷。从 Openfiler Storage Control Center 中转到 [Volumes] / [Add Volume]。我们将看到新创建的卷组 (racdbvg ) 及其块存储统计信息。该屏幕底部还提供了一个选项,用于在选定的卷组中创建一个新卷 —(在“racdbvg”中创建一个卷) 。使用该屏幕创建以下三个逻辑 (iSCSI) 卷。在创建每个逻辑卷之后,应用程序将转至“Manage Volumes”屏幕。然后,您需要单击后退到“Add Volume”选项卡以创建下一个逻辑卷,直至三个 iSCSI 卷全部创建完毕:

iSCSI / 逻辑卷
卷名卷描述所需空间 (MB)文件系统类型
racdb-crs1racdb - ASM CRS Volume 12,208iSCSI
racdb-data1racdb - ASM Data Volume 133,888iSCSI
racdb-fra1racdb - ASM FRA Volume 133,888iSCSI

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

iSCSI 目标

现在,我们有了三个 iSCSI 逻辑卷。但是,为了使 iSCSI 客户端可以访问这些逻辑卷,首先需要为这三个卷中的每个卷创建一个 iSCSI 目标。每个 iSCSI 逻辑卷将映射 到一个特定的 iSCSI 目标,并将为两个 Oracle RAC 节点授予对该目标的相应网络访问权限。对于本文,在 iSCSI 逻辑卷和 iSCSI 目标之间将会有一一映射的关系。

创建和配置 iSCSI 目标的过程包括三步:创建一个唯一的目标 IQN(实质上是新的 iSCSI 目标的通用名称),将上一节中创建的一个 iSCSI 逻辑卷映射到新创建的 iSCSI 目标,最后,授予两个 Oracle RAC 节点访问该新 iSCSI 目标的权限。请注意,需要对上一节中创建的三个 iSCSI 逻辑卷中的每个 卷都执行一次此过程。

对于本文,下表列出了新的 iSCSI 目标名称(目标 IQN)及其将映射到的 iSCSI 逻辑卷:

iSCSI 目标/逻辑卷映射
目标 IQNiSCSI 卷名卷描述
iqn.2006-01.com.openfiler:racdb.crs1racdb-crs1racdb - ASM CRS Volume 1
iqn.2006-01.com.openfiler:racdb.data1racdb-data1racdb - ASM Data Volume 1
iqn.2006-01.com.openfiler:racdb.fra1racdb-fra1racdb - ASM FRA Volume 1

现在我们来创建三个新的 iSCSI 目标 — 为每个 iSCSI 逻辑卷创建一个。下面举例说明通过创建 Oracle Clusterware/racdb-crs1 目标 ( iqn.2006-01.com.openfiler:racdb.crs1 ) 来创建新的 iSCSI 目标时所需执行的三个步骤。这个三步过程需要对上表中列出的三个新 iSCSI 目标中的每一个都重复执行一遍。

创建新目标 IQN

从 Openfiler Storage Control Center 中转到 [Volumes] / [iSCSI Targets]。确保选择了灰色子选项卡“Target Configuration”。您可在此选项卡页中创建一个新的 iSCSI 目标。系统会自动生成一个默认值,作为新 iSCSI 目标的名称(常称为“目标 IQN”)。目标 IQN 的一个示例是“iqn.2006-01.com.openfiler:tsn.ae4683b67fd3 ”:


  

我喜欢用更具含义的字串来替换这个默认目标 IQN 最后一段。对于第一个 iSCSI 目标(Oracle Clusterware/racdb-crs1),我将这样来修改默认的目标 IQN:将字符串“tsn.ae4683b67fd3 ”替换为“racdb.crs1 ”,如下图 所示:

对新的目标 IQN 满意之后,单击“Add”按钮。这将会创建一个新的 iSCSI 目标,然后会出现一个页面,您可以在该页面中修改新 iSCSI 目标的一系列设置。对于本文,无需更改新 iSCSI 目标的任何设置。

LUN 映射

创建新的 iSCSI 目标之后,下一步是将相应的 iSCSI 逻辑卷映射到该目标。在“Target Configuration”子选项卡下,验证在“Select iSCSI Target”部分中选择了正确的 iSCSI 目标。如果不是这样,使用下拉菜单选择正确的 iSCSI 目标,然后单击“Change”按钮。

接下来,单击名为“LUN Mapping”的灰色子选项卡(在“Target Configuration”子选项卡旁)。找到相应的 iSCSI 逻辑卷(本例中为 /dev/racdbvg/racdb-crs1 ),然后单击“Map”按钮。无需更改此页面中的任何设置。对卷 /dev/racdbvg/racdb-crs1单击“Map”按钮后,您的屏幕应如下图所示:

网络 ACL

需要先授予 iSCSI 客户端相应的权限,它才能访问新创建的 iSCSI 目标。在前面,我们已通过 Openfiler 对两个主机(Oracle RAC 节点)进行网络访问配置 。这两个节点需要通过存储(专用)网络访问新的 iSCSI 目标。现在,我们需要授予这两个 Oracle RAC 节点访问新 iSCSI 目标的权限。

单击名为“Network ACL”的灰色子选项卡(在“LUN Mapping”子选项卡旁)。对当前的 iSCSI 目标,将两个主机的“Access”值由“Deny”更改为“Allow”,然后单击“Update”按钮。

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

在 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 启动器软件。

安装 iSCSI(启动器)服务

就 Oracle Enterprise Linux 5.4 来说,默认情况下不会安装 Open-iSCSI iSCSI 软件启动器。该软件包含在 1 号 CD 上的iscsi-initiator-utils 程序包中。要确定该程序包是否已安装(大多数情况下没有安装),在两个 Oracle RAC 节点上执行以下命令:

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

如果 iscsi-initiator-utils 程序包未安装,将 1 号 CD 加载到每个 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}) "| grep iscsi-initiator-utils
iscsi-initiator-utils-6.2.0.871-0.10.el5 (x86_64)  

配置 iSCSI(启动器)服务

验证 iscsi-initiator-utils 程序包已经安装到两个 Oracle RAC 节点之后,启动 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   

如果此时更新了openfiler服务器上的资源配置,可以使用如下命令更新相关配置

iscsiadm -m node -T iqn.2006-01.com.openfiler:RACDBcrs1 -p 192.168.0.201 -R 

配置自动登录

下一步是确保在计算机引导(或 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

使用上述 ls 命令的输出结果,我们可以建立以下当前映射:

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 。由于您无法预测重新引导后的 iSCSI 目标映射,依赖于使用本地 SCSI 设备名称是不现实的。

我们需要的是可引用的一致的设备名称(即 /dev/iscsi/crs1 ),该设备名称在重新引导后将始终指向相应的 iSCSI 目标。这就是引入名为 udev 的动态设备管理 工具的原因。 udev 提供了一个动态设备目录,使用一组可配置的规则通过符号链接指向实际设备。当 udev 收到设备事件(例如,客户端登录到 iSCSI 目标)时,就会根据 sysfs 中提供的可用设备属性匹配其配置好的规则以便识别设备。匹配规则可以提供其他设备信息或指定设备节点名和多个符号链接名,并指示 udev 运行其他程序(例如,一个 SHELL 脚本)作为设备事件处理过程的一部分。

第一步是创建一个新的规则文件 。该文件将命名为 /etc/udev/rules.d/55-openiscsi.rules ,并且只包含一行用于接收我们感兴趣事件的名称=值对。它还将定义一个调出 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

参考至:http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-083834-zhs.html#Network_Access_Configuration
             http://jeremiah.blog.51cto.com/539865/278107
             http://baike.baidu.com/view/120148.htm

免责声明:文章转载自《(转)利用openfiler实现iSCSI》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于生产环境linux系统中的wheel用户组token解决前后端分离认证和跨域问题和JWT的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

rsync的相关使用,参数设置。

前期拷贝文件一直用scp,其实也绝的蛮好用的,最近想拷贝一份脚本到服务器,本地是用python -m在脚本目录创建了.venv的Python运行环境文件。 但经过多次测试,该环境想直接拷贝到服务器上面使用无法实现,只能曲线服务器上还是用virtualenvwrapper的虚拟环境。 所以文件传输到服务器的过程中,我想过滤.venv文件,发现scp无此功能,...

Redhat 5上OPENLDAP的安装备份和恢复

1. 安装 1.1. 安装环境 查看当前操作系统版本: [root@vmw9181-app ~]# cat /etc/issue Red Hat Enterprise Linux Server release 5.3 (Tikanga) 1.2. 安装openldap-*包 使用yum源安装openldap包 [root@vmw9181-app yum....

源码安装LNMP与搭建Zabbix

系统环境:CentOS release 6.5 (Final) 搭建Zabbix 3.0对PHP环境要求>= 5.4 一、下载NMP的软件包: N:wget http://nginx.org/download/nginx-1.8.0.tar.gz P:wget http://cn2.php.net/distributions/php-5.6.28.t...

Logical Databases逻辑数据库

主要组成部分... 300 结构(Structure)... 301 选择(Selections)... 302 数据库程序(Database program)... 305 LDB程序结构... 307 FORM PUT_XXX性能问题... 309 GET_EVENT内表... 309 报表程序的LDB事件... 310 GET事件... 310 中...

vxworks固件分析

前言 vxworks 的固件分析流程 1.用binwalk查看固件基本信息并解压固件 2.获取固件相关信息, cpu架构,大小端 3.确定固件的加载地址 4.用IDA加载固件,并修复符号表 5. 分析固件 实战分析 一道CTF题 分析固件 用到的例子 http://www.icsmaster.org/wp-content/uploads/2018/01/...

备战秋招[四]-复位

欢迎关注个人公众号摸鱼范式------------------------------------------ 版权声明: 本文作者: 烓围玮未 首发于知乎专栏:芯片设计进阶之路 转发无需授权,请保留这段声明。 ------------------------------------------ 复位 首先上思维导图: 如果要问“芯片中怎么复位才对?”...