- 浏览: 4411627 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
iSCSI概述
iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet Small Computer System Interface)。
Internet 小型计算机系统接口(iSCSI)是一种基于 TCP/IP的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。
SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI总线连接。iSCSI的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装 SCSI 命令,且运行在 TCP 上。
iSCSI(Internet SCSI)是2003年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项
bcm5722 ISCSI网卡标准,用于将SCSI数据块映射成以太网数据包。SCSI(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。从根本上说,iSCSI协议是一种利用IP网络来传输潜伏时间短的SCSI数据块的方法,ISCSI使用以太网协议传送SCSI命令、响应和数据。ISCSI可以用我们已经熟悉和每天都在使用的以太网来构建IP存储局域网。通过这种方法,ISCSI克服了直接连接存储的局限性,使我们可以跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量。
iSCSI的工作过程
当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI initiator层被封装成ISCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI target层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI target层时被封装成ISCSI响应PDU,通过TCP/IP网络传送给主机的ISCSI initiator层,iSCSI initiator会从ISCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。
iSCSI 启动器
从本质上说,iSCSI 启动器是一个客户端设备,它连接到服务器提供的某一服务,并发起对该服务的请求。如果利用iscsi创建RAC,iSCSI 启动器软件需要安装在每个 Oracle RAC 节点上。
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 目标。
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-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 )。“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 目标/逻辑卷映射 | ||
目标 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 目标 ( 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})\n"| 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})\n"| 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
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Linux OOM机制介绍
2018-06-06 11:27 3470Linux系统运行过程中,有时候会在message中看 ... -
Linux启动过程--从引导说起
2016-09-23 13:49 1179Linux的引导过程是一个用来初始化系统的程序。它包含了在打 ... -
基于案例学SQL优化第5周脚本
2015-04-12 19:35 0===============BEGIN=========== ... -
重启linux network服务/etc/resolv.conf信息丢失的解决方案
2014-11-13 13:38 3119修改/etc/resolv.conf,修改后重启服务 ser ... -
linux sudo 命令
2014-11-04 15:01 1332“Sudo”是Unix/Linux平台上的一个非常有用的工具 ... -
linux sudo,su和打开终端速度很慢
2014-11-04 09:42 4287一、症状sudo指令执行速度很慢,例如:sudo -u ro ... -
Linux NFS服务器的安装与配置
2014-10-15 00:00 1011一、NFS服务简介 N ... -
DISPLAY变量和xhost(原创)
2014-10-14 16:58 60592DISPLAY 在Linux/Unix类操作系统上, D ... -
Linux NTP配置详解 (Network Time Protocol)
2014-10-02 21:49 18510Network Time Protocol (NTP) ... -
Linux下DNS服务器的设置
2014-10-02 21:43 1468环境:要设的DNS机子 ... -
nslookup工具的使用方法
2014-10-02 21:35 6924配置好DNS服务器,添加 ... -
ntpd与ntpdate的区别
2014-10-02 17:57 1146之前配置ntpd的时候搜到一句话,印象很深刻,也觉得很有标题 ... -
认识/etc/fstab和/etc/mtab文件
2014-09-20 12:27 3167fstab fs tab(描述 各 ... -
扩展Linux swap分区 两种方法
2014-09-16 17:23 1548先来查询一下系统的swap [root@localhost ... -
vim切换tab标签快捷键
2014-06-22 17:16 19489这几天在学习VIM,在WIN7下装了GVIM,在折腾好配置文 ... -
如何看linux是32位还是64位
2014-04-27 14:09 1684查看linux机器是32位还是64位的方法:方法一:file ... -
iSCSI的配置(target/initiator)
2014-04-27 13:45 54497iSCSI 是一种 SAN的设备而 SAN的设备主要是提供 ... -
linux kudzu作用与操作方法(原创)
2013-08-29 22:03 2877概述kudzu是在linux系统启动时用来检测硬件的,一般在 ... -
Linux下获取详细硬件信息的工具:Dmidecode命令详解
2013-08-29 21:52 2556Dmidecode 这款软件允许 ... -
DAS,NAS,SAN和ISCSI存储架构介绍(原创)
2013-06-23 10:22 16153DASDAS是Direct Attached Stor ...
相关推荐
通过上述步骤,你便成功地利用Openfiler搭建了一个软iSCSI服务,为ESX3提供了存储解决方案。请注意,根据实际情况,你可能需要调整某些设置以满足特定需求。此外,遇到问题时,不要忘记检查官方文档或社区论坛以获取...
傻瓜式利用OpenFiler部署iSCSI网络存储
ISCSI (Internet Small Computer System Interface) 是一种网络协议,它允许计算机通过IP网络连接到存储设备,实现数据的块级传输。Openfiler 是一个开源的网络存储管理平台,支持多种存储服务,包括ISCSI,NFS,...
关于Openfiler的iSCSI使用-capture from web
本篇文章将详细阐述如何利用 openfiler 作为文件服务器,实现 ISCSI 共享存储,并介绍 Windows 和 Linux 客户端如何连接到此共享存储。 1. **登录 openfiler 界面** - 首先,通过 Web 浏览器访问 openfiler 的管理...
openfiler+iscsi+设置图文教程
本文将详细介绍如何利用OpenFiler构建iSCSI网络共享存储。 #### 二、iSCSI网络共享存储的基本概念 iSCSI(Internet Small Computer System Interface)是一种基于TCP/IP协议的标准,用于在网络上进行数据块级传输...
OpenFiler是一款功能强大的开源网络存储管理解决方案,它支持多种存储协议,包括iSCSI (Internet Small Computer System Interface)。iSCSI是一种网络协议,它允许通过IP网络将SCSI指令传输到远程存储设备,从而实现...
### OpenFiler 2.3 iSCSI 设置图文教程知识点详解 ...通过以上步骤,您可以成功地在OpenFiler 2.3中配置iSCSI,并实现与其他系统的数据共享。这不仅提高了存储资源的利用率,还增强了数据的安全性和可靠性。
分配卷给客户端主要通过iSCSI目标实现。在“Volumes”页面,点击“iSCSI Targets”,添加新的iSCSI目标并关联卷。更新设置,如在“Settings for target:iqn.2006-01.com.openfiler:tsn.67a77fc47435”中,然后映射卷...
虚拟化基础架构之使用openfiler搭建iSCSI网络共享存储.doc
OpenFiler 安装与 iSCSI 配置及存储共享 OpenFiler 是一个基于 Linux 的开源存储解决方案,提供了多种存储协议,包括 iSCSI、NFS、CIFS 等。下面我们将详细介绍 OpenFiler 的安装、iSCSI 配置及存储共享。 一、...
### OpenFiler 配置 iSCSI 网络存储详解 #### 一、环境配置与准备工作 在开始配置之前,我们需要确保环境已准备好。本案例中,OpenFiler 服务器部署于实体机上,其版本为 2.3 (64 位),拥有 IP 地址 192.168.1.100...
如果ESX Server没有共享存储做基础,就会失色不少,使用网络的共享存储之后,我们就可享用HA、...如果条件有限,可以考虑采用软件实现共享存储功能,下面以 Openfiler为例,配置iSCSI网络磁盘,并链接到ESX Server上。
配置Openfiler2.99成为iSCSI存储 在本文中,我们将详细介绍如何配置Openfiler2.99成为iSCSI存储。iSCSI是一种基于TCP/IP的 SAN(存储区域网络)协议,允许计算机通过以太网连接到存储设备。Openfiler是一个开源的...
openfiler iSCSI Storage - 2_Configuration
本文将深入探讨如何利用开源软件openfiler为Vmware构建ISCSI存储设备,以实现手动部署高效率且可靠的存储架构。 首先,让我们了解什么是openfiler。Openfiler是一款基于Linux的网络存储管理系统,它提供了包括块...