最新版的 AIX 让重命名设备变得非常简单

我最近回想起这篇 2009 年发表的文章,作者在其中探讨了重命名 AIX 设备时遇到的一些挑战。这个可怜的家伙不得不老老实实逐一命名了一个群集 AIX (Oracle RAC) 环境中的一些磁盘和网络设备。我牢牢记住了这段话:

“让网络适配器与磁盘名称在系统间匹配的简便途径将会是运行类似于下面的内容:

1
# chdev – l old_name – n new_name

但这个命令选项其实并不存在。

此后,我就一直在寻找一条重命名 AIX 中设备的简便途径。特别是在大型的群集化环境中,跨群集中所有节点让相同磁盘与网络设备名称保持同步有时候是很重要的。而且除此之外,如果 hdisk 名称完全相同,验证群集配置就会容易很多。

匹配 PVID 是一种有效的做法,但它要求的工作量较大!例如,如果知道 hdisk123 在所有节点上都是相同的设备,则不必扫描 PVID 的 lspv 输出,比如 00f6048868b4gead,这样做无疑会轻松很多。当然,您可以编写脚本来简化这些工作,但是,如果您能够根据需要重命名设备,同时不采用不受支持的方法,效果将会更好。

一种更好的方法

好了,这对于 AIX 不再是一个问题。从 AIX 7.1 (和 AIX 6.1 TL6)开始,您可以轻松地重命名设备。它引入了一个名叫 rendev 的新命令,允许管理员在必要时重命名设备。以下内容摘自 AIX 的主页:

“rendev 命令支持对设备进行重命名。

...rendev 命令必须在进行重命名之前取消设备的配置。”

这项功能可以帮助简化 AIX 7.1 中通过 Cluster Aware AIX (CAA) 新功能完成的群集设备配置工作。

下面给出了一些在 AIX 7.1 (GA) 系统上使用 rendev 命令的例子。在第一个例子中,我将 hdisk3 重命名为 hdisk300。请注意:hdisk3 并未处于使用(繁忙)状态。如果已将磁盘分配到某个卷组,则需要首先卸载该卷组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# lspv
hdisk0    00f61ab2f73e46e2    rootvg
active
hdisk1    00f61ab20bf28ac6     None
hdisk2    00f61ab2202f7c0b     None
hdisk4    00f61ab20b97190d     None
hdisk3    00f61ab2202f93ab     None
 
# rendev -l hdisk3 -n hdisk300
 
# lspv
hdisk0    00f61ab2f73e46e2     rootvg
active
hdisk1    00f61ab20bf28ac6     None
hdisk2    00f61ab2202f7c0b     None
hdisk4    00f61ab20b97190d     None
hdisk300  00f61ab2202f93ab     None

很容易吧!接下来,我将重命名一个虚拟的 SCSI 适配器。我将 vscsi0 重命名为 vscsi2,并在重命名设备之前,将适配器 vscsi0 设置为 Defined 状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# rmdev -Rl vscsi0
 
# lsdev -Cc adapter
ent0   Available   Virtual I/O Ethernet Adapter (l-lan)
ent1   Available   Virtual I/O Ethernet Adapter (l-lan)
vsa0   Available   LPAR Virtual Serial Adapter
vscsi0   Defined     Virtual SCSI Client Adapter
vscsi1   Available   Virtual SCSI Client Adapter
 
# rendev -l vscsi0 -n vscsi2
 
# lsdev -Cc adapter
ent0   Available   Virtual I/O Ethernet Adapter (l-lan)
ent1   Available   Virtual I/O Ethernet Adapter (l-lan)
vsa0   Available   LPAR Virtual Serial Adapter
vscsi1   Available   Virtual SCSI Client Adapter
vscsi2   Defined     Virtual SCSI Client Adapter

现在,我将把一个网络适配器从 ent0 重命名为 ent10。我在修改设备名称之前禁用了该接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# lsdev -Cc adapter
ent0   Available   Virtual I/O Ethernet Adapter (l-lan)
ent1   Available   Virtual I/O Ethernet Adapter (l-lan)
vsa0   Available   LPAR Virtual Serial Adapter
vscsi1   Available   Virtual SCSI Client Adapter
vscsi2   Defined     Virtual SCSI Client Adapter
 
# ifconfig en0
en0:
flags=1e080863,480< UP ,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,
GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),CHAIN >
    inet 10.1.20.19 netmask 0xffff0000 broadcast
10.153.255.255
    tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1
 
# ifconfig en0 down detach
 
# rendev -l ent0 -n ent10
 
# lsdev -Cc adapter
ent1    Available   Virtual I/O Ethernet Adapter (l-lan)
ent10   Available   Virtual I/O Ethernet Adapter (l-lan)
vsa0    Available   LPAR Virtual Serial Adapter
vscsi1  Available   Virtual SCSI Client Adapter
vscsi2  Defined     Virtual SCSI Client Adapter
 
# rendev -l en0 -n en10
 
# chdev -l en10 -a state=up
en10 changed
 
# ifconfig en10
en10:
flags=1e080863,480< UP ,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST
,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),CHAIN >
    inet 10.1.20.19 netmask 0xffff0000 broadcast
10.153.255.255
    tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1

您甚至可以添加一些创意,将设备重命名为任何您喜欢的名称(只要名称长度不超过 15 个字符)。我将 vscsi2 重命名为 myvscsiadapter:

1
2
3
4
5
6
7
# rendev -l vscsi2 -n myvscsiadapter
# lsdev -Cc adapter
ent1        Available   Virtual I/O Ethernet Adapter (l-lan)
myadapter   Available   Virtual I/O Ethernet Adapter (l-lan)
myvscsiadapter   Defined   Virtual SCSI Client Adapter
vsa0        Available   LPAR Virtual Serial Adapter
vscsi1      Available   Virtual SCSI Client Adapter

而最后,我将演示在一个正在运行的系统上修改虚拟 SCSI 适配器设备名称。这是当的磁盘系统 (hdisk0),带有两个 vscsi 适配器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# lspv
hdisk0   00f6048868b4deee     rootvg
active
 
# lspath
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1
 
# lsdev -Cc adapter
ent0    Available   Virtual I/O Ethernet Adapter (l-lan)
ent1    Available   Virtual I/O Ethernet Adapter (l-lan)
vsa0    Available   LPAR Virtual Serial Adapter
vscsi0  Available   Virtual SCSI Client Adapter
vscsi1  Available   Virtual SCSI Client Adapter

我们要在重命名适配器之前确保它处于 Defined 状态,否则重命名将会失败:

1
2
3
4
5
# rmdev -Rl vscsi1
vscsi1 Defined
# lsdev -Cc adapter | grep vscsi
vscsi0    Available    Virtual SCSI Client Adapter
vscsi1    Defined      Virtual SCSI Client Adapter

接下来,我们将适配器 vscsi1 重命名为 vscsi3:

1
2
3
4
5
# rendev -l vscsi1 -n vscsi3
 
# lsdev -Cc adapter | grep vscsi
vscsi0    Available    Virtual SCSI Client Adapter
vscsi3    Defined      Virtual SCSI Client Adapter

现在,我需要使用 cfgmgr 启用适配器与路径。lspath 输出显示了通向 vscsi3 的另一条路径:

1
2
3
4
5
6
7
8
9
10
11
12
# lspath
Enabled hdisk0 vscsi0
Defined hdisk0 vscsi1
 
# cfgmgr
Method error (/etc/methods/cfgscsidisk -l hdisk0 ):
0514-082 The requested function could only be performed for some of the specified paths.
 
# lspath
Enabled hdisk0 vscsi0
Defined hdisk0 vscsi1
Enabled hdisk0 vscsi3

接下来,我需要删除通向 vscsi1 的原有路径。适配器 vscsi3 处于 Available 状态。这都是正常的。

1
2
3
4
5
6
7
8
9
10
# rmpath -l hdisk0 -p vscsi1 -d
path Deleted
 
# lspath
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi3
 
# lsdev -Cc adapter | grep vscsi
vscsi0   Available   Virtual SCSI Client Adapter
vscsi3   Available   Virtual SCSI Client Adapter

我们需要对 vscsi0 适配器重复相同的步骤。将它重命名为 vscsi2。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# rmdev -Rl vscsi0
vscsi0 Defined
# lsdev -Cc adapter | grep vscsi
vscsi0   Defined    Virtual SCSI Client Adapter
vscsi3   Available  Virtual SCSI Client Adapter
 
# rendev -l vscsi0 -n vscsi2
 
# lsdev -Cc adapter | grep vscsi
vscsi2   Defined     Virtual SCSI Client Adapter
vscsi3   Available   Virtual SCSI Client Adapter
 
# lspath
Defined hdisk0 vscsi0
Enabled hdisk0 vscsi3
 
# cfgmgr
Method error (/etc/methods/cfgscsidisk -l hdisk0 ):
0514-082 The requested function could only be performed for some of the specified paths.
 
# lspath
Defined hdisk0 vscsi0
Enabled hdisk0 vscsi2
Enabled hdisk0 vscsi3
 
# rmpath -l hdisk0 -p vscsi0 -d
path Deleted
 
# cfgmgr
# lspath
Enabled hdisk0 vscsi2
Enabled hdisk0 vscsi3

到这里我们就完成了所有操作。两个适配器都已经被重命名,而在使用该系统时不需要停机。

1
2
3
4
5
6
7
# lsdev -Cc adapter | grep vscsi
vscsi2   Available    Virtual SCSI Client Adapter
vscsi3   Available    Virtual SCSI Client Adapter
 
# lspath
Enabled hdisk0 vscsi2
Enabled hdisk0 vscsi3

转载于:https://my.oschina.net/chanrevival/blog/2986885

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值