我最近回想起這篇 2009 年發(fā)表的文章,作者在其中探討了重命名 AIX 設(shè)備時(shí)遇到的一些挑戰(zhàn)。這個(gè)可憐的家伙不得不老老實(shí)實(shí)逐一命名了一個(gè)群集 AIX (Oracle RAC) 環(huán)境中的一些磁盤(pán)和網(wǎng)絡(luò)設(shè)備。我牢牢記住了這段話:
“讓網(wǎng)絡(luò)適配器與磁盤(pán)名稱在系統(tǒng)間匹配的簡(jiǎn)便途徑將會(huì)是運(yùn)行類(lèi)似于下面的內(nèi)容:
# chdev – l old_name – n new_name |
但這個(gè)命令選項(xiàng)其實(shí)并不存在。
此后,我就一直在尋找一條重命名 AIX 中設(shè)備的簡(jiǎn)便途徑。特別是在大型的群集化環(huán)境中,跨群集中所有節(jié)點(diǎn)讓相同磁盤(pán)與網(wǎng)絡(luò)設(shè)備名稱保持同步有時(shí)候是很重要的。而且除此之外,如果 hdisk 名稱完全相同,驗(yàn)證群集配置就會(huì)容易很多。
匹配 PVID 是一種有效的做法,但它要求的工作量較大!例如,如果知道 hdisk123 在所有節(jié)點(diǎn)上都是相同的設(shè)備,則不必掃描 PVID 的 lspv 輸出,比如 00f6048868b4gead,這樣做無(wú)疑會(huì)輕松很多。當(dāng)然,您可以編寫(xiě)腳本來(lái)簡(jiǎn)化這些工作,但是,如果您能夠根據(jù)需要重命名設(shè)備,同時(shí)不采用不受支持的方法,效果將會(huì)更好。
一種更好的方法
好了,這對(duì)于 AIX 不再是一個(gè)問(wèn)題。從 AIX 7.1 (和 AIX 6.1 TL6)開(kāi)始,您可以輕松地重命名設(shè)備。它引入了一個(gè)名叫 rendev 的新命令,允許管理員在必要時(shí)重命名設(shè)備。以下內(nèi)容摘自 AIX 的主頁(yè):
“rendev 命令支持對(duì)設(shè)備進(jìn)行重命名。
...rendev 命令必須在進(jìn)行重命名之前取消設(shè)備的配置!
這項(xiàng)功能可以幫助簡(jiǎn)化 AIX 7.1 中通過(guò) Cluster Aware AIX (CAA) 新功能完成的群集設(shè)備配置工作。
下面給出了一些在 AIX 7.1 (GA) 系統(tǒng)上使用 rendev 命令的例子。在第一個(gè)例子中,我將 hdisk3 重命名為 hdisk300。請(qǐng)注意:hdisk3 并未處于使用(繁忙)狀態(tài)。如果已將磁盤(pán)分配到某個(gè)卷組,則需要首先卸載該卷組。
# 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
|
很容易吧!接下來(lái),我將重命名一個(gè)虛擬的 SCSI 適配器。我將 vscsi0 重命名為 vscsi2,并在重命名設(shè)備之前,將適配器 vscsi0 設(shè)置為 Defined 狀態(tài):
# 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
|
現(xiàn)在,我將把一個(gè)網(wǎng)絡(luò)適配器從 ent0 重命名為 ent10。我在修改設(shè)備名稱之前禁用了該接口:
# 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
|
您甚至可以添加一些創(chuàng)意,將設(shè)備重命名為任何您喜歡的名稱(只要名稱長(zhǎng)度不超過(guò) 15 個(gè)字符)。我將 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
|
而最后,我將演示在一個(gè)正在運(yùn)行的系統(tǒng)上修改虛擬 SCSI 適配器設(shè)備名稱。這是當(dāng)?shù)拇疟P(pán)系統(tǒng) (hdisk0),帶有兩個(gè) 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 狀態(tài),否則重命名將會(huì)失。
# rmdev -Rl vscsi1
vscsi1 Defined
# lsdev -Cc adapter | grep vscsi
vscsi0 Available Virtual SCSI Client Adapter
vscsi1 Defined Virtual SCSI Client Adapter
|
接下來(lái),我們將適配器 vscsi1 重命名為 vscsi3:
# rendev -l vscsi1 -n vscsi3
# lsdev -Cc adapter | grep vscsi
vscsi0 Available Virtual SCSI Client Adapter
vscsi3 Defined Virtual SCSI Client Adapter
|
現(xiàn)在,我需要使用 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
|
接下來(lái),我需要?jiǎng)h除通向 vscsi1 的原有路徑。適配器 vscsi3 處于 Available 狀態(tài)。這都是正常的。
# 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
|
我們需要對(duì) vscsi0 適配器重復(fù)相同的步驟。將它重命名為 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
|
到這里我們就完成了所有操作。兩個(gè)適配器都已經(jīng)被重命名,而在使用該系統(tǒng)時(shí)不需要停機(jī)。
# lsdev -Cc adapter | grep vscsi
vscsi2 Available Virtual SCSI Client Adapter
vscsi3 Available Virtual SCSI Client Adapter
# lspath
Enabled hdisk0 vscsi2
Enabled hdisk0 vscsi3
|
關(guān)于作者
![]()
Chris Gibson 是一位 AIX 系統(tǒng)專家,居住在澳大利亞墨爾本市。他是 IBM CATE(System p 平臺(tái)和 AIX 5L),同時(shí)也是 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