本章介绍 Solaris Volume Manager 的总体结构。本章包含以下信息:
本节介绍了此 Solaris 发行版中在使用 Solaris Volume Manager 方面的新增功能。
有关 Solaris 新增功能的完整列表以及 Solaris 发行版的描述,请参见《Solaris 10 新增功能》。
Solaris Volume Manager 是用于管理大量磁盘及磁盘上数据的软件产品。尽管 Solaris Volume Manager 产品的用途有很多,但主要任务包括:
增加存储容量
提高数据可用性
简化大型存储设备的管理
在某些情况下,Solaris Volume Manager 还可以提高 I/O 性能。
有关 Solaris 操作系统所支持的磁盘类型的信息,请参见《系统管理指南:设备和文件系统》中的第 11 章 “管理磁盘(概述)”。
Solaris Volume Manager 使用虚拟磁盘来管理物理磁盘及其关联的数据。在 Solaris Volume Manager 中,虚拟磁盘称为卷。出于历史原因,某些命令行实用程序也将卷称为元设备。
在应用程序或文件系统看来,从功能方面讲,卷与物理磁盘完全相同。Solaris Volume Manager 可将定向到卷的 I/O 请求转换成定向到基础成员磁盘的 I/O 请求。
Solaris Volume Manager 卷是由磁盘片或其他 Solaris Volume Manager 卷构建的。创建卷的简单方法是使用内置于 Solaris Management Console 中的图形用户界面 (graphical user interface, GUI)。Solaris Management Console 中增强的存储工具为您展示了所有现有卷的视图。按照向导中的步骤,您可以方便地生成任何种类的 Solaris Volume Manager 卷或组件。您还可以使用 Solaris Volume Manager 命令行实用程序生成和修改卷。
例如,如果需要更多存储容量作为单个卷,可以使用 Solaris Volume Manager 使系统将片集合视为一个较大的卷。使用这些片创建卷之后,可以立即开始使用该卷,就像使用任何“真正”的片或设备一样。
有关卷的更详细的介绍,请参见卷概述。
Solaris Volume Manager 通过使用 RAID-1(镜像)卷和 RAID-5 卷可以提高数据的可靠性和可用性。Solaris Volume Manager 热备件可以进一步提高镜像卷和 RAID-5 卷的数据可用性。
设置配置后,可以使用 Solaris Management Console 中增强的存储工具来报告其操作。
使用以下方法之一来管理 Solaris Volume Manager:
Solaris Management Console -此工具提供用于管理卷管理功能的 GUI。可使用 Solaris Management Console 中增强的存储工具。有关增强的存储工具的示例,请参见图 3–1。此界面提供 Solaris Volume Manager 组件(包括卷、热备用池和状态数据库副本)的图形视图。此界面提供对 Solaris Volume Manager 组件的基于向导的处理功能,使您可以快速配置磁盘或更改现有配置。
命令行-可以使用多个命令来执行卷管理功能。Solaris Volume Manager 核心命令以 meta 开头,例如 metainit 和 metastat 命令。有关 Solaris Volume Manager 命令的列表,请参见附录 B,Solaris Volume Manager 快速参考。
请不要尝试同时使用命令行和 GUI 来管理 Solaris Volume Manager。对配置进行的更改可能会发生冲突,致使其行为不可预测。可以使用这两种工具来管理 Solaris Volume Manager,但不能同时使用。
Solaris Volume Manager GUI(增强的存储)是 Solaris Management Console 的一部分。要访问 GUI,请按照以下说明操作:
使用以下命令在主机系统上启动 Solaris Management Console:
% /usr/sbin/smc |
在“导航”窗格中双击“本计算机”。
在“导航”窗格中双击“保存”。
在“导航”窗格中双击“增强存储器”,以装入 Solaris Volume Manager 工具。
如果系统提示您登录,请以超级用户或具备等效访问权限的用户身份登录。
双击用于管理卷、热备用池、状态数据库副本和磁盘集的相应图标。
Solaris Management Console 中的所有工具都在控制台窗口底部或向导面板左侧显示信息。在任何时候选择“帮助”,都可查找有关在此界面中执行任务的其他信息。
Solaris Volume Manager 要求包括以下内容:
必须具备超级用户权限才能管理 Solaris Volume Manager。通过 Solaris Management Console 中的“用户配置文件”功能授予的等效权限允许通过 Solaris Management Console 进行管理。但是,只有超级用户才能使用 Solaris Volume Manager 命令行界面。
使用 Solaris Volume Manager 创建卷之前,Solaris Volume Manager 系统上必须存在状态数据库副本。状态数据库副本包含所有卷、热备件和磁盘集的配置和状态信息。应该至少存在三个副本;而且,为了获得最大可靠性,这些副本应置于不同的控制器和不同的磁盘上。有关状态数据库副本的更多信息,请参见关于 Solaris Volume Manager 状态数据库和副本。有关如何创建状态数据库副本的说明,请参见创建状态数据库副本。
使用 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 章,磁盘集(概述)。
设计不完善的 Solaris Volume Manager 配置可能会降低性能。本节提供有关实现 Solaris Volume Manager 的良好性能的提示。有关存储配置性能原则的信息,请参见常规性能指南。
磁盘和控制器-将卷中的驱动器置于单独的驱动器路径上(对于 SCSI 驱动器,置于单独的主机适配器上)。将 I/O 负载分布在多个控制器中可以提高卷的性能和可用性。
系统文件-绝对不要编辑或删除 /etc/lvm/mddb.cf 或 /etc/lvm/md.cf 文件。
确保定期备份这些文件。
卷完整性-如果将片定义为卷,请不要将基础片用于任何其他目的,包括将片用作转储设备。
有关磁盘和分区的信息-保留 prtvtoc 和 metastat -p 命令输出的副本,以备需要重新格式化坏磁盘或重新创建 Solaris Volume Manager 配置时使用。
请不要在卷的基础片上挂载文件系统。如果该片将用于任何种类的卷,则不得将该片作为文件系统进行挂载。如果可能,请在激活卷之前先取消挂载要用作卷的任何物理设备。
创建 Solaris Volume Manager 组件时,可以为逻辑 Solaris Volume Manager 名称(如 d0)指定物理片。可以创建的 Solaris Volume Manager 组件包括以下各项:
状态数据库副本
卷(RAID-0 [条带、串联]、RAID-1 [镜像]、RAID-5 和软分区)
热备用池
磁盘集
有关如何命名卷的建议,请参见卷名称。
以下是创建 Solaris Volume Manager 组件的先决条件:
创建初始状态数据库副本 。如果尚未执行此操作,请参见创建状态数据库副本。
找出可供 Solaris Volume Manager 使用的片。如有必要,请使用 format 命令、fmthard 命令或 Solaris Management Console 对现有磁盘重新分区。
确保您具有超级用户权限。
具有所有数据的最新备份。
如果您正在使用 GUI,请启动 Solaris Management Console 并导航到 Solaris Volume Manager 功能。有关信息,请参见如何访问 Solaris Volume Manager 图形用户界面 (Graphical User Interface, GUI)。
从 Solaris 9 4/03 发行版开始,Solaris Volume Manager 支持在运行 64 位内核的系统上使用大于 1 TB (Tbyte) 的存储设备和逻辑卷。
请使用 isainfo -v 确定系统是否正在运行 64 位内核。如果出现字符串 "64-bit",则说明您正在运行 64 位内核。
使用 Solaris Volume Manager,可以执行以下操作:
创建、修改和删除基于(或使用)大小超过 1 TB 的逻辑存储单元 (logical storage unit, LUN) 生成的逻辑卷。
创建、修改和删除大小超过 1 TB 的逻辑卷。
系统自动支持大的卷。如果创建大于 1 TB 的设备,则 Solaris Volume Manager 会对其进行相应配置,而无需用户干预。
Solaris Volume Manager 仅支持在 Solaris 9 4/03 或更高发行版的系统上运行 64 位内核时使用大卷(大于 1 TB)。 在以前的 Solaris 9 发行版上的 32 位内核下运行包含大卷的系统将影响 Solaris Volume Manager 的功能。 具体来说,请注意以下几点:
如果在 32 位 Solaris 9 4/03 或更高版本内核下重新引导包含大卷的系统,则可以通过 metastat 输出查看大卷,但不能访问、修改或删除这些卷。此外,不能创建新的大卷。大卷上的任何卷或文件系统也都不可用。
如果在 Solaris 9 4/03 之前的 Solaris 发行版下重新引导包含大卷的系统,则 Solaris Volume Manager 不会启动。在其他版本的 Solaris 平台上运行 Solaris Volume Manager 之前,必须先删除所有的大卷。
如果期望使用 32 位内核运行 Solaris 软件,或者希望使用 Solaris 9 4/03 发行版之前的 Solaris OS 版本,请不要创建大卷。
所有的 Solaris Volume Manager 命令都适用于大卷。不需要做任何语法变更或执行任何特殊任务,即可利用大卷支持。因此,熟悉 Solaris Volume Manager 的系统管理员可以直接使用 Solaris Volume Manager 大卷。
如果创建了大卷,随后确定需要在以前的 Solaris 发行版下使用 Solaris Volume Manager,或需要在 32 位 Solaris 9 4/03 或更高版本内核下运行,则需要删除大卷。请在 64 位内核下使用 metaclear 命令从 Solaris Volume Manager 配置中删除大卷,然后在以前的 Solaris 发行版或 32 位内核下重新引导系统。
Solaris Volume Manager 完全支持从 Solstice DiskSuite 版本 4.1、4.2 和 4.2.1 进行无缝升级。请确保所有的卷都处于 Okay(正常)状态(而不是“Needs Maintenance(需要维护)”或“Last Erred(最近出错)”状态),而且任何热备件都没有被使用。您不需要对 Solaris Volume Manager 执行任何其他特殊任务,即可使升级顺利进行,也就是说,不必更改配置或细分引导镜像。升级系统时,将显示 Solstice DiskSuite 配置,并且升级后通过 Solaris Volume Manager 工具可以访问该配置。
Solaris 10 OS 引入了服务管理工具 (Service Management Facility, SMF),该工具提供了用于扩充传统 UNIX 启动脚本、init 运行级和配置文件的基础结构。 从以前的 Solaris OS 版本升级时,请验证与 Solaris Volume Manager 关联的 SMF 服务是否处于联机状态。 如果 SMF 服务没有联机,管理 Solaris Volume Manager 时可能会遇到问题。
要检查与 Solaris Volume Manager 关联的 SMF 服务,请使用以下形式的 svcs 命令:
# svcs -a |egrep "md|meta" disabled 12:05:45 svc:/network/rpc/mdcomm:default disabled 12:05:45 svc:/network/rpc/metamed:default disabled 12:05:45 svc:/network/rpc/metamh:default online 12:05:39 svc:/system/metainit:default online 12:05:46 svc:/network/rpc/meta:default online 12:05:48 svc:/system/fmd:default online 12:05:51 svc:/system/mdmonitor:default |
如果 Solaris Volume Manager 配置仅包含本地集,则这些服务应该是联机的:
svc:/system/metainit |
svc:/network/rpc/meta |
svc:/system/mdmonitor |
如果 Solaris Volume Manager 配置包括磁盘集,则这些其他服务应该是联机的:
svc:/network/rpc/metamed |
svc:/network/rpc/metamh |
如果 Solaris Volume Manager 包括多节点磁盘集,则除了已提到的其他服务以外,此服务也应该是联机的:
svc:/network/rpc/mdcomm |
有关 SMF 的更多信息,请参见《系统管理指南:基本管理》中的第 14 章 “管理服务(概述)”。