磁盘识别

在 AIX 上进行磁盘管理的首要任务就是要识别出系统上的磁盘,包括个数、大小、配置情况等信息。同时在 AIX 识别磁盘一般是不需要重新启动服务器的,新设备可以在线地进行添加。以下提供一些命令来实现磁盘的发现和信息的查看。


表 1. 磁盘管理命令

功能 命令
磁盘识别 ledev – Cc disk
厂商信息 lscfg -vl
磁盘分析 diag

 

清单 1 演示了在运行 cfgmnr 命令以后执行磁盘识别的结果。


清单 1. 磁盘识别

				  
 # lsdev -Cc disk 
 hdisk0 Available Virtual SCSI Disk Drive 
 # cfgmgr 
 # lsdev -Cc disk 
 hdisk0 Available Virtual SCSI Disk Drive 
 hdisk1 Available Virtual SCSI Disk Drive 



清单 2. 相同环境下单独执行 lsdev 的输出

				  
 #lsdev -Cc disk 
 hdisk0 Available 3b-08-00-8,0 16 Bit LVD SCSI Disk Drive 
 hdisk1 Available 3b-08-00-10,0 16 Bit LVD SCSI Disk Drive 

 

 

Logical Volume Manager 基本概念和术语

AIX 系统上的磁盘系统是由 Logical Volume Manager (LVM)来进行统一管理的。这个系统和 Windows 以及一些 Linux 的磁盘管理系统存在着不少差别,要想了解 AIX 的磁盘管理系统,就必须先要了解 LVM 相关的知识。

LVM 的基础概念包括 physical volumes(PV),volume groups(VG),physical partitions(PP) ,logical volumes(LV),logical partitions(LP),文件系统和裸设备(raw devices)。


图 1. 大致描述了一下 LVM 里各个概念之间的关系
aix磁盘原理(一)_休闲 

  • 每个单独的硬盘驱动器称为一个 PV(physical volume,PV),并具有一个名称(例如:hdisk0、hdisk1 或 hdisk2)。
  • 所有 PV 属于一个名为 rootvg 的卷组(volume group,VG)。
  • 一个卷组中的所有 PV 划分为相同大小的 PP(physical partition,PP)。
  • 每个卷组中定义了一个或多个逻辑卷(logical volume,LV)。

具体的各个概念的解释和相互关系将在后面详细描述。

LVM 配置数据

所谓的 LVM 配置数据就是能够描述当前系统 LVM 情况的信息,属于系统十分重要的系统,系统管理员应当经常关注。这些数据的配置不当可能导致系统的宕机,以及服务的无法访问。

Object Data Manager 数据库

Object Data Manager (ODM)数据库保存着 AIX 系统大部分的配置数据,其中也包括磁盘的 PV ,VG ,LV 信息。ODM 数据库中的数据是和 Volume Group Descriptor Area (VGDA) 中信息的景象,同时它还同步了 Logical Volume Control Block (LVCB) 的信息,这两个重要的磁盘配置数据会在下面介绍到。

Volume Group Descriptor Area

VGDA 位于每个 PV 的最开始位置,它包含着 PV 所属的 vg 中所有 PV 和 lv 的描述信息。VGDA 可以被所有的 LVM 命令修改。操作系统可以通过它知道 vg 中包括那些 PV 和 lv。

每一个磁盘都至少包括一份 VGDA 数据。这在做 vary on 操作时候十分重要。VGDA 的时间戳用来决定哪个 VGDA 正在影响整个 vg 的属性。当然 vg 中的一个磁盘损坏后,VGDA 将无法更新,只有当替换了新的磁盘并执行 vary on 操作后,才能对新磁盘进行 VGDA 的同步。

VGDA 在磁盘被分配为 PV 时候生成,当 PV 被分配当一个 vg 以后,真正的群组数据才被分配给 VGDA 中,当 PV 被从 vg 中删除以后,相应的群组信息也会被清楚掉。

Volume Group Status Area

VGSA 包含着 PP 和 PV 的信息,多用于监视和维护数据的同步复制操作。VGSA 和 VGDA 都拥有重要的起始和结束时间戳,这个时间戳可以让 LVM 在执行 vary on 操作时知道哪些 VGSA 和 VGDA 是最新更新的。LVM 还需要所选的 VGSA 的时间戳与 VGDA 是一致的。

Logical Volume Control Block

LVCB 包含这 LV 的重要信息,如 LP 的数量或者磁盘分配策略。LVCB 的架构和放置的位置受所属的 VG 的类型决定。标准的 VG 中, LVCB 位于 LV 的用户数据第一个块。对于大型的 VG,还有一些 LVCB 会位于磁盘的 VGDA 中。在可伸缩的 VG 中,所有 LV 相关的数据都会作为 LVCB 的一部分存放在 VGDA 中。

下面的例子会使用 getlvcb 命令来查看逻辑卷 hd2 上的 LVCB 信息:


清单 3. getlvcb 命令

				  
 # getlvcb -TA hd2 
 AIX LVCB 
 intrapolicy = c 
 copies = 1 
 interpolicy = m 
 lvid = 00c4790e00004c0000000005491642c0.5 
 lvname = hd2 
 label = /usr 
 machine id = 4790E4C00 
 number lps = 33 
 relocatable = y 
 strict = y 
 stripe width = 0 
 stripe size in exponent = 0 
 type = jfs2 
 upperbound = 32 
 fs = 
 time created = Sun Sep 20 17:50:40 1970 
 time modified = Sun Sep 20 18:41:17 1970 

 

Disk quorum(磁盘定额)

每个 VG 中的磁盘都至少有一个 VGDA 或 VGSA 。磁盘中 VGDA 的数量是由 VG 中包含的磁盘数量决定的,如下表所示。


表 2. VGDA 数量

条件 VGDA 数量
VG 中只有 1 个磁盘 磁盘上有 2 个 VGDA。
VG 中有 2 个磁盘 第一个磁盘上有 2 个 VGDA,第二个磁盘有 1 个 VGDA。
VG 中有 3 个以上磁盘 每个磁盘上有各有一个 VGDA。

 

定额是一种状态,即卷组中 51% 或更多的 PV 可访问。定额是对活动的卷组描述符区域和卷组状态区域 (VGDA/VGSA) 数量的表决。

定额确保在发生磁盘故障时的数据完整性。

当 在单个磁盘之上创建一个卷组时,该卷组最初有两个 VGDA/VGSA 区域驻留在该磁盘上。如果某个卷组由两个磁盘组成,则一个磁盘仍然具有两个 VGDA/VGSA 区域,但是另一个磁盘只有一个 VGDA/VGSA。当卷组由三个或更多个磁盘组成时,则每个磁盘仅分配一个 VGDA/VGSA。

图 2 显示了由于过多的磁盘及其 VGDA/VGSA 不可访问而致使 51% 的大多数 VGDA/VGSA 不再存在时丧失定额的情况。


图 2. 磁盘定额
aix磁盘原理(一)_休闲_02 

当定额丧失时,卷组将自身 vary off,逻辑卷管理器 (LVM) 不再能够访问其中的磁盘。这样可以防止对该卷组进行进一步的磁盘 I/O,从而防止数据丢失或假设在发生物理问题时已将数据写入。此外,由于卷组已 vary off,用户会在错误日志中得到通知,从而获悉发生了硬件错误并且必须执行维修。

当您希望使用磁盘镜像来确保高可用性时,这具有一些影响。在一个两磁盘镜像的系统中,如果第一个磁盘发生故障,则会丧失 VGDA 的 66%,并且整个 PV 将变得不可用。

 

Physical volumes

PV 具有以下的一些特性:

  • 每一个单独的磁盘驱动器就是一个 PV,它们都有自己单独的名字,如 hdisk0 ,hdisk1。
  • 一个或多个 PV 可以组成一个 VG,一个 PV 只能属于唯一一个 VG。
  • 不能将 PV 的一部分分配给一个 VG。
  • PV 可以分配给一个不属于同一类型的 VG,例如 SCCI 的 PV 分配到一个 SSA 的 VG。
  • PV 中的存储空间有 PP 组成。
  • VG 中的 PV 拥有相同的 PP 值。

PV 的常用命令:

lspv (smit lspv):  列出 PV 的详细信息。

chpv (smit chpv):改变 PV 的属性。

清单 4 演示了 lspv 命令的使用方法。


清单 4. lspv 命令

				  
 # lspv 
 hdisk0 00c4790ea0a455f0 rootvg 
 active 
 hdisk1 00c4790ecc77fd19 rootvg 
 active 

 # lspv hdisk0 
 PHYSICAL VOLUME: hdisk0 VOLUME GROUP: rootvg 
 PV IDENTIFIER: 00c4790ea0a455f0 VG IDENTIFIER 
 00c4790e00004c0000000005491642c0 
 PV STATE: active 
 STALE PARTITIONS: 0 ALLOCATABLE: yes 
 PP SIZE: 32 megabyte(s) LOGICAL VOLUMES: 10 
 TOTAL PPs: 639 (20448 megabytes) VG DESCRIPTORS: 2 
 FREE PPs: 572 (18304 megabytes) HOT SPARE: no 
 USED PPs: 67 (2144 megabytes) MAX REQUEST: 128 
 kilobytes 
 FREE DISTRIBUTION: 127..128..61..128..128 
 USED DISTRIBUTION: 01..00..66..00..00 

 

下面是上述示例中的各个字段的含义。

PHYSICAL VOLUME 指定的 PV 的名称。

PV IDENTIFIER PV 标识符(在系统中是唯一的)。

PV STATE 该 PV 的状态。此状态定义了该 PV 是否可用于逻辑输入 / 输出操作。使用 chpv 命令可以更改此状态。

STALE PARTITIONS 过时分区的数量。

PP SIZE PP 的大小。这是卷组的一个特征,并且仅在创建卷组时作为 mkvg 命令的一个参数来进行设置。缺省大小为 4 MB。

TOTAL PPs 该 PV 上可用的 PP 总数,同时包括空闲和已使用的分区。

FREE PPs 该 PV 上可用的空闲分区数量。

USED PPs 该 PV 上已使用的分区的数量。

FREE DISTRIBUTION 此字段按照空闲 PP 所在的 PV 上的各个部分,总结了空闲 PP 在整个 PV 中的分布。

USED DISTRIBUTION 与 FREE DISTRIBUTION 相同,只不过是显示已使用的 PP 的分布。

VOLUME GROUP 该 PV 所分配到的卷组的名称。

VG IDENTIFIER 该 PV 所分配到的卷组的数字标识符。

ALLOCATABLE 是否允许系统分配该 PV 上的新 PP。

LOGICAL VOLUMES 该卷组中的逻辑卷的数量。

VG DESCRIPTORS 驻留在该特定 PV 上的该卷组的 VGDA 数量。