使用 Solaris Volume Manager 创建的五种基本类型的组件为卷、软分区、磁盘集、状态数据库副本和热备用池。下表概述了这些 Solaris Volume Manager 功能。
表 3–1 Solaris Volume Manager 功能汇总
卷是一组物理片,在系统中显示为单个逻辑设备。在标准的 UNIX® 术语中,卷实际上是伪(或虚拟)设备。
以前,Solstice DiskSuiteTM 产品将这些逻辑设备称为元设备。但是,为了简单化和标准化,本书将这些设备称为卷。
可以将卷作为 RAID-0(串联或条带化)卷、RAID-1(镜像)卷、RAID-5 卷或软分区进行创建。
可以使用 Solaris Management Console 中增强的存储工具或命令行实用程序来创建和管理卷。
表 3–2 卷的类别
卷 |
说明 |
---|---|
可以直接使用,也可用作镜像的基本生成块。RAID-0 卷不直接提供数据冗余性。 |
|
通过维护多个副本来复制数据。RAID-1 卷由一个或多个称为子镜像的 RAID-0 卷组成。 |
|
通过使用奇偶校验信息来复制数据。在磁盘出现故障时,可以使用可用数据和奇偶校验信息重新生成缺少的数据。一般情况下,RAID-5 卷是由片组成的。将大小相当于一片的空间用来存储奇偶校验信息,但奇偶校验分布于 RAID-5 卷的所有片上。 |
|
软分区 |
将片或逻辑卷分成一个或多个更小的可扩展卷。 |
可以使用卷来提高存储容量、性能和数据可用性。在某些情况下,卷还可以提高 I/O 性能。在功能方面,卷与片特性相同。卷与片很相像,所以对于最终用户、应用程序和文件系统,卷是透明的。就像访问物理设备一样,可以通过块或原始设备名称来访问卷。根据使用的是块还是原始设备,卷名称也会有所不同。有关卷名称的详细信息,请参见卷名称。
可以对卷使用大多数文件系统命令,包括 mkfs、mount、umount、ufsdump、ufsrestore 等。但是,不能使用 format 命令。只要卷包含挂载的文件系统,就可以对该卷进行读取、写入和复制文件等操作。
图 3–2 显示一个包含两个片的卷,一个片来自磁盘 A,另一个片来自磁盘 B。应用程序或 UFS 会像处理一个物理磁盘那样处理卷。通过向卷中添加更多片,可以增加其存储容量。
使用 Solaris Volume Manager,可以通过添加其他片来扩展卷。可以使用 Solaris Management Console 中增强的存储工具 或命令行界面向现有卷添加片。
在不停止或备份系统的情况下,可以扩展卷中包含的已挂载或未挂载的 UFS 文件系统。不过,备份数据总是有益无害的。扩展卷后,请使用 growfs 命令来扩充文件系统。
扩展文件系统后,就不能缩小文件系统的大小。无法缩小文件系统的大小是 UFS 的限制。同样,增大 Solaris Volume Manager 分区后,就不能再将其缩小。
使用原始卷的应用程序和数据库必须自备“增加”扩展空间的方法,以便应用程序可以识别它。Solaris Volume Manager 不提供此功能。
可以采用以下方式扩展卷中的磁盘空间:
growfs 命令可以扩展 UFS 文件系统,而不会中断服务或丢失数据。但是,在 growfs 命令运行的同时会暂停对卷的写访问。可以将文件系统的大小扩展到包含该文件系统的片或卷的大小。
通过对 growfs 命令使用 -s size 选项,可以扩展文件系统以便仅使用所增加的磁盘空间的部分。
扩展镜像时,先向镜像的基础子镜像添加空间。然后,再对 RAID-1 卷运行 growfs 命令。一般规则是向基础设备添加空间,并对顶层设备运行 growfs 命令。
就像物理片一样,卷的逻辑名称也会出现在文件系统中。逻辑卷名在块设备的 /dev/md/dsk 目录和原始设备的 /dev/md/rdsk 目录中具有对应的项。在任何 meta* 命令中,通常使用缩写形式的卷名(如 d1),而不用指定完整的卷名(如 /dev/md/dsk/ volume-name)。一般情况下,只要卷当前没有被使用,且新名称没有被其他卷使用,就可以对卷进行重命名。有关更多信息,请参见交换卷名称。
最初,卷名称必须以字母“d”开头,后跟一个数字(例如 d0)。此格式现在仍可使用。下面是使用“d*”命名构造的卷名称示例:
块卷 d0
块卷 d1
原始卷 d126
原始卷 d127
命名卷名称时使用一个统一的标准可以简化管理并使您可以快速识别卷类型。以下是几条建议:
为每种类型的卷指定范围。例如,为 RAID-1 卷指定数字 0–20,为 RAID-0 卷指定数字 21–40,等等。
通过命名确定镜像之间的关系。例如,使用以零 (0) 结尾的数字命名镜像,使用以一 (1)、二 (2) 等结尾的数字命名子镜像。例如,可以按照以下方式命名镜像:镜像 d10、子镜像 d11 和 d12;镜像 d20、子镜像 d21、d22、d23 和 d24。
使用将片编号和磁盘编号映射到卷编号的命名方法。
状态数据库是用于存储有关 Solaris Volume Manager 配置状态信息的数据库。状态数据库记录并跟踪对配置所做的更改。配置或状态发生更改时,Solaris Volume Manager 会自动更新状态数据库。例如,创建新卷是一种配置更改,而子镜像失败则是一种状态更改。
实际上,状态数据库是多个复制的数据库副本的集合。每个副本(称为状态数据库副本)都可以确保状态数据库中的数据始终有效。多个状态数据库副本可以防止发生单点故障时丢失数据。状态数据库可以跟踪所有已知状态数据库副本的位置和状态。
在创建状态数据库及其状态数据库副本之前,Solaris Volume Manager 无法进行操作。Solaris Volume Manager 配置中必须具有运行状态数据库。
当设置配置时,您可以将状态数据库副本放在以下位置之一:
在专用的片上
在以后将成为卷的组成部分的片上
Solaris Volume Manager 可以识别包含状态数据库副本的片,如果该片位于某个卷中而且正在使用,则会自动跳过其中的副本。为状态数据库副本保留的那部分片不应用于任何其他用途。
一个片上可以存储多个状态数据库副本。但是这样做,在发生单点故障时系统可能更容易受到损坏。
Solaris 操作系统在删除所有状态数据库副本后仍然可以继续正常工作。但是,如果在磁盘上不存在现有状态数据库副本的情况下重新引导系统,系统会丢失所有的 Solaris Volume Manager 配置数据。
热备用池是 Solaris Volume Manager 保留的用于自动替换出故障组件的片(热备件)的集合。可以在子镜像或 RAID-5 卷中使用这些热备件。热备件为 RAID-1 和 RAID-5 卷提供增强的数据可用性。可以使用 Solaris Management Console 中增强的存储工具 或命令行界面来创建热备用池。
出现组件错误时,Solaris Volume Manager 会查找第一个等于或大于故障组件大小的热备件。如果找到符合条件的热备件,Solaris Volume Manager 会自动替换组件并重新同步数据。如果未在热备件列表中找到适当大小的片,则认为子镜像或 RAID-5 卷已失败。有关更多信息,请参见第 16 章,热备用池(概述)。
磁盘集是一组物理存储卷,其中包含逻辑卷和热备件。卷和热备用池必须在该磁盘集中的驱动器上生成。在磁盘集中创建卷后,可以像使用物理片一样使用该卷。
磁盘集在群集环境中提供数据可用性。如果某台主机出现故障,其他主机可以接管出故障主机的磁盘集。(这种类型的配置称为故障转移配置。)此外,可以使用磁盘集来帮助管理 Solaris Volume Manager 名称空间,并实现对网络连接存储设备的随时访问。
有关更多信息,请参见第 18 章,磁盘集(概述)。