免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2821 | 回复: 1
打印 上一主题 下一主题

最新版的 AIX 让重命名设备变得非常简单 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-19 11:01 |只看该作者 |倒序浏览
我最近回想起这篇 2009 年发表的文章,作者在其中探讨了重命名 AIX 设备时遇到的一些挑战。这个可怜的家伙不得不老老实实逐一命名了一个群集 AIX (Oracle RAC) 环境中的一些磁盘和网络设备。我牢牢记住了这段话:
“让网络适配器与磁盘名称在系统间匹配的简便途径将会是运行类似于下面的内容:
# 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 并未处于使用(繁忙)状态。如果已将磁盘分配到某个卷组,则需要首先卸载该卷组。
# 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 状态:
# 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。我在修改设备名称之前禁用了该接口:
# 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:
# 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 适配器:
# 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 状态,否则重命名将会失败:
# rmdev -Rl vscsi1  
vscsi1 Defined  
# lsdev -Cc adapter | grep vscsi  
vscsi0    Available    Virtual SCSI Client Adapter  
vscsi1    Defined      Virtual SCSI Client Adapter

接下来,我们将适配器 vscsi1 重命名为 vscsi3:
# 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 的另一条路径:
# 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 状态。这都是正常的。
# 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。
# 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

到这里我们就完成了所有操作。两个适配器都已经被重命名,而在使用该系统时不需要停机。
# lsdev -Cc adapter | grep vscsi
vscsi2   Available    Virtual SCSI Client Adapter
vscsi3   Available    Virtual SCSI Client Adapter

# lspath
Enabled hdisk0 vscsi2
Enabled hdisk0 vscsi3


关于作者
Chris Gibson 是一位 AIX 系统专家,居住在澳大利亚墨尔本市。他是 IBM CATE(System p 平台和 AIX 5L),同时也是 IBM Redbook “NIM from A to Z in AIX 5L” 的作者之一。




http://www.ibm.com/developerworks/cn/aix/systemmaga/8/Makes_Renaming_Devices_Easy/index.html


论坛徽章:
0
2 [报告]
发表于 2012-03-24 11:08 |只看该作者
chdev – l hdisk1 – n hdisk2 将hdisk1改名为hdisk2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP