aix裝置改名

tonglei2000發表於2016-11-29

摘抄

我最近回想起這篇 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

本文的英文原文最先在 IBM Systems Magazine 線上網站()上釋出。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13337857/viewspace-2129274/,如需轉載,請註明出處,否則將追究法律責任。

相關文章