Open HA Cluster 安装指南

Procedure如何使用 COMSTAR 和单路径配置 iSCSI 存储

执行此过程可在本地连接的存储上配置 OpenSolaris 通用多协议 SCSI 目标 (Common Multiprotocol SCSI TARget, COMSTAR),以在多个群集节点间共享访问权。此过程在 iSCSI 启动器和 iSCSI 目标之间使用单路径,同时还配置镜像 ZFS 存储池以提供高可用性。


注 –

如果在 iSCSI 启动器和 iSCSI 目标之间使用多路径,请转至如何使用 COMSTAR 和多路径配置 iSCSI 存储


开始之前

确保存储配置满足 Open HA Cluster 2009.06 要求。请参见iSCSI 存储

  1. 在每个节点上,执行下表中列出的 "Configuring an iSCSI Storage Array With COMSTAR (Task Map)"(“使用 COMSTAR 配置 iSCSI 存储阵列(任务图)”)中的所需过程,同时遵循特殊说明。

    任务 

    文档 

    特殊说明 

    1. 执行基本设置。 

    Getting Started with COMSTAR(COMSTAR 入门)

    要创建 SCSI 逻辑单元,请执行 "How to Create a Disk Partition SCSI Logical Unit"(“如何创建磁盘分区 SCSI 逻辑单元”)过程。

    如果对 sbdadm create-lu 命令指定整个磁盘而不是某个片,请随后运行 cldevice clear 命令以清除 DID 名称空间。

    2. 配置 iSCSI 目标端口。 

    How to Configure iSCSI Target Ports(如何配置 iSCSI 目标端口)

    在每个节点上为每个专用网络适配器创建目标。 

    3. 配置 iSCSI 目标。 

    How to Configure an iSCSI Target for Discovery(如何配置 iSCSI 目标以进行搜索)

    使用静态搜索或 SendTargets。请勿使用动态搜索。 

    4. 使逻辑单元可用。 

    How to Make Logical Units Available for iSCSI and iSER(如何使逻辑单元可用于 iSCSI 和 iSER)

     

    5. 配置启动器系统以便访问目标存储。 

    How to Configure an iSCSI Initiator(如何配置 iSCSI 启动器)

    • 将节点的 clprivnet IP 地址指定为目标系统。要确定 clprivnet 接口的 IP 地址,请运行以下命令。输出内容将类似如下:


      phys-schost# ifconfig clprivnet0
          clprivnet0:
          flags=1009843<UP,BROADCAST,RUNNING,MULTICAST,\
          MULTI_BCAST,PRIVATE,IPv4>
          mtu 1500 index 5
          inet 172.16.4.1 netmask fffffe00 broadcast \
          172.16.5.255
          ether 0:0:0:0:0:1 
    • 完成后,在每个节点上更新并填充全局设备名称空间。


      phys-schost# scdidadm -r
      phys-schost# cldevice populate
      

  2. 对每个新创建的设备禁用隔离功能。


    phys-schost# /usr/cluster/bin/cldevice set -p default_fencing=nofencing-noscrub device
    

    或者,对群集中的所有设备全局禁用隔离功能。如果群集中没有要用作法定设备的共享设备,请执行此操作。


    phys-schost# /usr/cluster/bin/cluster set -p global_fencing=nofencing-noscrub
    
  3. 列出群集中设备的 DID 映射。

    输出内容将类似如下,其中显示了从每个节点到每个设备的路径:


    phys-schost# /usr/cluster/bin/cldevice list -v
    DID Device          Full Device Path
    ----------          ----------------
    …
    d3                  phys-schost-1:/dev/rdsk/c14t1d0s4
    d3                  phys-schost-2:/dev/rdsk/c14t1d0s4
    d4                  phys-schost-1:/dev/rdsk/c15t8d0s4
    d4                  phys-schost-2:/dev/rdsk/c15t8d0s4
    …
  4. 从一个节点中,利用在每个节点上创建的 DID 设备创建镜像 ZFS 存储池。

    对于设备路径名,请将 /dev/did/dsk/、DID 设备名称和片 s2 组合在一起。


    phys-schost# zpool create pool mirror /dev/did/dsk/dNs2 /dev/did/dsk/dYs2
    
  5. 将镜像 ZFS 存储池配置为 HAStoragePlus 资源。


    phys-schost# /usr/cluster/bin/clresourcegroup resourcegroup
    phys-schost# /usr/cluster/bin/clresourcetype register HAStoragePlus
    phys-schost# /usr/cluster/bin/clresource create -g resourcegroup -t HASToragePlus \
    -p Zpools=pool resource
    phys-schost# /usr/cluster/bin/clresourcegroup manage resourcegroup
    phys-schost# /usr/cluster/bin/clresourcegroup online resourcegroup
    

示例 3–2 使用 COMSTAR 和单路径配置 iSCSI 存储

本示例说明了配置基于 COMSTAR 的 iSCSI 存储和镜像 ZFS 存储池 zpool-1 所涉及的步骤。节点 phys-schost-1 的本地连接磁盘是 /dev/rdsk/c1t0d0s4,节点 phys-schost-2 的本地连接磁盘是 /dev/rdsk/c1t8d0s4clprivnet0 接口的 IP 地址是 172.16.4.1

配置了 iSCSI 目标的静态搜索。对 phys-schost-1 执行的配置 iSCSI 启动器和目标的过程也将对 phys-schost-2 执行。devfsadm 命令将磁盘连接为 iSCSI 目标后,在启动器端 /dev/rdsk/c1t0d0s4 会变为 /dev/rdsk/c14t0d0s4,而 /dev/rdsk/c1t8d0s4 会变为 /dev/rdsk/c15t8d0s4

群集不使用任何共享磁盘,因此对于群集中的所有磁盘,隔离功能处于全局关闭状态。使用 HAStoragePlus 资源 hasp-rs(镜像 ZFS 存储池 zpool-1)配置了资源组 rg-1


Enable and verify the STMF service
phys-schost-1# svcadm enable stmf
phys-schost-1# svcs stmf
online    15:59:53 svc:/system/stmf:default
Repeat on phys-schost-2

Create and verify disk-partition SCSI logical units on each node
phys-schost-1# sbdadm create-lu /dev/rdsk/c1t0d0s4
Created the following LU:

              GUID                    DATA SIZE           SOURCE
--------------------------------  -------------------  ------------------
600144f05b4c460000004a1d9dd00001      73407800320      /dev/rdsk/c1t0d0s4
root@phys-schost-1:#
-------------------------

phys-schost-2# sbdadm create-lu /dev/rdsk/c1t8d0s4
Created the following LU:

              GUID                    DATA SIZE           SOURCE
--------------------------------  -------------------  ------------------
600144f07d15cd0000004a202e340001      73407800320      /dev/rdsk/c1t8d0s4
root@phys-schost-2:#
-------------------------

Enable the iSCSI target SMF service
phys-schost-1# svcadm enable -r svc:/network/iscsi/target:default
phys-schost-1# svcs -a | grep iscsi
online  14:21:25 svc:/network/iscsi/target:default
Repeat on phys-schost-2

Configure each iSCSI target for static discovery
phys-schost-1# itadm create-target
Target: iqn.1986-03.com.sun:02:97c1caa8-5732-ec53-b7a2-a722a946fead
successfully created
phys-schost-1# itadm list-target
TARGET NAME                                                  STATE   SESSIONS
iqn.1986-03.com.sun:02:97c1caa8-5732-ec53-b7a2-a722a946fead  online  0
Repeat on phys-schost-2 for the other iSCSI target

Make the logical units available
phys-schost-1# sbdadm list-lu
phys-schost-1# stmfadm add-view 600144f05b4c460000004a1d9dd00001
Repeat on phys-schost-2 for the other logical unit's GUID

Configure iSCSI initiators to access target storage
phys-schost-1# iscsiadm modify discovery --static enable
phys-schost-1# iscsiadm list discovery
Discovery:
Static: enabled
Send Targets: disabled
iSNS: disabled
phys-schost-1# ifconfig clprivnet0
    clprivnet0:
…
    inet 172.16.4.1 netmask fffffe00 broadcast 172.16.5.255
…
phys-schost-1# iscsiadm add static-config \
iqn.1986-03.com.sun:02:97c1caa8-5732-ec53-b7a2-a722a946fead,172.16.4.1
phys-schost-1# iscsiadm list static-config
Static Configuration Target:
iqn.1986-03.com.sun:02:97c1caa8-5732-ec53-b7a2-a722a946fead,172.16.4.1:3260
phys-schost-1# devfsadm -i iscsi
phys-schost-1# format -e
phys-schost-1# iscsiadm list target
Target: iqn.1986-03.com.sun:02:97c1caa8-5732-ec53-b7a2-a722a946fead
        Alias: -
        TPGT: 1
        ISID: 4000002a0000
        Connections: 1
Repeat on phys-schost-2 for this target
Repeat on both nodes for the other target

Update and populate the global-devices namespace on each node
phys-schost-1# scdidadm -r
phys-schost-1# cldevice populate
Repeat on phys-schost-2

Disable fencing for all disks in the cluster
phys-schost-1# /usr/cluster/bin/cluster set -p global_fencing=nofencing-noscrub

Create a mirrored ZFS storage pool
phys-schost-1/usr/cluster/bin/cldevice list -v
DID Device          Full Device Path
----------          ----------------
…
d3                  phys-schost-1:/dev/rdsk/c14t0d0s4
d3                  phys-schost-2:/dev/rdsk/c14t0d0s4
d4                  phys-schost-1:/dev/rdsk/c15t8d0s4
d4                  phys-schost-2:/dev/rdsk/c15t8d0s4
…
phys-schost-1# zpool create zpool-1 mirror /dev/did/dsk/d3s2 /dev/did/dsk/d4s2

Configure the mirrored ZFS storage pool as an HAStoragePlus resource
phys-schost# /usr/cluster/bin/clresourcegroup rg-1
phys-schost# /usr/cluster/bin/clresourcetype register HAStoragePlus
phys-schost# /usr/cluster/bin/clresource create -g rg-1 -t HAStoragePlus \
-p Zpools=zpool-1 hasp-rs
phys-schost# /usr/cluster/bin/clresourcegroup manage rg-1
phys-schost# /usr/cluster/bin/clresourcegroup online rg-1

接下来的操作

如果要使用 IP 安全体系结构 (IPsec) 在群集互连上提供安全的 TCP/IP 通信,请转至如何对群集专用互连配置 IP 安全体系结构 (IPsec)

否则,配置要在群集上运行的数据服务。请转至配置数据服务