本章概述了 Solaris Volume Manager for Sun Cluster。
本章包括以下信息:
从 Solaris 9 9/04 发行版开始,Solaris Volume Manager 可以在 Sun Cluster 环境中使用多属主磁盘集来管理存储区。多属主磁盘集允许多个节点共享磁盘集的拥有权并同时写入共享磁盘。以前,磁盘集中的所有参与主机都可以看到共享磁盘集,但是一次只能有一个主机访问该磁盘集。多属主磁盘集适用于 Sun Cluster 以及诸如 Oracle Real Application Clusters 的应用程序。
多属主磁盘集和 Solaris Volume Manager 共享磁盘集可以同时存在于同一个节点上。但是,不支持在这两种配置之间移动磁盘集。
对于多属主磁盘集,不提供对 Solaris Volume Manager for Sun Cluster 设备 ID 的支持。因此,目前不支持将多属主磁盘集从一个系统导入另一个系统。
Solaris Volume Manager for Sun Cluster 创建的组件与使用 Solaris Volume Manager 创建的组件相同,包括条带、串联、镜像、软分区和热备件。Solaris Volume Manager for Sun Cluster 不支持 RAID-5 卷和事务卷。
下图显示了典型群集配置中的软件与共享存储区之间的关联。
每个节点都有本地存储区和至少一个指向共享存储区的路径。群集中的多属主磁盘集由作为 Solaris 操作系统 (Solaris Operating System,Solaris OS) 一部分的 Solaris Volume Manager for Sun Cluster 进行管理。
要使用 Solaris Volume Manager for Sun Cluster,除了安装 Solaris OS 以外还必须安装以下软件:
Sun Cluster 初始群集框架
Sun Cluster Support for Oracle Real Application Clusters 软件
Oracle Real Application Clusters 软件
有关设置 Sun Cluster 和 Oracle Real Application Clusters 软件的信息,请参见《Sun Cluster 软件安装指南(适用于 Solaris OS) 》和《用于 Oracle Real Application Clusters 的 Sun Cluster 数据服务指南(适用于 Solaris OS)》。
由 Solaris Volume Manager for Sun Cluster 管理的存储区可以划分为多属主磁盘集。多属主磁盘集允许多个节点共享磁盘集的拥有权并同时写入共享磁盘。应用程序(例如 Oracle Real Application Clusters)的实例运行在群集中的每个节点上,因此,多属主磁盘集提供了可伸缩性。由于应用程序的每个实例都可以直接访问共享存储区,因此多属主磁盘集还可以提高应用程序的性能。
多属主磁盘集功能只能在 Sun Cluster 环境中启用。节点是作为 Sun Cluster 系统一部分的物理计算机。
每个多属主磁盘集都与节点列表相关联。这些节点共享磁盘集的拥有权。以下 metaset -s disk-set 命令显示了多属主磁盘集的输出。
# metaset -s blue Multi-owner Set name = blue, Set number = 1, Master = nodeone Host Owner Member nodeone multi-owner Yes nodetwo multi-owner Yes Drive Dbase d9 Yes d13 Yes |
此输出显示了节点列表中共享磁盘集拥有权的 nodeone 和 nodetwo。此外,nodeone 被指定为主节点。
每个多属主磁盘集都有一个主节点。创建磁盘集后,向该磁盘集添加第一个磁盘的节点将成为该磁盘集的主节点。主节点可以创建、删除和更新磁盘集中的状态数据库副本。
有关状态数据库副本的更多信息,请参见第 6 章,状态数据库(概述)。
Solaris Volume Manager for Sun Cluster 支持包含不同但重叠的节点列表的磁盘集。由于每个磁盘集都有一个主节点,因此同一个群集中可以同时存在多个主节点。
metaset 命令的以下输出说明,向磁盘集添加第一个磁盘时,nodeone 将成为主节点。
nodeone# metaset -s red Multi-owner Set name = red, Set number = 1, Master = Host Owner Member nodeone Yes nodetwo Yes nodeone# metaset -s red -a /dev/did/dsk/d9 nodeone# metaset -s red Multi-owner Set name = red, Set number = 1, Master = nodeone Host Owner Member nodeone multi-owner Yes nodetwo multi-owner Yes Drive Dbase d9 Yes |
Solaris Volume Manager for Sun Cluster 支持包含不同但重叠的节点列表的磁盘集。由于每个磁盘集都有一个主节点,因此同一个群集中可以同时存在多个主节点。
配置多属主磁盘集之前,除了安装 Solaris OS 以外,还必须安装以下软件:
Sun Cluster 初始群集框架
Sun Cluster Support for Oracle Real Application Clusters 软件
Oracle Real Application Clusters 软件
有关设置 Sun Cluster 和 Oracle Real Application Clusters 软件的信息,请参见《Sun Cluster 软件安装指南(适用于 Solaris OS) 》和《用于 Oracle Real Application Clusters 的 Sun Cluster 数据服务指南(适用于 Solaris OS)》。
一般情况下,Solaris Volume Manager for Sun Cluster 使用同一组 Solaris Volume Manager 命令来执行与磁盘集关联的任务。已向 metaset 命令中添加了特定于多属主磁盘集的某些命令选项。例如,用于创建多属主磁盘集的任务需要向 metaset 命令中添加 -M。以下输出说明了如何使用 metaset -s diskset-name -a -M -h hostname 命令来创建多属主磁盘集。
# metaset -s red -a -M -h nodeone # metaset Multi-owner Set name = red, Set number = 1, Master = Host Owner Member nodeone Yes |
此外,有些 metaset 命令选项(如用于获取和释放磁盘集的命令)不能与多属主磁盘集一同使用。有关更多信息,请参见 metaset(1M) 手册页。
在 Sun Cluster 环境中使用磁盘时还存在另一个不同的任务。Sun Cluster 会为每个磁盘指定唯一的设备 ID (device ID, DID) 号。如果不想使用 cntndn 格式来标识磁盘,则可以使用 Sun Cluster DID 路径名 /dev/did/dsk/dN。变量 N 是由 Sun Cluster 指定的设备编号。
以下输出说明了如何使用 metaset -s diskset-name -a disk-name 命令向多属主磁盘集添加磁盘,以及如何使用 Sun Cluster DID 路径名标识磁盘。
nodeone# metaset -s red Multi-owner Set name = red Multi-owner Set name = red, Set number = 1, Master = Host Owner Member nodeone Yes nodetwo Yes nodeone# metaset -s red -a /dev/did/dsk/d13 nodeone# metaset -s red Multi-owner Set name = red, Set number = 1, Master = nodeone Host Owner Member nodeone multi-owner Yes Drive Dbase d13 Yes |
有关为 Oracle Real Application Clusters 创建多属主磁盘集的信息,请参见《用于 Oracle Real Application Clusters 的 Sun Cluster 数据服务指南(适用于 Solaris OS)》中的“在 Solaris Volume Manager for Sun Cluster 中为 Oracle Real Application Clusters 数据库创建多拥有者磁盘集”。
有关与磁盘集关联的任务,请参见第 19 章,磁盘集(任务)。
Solaris Volume Manager for Sun Cluster 支持以下配置:
Solaris Volume Manager for Sun Cluster 最多支持 32 个磁盘集。这些磁盘集可以是多属主磁盘集、共享磁盘集和本地磁盘集的任意组合。
有关不同类型磁盘集的更多信息,请参见磁盘集类型。
每个多属主磁盘集最多可支持每磁盘集 8192 个卷。
状态数据库副本的缺省大小为 16 MB。最小值为 16 MB。最大值为 256 MB。
Sun Cluster Support for Oracle Real Application Clusters 的许多扩展属性指定了重新配置过程中各步骤的超时。有关设置超时的详细信息,请参阅《用于 Oracle Real Application Clusters 的 Sun Cluster 数据服务指南(适用于 Solaris OS)》中的“调整 Sun Cluster Support for Oracle Real Application Clusters”。
在多属主磁盘集中创建的 RAID–1 卷(即镜像卷)与 Solaris Volume Manager 共享磁盘集中的 RAID-1 卷功能相同。但是,多属主磁盘集中的 RAID-1 卷具有一些其他功能。
镜像拥有权的概念特定于多属主磁盘集。与 Solaris Volume Manager 共享磁盘集中的 RAID-1 卷不同,多属主磁盘集中的 RAID-1 卷通常具有与之关联的属主。镜像卷的拥有权由卷管理器进行选择。卷的属主是在磁盘集的节点列表中指定的节点之一。只有 RAID-1 卷的属主才能写入卷。如果非属主节点要写入卷,则拥有权将切换到执行写操作的节点。metastat -s diskset-name 命令的以下输出说明 RAID-1 卷 d24 的属主是 nodeone。
# metastat -s red red/d24: Mirror Submirror 0: red/d20 State: Okay Submirror 1: red/d21 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Resync option: optimizedresync Owner: nodeone Size: 825930 blocks (403 MB) |
与 Solaris Volume Manager 中的 RAID-1 卷一样,Solaris Volume Manager for Sun Cluster 中的 RAID-1 卷也会执行操作,从而确保数据一致性。Solaris Volume Manager for Sun Cluster 为 RAID-1 卷提供了两个数据管理和恢复选项。
Solaris Volume Manager for Sun Cluster 中优化的重新同步与 Solaris Volume Manager 中优化的重新同步功能相同。但是,在多属主磁盘集中,将重新同步选项设置为优化的重新同步的 RAID-1 卷始终具有镜像属主。metastat -s diskset-name 命令的以下输出给出了设置为 optimizedresync(优化的重新同步)的重新同步选项。
# metastat -s red red/d24: Mirror Submirror 0: red/d20 State: Okay Submirror 1: red/d21 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Resync option: optimizedresync Owner: nodeone Size: 825930 blocks (403 MB) |
有关优化的重新同步的更多信息,请参见优化的重新同步。
要在 Solaris Volume Manager for Sun Cluster 中优化数据恢复,诸如 Oracle Real Application Clusters 的应用程序需要具备管理和控制数据恢复的能力。使用应用程序控制恢复,可以提高恢复的性能。ioctl DKIOGETVOLCAP、DKIOSETVOLCAP 和 DKIODMR 为群集环境中的应用程序数据管理恢复提供了支持。这些 ioctl 为应用程序提供了以下功能:
基于应用程序的恢复 (Application Based Recovery, ABR)-允许应用程序控制镜像卷上的数据恢复
定向镜像读取-允许应用程序将读取定向到特定子镜像并确定数据的状态
有关用于基于应用程序的数据管理恢复的 ioctl 的更多信息,请参见 dkio(7I) 手册页。
只有在基于应用程序的恢复过程中,将重新同步选项设置为基于应用程序的恢复的 RAID-1 卷才具有镜像属主。metastat -s diskset-name 命令的以下输出显示了常规状态下的 RAID-1 卷。将重新同步选项设置为基于应用程序的恢复。没有镜像属主。
# metastat -s red red/d24: Mirror Submirror 0: red/d20 State: Okay Submirror 1: red/d21 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Resync option: application based Owner: None Size: 825930 blocks (403 MB) |