文章
服务器与存储管理
作者:Andrew Ness,2012 年 2 月
本文包括以下主题:
Oracle Solaris 10 和 Oracle Solaris 11 自带了一个光纤通道发起方系统,您可以对它进行配置以便将 Sun ZFS 存储设备提供的光纤通道 (FC) LUN 集成到 Oracle Solaris 环境中。本文介绍如何配置 Oracle Solaris 光纤通道系统以及如何配置 Sun ZFS 存储设备来配置供 Oracle Solaris 服务器访问的 FC LUN。可以使用浏览器用户界面 (BUI) 完成这些配置。
本文做出以下假设:
root 帐户口令。root 帐户口令。为了让 Sun ZFS 存储设备和 Oracle Solaris 服务器彼此标识,每个设备的 FC 全球编号 (WWN) 必须在另一个设备中注册。您必须确定在 FC 交换机上实现的某些形式 FC 区域的 WWN。
主机的 FC WWN 用于向 Sun ZFS 存储设备标识主机,并且需要它来完成本文中的配置过程。
WWN 来自在 Oracle Solaris 主机和 Sun ZFS 存储设备中安装的 FC 主机总线适配器 (HBA)。
为了配置 Oracle Solaris FC 系统,您需要知道 Sun ZFS 存储设备的 WWN。在传统的双结构存储区域网络 (SAN) 中,Sun ZFS 存储设备至少有一个 FC 端口连接到每个结构。因此,您必须至少确定两个 FC WWN。
首先,您需要建立一个到 Sun ZFS 存储设备的管理会话。
https://<ip-address or host name>:215
将显示登录对话框。

图 1. Sun ZFS 存储设备登录
成功登录到 BUI 之后,您可以通过 Configuration 选项卡标识 WWN。

图 2. SAN 的光纤通道端口配置
将显示安装在 Sun ZFS 存储设备中的 FC 端口。由于每个 HBA 通道只有一个已发现的端口,因此这必须是 HBA 通道本身。
在前面的示例中,端口 1 具有 WWN 21:00:00:e0:8b:92:a1:cf,端口 2 具有 WWN 21:01:00:e0:8b:b2:a1:cf。
在每个 FC 端口框右侧的列表框中,应该将 FC 通道端口设置为 Target。如果情况并非如此,则 FC 端口可能用于其他用途。在调查原因之前,请不要更改设置。(一种可能的原因是可能用于了 NDMP 备份。)
如果 Oracle Solaris 主机已经通过相应的电缆连接到 FC 交换机,则使用以下命令来标识 WWN。
root@solaris:~# cfgadm -al -o show_FCP_dev Ap_Id Type Receptacle Occupant Condition [...] c8 fc-fabric connected unconfigured unknown c9 fc-fabric connected unconfigured unknown root@solaris:~#
在该输出中,您需要的控制器号为 c8 和 c9。当端口类型为 fc-fabric 时,您还可以看到两个端口都连接到一台 FC 交换机。接下来,查询这些控制器来确定发现的 WWN。
root@solaris:~# prtconf -vp | grep port-wwn
port-wwn: 210000e0.8b89bf8e
port-wwn: 210100e0.8ba9bf8e
root@solaris:~#
如果正在访问 FC 设备,则以下命令将显示 FC HBA WWN。
root@solaris:~# luxadm -e dump_map /dev/cfg/c8
Pos Port_ID Hard_Ad Port WWN Node WWN Type
0 2000 0 xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx 0x0 (Disk
device)
[...]
3 25600 0 2100000e08b89bf8e 200000e08b89bf8e 0x1f (Unknown
type, Host Bus Adapter)
root@solaris:~#
显示为类型 0x1f 的最后一个条目 (Unknown type, Host Bus Adapter) 在端口 WWN 条目下提供了相应的 WWN。重复此命令,使用在第 1 步中标识的其他控制器替换 /dev/cfg/c8。
c8 具有 WWN 21:00:00:00:e0:8b:89:bf:8e,c9 具有 WWN 21:01:00:e0:8b:a9:bf:8e。然后,可以使用 Sun ZFS 存储设备 HBA 和 Oracle Solaris 主机 HBA WWN 来配置任何 FC 交换机区域。
完成此操作之后,您可以运行以下命令来验证正确的区域:
root@solaris:~# cfgadm -al -o show_FCP_dev c8 c9 Ap_Id Type Receptacle Occupant Condition [...] c8 fc-fabric connected configured unknown c8::210100e08bb2a1cf unknown connected unconfigured unknown c9 fc-fabric connected configured unknown c9::210000e08b92a1cf unknown connected unconfigured unknown root@solaris:~#
现在,您可以看到可由 Oracle Solaris 主机访问的 Sun ZFS 存储设备提供的 WWN。
作为一个统一的存储平台,Sun ZFS 存储设备既支持通过 iSCSI 协议访问数据块协议 LUN,又支持通过光纤通道协议进行同样的访问。这一节讲述如何使用 Sun ZFS 存储设备 BUI 来配置 Sun ZFS 存储设备,使其能够识别 Oracle Solaris 主机并向该主机提供 FC LUN。
在 Sun ZFS 存储设备上创建目标组,以便定义 Oracle Solaris 服务器可通过哪个端口和协议访问提供给它的 LUN。对于此示例,创建 FC 目标组。
执行以下步骤在 Sun ZFS 存储设备上定义 FC 目标组:

图 3. 选择光纤通道端口

图 4. 拖动光纤通道端口条目
targets-n,其中 n 是一个整数。参见图 5 的示例 targets-0。
图 5. 新创建的光纤通道目标组

图 6. 选择 FC 目标组
targets-0,单击 Edit 图标(
图 7. 重命名 FC 目标组
FC-PortGroup 替换 targets-0。在此窗口中,您还可以通过单击所选 WWN 左侧的框来添加第二个 FC 目标端口。在图 7 的示例中,第二个端口标识为 PCIe 1:Port 2。
图 8. 应用了更改的新 FC 目标组
定义 FC 发起方以便允许从一台或多台服务器访问特定卷。应该配置对卷的访问权限,以便允许最少数量的 FC 发起方访问特定卷。如果多个主机可以同时写入一个指定卷并且使用非共享文件系统,则各主机上的文件系统缓存可能出现不一致,最终可能导致磁盘上的映像损坏。一般对于一个卷,只会赋予一个发起方对该卷的访问权限,除非使用的是一种特殊的集群文件系统。
FC 发起方用于从 Sun ZFS 存储设备的角度出发来定义“主机”。在传统的双结构 SAN 中,主机将至少由两个 FC 发起方来定义。FC 发起方定义包含主机 WWN。为了向 Sun ZFS 存储设备标识 Oracle Solaris 服务器,必须在存储设备中注册 Oracle Solaris FC 发起方 WWN,为此要执行以下步骤。

图 9. 选择 SAN 配置
如果已在 FC 交换机上配置了区域,则应显示 Oracle Solaris 主机的 WWN(假设没有为它们指定别名)。

图 10. 新的光纤通道发起方定义
将一些相关 FC 发起方组成逻辑组,这样可以对多个 FC 发起方执行同一个命令,例如,可以使用一个命令对一个组中的所有 FC 发起方分配 LUN 访问权限。对于下面的示例,FC 发起方组将包含两个发起方。注意,在集群中,多个服务器被视作一个逻辑实体,因此发起方组可以包含更多发起方。
执行以下步骤创建一个 FC 发起方组:

图 11. 显示新的 FC 发起方的 Move 图标

图 12. 创建 FC 发起方组
initiators-n,其中 n 是一个整数,如图 13 所示。
图 13. 选择光纤通道发起方组
sol-server 作为该发起方组名称。在此对话框中,您可以通过单击 WWN 左侧的复选框向组中添加其他 FC 发起方。

图 14. 重命名并完成 FC 发起方组

图 15. 完成的 FC 发起方配置
为了对相关卷进行分组,您可以在 Sun ZFS 存储设备中定义一个项目。通过使用项目,可以继承项目所提供文件系统和 LUN 的属性。还可以应用限额和保留。
执行以下步骤创建一个项目:

图 16. 查看项目

图 17. Create Project 对话框

图 18. 显示新项目 sol-project
接下来,您将从一个现有存储资源池中创建一个 LUN,供 Oracle Solaris 服务器访问。在下面的示例中,将创建一个名为 DocArchive1 的精简供应 64 GB LUN。
我们将使用定义 FC 目标组一节中创建的 FC 目标组 FC-PortGroup 来确保可以通过 FC 协议访问该 LUN。将使用定义 FC 发起方组一节中定义的发起方组 sol-server 来确保只有在 sol-server 组中定义的服务器才可以访问该 LUN。(在本例中,该发起方组只包含一个服务器。)
执行以下步骤创建一个 LUN:

图 19. 选择 Shares > Project > LUNs
DocArchive1,Volume size 设置为 64 G,并且选中 Thin provisioned 复选框。将 Target Group 设置为 FC 目标组 FC-PortGroup,将 Initiator Group 设置为 sol-server。将 Volume block size 设置为 32k,因为该卷将保存 Oracle Solaris ZFS 文件系统。
图 20. 新建 LUN 对话框
现在我们已准备好了 LUN,可以通过 FC 发起方组使用它了。接着必须执行以下步骤,配置 LUN 以供 Oracle Solaris 服务器使用:
root@solaris:~# cfgadm -al c8 c9 root@solaris:~# cfgadm -c configure c8::210100e08bb2a1cf root@solaris:~# cfgadm -c configure c9::210000e08b92a1cf root@solaris:~# cfgadm -al -o show_FCP_dev c8 c9 Ap_Id Type Receptacle Occupant Condition c8 fc-fabric connected configured unknown c8::210100e08bb2a1cf,0 disk connected configured unknown c9 fc-fabric connected configured unknown c9::210000e08b92a1cf,0 disk connected configured unknown root@solaris:~#
root@solaris:~# devfsadm -c ssd root@solaris:~# tail /var/adm/messages [...] Nov 30 06:30:00 solaris last message repeated 2 times Nov 30 06:32:22 solaris scsi: [ID 799468 kern.info] ssd42 at scsi_vhci0: name g600144f0f05e906c00004ed6096d0001, bus address g600144f0f05e906c00004ed6096d0001 Nov 30 06:32:22 solaris genunix: [ID 936769 kern.info] ssd42 is /scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001 Nov 30 06:32:22 solaris scsi: [ID 107833 kern.warning] WARNING: /scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001 (ssd42): Nov 30 06:32:22 solaris Corrupt label; wrong magic number Nov 30 06:32:22 solaris genunix: [ID 408114 kern.info] /scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001 (ssd42) online Nov 30 06:32:22 solaris genunix: [ID 834635 kern.info] /scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001 (ssd42) multipath status: degraded, path /pci@1e,600000/SUNW,qlc@2/fp@0,0 (fp1) to target address: w210100e08bb2a1cf,0 is online Load balancing: round-robin Nov 30 06:32:22 solaris scsi: [ID 107833 kern.warning] WARNING: /scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001 (ssd42): Nov 30 06:32:22 solaris Corrupt label; wrong magic number Nov 30 06:32:49 solaris genunix: [ID 834635 kern.info] /scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001 (ssd42) multipath status: optimal, path /pci@1e,600000/SUNW,qlc@2,1/fp@0,0 (fp3) to target address: w210000e08b92a1cf,0 is online Load balancing: round-robin [...]
在本例中,多路径状态最初显示为 degraded,因为此时只识别了一个路径。进一步,多路径状态更改为 optimal,因为存在多个到达卷的路径。
磁盘设备现在同样可供内部服务器磁盘使用。
root@solaris:~# format
Searching for disks...done
c1t600144F0F05E906C00004ED6096D0001d0: configured with capacity of 63.93GB
AVAILABLE DISK SELECTIONS:
[...]
4. c1t600144F0F05E906C00004ED6096D0001d0 <SUN-SunStorage7210-1.0 cyl 2078 alt 2 hd 254 sec 254>
/scsi_vhci/ssd@g600144f0f05e906c00004ed6096d0001
[...]
Specify disk (enter its number): 4
selecting c1t600144F0F05E906C00004ED6096D0001d0
[disk formatted]
Disk not labeled. Label it now? y
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
volname - set 8-character volume name
!<cmd> - execute <cmd>, then return
quit
format> q
root@solaris:~# zfs createzpool create docarchive1 \ c1t600144F0F05E906C00004ED6096D0001d0 root@solaris:~# zfs list NAME USED AVAIL REFER MOUNTPOINT docarchive1 72K 62.5G 21K /docarchive1 rpool 25.4G 41.5G 97K /rpool rpool/ROOT 22.3G 41.5G 21K legacy [...] root@solaris:~# zfs create docarchive1/index root@solaris:~# zfs create docarchive1/data root@solaris:~# zfs create docarchive1/logs root@solaris:~# zfs list NAME USED AVAIL REFER MOUNTPOINT docarchive1 159K 62.5G 24K /docarchive1 docarchive1/data 21K 62.5G 21K /docarchive1/data docarchive1/index 21K 62.5G 21K /docarchive1/index docarchive1/logs 21K 62.5G 21K /docarchive1/logs rpool 25.4G 41.5G 97K /rpool rpool/ROOT 22.3G 41.5G 21K legacy [...]
df(1) 命令的最后两行输出表明,现在大约有 64 GB 新空间可供使用。
本文介绍了如何配置 Oracle Solaris 10 和 Oracle Solaris 11 自带的 FC 发起方系统,以便 Oracle Solaris 服务器可以访问 Sun ZFS 存储设备提供的光纤通道 LUN。
以下是 Oracle Sun ZFS 存储设备和 Oracle Solaris ZFS 的资源:
以下是 Oracle Solaris 的一些其他资源:
| 修订版 1.0,2012 年 2 月 24 日 |