位置: 编程技术 - 正文

利用openfiler实现iSCSI原理分析(openfiledialog怎么用)

编辑:rootadmin

推荐整理分享利用openfiler实现iSCSI原理分析(openfiledialog怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:openfromfile方法,openfiledialog怎么用,open file for write,open file for write,openfiledialog怎么用,openfilename使用,open_file(),openfilename使用,内容如对您有帮助,希望把文章链接给更多的朋友!

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)是年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项bcm 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 目标。openfileropenfiler是一个基于浏览器的网络存储管理工具。来自于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.4iSCSI客户端:open-iscsi-2.0-

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

服务

在浏览器输入 开启Openfiler的Web界面,这里..2.为openfiler系统的ip,为服务端口。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 ) 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 节点,而不是允许整个 ..2.0 网络访问 Openfiler 资源。

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

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

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

物理存储

在本节中,我们将创建三个 iSCSI 卷,以供集群中的两个 Oracle RAC 节点用作共享存储。这将在连接到 Openfiler 服务器的内置 GB K SCSI 硬盘驱动器上执行多个步骤。

存储设备(如内置 IDE/SATA/SCSI/SAS 磁盘、存储阵列、外置 USB 驱动器、外置 FireWire 驱动器或者任何其他存储设备)可以连接到 Openfiler 服务器,并供客户端使用。如果在操作系统级发现了这些设备,就可以使用 Openfiler Storage Control Center 设置和管理所有这些存储设备。

在本例中,我们有一个 GB 的内置 SCSI 硬盘驱动器用于满足共享存储之需。在 Openfiler 服务器上,该驱动器显示为 /dev/sdb (MAXTOR ATLASK2_SCA)。要看到该驱动器并启动 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结束柱面: 现在,大小将显示 . 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 ,iSCSIracdb-data1racdb - ASM Data Volume ,iSCSIracdb-fra1racdb - ASM FRA Volume ,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 目标/逻辑卷映射目标 IQNiSCSI 卷名卷描述iqn.-.com.openfiler:racdb.crs1racdb-crs1racdb - ASM CRS Volume 1iqn.-.com.openfiler:racdb.data1racdb-data1racdb - ASM Data Volume 1iqn.-.com.openfiler:racdb.fra1racdb-fra1racdb - ASM FRA Volume 1

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

创建新目标 IQN

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

我喜欢用更具含义的字串来替换这个默认目标 IQN 最后一段。对于第一个 iSCSI 目标(Oracle Clusterware/racdb-crs1),我将这样来修改默认的目标 IQN:将字符串“tsn.aebfd3”替换为“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 卷

利用openfiler实现iSCSI原理分析(openfiledialog怎么用)

在集群中的两个 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-utilsiscsi-initiator-utils-6.2.0.-0..el5 (x_)

配置 iSCSI(启动器)服务

验证 iscsi-initiator-utils 程序包已经安装到两个 Oracle RAC 节点之后,启动 iscsid 服务,并使其在系统引导时自动启动。我们还将配置 iscsi 服务在系统启动时自动启动,自动登录到所需的 iSCSI 目标。

[root@racnode1 ~]# service iscsid startTurning 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..2.:,1 iqn.-.com.openfiler:racdb.crs..2.:,1 iqn.-.com.openfiler:racdb.fra..2.:,1 iqn.-.com.openfiler:racdb.data1

手动登录到 iSCSI 目标

此时,iSCSI 启动器服务已经启动,每个 Oracle RAC 节点都能够从网络存储服务器中发现可用目标。下一步是手动登录每个可用目标,这可以使用 iscsiadm 命令行接口完成。这需要在两个 Oracle RAC 节点上运行。注意,我必须指定网络存储服务器的 IP 地址而非其主机名 (openfiler1-priv) — 我认为必须这么做,因为上述发现使用 IP 地址显示目标。

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

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

iscsiadm -m node -T iqn.-.com.openfiler:RACDBcrs1 -p ..0. -R

配置自动登录

下一步是确保在计算机引导(或 iSCSI 启动器服务启动/重启)时,客户端将自动登录到上面列出的每个目标。如同上面描述的手动登录过程,在两个 Oracle RAC 节点上执行以下命令:

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

创建永久性本地 SCSI 设备名称

在本节中,我们将逐步为每个 iSCSI 目标名称创建永久性本地 SCSI 设备名称。我们将使用 udev 来完成该任务。拥有一致的本地 SCSI 设备名称及其映射到的 iSCSI 目标,有助于在配置 ASM 时能够区分三个卷。尽管并未严格要求这么做(因为我们将对所有卷使用 ASMLib 2.0),这提供了一种自我文档编制的方法,有助于快速确定每个 iSCSI 卷的名称和位置。

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

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

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

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

但是,每次重新引导 Oracle RAC 节点时,该映射都可能有所不同。例如,重新引导之后,可能会决定将 iSCSI 目标 iqn.-.com.openfiler:racdb.crs1 映射到本地 SCSI 设备 /dev/sdc。由于您无法预测重新引导后的 iSCSI 目标映射,依赖于使用本地 SCSI 设备名称是不现实的。

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

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

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

# /etc/udev/rules.d/-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.shBUS=${1}HOST=${BUS%%:*} [ -e /sys/class/iscsi_host ] || exit 1file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"target_name=$(cat ${file})# This is not an open-scsi driveif [ -z "${target_name}" ]; then exit 1fi# Check if QNAP drivecheck_qnap_target_name=${target_name%%:*}if [ $check_qnap_target_name = "iqn.-.com.qnap" ]; then target_name=`echo "${target_name%.*}"`fiecho "${target_name##*.}"

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

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

既然已经配置了 udev,下面将在两个 Oracle RAC 节点上重新启动 iSCSI 服务:

[root@racnode1 ~]# service iscsi stopLogging out of session [sid: 6, target: iqn.-.com.openfiler:racdb.crs1, portal: ..2.,]Logging out of session [sid: 7, target: iqn.-.com.openfiler:racdb.fra1, portal: ..2.,]Logging out of session [sid: 8, target: iqn.-.com.openfiler:racdb.data1, portal: ..2.,]Logout of [sid: 6, target: iqn.-.com.openfiler:racdb.crs1, portal: ..2.,]: successfulLogout of [sid: 7, target: iqn.-.com.openfiler:racdb.fra1, portal: ..2.,]: successfulLogout of [sid: 8, target: iqn.-.com.openfiler:racdb.data1, portal: ..2.,]: successfulStopping iSCSI daemon: [ OK ][root@racnode1 ~]# service iscsi startiscsid dead but pid file existsTurning off network shutdown. Starting iSCSI daemon: [ OK ] [ OK ]Setting up iSCSI targets: Logging in to [iface: default, target: iqn.-.com.openfiler:racdb.crs1, portal: ..2.,]Logging in to [iface: default, target: iqn.-.com.openfiler:racdb.fra1, portal: ..2.,]Logging in to [iface: default, target: iqn.-.com.openfiler:racdb.data1, portal: ..2.,]Login to [iface: default, target: iqn.-.com.openfiler:racdb.crs1, portal: ..2.,]: successfulLogin to [iface: default, target: iqn.-.com.openfiler:racdb.fra1, portal: ..2.,]: successfulLogin to [iface: default, target: iqn.-.com.openfiler:racdb.data1, portal: ..2.,]: successful [ OK ]

下面,我们来看一下我们的辛勤工作是否得到了回报:

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

上面的清单显示, udev 所做的工作正是我们所期待的!现在,我们拥有了一组一致的本地设备名称,可用于引用 iSCSI 目标。例如,我们可以安全地认为设备名称 /dev/iscsi/crs1/part 将始终引用 iSCSI 目标 iqn.-.com.openfiler:racdb.crs1。现在,我们拥有了一致的 iSCSI 目标名称到本地设备名称的映射,如下表所示:

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

linux Apache 环境下安装AWStatsWEB日志分析工具 今天安装了awstats(AWStats是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。),好好折腾了一把,终于搞完了,参考了不少资料,将主要步骤和

ubuntu. root的帐户启用方法 在网上看了半天,自已也没搞成,到后来搞成的时候恍然大悟,也来给菜鸟们分享一下经验原来很简单的,在系统-系统管理-》用户和组里把帐户类型

Ubuntu .下安装 Oracle Java分享教程 下面将给大家介绍如何在Ubuntu操作系统下如何安装Oracle的JavaRuntime和SDK。默认的Ubuntu安装完毕后,系统内会内置一个开源的JavaSE,还有OpenJDK(开放的Java开

标签: openfiledialog怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/362053.html 转载请保留说明!

上一篇:Linux 日期和时间操作详解(linux日期格式)

下一篇:linux Apache 环境下安装AWStatsWEB日志分析工具(linux apache2配置)

  • 房产税从价改从租,多缴税款要加收滞纳金吗
  • 年终奖怎么计税的
  • 建筑企业预交的附加税怎么办
  • 电子税务局自然人如何注册
  • 养老院营利性与非营利如何认定
  • 现代服务业包括哪些行业税率
  • 税收优惠抵扣
  • 进项税额有留底怎么做分录
  • 股东放弃公司债权
  • 房地产开发企业资质等级有几个
  • 委托邮政企业投诉电话
  • 知道销项税怎么算进项
  • 冲减应收帐款分录
  • 固定资产转在建工程
  • 福利费可以用什么科目
  • 津贴补助如何缴纳个税
  • 当月作废的专票需要账务处理吗
  • 代开专用发票缴纳的增值税需要计提吗?
  • 资管新规出台目的
  • 营改增的项目
  • 公司所得税汇算清缴退税流程
  • 合伙项目如何进行分红
  • 4s店上牌费用怎么给
  • 研发费收入属于什么收入
  • 局域网文件共享不稳定
  • 买入投资性房地产的会计处理
  • 公司装修待摊费怎么算
  • 提示内存不足
  • Yii2使用表单上传文件的实例代码
  • thinkphp教程
  • 房地产公司活动方案
  • thinkphp input
  • querywrapper多表联查
  • elementui form rules
  • 端午节发现金怎么说
  • phpcms二次开发教程
  • 开票软件的证书口令是多少
  • syslog使用
  • phpcms文档
  • mongodb基础知识
  • python转换数字
  • 小微企业缴纳增值税的账务处理
  • 转让不动产与销售不符
  • 资产减值损失应计入什么科目
  • 技术服务收入属于销售营业收入吗
  • 金税盘减免税款分录
  • 差旅费涉及的科目
  • 免费样品的好处
  • 2023年职工养老保险缴费标准
  • 银行承兑汇票利息归谁
  • 借方会计科目表
  • 销售如果对待不同客户
  • 目标考核奖金做什么科目
  • 工会经费不够
  • 租赁期限为一年
  • 汽车折旧年限是多久
  • csv数据量太大怎么拆分
  • mysql uuid分页优化
  • win10运行win8程序
  • mac os固件下载
  • ftpr
  • 获取windows的最新信息要跳过吗
  • win7系统中怎样
  • pdf在电脑上打开
  • linux计划任务执行脚本
  • perl ne
  • bootstrap怎么用
  • js中事件的三要素
  • node.js 10实战
  • python中布尔运算
  • 基于stm32的100个毕业设计
  • android floatbutton
  • jquery给table赋值
  • Android mediaplayer 网络超时
  • JavaScript File API实现文件上传预览
  • jquery事件处理有哪些
  • Qt Creater调试时一直出现:“DEBUGGER: Waiting for debug socket connect” 和“DEBUGGER: go to sleep”
  • 光伏发电备案证如何办理
  • 什么是增值税免抵税额
  • 房产税纳税义务时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设