本系列文章旨在帶領(lǐng)讀者探索 AIX 6.1 中的新特性和對 AIX 5L 中已有功能的增強,并了解這些新特性對用戶的影響。首先我們會做一個全面而概括的介紹,然后再針對其中一些亮點獨立成篇進行詳細介紹。
IBM 于 2007 年 11 月對外發(fā)布了 AIX 6.1 操作系統(tǒng),在這之前曾經(jīng)發(fā)布過三個 Open Beta,相信許多用戶和合作伙伴已經(jīng)接觸到了 IBM 在新版本 AIX 中提供的新特性。本系列文章旨在帶領(lǐng)讀者探索 AIX 6.1 中的新特性和對 AIX 5L 中已有功能的增強,并了解這些新特性對用戶的影響。首先我們會做一個全面而概括的介紹,然后再針對其中一些亮點獨立成篇進行詳細介紹。
AIX 6.1 在開發(fā)階段時的版本代號起初是 5.4,由于 POWER 6 處理器的發(fā)布,IBM 為了突出 AIX 對 POWER 6 處理器的支持,并與新處理器的命名保持一致,后來將這個新版本定為 AIX 6。因此 AIX 6 雖然提供了很多的新特性和增強,但依然很好的保持了與 AIX 5L 之間的兼容性,絕大多數(shù)應(yīng)用程序在二進制兼容的支持下,不需要做修改即可以運行。IBM 與第三方軟件廠商之間也在緊密合作,對第三方軟件產(chǎn)品(如 Oracle 數(shù)據(jù)庫)進行兼容性認證,相信不用多久,許多第三方軟件商即會發(fā)布自己的產(chǎn)品與 AIX 6.1 之間的兼容認證信息。
細 心的讀者可能會注意到比起之前的 AIX 5L,AIX 6 在名稱中已經(jīng)去掉了“L”。這并不代表 AIX 6 已經(jīng)取消了對 Linux 的支持。相反,由于對 Linux 的兼容支持已經(jīng)徹底融入 AIX 6,并且 Linux 操作系統(tǒng)也已經(jīng)完全支持在 IBM POWER 平臺上運行,因此 AIX 的名稱上已經(jīng)不再需要加上“L”來突出 Linux 支持。IBM 繼續(xù)提供 AIX Toolbox for Linux Applications,為 AIX 準備了預(yù)編譯好的一些常見 Linux 應(yīng)用的 RPM 安裝包(如 GCC,GNOME,KDE,Apache,PHP,Python 等等),可以直接在 AIX 上安裝使用。
您可以訪問“AIX 6 資源中心”了解更多的 AIX 6 的新特性:
AIX 6 資源中心系統(tǒng)基礎(chǔ)功能
硬件支持更新
AIX 6.1 中,支持 CHRP(Common Hardware Reference Platform)架構(gòu)的平臺和以下處理器:
POWER 4:pSeries p6xx 服務(wù)器
POWER 5/5+:pSeries p5,System p5 服務(wù)器
POWER 6:System p 570 和 JS22 刀片服務(wù)器
PowerPC 970:JS20 和 JS21 刀片服務(wù)器
以下處理器的支持已經(jīng)被移除:
RS64
POWER 3
604
只提供 64 位內(nèi)核,32 位內(nèi)核已經(jīng)被去除。
在 AIX 5L 中,同時提供了 32 位和 64 位的內(nèi)核。當(dāng)使用 32 位內(nèi)核時,系統(tǒng)只支持 32 位的代碼,而在 64 位內(nèi)核模式下,32 位和 64 應(yīng)用程序都得到支持。下表給出了 AIX 各版本支持的內(nèi)核。
AIX 5.2 AIX 5.3 AIX 6.1
unix_up (32 位單處理器內(nèi)核) ×
unix_mp (32 位多處理器內(nèi)核) × ×
unix_64 (64 位多處理器內(nèi)核) × × ×
從 AIX 5.3 開始,已經(jīng)不再支持單處理器內(nèi)核。而從 AIX 5.2ML 03 和 5.3 開始,新安裝系統(tǒng)的已經(jīng)默認是 64 位多處理器內(nèi)核。在 AIX 6.1 中,由于老的處理器已經(jīng)不再支持,因此 32 位內(nèi)核也被移除。AIX 6.1 中的 64 位內(nèi)核保持了對 32 位和 64 位應(yīng)用程序的二進制兼容,32 位應(yīng)用程序的兼容性不會受到影響。32 位的內(nèi)核擴展和驅(qū)動程序則必須移植到 64 位才能與 AIX 6.1 保持兼容。
圖形化的安裝界面
AIX 6.1 中提供了圖形化安裝界面的支持,要啟用該方式,必須要滿足以下先決條件:
服務(wù)器必須安裝有有受支持的顯卡,鍵盤和鼠標(biāo),以及一個 DVD 驅(qū)動器
必須使用 DVD 介質(zhì)進行啟動安裝
圖形化安裝有以下限制:
安裝程序啟動后選擇語言,之后的安裝進程都以默認參數(shù)進行
安裝過程開始后,會回到舊的文本安裝界面顯示安裝進程
如果需要設(shè)置安裝參數(shù),如安裝的目標(biāo)硬盤,軟件、安全選項,安裝模式(新安裝、保留安裝、遷移),則必須選擇退出到傳統(tǒng)的文本安裝模式進行配置。
AIX 6.1 中的圖形化安裝界面為初級用戶提供了一個快速和直觀的安裝界面,可以幫助用戶在一個全新的系統(tǒng)上快速安裝。對于高級用戶,選擇舊的文本安裝模式則更加合適。
限制每用戶的進程數(shù)量和每進程的線程數(shù)量
AIX 6.1 提供了對系統(tǒng)資源更加細粒度的控制手段,可以對每用戶的進程數(shù)量和每進程的線程數(shù)量進行限制。與其他的 ulimit 限制一樣,可以通過 chuser 命令對某個用戶的資源限制進行永久修改,也可以用 ulimit 命令對當(dāng)前 Shell 的限制進行動態(tài)修改。
下表給出了 AIX 5.3 和 6.1 系統(tǒng)上 ulimit –a 命令的輸出:
AIX 5.3 AIX 6.1
ulimit -a time(seconds) unlimited
file(blocks) 2097151
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000 time(seconds) unlimited
file(blocks) 2097151
data(kbytes) 131072
stack(kbytes) 32768
memory(kbytes) 32768
coredump(blocks) 2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user) unlimited
修該用戶的進程數(shù)限制可以使用命令 ulimit –a 或者 chuser nproc=X nproc_hard=Y
修改每進程的線程數(shù)可以使用命令 ulimit –r 或者 chuser threads=X threads_hard=Y
線程模型(Threading Model)默認從進程域 (M:N 模型 ) 改為系統(tǒng)全局域 (1:1 模型 )
在 AIX 5L 中,pthread 線程的默認模型是 m:n 方式,而從 AIX 6.1 開始,默認改為了 1:1 方式。這兩種方式在系統(tǒng)中通過 AIXTHREAD_SCOPE 環(huán)境變量來進行控制。如果設(shè)置 AIXTHREAD_SCOPE=P,則線程模型為進程域(M:N 模型),設(shè)置 AIXTHREAD_SCOPE=S 則為系統(tǒng)域(1:1 模型)。
1:1 模型下,每個用戶空間的線程都對應(yīng)于內(nèi)核中的一個線程,線程的調(diào)度由內(nèi)核在系統(tǒng)全局范圍進行;而 M:N 模型下,多個用戶線程對應(yīng)于內(nèi)核中的多個內(nèi)核線程,用戶線程調(diào)度僅限于在本進程范圍內(nèi)進行,而對應(yīng)的內(nèi)核線程則交由內(nèi)核進行調(diào)度。許多應(yīng)用程序例如數(shù)據(jù)庫 和 Java 應(yīng)用要求設(shè)置為 1:1 方式以提供更好的性能,在 AIX 5L 中這些應(yīng)用程序會要求配置 AIXTHREAD_SCOPE 環(huán)境變量,而在 AIX 6.1 中默認即為為 1:1 方式,不再需要進行配置。
關(guān)于 AIX 線程模型的更詳細信息,可以參見 AIX 信息中心:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.prftungd/doc/prftungd/thread_tuning.htm
POWER 6 上的動態(tài)可變的內(nèi)存頁大小支持
IBM POWER 處理器支持使用不同的頁面大小來管理內(nèi)存,在 AIX 中也提供了各種機制來使用各種大小的內(nèi)存頁。
4 KB 這是 POWER 4/5/6+/6 和 PowerPC 970 處理器都支持的內(nèi)存頁面大小,也是默認的大小。
64 KB POWER 5+ 處理器開始支持此頁面大小,在 AIX 5.3 TL4 中開始提供支持。
16 MB 從 POWER 4 處理器開始支持,又稱為大內(nèi)存頁(Large page),使用前需要使用 vmo 命令來設(shè)置 lgpg_regions 和 lgpg_size 兩個參數(shù)。
16 GB POWER 5+ 處理器開始提供支持,又稱為巨內(nèi)存頁(Huge page),需要在 HMC 中為分區(qū)設(shè)置。
以 上幾種內(nèi)存頁大小中,Large page 和 Huge page 的使用對應(yīng)用程序來講與普通的內(nèi)存頁不同,應(yīng)用程序必須要針對其進行特別設(shè)計,并單獨配置、分配和管理。64 KB 作為 POWER 5+ 處理器新增的尺寸,在 AIX 5.3 中需要通過 LDR_CNTRL 環(huán)境變量來為應(yīng)用程序指定,使用時對應(yīng)用透明。而在 AIX 6.1 中為 64 KB 頁提供了自動的支持:當(dāng)運行在 POWER 6 處理器上時,AIX 6.1 會根據(jù)情況,在需要時自動將 16 個 4 KB 頁歸并成為一個 64 KB 頁對待,或者將一個 64 KB 頁自動拆開成為 16 個 4 KB 頁進行操作。使用 svmon 命令的 -P 參數(shù)可以查看進程的 64 KB 頁使用的情況
支持最大物理內(nèi)存容量增加
AIX 6.1 支持的最大物理內(nèi)存大小達到了 32TB,相比于之前版本的最大 16TB,提供了更大的內(nèi)存空間,為支持更大規(guī)模的應(yīng)用負載做好了準備。
NIM NFS4 支持
IBM AIX 從 5.3 開始提供了 NFS v4 協(xié)議的支持,相比于 NFS v2, v3,NFS v4 優(yōu)勢在于:
提供更強的安全性
文件鎖的支持成為 NFS 協(xié)議內(nèi)置的一部分
提供更高的性能
支持 ACL,能進行更加細致的訪問控制
在 AIX 6.1 中,NIM 已經(jīng)與 NFS v4 集成到了一起,在創(chuàng)建資源時可以指定 NFS 協(xié)議版本和認證方式,進一步提高了 NIM 的靈活性和安全性。
X-Windows 升級
AIX 6.1 中的 X-window 系統(tǒng)升級到了 Release 7.1,并為以前的 R5 和 R6 版本提供了兼容文件,以支持老舊的應(yīng)用程序。
國際化支持加強
AIX 6.1 進一步增強了國際化支持,包括以下幾個方面:
對 Unicode 標(biāo)準的支持升級到了 5.0,提供了更新更完整的國際化字符集支持。
為 5 種新的語言提供本地化支持。
時區(qū)支持數(shù)據(jù)庫更新。
回頁首 存儲、I/O 和文件系統(tǒng)
LVM 配置和跟蹤日志
在 AIX 6.1 中新增加了以下措施,以增強 LVM 系統(tǒng)的可用性:
lvmcfg 日志:alog 日志新增一個類型為 lvmcfg,記錄了系統(tǒng)中所執(zhí)行的 LVM 管理命令,參數(shù),時間,進程 ID 和返回值等信息。使用 alog –t lvmcfg –o 可以查看。
LVM tracing 日志:通過設(shè)置環(huán)境變量 LVMT_VERBOSE 或者配置文件 /etc/lvmtlog.cfg,可以設(shè)置 LVM 操作的跟蹤日志級別,共 0-9 級的日志,可以記錄下大量的信息供管理員或者 IBM 支持工程師分析。LVM tracing 日志位于 /tmp/lvmt.log 文件中,可以通過 alog –t lvmt –o 命令查看。
gsclvmd 日志增強:gsclvmd 是 HACMP 所需要的,支持并發(fā)卷組(Concurrent VG)的服務(wù)進程。在之前的 AIX 中,它的日志記錄到 /tmp 下面的多個文本文件中,并且默認是關(guān)閉的。AIX 6.1 中對其做了增強,統(tǒng)一到 alog 框架下,并且與 LVM tracing 日志類似,可以設(shè)置日志級別。其日志內(nèi)容通過 alog –t lvmgs –o 來查看。
gsclvmd 故障管理增強
gsclvmd 子系統(tǒng)的故障處理和記錄功能得到了增強,gsclvmd 進程會對出現(xiàn)的故障進行歸類記錄并采取相應(yīng)的動作,比如關(guān)閉磁盤卷組。
JFS2 無日志模式
AIX 6.1 中的 JFS2 文件系統(tǒng)現(xiàn)在支持以無日志的模式來 mount,此模式可以提高 JFS2 I/O 性能,但是在出現(xiàn)故障時也無法通過日志記錄來恢復(fù)文件系統(tǒng)錯誤。無日志模式適用于數(shù)據(jù)完整性不太重要,或者數(shù)據(jù)能夠很容易的重新恢復(fù)的情況,如將文件備份 恢復(fù)到磁盤時,將文件系統(tǒng)用作臨時存儲時。
要使用無日志模式,可以在 mount 文件系統(tǒng)時使用 -o log=NULL 參數(shù),或者編輯 /etc/filesystems 文件,修改該文件系統(tǒng)對應(yīng)的 log 屬性條目。
JFS2 內(nèi)聯(lián)快照
從 AIX 5.2 開始,JFS2 文件系統(tǒng)即支持創(chuàng)建快照 (Snapshot)??煺帐俏募到y(tǒng)在某個時刻的狀態(tài)和內(nèi)容的記錄,自快照創(chuàng)建后,它的內(nèi)容即固定下來了。一個文件系統(tǒng)可以有多個快照,快照可以直接備 份,或者供原文件系統(tǒng)作為回滾點。在 AIX 6.1 以前,JFS2 文件系統(tǒng)的快照必須保存在一個單獨的邏輯卷(LV)上,從 AIX 6.1 開始新引入的內(nèi)聯(lián)快照(Inline Snapshot)允許快照內(nèi)容保存在原文件系統(tǒng)上,訪問和管理更加方便快捷。
內(nèi)聯(lián)快照保存在該文件系統(tǒng)的 / mount_point /.snapshot/ snapshot_nam e 目錄下,可以直接進入該目錄查看和訪問內(nèi)容。SMIT 菜單也做了相應(yīng)增強,與外部快照一樣,可以對文件系統(tǒng)創(chuàng)建內(nèi)聯(lián)快照并直接進行備份。
加密文件系統(tǒng)
AIX 6.1 中新增加的 EFS( 加密文件系統(tǒng) ) 提供了細粒度的文件加密支持,用戶可以選擇對某個文件或者目錄進行透明加密,文件在寫入磁盤時自動加密,從磁盤讀入到內(nèi)存時自動解密。只有持有密鑰的用 戶,才被允許訪問加密后的數(shù)據(jù)。在需要對敏感數(shù)據(jù)進行保護的環(huán)境中,EFS 可以提供很好的保護。
要使用 EFS,必須安裝 AIX 6.1 Expansion Pack 光盤上的 Crypto Library 軟件包(clic.rte 文件集),并開啟 RBAC 支持(默認即處于開啟狀態(tài))。
需要注意的是:
/,/usr,/var,/opt 不能夠開啟 EFS 支持。
現(xiàn)有的 JFS2 文件系統(tǒng)可以通過 chfs 來開啟 EFS 支持,但無法進行反向轉(zhuǎn)換。
開啟 EFS 支持的文件系統(tǒng)不支持通過 NFS 輸出。
備份軟件需要更新以支持對加密信息的正常備份。AIX 內(nèi)置命令如 tar,backup,cpio 已經(jīng)支持 EFS,但是需要注意,包含有加密信息的備份(如 tar 包)必須要在 AIX 6.1 上才能解開還原。
加密會對文件 I/O 性能造成一定影響,在性能敏感的應(yīng)用環(huán)境中需要充分考慮 EFS 帶來的影響。
經(jīng)過加密后的文件并不會占用額外的磁盤空間,但是由于加密信息使用 EA2(Extended Attributes 2)格式存儲,每個文件需要額外的 4KB 空間,對于包含大量小文件的文件系統(tǒng),將有一定的影響。
iSCSI 增強
支持 iSCSI 軟件 target 模式,可以將一個磁盤或者 LV(邏輯卷)通過以太網(wǎng) TCP/IP 方式輸出給其他 iSCSI initiator 使用。
iSCSI 啟動支持,通過軟件 Initiator 或者硬件 iSCSI TOE 卡,從 iSCSI 存儲設(shè)備上啟動操作系統(tǒng)。AIX 6.1 在進行安裝時,提供了一個 iSCSI 設(shè)置菜單來進行相關(guān)的配置。
iSNS 協(xié)議支持。iSNS(Internet Storage Name Service)協(xié)議幫助 iSCSI Initiator 和 Target 注冊到網(wǎng)絡(luò)上的一個中心數(shù)據(jù)庫,查詢和發(fā)現(xiàn)其他設(shè)備,簡化 iSCSI 磁盤設(shè)備的配置。AIX 6.1 包含了對 iSNS 協(xié)議的支持,除了傳統(tǒng)的文本文件方式配置 iSCSI target 的方式,還可以設(shè)置成通過 iSNS 協(xié)議來發(fā)現(xiàn) iSCSI 存儲。
AIO 動態(tài)調(diào)整
在 AIX 5L 中,AIO 的管理接口以 aio0 和 posix_aio0 兩個設(shè)備的形式出現(xiàn),AIO 子系統(tǒng)默認不會加載,如要啟動 AIO 支持,需要將 aio 設(shè)備啟用,重新啟動系統(tǒng)后才能生效。對 AIO(minservers/maxservers/maxreqs)參數(shù)的調(diào)整,需要使用 chdev 命令修改 aio0 或者 posix_aio0 設(shè)備的屬性,然后重啟。從 AIX 5.3 TL5 開始,引入了 aioo 命令,使得對 minservers/maxservers/maxreqs 參數(shù)的調(diào)整可以動態(tài)進行,不需要重新啟動系統(tǒng)。
AIX 6.1 中,AIO 的支持更加動態(tài)。AIO 子系統(tǒng)默認即加載,但不激活。應(yīng)用程序發(fā)起 AIO 請求時,AIX 內(nèi)核會自動激活 AIO 子系統(tǒng)。對 AIO 參數(shù)的調(diào)整與其他 I/O 參數(shù)一樣統(tǒng)一使用 ioo 命令。
網(wǎng)絡(luò)
1.IPv6 增強
AIX 6.1 中對 IPv6 支持做了以下增強:
支持新的 RFC 標(biāo)準:RFC4007(IPv6 Scoped Address Architecture)和 RFC4443(Internet Control Message Protocol ICMPv6),與標(biāo)準技術(shù)保持一致。
支持校驗卸載(Checksum Offload)和大包收發(fā)卸載(Largesend Offload/Largereceive Offload),在受支持的以太網(wǎng)卡上可以將 IPv6 數(shù)據(jù)包的校驗、大包收發(fā)的重組工作交由網(wǎng)卡芯片硬件來完成,從而降低 CPU 的負擔(dān)并提高吞吐量。
這些更新使得 AIX 6 對 IPv6 的支持更加完善,性能更優(yōu),能更好的應(yīng)用于 IPv6 網(wǎng)絡(luò)。
2. 支持 IGMPv3 協(xié)議
IGMP v3(Internet Group Management Protocol v3)協(xié)議對原有的 v1 和 v2 版本的協(xié)議進行了增強,可以針對來源地址對數(shù)據(jù)包進行過濾。IBM 在 AIX 5L 中實現(xiàn)了 IGMP v1 和 v2,在 AIX 6.1 中新增加了對 v3 協(xié)議的支持。
3.NFS 增強
IBM 在 AIX 6.1 中對 NFS 做了如下增強:
EIM(Enterprise Identity Mapping)支持多服務(wù)器冗余保護,可以在主 EIM 服務(wù)器出現(xiàn)故障時切換到使用輔 EIM 服務(wù)器。EIM 服務(wù)是在 AIX 中用于 NFS 服務(wù)器和客戶端之間的用戶賬號(ID)信息轉(zhuǎn)換映射的數(shù)據(jù)庫。在 AIX 6.1 中,使用 chnfsim 命令或者對應(yīng)的 SMIT 菜單配置 EIM 服務(wù)器信息時,可以指定一個主服務(wù)器和最多 11 個輔助服務(wù)器,當(dāng)主服務(wù)出現(xiàn)故障時,輔助服務(wù)器可以保證 ID 映射服務(wù)不發(fā)生中斷,從而不影響 NFS 服務(wù)的正常運行。
NFS 代理服務(wù)現(xiàn)在在安全性、協(xié)議包容性和性能上都得到了增強。NFS 代理位于 NFS 客戶端和真正的 NFS 服務(wù)器之間,它能緩存和復(fù)制 NFS 服務(wù)器上的數(shù)據(jù),從而使得客戶端能更快的訪問數(shù)據(jù),并且減少到 NFS 服務(wù)器的網(wǎng)絡(luò)流量。在 AIX 6.1 中,NFS 代理在以下方面得到增強: 客戶端和代理之間、代理和服務(wù)器之間都支持 RPCSEC_GSS Kerberos 方式的安全認證。這需要安裝 Expansion Pack 光盤上的 krb5 和 clic 軟件包。
客戶端可以使用 NFS v3 協(xié)議訪問 NFS 代理,而不論 NFS 代理和 NFS 服務(wù)器之間使用的是 v3 還是 v4 協(xié)議。這使得更多舊的客戶端可以利用 AIX NFS 代理。
NFS 代理下層所使用的 CacheFS 得到了增強,性能,可緩存的最大文件數(shù)、最大文件大小和總 Cache 大小都得到了提高。
以上的增強使得 AIX 在大型企業(yè)級的 NFS 文件服務(wù)中的性能,安全性和健壯性都有了較大的提高。
4. 內(nèi)置 FTP 服務(wù)支持 SSL
AIX 6.1 開始,F(xiàn)TP 服務(wù)支持 TLS(Transport Layer Security)協(xié)議,可以對 FTP 的數(shù)據(jù)和命令通道進行傳輸加密。要使用此功能需要安裝 Expansion Pack 光盤上的 openssl 軟件包并配置 /etc/ftpd.conf 文件。具體的配置信息請使用 man ftpd 命令查看手冊。
通過 TLS 加密方式使用 FTP 使得用戶認證信息不再以明文方式在網(wǎng)絡(luò)上傳輸,因此能大大提高 FTP 服務(wù)的安全性,但是由于數(shù)據(jù)加密需要消耗處理器資源,因此和會對性能造成影響。在需要大吞吐量的 FTP 服務(wù)時,要仔細評估加密所帶來的影響。
注 意:AIX 默認開啟有 telnet 服務(wù)。由于 telnet 服務(wù)也采用明文方式傳輸用戶賬號和密碼信息。因此如果需要保證遠程訪問的安全性,僅僅將 FTP 服務(wù)使用 SSL 保護是不夠的。建議將 telnet 服務(wù)關(guān)閉,使用 ssh 方式提供遠程登錄服務(wù)。AIX 在 Expansion Pack 光盤上提供了 openssh 軟件包,提供了 ssh 客戶端和服務(wù)器端程序,安裝后即可使用。
5. 名字解析緩沖
IBM 在 AIX 6.1 中引入了一個稱之為 netcd 的系統(tǒng)服務(wù),負責(zé)緩存本地應(yīng)用程序?qū)σ韵掠涗浀牟樵冋埱螅?div style="height:15px;">
本地文件內(nèi)的記錄:/etc/hosts,/etc/services,/etc/protocol 等
DNS 服務(wù)器上的記錄,如主機名和 IP 地址間的正、反向解析等。
NIS 和 NIS+ 服務(wù)器上的記錄,如用戶賬號,hosts,services,protocol,netgroup 等。
Yellow page 服務(wù)和 AIX ULM(User Loadable Module)上的用戶賬號等信息
當(dāng) 應(yīng)用程序進行查詢時,netcd 進程會將查詢記錄緩存下來并設(shè)置一個超時時間(TTL),在這個時間到期前,任何對同一個記錄的查詢將直接從 netcd 的本地緩存返回,而不需要再次連接服務(wù)器進行查詢。對于有大量查詢請求的應(yīng)用程序,該項改進可以大大改善查詢的性能,畢竟對于每次查詢都與服務(wù)器建立連 接,發(fā)送查詢并等待返回是一個相當(dāng)耗時的操作,尤其是在負責(zé)解析的服務(wù)器比較繁忙或者網(wǎng)絡(luò)帶寬有限的情況下。
與 netcd 服務(wù)同時提供的還有 netcdctrl 命令,可以用于查看和刷新 netcd 的緩存狀態(tài),或者設(shè)置日志級別。
6. 集成 NDAF
NDAF(Network Data Administration Facility)提供了基于 NFS4 協(xié)議的網(wǎng)絡(luò)文件服務(wù)的中心管理和數(shù)據(jù)復(fù)制和同步環(huán)境。使用 NDAF,系統(tǒng)管理員可以通過多臺 AIX 服務(wù)器提供一個單一的 NFS v4 文件服務(wù),并由一個單一控制點在這些服務(wù)器上創(chuàng)建和同步數(shù)據(jù)。NFS 客戶端可以使用一個統(tǒng)一的名字空間(也就是 NFS 服務(wù)器上輸出的路徑)來訪問數(shù)據(jù),即使數(shù)據(jù)實際上位于不同的服務(wù)器上。AIX 5.3 TL5 中引入了該功能,包括在 Expansion Pack 光盤中,而從 AIX 6.1 開始它被集成進了安裝 CD 成為基本系統(tǒng)的一部分。
回頁首 性能
1. 默認安裝后的性能參數(shù)已經(jīng)經(jīng)過調(diào)整,性能更好
當(dāng) 用戶在 AIX 系統(tǒng)上安裝應(yīng)用程序時(尤其是大型的應(yīng)用軟件,如數(shù)據(jù)庫,中間件等)經(jīng)常會需要按照其要求配置 AIX 系統(tǒng),如設(shè)置 VMM 參數(shù),配置 AIO/CIO 等。IBM 據(jù)此對 AIX 6.1 的系統(tǒng)配置和參數(shù)做了相應(yīng)的調(diào)整,以提高系統(tǒng)安裝后的默認配置下的性能,減少系統(tǒng)管理員需要做的額外工作。
改變了的配置主要包括:
vmo 參數(shù)中的 minperm%,maxperm%,maxclient%,lru_file_repage 和 page_steal_method 參數(shù)調(diào)整。paging space 只有在 AVM(活動虛擬內(nèi)存)大小達到物理內(nèi)存大小的 97% 以上時才會被使用。同時,系統(tǒng)允許 90% 的內(nèi)存可以被用來做文件緩存,而在發(fā)生頁交換時,系統(tǒng)將會優(yōu)先將文件緩存頁換出內(nèi)存,盡量將應(yīng)用程序所使用的頁面保留在物理內(nèi)存中。此項改變使得使得 AIX 6.1 對系統(tǒng)物理內(nèi)存的利用率更高,并且對于有大量內(nèi)存用來作為文件緩存的應(yīng)用環(huán)境,也不再會出現(xiàn)文件緩存將應(yīng)用內(nèi)存“擠出”到 paging space 的情況出現(xiàn)。
磁盤 I/O 速率控制。當(dāng)系統(tǒng)中有某個進程進行持續(xù)的大數(shù)據(jù)量的磁盤寫入時,它將會占用整個系統(tǒng)的 I/O 帶寬,使得其他進程的 I/O 請求無法及時得到響應(yīng),只能處于等待狀態(tài),看起來就好像系統(tǒng)已經(jīng)幾乎失去響應(yīng)。IBM 在 AIX 5L 中提供了兩個參數(shù) minpout 和 maxpout,可以控制 I/O 的上下閥值,將進程的 I/O 隊列限制在一個合適的范圍內(nèi),從而為其他進程留下一定的余地,減少前面提到的情況的出現(xiàn)。但是該設(shè)置在 AIX 5L 中默認為關(guān)閉。由于現(xiàn)在 POWER 5、POWER 6 處理器的性能非常強勁,數(shù)據(jù)產(chǎn)生(被處理)的速度經(jīng)常會大大超過存儲系統(tǒng)的帶寬,因此必須打開此項設(shè)置以保證系統(tǒng)在持續(xù)大 I/O 負載下的響應(yīng)性。IBM 在 AIX 6.1 中已經(jīng)將此設(shè)置打開。具體控制可以通過設(shè)置 sys0 設(shè)備的 minpout 和 maxpout 屬性來配置全局值,也可通過文件系統(tǒng)的 mount 選項來為某個文件系統(tǒng)單獨設(shè)置。
AIO 調(diào)整。我們在本文上篇中已經(jīng)介紹過 AIX 6.1 中的 AIO 子系統(tǒng)的變化。更具體來講,現(xiàn)在 AIO 子系統(tǒng)無需手動啟用,只要有應(yīng)用程序發(fā)起 AIO 請求,就會有對應(yīng)的內(nèi)核 AIO 服務(wù)程序自動啟動處理請求。AIO 服務(wù)程序的數(shù)量會隨需要動態(tài)增加(minservers,maxservers 和 maxreqs 等上限值比起 AIX 5L 也有增加),在 AIO 請求處理完畢后,在指定的時間內(nèi)(aio_server_inactivity 值)如果沒有更多的請求,AIO 服務(wù)程序會自動結(jié)束。所有這些設(shè)置現(xiàn)在都由 ioo 命令進行設(shè)置,并且動態(tài)生效。
NFS 調(diào)整。nfso 命令支持的 nfs_max_read_size,nfs_max_write_size,nfs_rfc1323 三個參數(shù)改變:讀寫塊大小被提高到 64KB,對 RFC 1323(TCP Extensions for High Performance)的支持也默認打開,這些都可以提高 NFS 的網(wǎng)絡(luò) I/O 性能。
2. 受限制的調(diào)整參數(shù) (Restricted tunables)
AIX 6.1 中對系統(tǒng)參數(shù)調(diào)整命令(vmo,ioo,schedo,no,nfso,raso)做了更新,增加了一類稱之為“受限”的參數(shù)。此類參數(shù)能對更多系統(tǒng)內(nèi)部 行為進行調(diào)整,但同時也可能由于不適當(dāng)?shù)男薷膶?dǎo)致影響系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性。因此除非有 IBM 開發(fā)人員的參與和指導(dǎo),否則普通用戶和系統(tǒng)管理員不應(yīng)改變這些參數(shù)。
受限參數(shù)默認在使用 vmo/ioo/schedo/no/nfso/raso 命令查看參數(shù)列表時(-a,-L,-x 參數(shù))不會顯示,如要查看,必須要同時使用 -F 參數(shù)。例如下列 raso 命令的輸出結(jié)果:
# raso –a -F
kern_heap_noexec = 0
kernel_noexec = 1
mbuf_heap_noexec = 0
mtrc_commonbufsize = 3799
mtrc_enabled = 1
mtrc_rarebufsize = 199
tprof_cyc_mult = 1
tprof_evt_mult = 1
tprof_inst_threshold = 1000
##Restricted tunables
recovery_action = 1
recovery_average_threshold = 5
recovery_debugger = 0
recovery_framework = 0
其中加粗標(biāo)出的部分就是“受限參數(shù)”。在修改這些參數(shù)時,會有警告提示,如要做永久修改,必須要經(jīng)過確認才會生效,并且在系統(tǒng)啟動時會記錄一條 errlog。
再次提醒:這些受限參數(shù)必須要在 IBM 專業(yè)人員的指導(dǎo)和要求下才能進行修改,否則可能造成系統(tǒng)不穩(wěn)定或者數(shù)據(jù)丟失,IBM 不為用戶自行修改造成的問題負責(zé)。建議用戶在任何情況下需要修改受限參數(shù)時都先做好數(shù)據(jù)備份。
探索 AIX 6:新特性概述(2)
2009-03-22 16:16
3. 性能監(jiān)控工具更新
由于 AIX 6.1 支持新的硬件和提供了新的特性,性能監(jiān)控的工具也進行了相應(yīng)的更新以反映新的數(shù)據(jù)。更新主要包括:
topas/vmstat/iostat/netstat/nfsstat/filemon/svmon/netpmon/proctree/trace/curt/tprof/pprof 等命令更新,增加命令選項以支持從全局環(huán)境收集某個或所有 WPAR(工作負載分區(qū))的性能狀態(tài)數(shù)據(jù),或者在 WPAR 內(nèi)運行收集該 WPAR 的數(shù)據(jù)。
iostat 命令支持獲取磁帶設(shè)備的 I/O 狀態(tài)信息。
topas 和 lparstat 命令升級支持獲取 POWER 6 新的多個共享處理器池信息。
回頁首 虛擬化
1. 工作負載分區(qū)(Workload Partitions)
AIX 6.1 在虛擬化方面的最大變化就是引入了 WPAR。WPAR 是純軟件的虛擬化解決方案,他與 IBM POWER 平臺上傳統(tǒng)的 LPAR(邏輯分區(qū))方案有著本質(zhì)上的不同,下表給出了 LPAR 和 WAPR 的簡單比較,更多的內(nèi)容會有專文進行闡述。
LPAR WPAR
實現(xiàn)技術(shù) 硬件支持,POWER 處理器加 Hypervisor(微碼內(nèi)置功能) 軟件功能,由 AIX 內(nèi)核實現(xiàn)
管理方法 HMC 或 IVM AIX 系統(tǒng)命令,WPAR Manager
特點 一個服務(wù)器,多個物理或虛擬設(shè)備,多個 OS 一個 OS,一套物理或虛擬設(shè)備,多個應(yīng)用環(huán)境
操作系統(tǒng) AIX 或者 Linux 僅 AIX 6.1
成本 需要購買 APV 隨 AIX 6 附帶,無額外費用。
WPAR Manager 需額外許可。
承載 WPAR 的 AIX 系統(tǒng)在 WPAR 的術(shù)語中稱之為全局環(huán)境(Global Environment),它既可以運行在一個物理機器上,也可以是一個 LPAR。WPAR 相比于 LPAR 是更加輕量級的虛擬化解決方案,它與全局 AIX 環(huán)境共享處理器,內(nèi)存,網(wǎng)絡(luò)和文件系統(tǒng)資源,創(chuàng)建和初始化操作簡單快捷。
WPAR 又分為系統(tǒng) WPAR(System WAPR)和應(yīng)用 WPAR(Application WPAR)兩類。系統(tǒng) WPAR 是一個完整的 AIX 環(huán)境,擁有獨立的資源,如獨立的 init 進程樹提供網(wǎng)絡(luò)服務(wù),獨立的文件系統(tǒng),用戶帳戶等。創(chuàng)建系統(tǒng) WPAR 的過程實際上包括了 AIX 軟件包安裝的過程。對于用戶來講,訪問 WPAR 與其他獨立的 AIX 系統(tǒng)差異不大,既可以登錄到終端,可以使用 telnet 連接。而應(yīng)用 WPAR 則是一個更加精簡的環(huán)境,它只包含應(yīng)用程序特定的進程和相應(yīng)的內(nèi)核支撐環(huán)境,它不包含自己獨立的資源,只能共享使用全局環(huán)境的資源。當(dāng)應(yīng)用 WPAR 中包含的應(yīng)用程序啟動時,它也就啟動,當(dāng)應(yīng)用停止時應(yīng)用 WPAR 也就被刪除了,因此從用戶的角度來看它更加接近于傳統(tǒng)的 chroot。
WPAR 為用戶帶來了以下好處:
進一步降低虛擬化成本。
優(yōu)化系統(tǒng)資源使用率:一個系統(tǒng)中可以有多個 WPAR 運行,在隔離的同時也使得系統(tǒng)的計算資源得以更加充分的利用。
更細粒度的對計算資源進行分配:管理員可以對對 WPAR 的資源(處理器,內(nèi)存等)占用進行控制,保證應(yīng)用可以合作性的共享系統(tǒng)資源。
對應(yīng)用環(huán)境的隔離進一步提高了安全性和穩(wěn)定性:每個 WPAR 都是獨立的環(huán)境,有自己的安全上下文和用戶賬號等,一個 WPAR 內(nèi)的安全問題不會對其他 WPAR 和全局環(huán)境產(chǎn)生影響。
提高應(yīng)用可用性:管理員可以對某個 WPAR 的狀態(tài)生成快照(checkpointing)并稍后恢復(fù)運行(resuming)。此功能可以提高應(yīng)用的可用性:當(dāng)系統(tǒng)故障發(fā)生時,暫停應(yīng)用,移動到另外的平臺上恢復(fù)運行,同時對故障系統(tǒng)進行維修。
要注意的是,LPAR 和 WPAR 兩者之間并不沖突,完全可以互補。
2.WPAR 動態(tài)應(yīng)用遷移,使用 IBM Workload Partition Manager™
動態(tài)應(yīng)用遷移(Live Application Mobility)是 AIX 6 WPAR 提供的一項高級特性,它允許 WPAR 動態(tài)的移動到另外一個系統(tǒng)上,而不影響其中應(yīng)用的持續(xù)運行。該功能的關(guān)鍵特點在于:
WPAR 在遷移時處于活動狀態(tài),無需停止其中的應(yīng)用或者整個 WPAR。對于用戶來講,遷移時的影響只是 WPAR 中的應(yīng)用響應(yīng)速度有短暫的降低。
遷移可以在邏輯分區(qū)和物理機器之間進行,也就是說,WPAR 可以從同一個物理機器上一個邏輯分區(qū)遷移到另一個,也可以完全遷移到另外一個物理機器。當(dāng)然,在不同的物理平臺之間遷移時,必須要保證平臺硬件的兼容性,例如處理器類型。
需要遷移的 WPAR 其文件系統(tǒng)必須放在 NFS 上,以保證在源和目的全局環(huán)境中都能夠訪問該 WPAR 的數(shù)據(jù)。遷移過程由 IBM Workload Partition Manager 軟件進行控制。
Workload Partition Manager 是 IBM 單獨銷售的專用于 WPAR 管理的軟件平臺。它除了為 Live Application Mobility 提供支持外,還可以對 WPAR 進行創(chuàng)建,修改,刪除,監(jiān)控等管理操作,并支持對多臺服務(wù)器實行集中式圖形化管理。如果不使用 WPAR Manger,管理員只能夠使用基本的命令行工具或者 SMIT 來管理 WPAR,因此即使不需要 Live Application Mobility 功能,也推薦使用 WPAR Manager 來降低 WPAR 管理的復(fù)雜度。
Live Application Mobility 可以被用來進一步提高靈活性和可用性。當(dāng)平臺需要進行升級,或者由于故障需要停機維護時,通過此功能可以將工作負載動態(tài)的切換到其他硬件上,在不影響應(yīng)用的同時即可完成維護任務(wù)。
3.Live Partition Mobility 支持
Live Partition Mobility 是 IBM POWER 6 的平臺提供的新一代虛擬化高級特性,它使得邏輯分區(qū)(LPAR)可以在物理系統(tǒng)之間動態(tài)遷移。與 WPAR 的 Live Application Mobility 類似,它也可以幫助提高應(yīng)用的靈活性和可用性。
Live Partition Mobility 需要 POWER 6 硬件平臺的支持,被遷移的 LPAR 內(nèi)運行的操作系統(tǒng)也必須要支持此特性。IBM 在 AIX 6.1 和 5.3 TL7 中增加了對 Live Partition Mobility 的支持。
4. 支持多個共享處理器池(Multiple Shared Processor Pools)
多 個共享處理器池是 POWER 6 平臺引入的虛擬化新特性。在 POWRE 5 平臺上,所有的共享處理器(Shared Processor)邏輯分區(qū)(LPAR)都使用一個統(tǒng)一的、系統(tǒng)全局的處理器池(Processor Pool),并從中取得自己的處理器資源。POWER 6 對這一特性做了增強:一個物理系統(tǒng)中可以有多個處理器池,每個池可供一個或多個(即一組)LPAR 使用,并且處理器池中的處理器數(shù)量和 LPAR 數(shù)量都動態(tài)可調(diào),這樣可以按組來控制 LPAR 的處理器資源分配。AIX 6.1 和 AIX 5.3 TL7 系統(tǒng)的對這一特性提供了支持,并升級了性能工具以支持獲取系統(tǒng)處理器池的信息。
回頁首 可管理性
1.IBM Systems Director Console
IBM 為 AIX 用戶提供了多種手段來執(zhí)行 AIX 管理任務(wù),每個管理員都可以選擇自己習(xí)慣的方式以最高的效率來執(zhí)行。AIX 5L 中提供的管理手段包括:
命令行。使用傳統(tǒng)的 UNIX 世界的命令行程序,管理員能清楚的知道自己干了什么,并能深入的理解系統(tǒng)行為。但是學(xué)習(xí)難度較高,操作比較枯燥。
SMIT 菜單,包括 ASCII 界面方式和基于 X-window 系統(tǒng)的 GUI 方式。這是 AIX 獨有的管理工具,非常便捷,功能豐富而且易擴展,幾乎所有常用的系統(tǒng)管理任務(wù)都可以在 SMIT 中執(zhí)行。
Web-based System Management(WebSM),使用基于 Java 的 GUI 界面。使用 WebSM 能管理本地或者遠程服務(wù)器,完成絕大多數(shù) SMIT 工具支持的任務(wù),并且界面和操作更加接近于現(xiàn)代軟件的習(xí)慣。WebSM 需要執(zhí)行一個 Java 的本地程序作為界面,該工具在 AIX 中集成為 WebSM 的一部分,在 Windows 或 Linux 上必須單獨下載安裝。
在 AIX 6.1 中,新增加了稱之為 IBM Systems Director Console 的管理工具。該工具提供了基于 Web 界面的管理手段,因此不需要安裝客戶端,任何能運行受支持的瀏覽器的系統(tǒng)都可以連接到該工具執(zhí)行管理任務(wù)。系統(tǒng)管理員通過 IBM Systems Director Console 界面可以訪問到:
按照 IBM Systems Director Console 方式組織的系統(tǒng)管理任務(wù)
SMIT 菜單的 Web 界面版本
系統(tǒng)狀態(tài)信息
其他信息,如 Console 配置等
通 過將系統(tǒng)管理任務(wù)集成到 Web 界面,AIX 6.1 提供了更加簡便高效的管理手段,對于降低管理難度和成本具有很大的意義。而對于熟練的系統(tǒng)管理員,如不需要使用 IBM Systems Director Console,則可以將其關(guān)閉以節(jié)省系統(tǒng)資源,只需要將 /etc/inittab 中 pconsole 子系統(tǒng)對應(yīng)的啟動條目刪除即可。
2.Workload Manager 增強
工 作負載管理器(Workload Manager)是 AIX 系統(tǒng)內(nèi)置的資源控制系統(tǒng),管理員可以使用 WLM 來控制處理器,內(nèi)存,I/O 資源的分配。在 AIX 6.1 中,WLM 的功能的到增強,用以控制 WPAR 的資源分配。事實上,WPAR 的資源分配控制功能在底層正是由 Workload Manager 提供。但要注意的是,WPAR 的資源控制操作不應(yīng)該通過 WLM 來直接進行,而應(yīng)該使用 WPAR 的管理工具,如 WPAR Manager。并且目前 WLM 只支持在全局環(huán)境中運行,控制全局環(huán)境中的應(yīng)用或者 WPAR 的資源,而不支持在 WPAR 內(nèi)運行。
本系列文章旨在帶領(lǐng)讀者探索 AIX 6.1 中的新特性和對 AIX 5L 中已有功能的增強,并了解這些新特性對用戶的影響。在本文的第 1 部分中,我們介紹了 AIX 6.1 在系統(tǒng)基礎(chǔ)功能,存儲、I/O 和文件系統(tǒng)方面的新功能和增強。在本文的第 2 部分中,向您了網(wǎng)絡(luò),性能,虛擬化和可管理性方面的變化。本文為第 3 部分,向您介紹了關(guān)于可用性、安全性以及開發(fā)方面的一些新的特性和功能。
您可以訪問“AIX 6 資源中心”了解更多的 AIX 6 的新特性:
AIX 6 資源中心可用性
RAS 組件框架
企業(yè)級的 RAS(Reliability,Availability,Serviceability)歷來是 IBM System p 服務(wù)器和 AIX 操作系統(tǒng)的核心優(yōu)勢,在 AIX 6 中,其 RAS 特性又有了大幅增強,提供了一個組件式的 RAS 基礎(chǔ)框架,其中包含以下組件(又稱之為 Domain):
RTEC(Run-Time Error Checking):運行時故障檢查,可對系統(tǒng)組件(包括硬件和軟件)的故障檢測,嚴重程度級別和處理動作進行定義。AIX 6 中很多設(shè)備驅(qū)動和子系統(tǒng)都使用了該組件提供的服務(wù),例如 VMM 子系統(tǒng),存儲和磁盤驅(qū)動,網(wǎng)絡(luò)驅(qū)動等等。
CT(Component Tracing):新增的跟蹤(Tracing)調(diào)試手段。可以用于系統(tǒng)跟蹤時提供額外的更加細致的過濾,或者作為單獨的跟蹤手段來幫助診斷系統(tǒng)問題。
CD(Component Dump):對 Dump 功能的增強。Dump 信息的詳細程度可以進行細化控制,并且可執(zhí)行 Live Dump(dump 過程不需要停止系統(tǒng),dump 結(jié)束后系統(tǒng)繼續(xù)運行)。
基于這個框架,AIX 系統(tǒng)自身的各個部分和第三方的軟件都可以向系統(tǒng)注冊并執(zhí)行其特有的故障檢測和控制,tracing 和 dump 等功能,以提供更加強大和靈活的 RAS 特性。
伴隨著 RAS 組件框架還增加了一系列的系統(tǒng)管理命令,其中最主要的是 errctrl,ctctrl 和 dumpctrl 命令,可對各個 AIX 各個子系統(tǒng)或者設(shè)備的 RTEC,CT 和 CD 屬性進行控制。
Dump 功能的增強
Dump 是 AIX 系統(tǒng)中用于故障診斷的一項非常重要的功能,dump 數(shù)據(jù)中包括了故障發(fā)生時的內(nèi)存內(nèi)容和處理器狀態(tài)等信息,可用于重現(xiàn)故障時的場景以進行分析。舊式的 dump 方法是在崩潰時對整個系統(tǒng)的內(nèi)存都進行轉(zhuǎn)儲,由于現(xiàn)代系統(tǒng)的物理內(nèi)存越來越大,進行一次完整 dump 的時間也越來越長,間接的增加了由于宕機帶來的停機時間。AIX 6 中引入了幾種新的 dump 手段,更加靈活方便,對業(yè)務(wù)影響更小。下表對各種 dump 方式做了總結(jié):
方式 AIX 版本 說明
傳統(tǒng) dump 所有 原始方式,隨著 CPU 數(shù)量的增加,物理內(nèi)存的加大,dump 需要的時間也越來越長。
Minidump V5.3 TL3 數(shù)據(jù)不是像傳統(tǒng)的 dump 方式那樣保存到磁盤上,而是保存到 NVRAM 中,系統(tǒng)下次啟動時,再寫入到 error log 中。因此 Minidump 的容量非常小,只保存了關(guān)鍵的信息,同時轉(zhuǎn)儲所需要的時間也很短。
Parallel dump V5.3 TL5 Dump 數(shù)據(jù)存儲的格式發(fā)生改變,數(shù)據(jù)塊以無序方式存儲,使得多處理器的系統(tǒng)可以按照每個處理器同時轉(zhuǎn)儲一塊區(qū)域的方式將內(nèi)存數(shù)據(jù)寫入到 dump 設(shè)備。此改進使得大型系統(tǒng)(多 CPU,大內(nèi)存)的 dump 速度得到大大提升,僅僅受限于 I/O 速度。
Component Dump V6 在上一主題“RAS 組件框架”中我們已經(jīng)提到,Component Dump 使得管理員可以對 dump 的詳細程度和各組件的 dump 屬性進行更加精確的控制。
Live Dump V6 Live Dump 方式基于新的 Component Dump 框架。執(zhí)行時,只有那些注冊到 CD 框架并且聲明為支持 Live Dump 特性的組件才會有數(shù)據(jù)轉(zhuǎn)儲。Live Dump 還有另外一項非常重要的特性,就如其名稱表明的一樣,在 dump 時不需要重新啟動系統(tǒng)。因此 Live Dump 方式減少了需要轉(zhuǎn)儲的數(shù)據(jù)并顯著的降低了 dump 所需要的停機時間。
Firmware-Assisted Dump V6 傳統(tǒng)的 dump 方式實際上是由已經(jīng)發(fā)生故障的 AIX 內(nèi)核進行的,這樣存在兩個問題:
如何保證由已經(jīng)故障的內(nèi)核所寫入的數(shù)據(jù)的正確性
故障嚴重到內(nèi)核已經(jīng)無法進行 dump 時,即無法收集任何 dump 信息
在 POWER 6 平臺上,系統(tǒng)微碼引入了對 AIX dump 的支持。AIX 6 可以在發(fā)生崩潰時立即重啟,系統(tǒng)微碼會保護崩潰時的內(nèi)存區(qū)域的內(nèi)容不受影響。在 AIX 6 系統(tǒng)啟動過程中,內(nèi)核會將由微碼保護起來的內(nèi)存區(qū)域轉(zhuǎn)儲并釋放。使用此方式,dump 的可靠性得到了大幅提升。
可見,在 AIX 6 中,dump 方式的改進主要在于可更加細致的控制 dump 的內(nèi)容,減少 dump 對系統(tǒng)的影響,增加 dump 過程的可靠性這幾方面。
Storage protection keys
Storage protection keys 是 POWER 6 處理器新增加的一項功能,系統(tǒng)內(nèi)存可以按照區(qū)域分配不同的 key,通過硬件提供支持來保證只有持有正確的 key 的代碼可以修改其內(nèi)容。該技術(shù)可以應(yīng)用在 AIX 內(nèi)核或者用戶應(yīng)用程序代碼中,防止由于代碼的錯誤行為(無論是有意還是無意)而可以任意破壞其它內(nèi)存區(qū)域,因此可以進一步提高系統(tǒng)的穩(wěn)定性。AIX 5.3 TL6 中加入了 Storage protection keys 的 API,應(yīng)用程序可以使用此功能,但是內(nèi)核并不支持使用 key 來保護。而 AIX 6 中,內(nèi)核代碼和用戶應(yīng)用代碼都可以使用 Storage protection keys 功能。
內(nèi)核故障恢復(fù)
作為系統(tǒng)的關(guān)鍵部分,AIX 內(nèi)核的穩(wěn)定性直接影響到整個系統(tǒng)的可用性。如果內(nèi)核出現(xiàn)了錯誤,往往造成整個系統(tǒng)直接崩潰。AIX 6 內(nèi)核包括了自動故障恢復(fù)功能(Kernel error recovery),當(dāng)錯誤出現(xiàn)時,可以自動采取動作,避免造成崩潰。
AIX 6 內(nèi)核中增加了一個稱之為恢復(fù)管理器(Recovery Manager)的組件,所有需要提供故障自動回復(fù)的內(nèi)核組件或者擴展模塊都會向 Recovery Manager 注冊其特定的恢復(fù)例程(Recovery Routine)。當(dāng)某個組件發(fā)生錯誤時,它會產(chǎn)生一個異常,將執(zhí)行轉(zhuǎn)交給 Recovery Manager,由其執(zhí)行該組件的恢復(fù)例程。當(dāng)恢復(fù)例程執(zhí)行結(jié)束后,Recovery Manager 會將執(zhí)行交還該組件,使其繼續(xù)運行下去。
恢復(fù)例程內(nèi)通常會執(zhí)行以下操作,使得出錯的組件可以恢復(fù)到正常的執(zhí)行狀態(tài):
收集故障數(shù)據(jù)
檢查并恢復(fù)數(shù)據(jù)結(jié)構(gòu)
對組件出錯時持有的資源進行相應(yīng)的處理或者釋放
決定修復(fù)為故障而應(yīng)采取的措施
恢復(fù)例程通常在嘗試進行任何恢復(fù)動作前會先觸發(fā)一個 Live Dump,并在 AIX error log 中會記錄一次內(nèi)核故障恢復(fù)事件(Lable 為 RECOVERY、RECOVERY_NOTIF 或 RECOVERY_TIME)。
內(nèi)核故障恢復(fù)功能的開啟可以通過 raso 命令來進行控制,包括受限參數(shù) recovery_action、recovery_average_threshold、recovery_debugger 和 recovery_framework。也可以通過 SMIT 菜單來訪問,快捷路徑為 krecovery。
在線內(nèi)核升級(Concurrent update)
在 AIX 6 之前的版本中,任何對 AIX 內(nèi)核進行更新的操作之后都必須要執(zhí)行 bosboot 命令更新 Boot LV 然后重新引導(dǎo)系統(tǒng)才會生效,在補丁升級任務(wù)結(jié)束后經(jīng)常會看到這樣的提示信息,
* * * A T T E N T I O N * * *
System boot image has been updated. You should reboot the
system as soon as possible to properly integrate the changes
and to avoid disruption of current functionality.
就是因為這個原因。因此當(dāng) IBM 發(fā)布一個關(guān)鍵的內(nèi)核補丁時,用戶通常會面臨一個兩難的局面:如果升級補丁,必須要重新啟動,這會帶來一段宕機時間;而如果不更新補丁,又會面臨潛在的問題。
AIX 6 通過引入在線內(nèi)核升級(Concurrent update)功能改善了這個問題,該功能的特點在于:
安裝后不需要重啟,即時生效。補丁可以設(shè)置為在重啟后持續(xù)生效,或者僅對本次有效。
以臨時補丁(Interim Fix)的形式提供,使用 emgr 命令來安裝和管理。emgr 命令新增加 -i 參數(shù)來安裝 concurrent update,具體的信息可以參考 man emgr。
如果補丁被安裝為應(yīng)用(Applied)狀態(tài),而沒有被提交(Commit),那么移除該補丁同樣不需要重新啟動系統(tǒng)。
由于對運行中的內(nèi)核代碼進行動態(tài)的修改和替換是一個復(fù)雜的過程(AIX 6 的內(nèi)核專門為此引入了相應(yīng)的機制和系統(tǒng)調(diào)用),因此并不是所有的內(nèi)核補丁都能夠以在線方式升級。對內(nèi)核的重大改變或者關(guān)鍵部分的升級還是需要計劃相應(yīng)的宕機時間。
換頁空間校驗
AIX 6 增加了對換頁空間(Paging space)數(shù)據(jù)的正確性校驗,通過記錄被換頁的內(nèi)存數(shù)據(jù)的校驗和(checksum),AIX 6 確保內(nèi)存數(shù)據(jù)在寫入到磁盤時和從磁盤讀入時是一致的。如果校驗數(shù)據(jù)表明 Paging space 中的數(shù)據(jù)不正確,AIX 會記錄一個錯誤日志,并根據(jù)錯誤的內(nèi)存數(shù)據(jù)屬于哪個區(qū)域而采取相應(yīng)的行為:如果屬于內(nèi)核使用的系統(tǒng)內(nèi)存,那么停機;如果屬于應(yīng)用程序使用的部分,則給相應(yīng) 的進程發(fā)送異常信號。
Paging space 的中的數(shù)據(jù)以 4KB 為單位計算校驗和,校驗和長度(checksum size)可以在 8/16/32 bit 中進行選擇,如果 checksum size 設(shè)置為 0,則關(guān)閉了該功能。當(dāng)打開校驗功能時,每個 Paging space 設(shè)備會對應(yīng)一段大小為 256MB 的專用內(nèi)存區(qū)域,用來記錄存儲到該設(shè)備上的每個內(nèi)存頁的校驗和。Paging space 的校驗和長度設(shè)置記錄在 /etc/swapspaces 文件中,可以在創(chuàng)建時使用 mkps –c 參數(shù)來指定,也可以在創(chuàng)建好之后使用 chps –c 參數(shù)來修改。
回頁首 安全
Trusted AIX
Trusted AIX 是 AIX 6 提供的一種工作模式,在此模式下,AIX 系統(tǒng)使用 Label 對系統(tǒng)中的 Subjects(通常是系統(tǒng)中的進程)和 Objects(被訪問的資源,包括文件,內(nèi)存中的 IPC 對象,網(wǎng)絡(luò)數(shù)據(jù)包,以及其他任何資源)進行標(biāo)記,說明其安全屬性。相比于普通的 AIX,在 Trusted AIX 環(huán)境下某個 Subject 是否可對某個 Object 執(zhí)行相應(yīng)的操作,均需根據(jù)其附屬的 Label 來進行判斷,而通過合理的設(shè)置 Label,可以對系統(tǒng)上的數(shù)據(jù)進行不同級別的保護。
在普通的 AIX 環(huán)境下用戶可以使用以下一些手段來對數(shù)據(jù)進行隔離和訪問控制:
按照 User/Group/Others 角色來分配 Read/Write/Execute 權(quán)限,初步控制文件權(quán)限
用戶自主設(shè)置的 ACL,文件的屬主可以控制 ACL,將訪問授權(quán)給任何人
進程的權(quán)限由其有效 UID 和 GID 來決定
審計子系統(tǒng)(Audit subsystem)用來審計用戶和進程的操作
基于角色的訪問控制(RBAC)
這些手段也是 UNIX 世界中傳統(tǒng)的方式,簡單,實用,但是卻有著各種不足,例如:
文件的屬主擁有對文件訪問權(quán)限的全面控制,一旦設(shè)置不當(dāng)(不論有意或無意),都會有敏感數(shù)據(jù)泄漏的風(fēng)險。
不論是普通的文件權(quán)限位還是 ACL,都只能對“文件”資源進行控制,對諸如內(nèi)存對象和網(wǎng)絡(luò)數(shù)據(jù)包則無能為力。
即便是使用了 ACL,文件權(quán)限的設(shè)定粒度也不夠精細。
存在一個特殊的用戶:root。他可以訪問和修改系統(tǒng)內(nèi)的幾乎所有資源,是嚴重的安全隱患。
Trusted AIX 在這些傳統(tǒng)方法的基礎(chǔ)之上進一步提供了更加強大和全面的手段,來加強對數(shù)據(jù)的保護。在 Trusted AIX 環(huán)境下可以做到:
強制訪問控制:文件的屬主不能隨意修改文件的安全屬性,只有被授權(quán)的操作員才可以執(zhí)行這類操作,保證敏感數(shù)據(jù)的訪問受到控制。
對進程,文件和其他各種數(shù)據(jù)設(shè)置 Security Label 和 Integrity Label。通過這些 Label 可以精確控制進程對數(shù)據(jù)的訪問和修改權(quán)限。
細分用戶權(quán)限,任何用戶要訪問某個資源或執(zhí)行某個操作,都必須要有相應(yīng)的權(quán)限。root 不再是一個特殊的萬能用戶,它與普通用戶一樣,只能訪問有授權(quán)的文件。
進程和用戶執(zhí)行的操作和其多需的對應(yīng)權(quán)限細分后,系統(tǒng)可以對其進行更加詳細的記賬和審計操作。
Trusted AIX 設(shè)計主要是針對需要極高安全性的用戶,例如軍事國防等領(lǐng)域。由于控制更加嚴格,不可避免的增加了管理難度,降低了易用性,并帶來一些特定的限制。用戶在部署 Trusted AIX 之前需要對此有充分的了解:
Trusted AIX 模式是否開啟由安裝時的選項決定,普通模式和 Trusted AIX 模式之間切換只有通過重新覆蓋安裝來完成。
在 Trusted AIX 環(huán)境下 root 用戶無法登陸系統(tǒng),這會對一些應(yīng)用的行為產(chǎn)生影響,例如 NIM 和其他一些需要使用 root 用戶通過網(wǎng)絡(luò)登錄執(zhí)行管理操作的應(yīng)用程序。
由于 root 用戶不再可用,新增三個用戶 isso,sa 和 so 供系統(tǒng)管理和操作用途。這三個帳戶必須在安裝結(jié)束后第一次啟動時設(shè)置密碼,否則系統(tǒng)無法使用。
Trusted AIX 環(huán)境下創(chuàng)建的 WPAR,也受 Security Label 的控制。
RBAC 和 Trusted Execution 功能在普通和 Trusted AIX 模式都可用,如果僅僅需要這兩個功能,可以不必選擇啟用 Trusted AIX。
Trusted AIX 與普通 AIX 兼容,在普通 AIX 模式下能正常工作的應(yīng)用程序在 Trusted AIX 下也可以正常運行。但由于 Trusted AIX 下應(yīng)用程序的操作都受到更多的限制,因此程序很可能會由于安全規(guī)則設(shè)置的原因無法正常工作。管理員可以使用 tracepriv 命令來幫助診斷此類問題。
Trusted Execution Environment
在 AIX 5L 中有一項稱之為 Trusted Computing Base(TCB)的安全特性,該功能主要用于保證關(guān)鍵的系統(tǒng)文件是可信的。TCB 通過 crontab 定時對關(guān)鍵的系統(tǒng)文件屬性進行掃描,并將結(jié)果與其保存在數(shù)據(jù)庫內(nèi)的數(shù)據(jù)進行對比,以鑒別這些文件是否被修改過。TCB 可以在一定程度上保證系統(tǒng)不受被篡改過的程序的危害。AIX 6 中開始提供了一個新的功能,稱之為 Trusted Execution(TE) Environment,可以看作為 Trusted Computing Base 的增強。原有的 TCB 仍然可用,用戶可以在這兩者間選擇啟用任意一個。
TE 與 TCB 最大的不同在于,TCB 只能依賴于 crontab 這類方法來定時檢查關(guān)鍵文件的正確性,兩次檢查之間會存在一個窗口期;而 TE 除此之外,還可以在文件 每次 被訪問(執(zhí)行)的時刻,即時進行檢查,以確保任何時候載入的代碼都是可信任的。TE 維護一個稱之為 Trusted Signature Database(TSD)的數(shù)據(jù)庫,其中記錄了受到保護的文件的各類屬性,最重要的是文件哈希值(Hash),通過對比 TSD 中和磁盤上的文件的 Hash 值,即可以判斷文件是否處于完整可信,未被篡改的狀態(tài)。
Trusted Execution 提供了 trustchk 命令來設(shè)置 TE 的工作策略,對系統(tǒng)的進行完整性檢查和管理 TSD。正如前文曾經(jīng)提到過的,完整性檢查有兩種工作方式:
系統(tǒng)完整性檢查 在每次系統(tǒng)啟動時,或者在 crontab 中定時運行,對整個系統(tǒng)中受到監(jiān)控的文件的屬性進行掃描,與 TSD 中存儲的信息進行對比。
運行時完整性檢查 在收到保護的文件每次被讀入時對其簽名進行檢查,確保文件始終是可信的,而不是被篡改過(例如插入了木馬,惡意代碼)。
Trusted Execution 策略可以設(shè)置為對執(zhí)行文件,共享庫,腳本和內(nèi)核擴展模塊進行檢查;可以鎖定 TSD 數(shù)據(jù)庫和受保護的文件為不可修改狀態(tài);還可以設(shè)置受信任的執(zhí)行文件和共享庫路徑,只有在此路徑下的執(zhí)行文件和共享庫才能被調(diào)用。將這些策略進行適當(dāng)?shù)脑O(shè)置 和組合,可以對系統(tǒng)關(guān)鍵文件的完整性進行靈活而強大的保護。
Trusted Execution 與 Trusted Computing Base 另外一個不同在于,TCB 是安裝時的選項,其開啟和關(guān)閉必須在安裝時就進行選擇,而 TE 是一個動態(tài)選項,可以通過 trustchk 命令來動態(tài)控制開啟或者關(guān)閉。
增強的基于角色的訪問控制(Role Based Access Control)
增強的 Role Based Access Control(RBAC)是 AIX 6 中另一項非常重要的安全特性,事實上,從 AIX 4.2 開始便包含了一個 RBAC 應(yīng)用框架,但該框架有如下不足:
應(yīng)用程序需要做相應(yīng)的修改才能利用該框架支持 RBAC。
預(yù)定義的授權(quán)體系粒度不夠。
為執(zhí)行某些程序,用戶經(jīng)常需要具有某個特定的組身份(group membership)和角色(role)。
在用戶角色(role)的管理上不夠強大和靈活。
尚未達到“最小權(quán)限”原則的要求,許多特權(quán)命令依然還是需要被設(shè)置為 SUID。
為了解決這些問題,AIX 6 中引入的了一個新的 RBAC 框架,稱之為 Enhanced RBAC,原有的框架改稱為 Legacy RBAC。
RBAC 的核心思想是將權(quán)限細分,并與用戶分離,用戶在執(zhí)行某個特權(quán)操作時,只需要具有相應(yīng)的最小權(quán)限,而不需要擁有某個特殊的用戶身份和其他不相干的權(quán)限。RBAC 框架中有以下幾個重要的概念:
授權(quán)(Authorizations)授權(quán)是對用戶的能力的定義。在執(zhí)行任務(wù)時,用戶必須要具有對應(yīng)的授權(quán)才能夠使用特定的命令。
特權(quán)(Privileges)特權(quán)是對進程的能力的定義。進程需要有足夠的特權(quán)級才能進行受到安全限制的操作。
角色(Roles)角色是將授權(quán)賦予給某個用戶的手段。一個角色可以包含有為執(zhí)行某個任務(wù)而需要的多個授權(quán),當(dāng)該角色被賦予某個用戶時,該用戶即擁有了這些授權(quán),可以執(zhí)行對應(yīng)的系統(tǒng)管理任務(wù)。
如果沒有 RBAC,系統(tǒng)的權(quán)限實際上集中在特定的用戶手上,無法分離。典型的是 root 用戶,可以訪問系統(tǒng)中所有資源,以 root 身份運行的程序也就可以執(zhí)行任意的操作。如果普通的用戶需要執(zhí)行某個操作,比如管理文件系統(tǒng),由于權(quán)限與用戶身份綁定在一起,那么他只能設(shè)法以 root 身份來執(zhí)行任務(wù),例如使用 SUID 的程序。引入 RBAC 支持之后,權(quán)限和用戶不再是綁定的。用戶如果需要某個特權(quán)來執(zhí)行管理操作,他只需要獲得相應(yīng)的授權(quán)即可,不需要改變自己的身份。
默認情況下 RBAC 的配置文件位于 /etc/security 目錄下,保存了角色,授權(quán),特權(quán)命令,特權(quán)設(shè)備和特權(quán)文件數(shù)據(jù)。對這些配置修改后,管理員需要使用 setkst 命令將配置文件中的數(shù)據(jù)上傳到 AIX 內(nèi)核中的 Kernel Security Table(KST)才會生效。配置文件數(shù)據(jù)還可以存放在 LDAP 目錄中,該特性由 /etc/nscontrol.conf 文件控制。通過將 RBAC 配置保存在 LDAP 目錄中,多個 AIX 服務(wù)器可以共享同樣的 RBAC 配置,簡化企業(yè)網(wǎng)絡(luò)的安全管理。
超過 8 字符的密碼支持
AIX 5L 中支持的最大密碼長度為 8 個字符長,這是由于密碼加密過程算法使用的是 crypt() 調(diào)用,該方法會將密碼在 8 字節(jié)處截斷。從 AIX 6.1 和 AIX 5.3 TL7 開始,支持可加載的密碼算法(Loadable Password Algorithm),這樣 AIX 系統(tǒng)可以支持更多種密碼算法來對密碼進行加密,并且密碼的最大長度也擴展到了 255 個字符(各種密碼加密算法支持的最大長度不同)。由于密碼算法可變,密碼長度更長,用戶密碼被暴力破解的可能性也就相應(yīng)降低了。
回頁首 內(nèi)核和應(yīng)用開發(fā)環(huán)境
ProbeVue
AIX 6 中引入了稱之為 ProbeVue 的新的的跟蹤手段,它的最大特點在動態(tài)跟蹤。“動態(tài)”意味著應(yīng)用程序不需要做任何修改就可以在運行過程中隨時插入跟蹤點,收集執(zhí)行時的狀態(tài)數(shù)據(jù)。而以往的 跟蹤方法(靜態(tài)跟蹤)需要在程序源代碼中加入跟蹤點,并在編譯時使用對應(yīng)的選項以生成帶跟蹤和調(diào)試信息的執(zhí)行文件。由于加入這些額外信息的程序往往執(zhí)行速 度更慢并占用更多內(nèi)存,因此生產(chǎn)系統(tǒng)通常不會運行運行這些調(diào)試版本的代碼,導(dǎo)致發(fā)生程序發(fā)生問題時,往往需要停止原來的生產(chǎn)版本程序,啟動帶跟蹤信息的版 本,等待問題再次發(fā)生然后進行跟蹤調(diào)試。相比之下使用 ProbeVue 可以在生產(chǎn)系統(tǒng)中不用中斷應(yīng)用程序,隨時可以被跟蹤收集信息。
ProbeVue 中重要的概念包括:
Probe 中斷正在執(zhí)行的代碼,以收集當(dāng)時系統(tǒng)狀態(tài)和進程上下文信息的動作。
Probe Action 在一個 Probe 中執(zhí)行的具體動作,通常包括收集各種系統(tǒng)全局數(shù)據(jù)和進程特有的上下文信息的過程,并將這些信息保存到緩沖區(qū),供跟蹤工具讀取和分析。
Probe Point 程序代碼執(zhí)行過程中可以進行 Probe 操作的位置。ProbeVue 支持兩種類型的 Probe Point:Probe Location 和 Probe Event
Probe Location 代碼中的某個具體的位置,當(dāng)執(zhí)行到這個位置時,該點的 Probe Action 就會被觸發(fā)
Probe Event 對應(yīng)于一個抽象的事件(Event)而不是具體的代碼位置,當(dāng)某個 Event 發(fā)生時,觸發(fā)具體的 Probe Action。
ProbeVue 使用稱之為 Vue 的專用腳本語言來進行具體的跟蹤工作, Vue 腳本的主要內(nèi)容可以歸納為
一個或多個 Probe 語句:在某個 Probe Point,如果滿足某個條件斷言(Predicate),則執(zhí)行某個 Probe Action 代碼段。簡單來講,就是何時,何處執(zhí)行什么跟蹤操作。
可選的初始化操作和退出時的清理操作。
Vue 腳本通過將多個 Probe 語句組合到一起可以完成非常復(fù)雜的跟蹤操作,收集豐富的調(diào)試信息,大大的增強了 AIX 系統(tǒng)下的調(diào)試手段。
TI-RPC
傳輸無關(guān)的 RPC(Transport Independent Remote Procedure Call)是 AIX 內(nèi)包含的一套應(yīng)用編程接口(API),它使得在編寫使用 RPC 方式進行網(wǎng)絡(luò)計算的應(yīng)用程序時不再需要關(guān)注下層具體的傳輸協(xié)議(常見的如 TCP,UDP,或者其他任何支持的網(wǎng)絡(luò)傳輸協(xié)議)。應(yīng)用程序只需要關(guān)注具體的 RPC 問題,而 TI-RPC 會處理下層的傳輸細節(jié),這樣可以大大增加應(yīng)用程序的可移植性。
在 AIX 6 之前,AIX 系統(tǒng)內(nèi)部已經(jīng)提供了 TI-RPC 接口,主要供操作系統(tǒng)自身使用(例如 NFS 功能),但是 IBM 并不為客戶使用該 API 提供支持。從 AIX 6 開始,IBM 正式支持 TI-RPC 作為 AIX 標(biāo)準的編程接口。同時該接口也保持與 Sun Solaris 系統(tǒng)中的 TI-RPC API 的兼容性,應(yīng)用程序移植時幾乎不需要做任何修改。
回頁首 總結(jié)
到此為止,我們對 AIX 6 中的新增功能和對原有特性的增強做了一個比較全面的介紹,由于篇幅的關(guān)系,很多細節(jié)沒有進行詳細的描述,并且還有不少特性由于涉及內(nèi)容太過于深入也沒有介 紹到。讀者可以參考 IBM 紅皮書《IBM AIX Version 6.1 Differences Guide》來學(xué)習(xí)更多具體的內(nèi)容。