在當今的多系統、多分區 IT 環境中,生成唯一系統標識符是非常重要的。許可證密鑰管理程序只是用于計算許可證密鑰的唯一系統標識符的一個示例。隨著基于 IBM Systems 的 IBM POWER4 和 POWER5 處理器的出現,高數值的最大分區(專用的和共享的)是一個很受歡迎的特性。
然而,在為每個物理系統配置大量分區的同時,每個分區還需要唯一標識符,而這很可能會導致標識命名空間的沖突。
IBM AIX 5L™ Version 5.3 引入了一些新的算法以生成唯一系統標識符。本文首先概述當前的 AIX 5L Version 5.1 和 Version 5.2 發布版中的系統標識符生成,然后介紹一些新的 AIX 5L Version 5.3 命令和應用程序編程接口 (API)。本文面向解決方案提供者、原始設備制造商 (OEM) 和 IT 用戶。
引言
從本質上看,生成新的系統標識號涉及到使用 AIX® 設備樹中的字段。然后,使用相應的算法來計算系統標識號和字符串。下面的列表給出了作為算法輸入所使用的設備樹根節點的屬性:
請注意,這種設計方法和算法僅適用于 IBM Systems 的系統,這些系統的型號屬性以“IBM”開頭,系統標識屬性以“IBM,nn”(其中“nn”為兩位的 10 進制數字)開頭。原始設備制造商 (OEM) 系統可以使用本文作為參考,以生成他們自己的系統標識。
![]() ![]() |
![]()
|
目前的 AIX 5.2 和 AIX 5.1 系統標識命令
您可以通過幾種方法來收集系統標識數據。要唯一地標識一臺計算機或一個分區,需要使用下列元素中的一個或多個:
本文將在后面的部分中描述常用的 AIX 5L Version 5.2 和 Version 5.1 命令以及訪問系統標識值的應用程序編程接口 (API)。
注意:如果您對 AIX uname
命令及其輸出不是很熟悉,我們建議您重復執行本文中的示例以領會實際的輸出。
uname -m
給出計算機序列號(已過時)。我們不建議使用該命令,因為它并非始終唯一地標識一個系統。 uname -u
給出廠家代碼和計算機標識符。 uname -M
給出類型和型號名稱。 uname -L
顯示 LPAR 號和 LPAR 名稱。
如表 1 所示,在物理計算機標識標簽為 7043-10CABFD 的 RS/6000® Model 260 計算機上執行下面的命令:
命令 | 輸出 |
uname -u |
IBM,01 10 CABFD(出于可讀性的原因,插入了一些空格。) |
uname -M |
IBM,7043-260 |
uname -L |
-1 Null(沒有 LPAR) |
uname -Mu |
IBM,7043-260 IBM,01 10 CABFD |
uname -MuL |
IBM,7043-260 IBM,01 10 CABFD -1 NULL |
uname -m |
00C CABFD 4C00(注意:我們不建議使用這個命令。) |
在這臺計算機上,nid 為 cabfd 4c
。盡管可以使用 uname -m
,但不建議這樣做,因為對于唯一系統標識來說,5 位數字的序列號并非總是足夠的。
正如您在前面的示例中所看到的,uname -u
給出了廠家代碼和計算機序列號,以便更好地標識一個系統。通過 uname -Mu
和 uname -MuL
命令,您可以添加其他的數據項,如計算機類型和計算機型號號碼。
-L 標志給出了 LPAR 信息。在這個 AIX 5L Version 5.1 和 Version 5.2 的實驗中,我們使用了不帶分區支持的雙處理器 RS/6000 Model 260,因此 -L 的輸出是 -1 和 NULL。
對于不具有邏輯分區的 AIX 5L Version 5.1 和 Version 5.2 級別的 IBM System p5 計算機,可以使用下面的命令生成建議的唯一系統標識符:
|
在前一個示例中,這個命令標志生成了輸出:
|
該輸出字符串包含了下列元素:
![]() ![]() |
![]()
|
用于檢查系統標識的其他命令和系統接口
lsattr
命令可以用來查詢 AIX 系統標識符。分別在 RS/6000 Model 260 和 IBM System p5 520 計算機上進行下面兩項測試:
|
還可以通過一組系統 API 來查詢系統標識信息:
|
您可以在更新的編程接口規范 部分中找到關于這些結構和訪問函數的完整解釋。
![]() ![]() |
![]()
|
更新的 AIX 系統標識
IBM 的產品改變了序列號生成的規則。IBM 正過渡為:
另外,IBM Systems 的計算機已從單桌面計算機發展為具有共享邏輯分區和同步多線程 (SMT) 支持的大型服務器。生成唯一系統標識符的要求也相應地有所提高。下面是正確地支持系統標識符生成的要求列表:
使用字符串“TTTTMMMCCSSSSS”來標識系統,其中:
要唯一地標識一個系統,可能需要使用前面的列表中的一個或多個元素來構造其標識符。
表 2 介紹了一些系統中唯一系統標識符的生成方式:
描述 | 唯一標識符 | 序列號 |
現有的 IBM System p5(以前為 pSeries®)系統 | “TTTTSSSSS” | 0-9,A-F |
IBM System p5 系統 | “SSSSS” | 0-9,A-F |
IBM BladeCenter® JS20 | “TTTTCCSSSSS” | 0-9,A-F (例如:E、I、J、O、Q、S、U) 09,AF |
注意:
唯一標識符 列定義了系統生成唯一標識符所需的“TTTTMMMCCSSSSS”的子集:
表 3 顯示了 AIX 5L 如何報告系統信息。
描述 | 唯一標識符 | 序列號 |
子例程 unamex xutsname.nid |
32 位唯一系統標識符 | “0x0123454C” |
子例程 uname utsname.machine |
以 16 進制字符串表示的 32 位唯一系統標識符 | “0123454C” |
命令 uname -m (注意:不要使用這個命令。) |
“00”|| 以 16 進制字符串表示的 32 位唯一系統標識符 ||“00” | “000123454C00” |
命令 uname -M |
“IBM,”||“TTTT”||“-”||“MMM” | “IBM,7042-681” |
命令 uname -L |
分區號和名稱 | “兩個名稱” |
表 4 顯示了 AIX 5L Version 5.3 中可用的標識。(AIX 5L Version 5.1 和 Version 5.2 都需要使用經過授權的程序分析報告 (APAR)。)
命令 | 描述 |
命令 uname -f |
以 16 進制字符串表示、不帶“0X”前綴的 64 位分區/系統唯一標識符。 |
命令 uname -F |
以 16 進制字符串表示、不帶“0X”前綴的 64 位系統唯一標識符。 |
AIX 5L Version 5.3 還實現了下面的新的定義:
unamex subroutine xutsname.nid
字段 uname subroutine utsname.machine
字段 uname command -m
標志
uname
命令標志輸出 -M
、-U
或 -L
并沒有什么變化。
![]() ![]() |
![]()
|
AIX 5L Version 5.3 uname 標志與 AIX 5L Version 5.2 和 Version 5.1 兼容
在 AIX 5L Version 5.3 中,對于前面部分中提到的以及下面前兩個示例中使用的 uname
命令標志,并沒有什么改變。
請注意,uname -L
的輸出可以表示經過分區的計算機。這里的結果與 AIX 5L Version 5.1 和 AIX 5L Version 5.2 的結果是一致的:
|
對于這臺計算機,它的 nid 為 cf190f 4c,longnid 為 80001815。
![]() ![]() |
![]()
|
新的 AIX 5L Version 5.3 uname 命令標志
基于更新的設計,為 /usr/bin/uname
命令添加了兩個新的標志,以便可靠地生成唯一系統標識。這些標識符僅針對新的硬件:
-F
標志顯示計算機的標識號。這是一個 16 進制數字的字符串,對于所有的系統唯一。 -f
標志顯示 LPAR 配置中分區的標識號。這是一個 16 進制數字的字符串,對于所有系統中的所有分區唯一。
示例
|
對于這臺計算機,它的 nid 為 cf190f 4c,longnid 為 8000181552DF00001。
![]() ![]() |
![]()
|
更新的編程接口規范
/usr/include/sys/utsname.h Header 文件定義了用來查詢系統標識和其他系統數據的結構。在 AIX 5L Version 5.1 和 Version 5.2 中,該結構定義如下:
|
對于 AIX 5L Version 5.3,這個結構添加了一個新的成員 longnid 以存儲 64 位系統標識符:
|
在從 AIX 5L Version 5.1 和 Version 5.2 遷移到 Version 5.3 時,唯一變化的編程接口是 xutsname 結構,它將成為成員 nid,但是這種改變是透明的。它的大小和類型保持不變。請注意,對于新的硬件,計算方法有所改變,而對于現有的硬件,計算方法保存不變。
![]() ![]() |
![]()
|
對于 AIX 5L Version 5.1 和 Version 5.2,可以使用 APAR
對于目前的 AIX 5L Version 5.1 和 Version 5.2 用戶,可以進行升級以使用新的系統標識生成命令和 API。相關的 APAR 是:
出于兼容性原因對 AIX 5L Version 5.1 進行了相應的改變,但是因為 AIX 5L Version 5.1 不支持真正需要 64 位標識的那些系統,所以在 AIX 5L Version 5.1 中,并沒有實現所有改變的特性。
![]() ![]() |
![]()
|
將來的兼容性
對于 AIX 5L 來說,總的方向是從 32 位系統標識符遷移到 64 位系統標識符。要為這種轉變做好準備,應用程序應該完成下列工作:
uname – f
或 uname -F
。 uname() subroutine
。 uname() subroutine
時,停止使用 xutsname 結構的 nid 成員。 unamex() subroutine
時,開始使用 xutsname 結構的 longnid 成員。
![]() ![]() |
![]()
|
結束語
對于當前的 AIX 5L Version 5.1 或 Version 5.2,使用完整的數據字符串“TTTTMMMCCSSSSS”或其中的某些部分來標識系統,在用于檢查系統標識的其他命令和系統接口 部分中對其進行了解釋。要獲取唯一系統標識符,可以使用帶 -Mu
或 -MuL
標志的 uname
命令。-L
標志用于生成邏輯分區號。
AIX 5L Version 5.3 添加了兩個新的標志,-F
和 -f
。您可以使用 uname -F
和 uname -f
的輸出來確定任何基于 POWER5 處理器的計算機或分區。
AIX 5L Version 5.3 系統標識編程接口發生了變化。xutsname.nid 和 xutsname.longnid 包含了原始的和新的系統標識信息。
您可以使用相關的 APAR 將 AIX 5L Version 5.3 的改變應用于 AIX 5L Version 5.1 和 Version 5.2。
![]() ![]() |
![]()
|
致謝