最近,我在 AIX 上遇到了一个 LVM 问题,这个问题与 rootvg 的重复物理卷标识符 (duplicate physical volume identifiers, PVID) 有关。在本文中,我将介绍如何解决此问题。
在客户现场,我被要求构建一个新的 AIX 系统。因为已经安装了操作系统,所以我要做的就是更新它,并配置 NIM 和其他一些 UNIX 服务。但是,当我登录后,我立刻发现了一个问题。lspv 命令的输出显示,有两个磁盘分配给了 rootvg。这有点出乎意料,因为我曾请求提供两个磁盘:一个供 rootvg 使用,另一个供 nimvg 使用。但这样也可以;我总是可以减少 rootvg,腾出一个磁盘。但是,经过仔细检查,我发现两个磁盘具有相同的 PVID,这是一个问题。
1
2
3
| # lspv
hdisk8 00f6050a2cd79ef8 rootvg active
hdisk7 00f6050a2cd79ef8 rootvg active
|
要将其中一个磁盘用于 nimvg,则需要从其中一个磁盘删除重复的 PVID,但是删除哪一个呢?可以使用 chdev 命令清除硬盘的 PVID。我首先试图在 hdisk7 上进行这项操作。报告显示磁盘 “繁忙”。这表示它在 rootvg 中是活动的。
1
2
3
4
| # chdev -a pv=clear -l hdisk7
Method error (/etc/methods/chgdisk):
0514-062 Cannot perform the requested function because the
specified device is busy.
|
因此,hdisk8 肯定是具有重复 PVID 的磁盘。我执行了 chdev 命令,成功从该磁盘上清除了 PVID。
1
2
| # chdev -a pv=clear -l hdisk8
hdisk8 changed
|
为了确保对象数据管理器 (object data manager, ODM) 与磁盘信息保持一致,我运行了 synclvodm 命令。这会同步并重新构建逻辑卷控制块 (logical volume control block, LVCB)、ODM 和卷组描述符区域 (volume group descriptor area, VGDA)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # synclvodm -v rootvg
synclvodm: Physical volume data updated.
synclvodm: Logical volume hd5 updated.
synclvodm: Logical volume hd6 updated.
synclvodm: Logical volume hd8 updated.
synclvodm: Logical volume hd4 updated.
synclvodm: Logical volume hd2 updated.
synclvodm: Logical volume hd9var updated.
synclvodm: Logical volume hd3 updated.
synclvodm: Logical volume hd1 updated.
synclvodm: Logical volume hd10opt updated.
synclvodm: Logical volume hd11admin updated.
synclvodm: Logical volume livedump updated.
synclvodm: Logical volume isolv updated.
synclvodm: Logical volume mylv updated.
synclvodm: Logical volume lv2 updated.
|
现在我处于一个更好的状态,在这个状态上,我可以使用 hdisk8 创建一个新卷组。该磁盘目前没有 PVID,如 lspv 输出所示:
1
2
3
| # lspv
hdisk8 none None
hdisk7 00f6050a2cd79ef8 rootvg active
|
为了确保在 VG 创建过程中为 hdisk8 分配一个新的、惟一的 PVID,我运行了 chdev 命令。为该磁盘分配了一个新的 PVID,该 PVID 与 hdisk7 的不同。
1
2
3
4
5
6
| # chdev -a pv=yes -l hdisk8
hdisk8 changed
# lspv
hdisk8 00f604889bd16959 None
hdisk7 00f6050a2cd79ef8 rootvg active
|
从这一刻起,我就可以使用 hdisk8 创新一个新的 VG。
1
2
3
4
5
6
| # mkvg -f -y nimvg hdisk8
nimvg
# lspv
hdisk8 00f604889bd16959 nimvg active
hdisk7 00f6050a2cd79ef8 rootvg active
|
您可能会问,起初为什么我们会得到重复的 PVID?我也有这样的想法。如果我有更多的时间来调查,第一步将是研究存储管理员的操作步骤。可能是他复制或配置 SAN 逻辑逻辑单元数量 (logical unit numbers, LUN) 的方式导致了重复的 PVID 问题?
第二步将是询问安装 AIX 的 UNIX 管理员。可能是他在安装/配置操作系统时进行了一些奇怪的操作,或者更有可能的情况是,他从虚拟 I/O 服务器向 AIX 客户端分配磁盘的方式有些奇怪(例如,使用 pdvi 或 dd)。
我的最佳猜测是,他们复制了 rootvg(使用了其存储子系统上的一些复制服务功能)。此外,每次部署新 AIX 系统时,他们都会分配一个 “新” 的重复的 LUN(预安装了 AIX),而不是从媒介安装 AIX。因此,磁盘复制过程复制了 PVID。 |