工作負載分區(Workload Partition,以下簡稱為 WPAR)是 IBM AIX 6 在虛擬化方面的一項重要增強。在本系列的第二篇文章《探索 AIX 6:新特性概覽(中)》一文中,我們已經對 WPAR 做了一個概要的介紹,讀者應該對其有個大概的印象。在本文中,我們一起來瞭解使用
AIX 6 系統自帶的工具(系統命令和 SMIT 功能表)對
WPAR 進行基本的管理操作,包括創建,刪除,啟動,停止,登錄,掛起,備份和恢復等,並瞭解 WPAR 對系統環境的要求和安裝前期應該進行的計畫準備工作。
與 IBM POWER 平臺由硬體方式實現的邏輯分區(LPAR)功能不同,WPAR 是 AIX 6 內核在軟體層面實現的虛擬化方案。WPAR 使得多個“系統環境”可以共用一個 AIX 作業系統,彼此之間由內核保證隔離。承載所有這些被隔離開的“系統環境”的 AIX 作業系統稱之為全域環境,一個“系統環境”即 WPAR,它既可以包括一個完整的 AIX 環境(稱之為系統 WPAR),也可以僅僅包括應用程式的進程(稱之為應用 WPAR)。
要注意的是,WPAR 和 LPAR 具有各自的特點,是針對不同的用戶需求而設計的,它們之間是互相補充,相輔相成的關係。一個 IBM POWER 伺服器上可以同時運行有多個 LPAR 和 WPAR。下圖較清晰的解釋了系統平臺,WPAR,LPAR 之間的關係。
上圖為一個 system p 的系統平臺,該平臺被分割成多個
LPAR,每個 LPAR 上可以運行一個作業系統實例。LPAR
上可運行的系統包括 Linux,AIX 和 VIOS。在運行 AIX6 的
LPAR 中,我們又可以運行和管理一個或多個 WPAR。
計畫和考慮
WPAR
是基於 OS 在軟體層的實現的虛擬化解決方案。作為 POWER 平臺硬體虛擬化的一個補充,其應用優勢與應用範圍綜合來看有以下這麼幾點:
- 分配計算資源擁有更小更精確的細微性,佔用資源較少,部署更簡單,適合用於整合細小的 IT 應用。
- 保護硬體投資,WPAR 可以讓基於 POWER4,POWER5 的硬體平臺,支援更靈活的動態 WPAR 虛擬化解決方案。
- 採用 WPAR 技術就意味著需要更少的作業系統實例,減少了作業系統與套裝軟體維護與管理。
- WPAR 支持跨伺服器的虛擬化解決方案,通過 WPAR 技術可以輕鬆的將應用從一個伺服器切換到另一台伺服器。更靈活的利用整個服務群集的資源。(LPAR 在 POWER6 平臺上也支援跨伺服器虛擬化技術)
- 高可用與災難恢復功能,WPAR 提供的 Checkpoint 功能,可以將正在運行的程式保存成系統快照鏡像檔,用戶可以隨時從鏡像的時間點繼續運行程式。這種功能特別適合於高性能計算等執行時間較長的應用程式。 與 HACMP 高可用機制略有不同,WPAR 提供的是鏡像網站(point-in-time)的高可用保護。
我們結合應用需要與 WPAR 的應用優勢來綜合考慮,到底採用底層的 LPAR 虛擬化分區技術,還是 WPAR 虛擬化分區技術。
考慮好是否採用 WPAR 技術,接下來要考慮的就是使用哪一種 WPAR 方式。WPAR 有兩種類型,一是應用 WPAR,另一種是系統 WPAR。
應用 WPAR 是一種簡單的 WPAR 方式,它與 AIX 全域環境共用檔案系統和服務進程,可以簡單的把應用 WPAR 看作是一個包含所有應用程式進程的一個容器。這個容器保證了應用程式進程與外界的隔離。
系統 WPAR 提供了一個虛擬的 AIX 系統環境,它有自己的初始化進程,譬如獨立的 inetd 後臺服務監控進程。它還有獨立的用戶、組許可權管理、獨立的網路位址,以及支持遠端登入的功能。除了部分檔案系統與 AIX 系統共用以外,系統 WPAR 也有獨立的檔案系統空間,我們可以認為系統 WPAR 就是一個縮減版的 AIX 系統環境。
應用 WPAR 與系統 WPAR 各自的特點我們用下表來為大家做一個參照。
系統 WPAR
|
應用 WPAR
|
為多個相互關聯的應用提供的隔離環境,有獨立的 AIX 服務進程。類似于傳統的 AIX 環境。
|
為單個獨立的應用服務進程提供隔離環境。
|
WPAR 需要被定義,並支援啟動,關閉,重啟等操作。WPAR 創建後,即可通過 lswpar 命令查詢到 WPAR 的狀態。
|
WPAR 狀態只是臨時性的,隨著應用的啟動而生成,隨著應用的關閉而消失。被關閉的應用 WPAR 無法使用 lswpar 命令列出。
|
具有自己獨立的檔案系統資源,獨立的初始化進程,獨立的使用者管理與許可權控制。獨立的 IP 位址,並支持遠端登入。
|
與 AIX 全域環境共用資源
|
創建和刪除 WPAR
系統 WPAR 的創建。
創建一個最簡單的系統 WPAR,只需要使用命令“mkwpar –n <wparname>”即可。WPAR 的創建也支援使用 smit 命令(smit mkwpar)。
我們接下來將使用 mkwpar 命令創建一個系統 WPAR,名稱為 mywpar01,使用 -N 指定
ip 位址為 192.168.21.136. ip 綁定在網卡
en0 上,為了能夠獨立的安裝軟體,我們使用 -M 參數指定使用了獨立的檔案系統,還使用 -A 參數指定系統啟動時 WPAR 分區自動啟動。完整的命令如下:
mkwpar -N interface=en0 address=192.168.21.136 netmask=255.255.0.0 -A -M
directory=/
vfs=jfs2 size=5G -M vfs=directory directory=/var -M vfs=directory
directory=/tmp -M
vfs=directory directory=/home -M vfs=directory directory=/usr -M
vfs=directory
directory=/opt -n mywpar01
mkwpar: Creating file systems...
/
/home
/opt
/proc
/tmp
/usr
/var
Mounting all workload partition file systems.
x ./usr
x ./lib
x ./admin
x ./admin/tmp
.
.( 省略若干行 )
Workload partition mywpar01 created successfully.
mkwpar: 0960-390 To start the workload partition, execute the following as
root:
startwpar [-v] mywpar01
我們可以使用 lswpar 來檢查我們所常見的 WPAR 狀態。
# lswpar
Name State Type Hostname Directory
-------------------------------------------------
mywpar01 D S mywpar01 /wpars/mywpar01
我們看到我們已經創建好了 mywpar01,其狀態為 D(defined
定義好的),類型為 S(System 系統 WPAR)。
應用 WPAR 的創建。
應用 WPAR 的創建較為簡單,只須使用 wparexec 命令來執行應用程式即可。請注意應用程式需使用絕對路徑調用。例如我們使用應用 WPAR 來執行 vmstat 程式
# wparexec /usr/bin/vmstat 5//5 為 vmstat 的參數
Starting workload partition 'vmstat'.
Mounting all workload partition file systems.
Loading workload partition.
vmstat configuration: @lcpu=4 @mem=1024MB @ent=0.30
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------------------
@ @ @ @ @
r b avm fre re pi po fr sr cy in sy
cs us sy id wa pc ec
0 0 140685 73170 0 0 0 0 0 0 18
1262 1 2 98 - - 0.00 0.4
0 0 140686 73169 0 0 0 0 0 0 7 9 1
1 99 - - 0.00 0.5
我們此時再執行 lswpar,就可以看到現在多了一個應用 WPAR,它的名稱是 vmstat,狀態是 A(活動的)。wparexec
除了可以用來啟動一個可執行程式外,也可用來啟動一個腳本從而在 WPAR 中運行多個程式。
# lswpar
Name State Type Hostname Directory
-------------------------------------------------
mywpar01 D S mywpar01 /wpars/mywpar01
vmstat A A vmstat /
WPAR 的刪除
應用 WPAR 中所有進程退出後,WPAR 即自動刪除了,無需手動操作,系統 WPAR 的刪除可參照下列步驟:
- 確認系統 WPAR 處於 Defined 狀態。只有 Defined 狀態下的 WPAR 才能執行正常的刪除操作。
- 確認不再需要該 WPAR。
- 執行 rmwpar < WPAR name> 刪除 WPAR,如 rmwpar mywpar01。
對於損壞的 WPAR,可以使用 rmwpar –F 強行刪除 WPAR。
啟動和停止 WPAR
系統 WPAR 支援啟動,關閉,重啟等操作,啟動 mywpar01:
# startwpar mywpar01
Starting workload partition 'mywpar01'.
Mounting all workload partition file systems.
Loading workload partition.
Exporting workload partition devices.
Starting workload partition subsystem 'cor_mywpar01'.
0513-059 The cor_mywpar01 Subsystem has been started. Subsystem PID is
499778.
Verifying workload partition startup.
# lswpar
Name State Type Hostname Directory
-------------------------------------------------
mywpar01 A S mywpar01 /wpars/mywpar01
我們通過 lswpar 看到 mywpar01 狀態已經變成 Active 了。接下來我們重啟 WPAR,重啟系統 WPAR 可以登錄到 WPAR 中然後使用 shutdown –Fr 命令像重啟作業系統一樣重啟 WPAR,也可以使用 rebootwpar 命令來實現。
# rebootwpar -N mywpar01// 加上 -N 參數則立即重啟,否則將等待 600 秒
Stopping workload partition 'mywpar01'.
Stopping workload partition subsystem 'cor_mywpar01'.
0513-006 The Subsystem, cor_mywpar01, is currently stopping its execution.
stopwpar: 0960-242 Waiting for workload partition to halt.
Shutting down all workload partition processes.
Unmounting all workload partition file systems.
Starting workload partition 'mywpar01'.
Mounting all workload partition file systems.
Loading workload partition.
Exporting workload partition devices.
Starting workload partition subsystem 'cor_mywpar01'.
0513-059 The cor_mywpar01 Subsystem has been started. Subsystem PID is
446548.
Verifying workload partition startup.
#
下面我們使用命令 stopwpar 來停止 mywpar01:
# stopwpar -N mywpar01 // 加上 -N 參數立即關閉,否則將等待 600 秒。
Stopping workload partition 'mywpar01'.
Stopping workload partition subsystem 'cor_mywpar01'.
0513-006 The Subsystem, cor_mywpar01, is currently stopping its execution.
stopwpar: 0960-242 Waiting for workload partition to halt.
Shutting down all workload partition processes.
Unmounting all workload partition file systems.
登錄和操作 WPAR
登錄到系統 WPAR 可以有 2 種方式,一是在
AIX 全域環境下使用 clogin 命令進入 WPAR,另外則是通過 WPAR 的 IP 直接用
telnet 的方式登錄。
# telnet 192.168.21.136// 使用 telnet 方式
Trying...
Connected to 192.168.21.136.
AIX Version 6
Copyright IBM Corporation, 1982, 2007.
login:
//
使用 clogin 方式
# clogin mywpar01
******************************************************************************
* Welcome to AIX Version 6.1! *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to
*
* this release of the AIX Operating System. *
*******************************************************************************
Last login: Thu Feb 28 17:36:26 2008 on /dev/pts/0 from 10.172.192.6
# hostname
mywpar01
系統 WPAR 的操作命令風格與 AIX 環境一樣,接下來您就可以在 WPAR 安裝運行程式了
安裝應用軟體
在預設的情況下,系統 WPAR 與 AIX 全域環境共用
/usr 和 /opt 目錄,並只有唯讀的許可權,WPAR 用戶無法寫入,所以安裝軟體必須在 AIX 全域環境下進行。如果你一定要在 WPAR 中獨立安裝軟體,則必須在創建系統 WPAR 時使用參數 -M 聲明使用獨立的 /usr 和 /opt 檔案系統分區,具體參數使用方法可參考上文中創建刪除 WPAR 部分。我們之前創建的系統 WPAR 有獨立的 /usr 和 /opt 分區,所以接下來可直接演示在系統 WPAR 中安裝一個 apache Web 應用。Apache 是一個 rpm 的安裝包,我們將使用 rpm 命令來安裝,AIX 其他的安裝軟體的方式如 smit、installp 也都能正常在系統 WPAR 環境下使用。
# df// 請注意 opt 與 /usr 是根分區下的一個目錄,有讀寫許可權。
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
/dev/fslv12 10485760 5983800 43% 42637 6% /
/proc - - - - - /proc
# rpm -ivh expat-1.95*
expat ##################################################
# rpm -ivh apache-1.3.31-1.aix5.1.ppc.rpm
apache ##################################################
#cd /opt/freeware/apache/share/htdocs// 進入 apache
放置網頁的目錄
#echo "this is a test page for WPAR http service" >
index.html
// 生成一個簡單的頁面,打開後顯示“this is a test page for WPAR http service”。
# /opt/freeware/apache/sbin/apachectl start// 啟動 http 服務
/opt/freeware/apache/sbin/apachectl start: httpd started
啟動 http 服務後,我們可以通過系統 WPAR 的 IP 位址訪問其 WEB 服務,我們用
IE 流覽器來驗證。請注意我們剛才創建 WPAR 時指定的
IP 位址為 192.168.21.136,我們可以通過 http://192.168.21.136
來訪問我們剛才生成的一個頁面。
至此,我們已經演示了一個基本的 WPAR 的創建,管理與應用整個全過程。
暫停和恢復 WPAR
掛起和恢復 WPAR 是在伺服器間動態移動 WPAR 的基礎,掛起 WPAR 也即將當前時刻的 WPAR 運行狀態使用快照的方式保存下來,恢復過程則是從快照檔讀取 WPAR 狀態資訊,繼續運行 WPAR。這是 WPAR 的高級功能之一,需要安裝 WPAR agent,這部分內容將在續篇中詳細說明。
備份和還原 WPAR
備份 wpar 非常簡便,我們不但可以備份 Defined 狀態的系統 WPAR,也可以備份活動的 WPAR。備份 WPAR 使用 savewpar 命令,使用 -f 指定備份設備或備份的檔位置。
# savewpar -f /tmp/mywpar01.bak mywpar01 // 備份完全獨立分區的
WPAR 需要較大的空間
Creating information file (/image.data) for mywpar01.
Creating list of files to back up ..
Backing up 43993 files.................
43993 of 43993 files backed up (100%)
0512-038 savewpar: Backup Completed Successfully.
# savewpar -f /tmp/wpar.bak mychkwpar// 備份與全域環境共用
/usr,/opt 目錄的分區只需要極少的空間
Creating list of files to back up
Backing up 7 files
7 of 7 files backed up (100%)
0512-038 savewpar: Backup Completed Successfully.
在還原 WPAR 過程中,如果原 WPAR 仍然存在,則需要加 -F 參數關閉並刪除原 WPAR,然後按照備份的 WPAR 重新創建 WPAR 並還原。如原 WPAR 已被刪除,則還原過程相當於按照備份檔案重建 WPAR。
# restwpar -F -f /tmp/wpar.bak
New volume on /tmp/wpar.bak:
Cluster 51200 bytes (100 blocks).
Volume number 1
Date of backup: Wed Mar 5 21:43:12
2008
Files backed up by name
User root
x 2848 ./.savewpar_dir/wpar.spec
x 399 ./.savewpar_dir/image.data
x 125796 ./.savewpar_dir/backup.data
total size: 129043
files restored: 3
Stopping workload partition 'mychkwpar'.
Stopping workload partition subsystem 'cor_mychkwpar'.
0513-044 The cor_mychkwpar Subsystem was requested to stop.
Shutting down all workload partition processes.
Unmounting all workload partition file systems.
rmwpar: Removing file system /wpars/mychkwpar/var.
rmwpar: Removing file system /wpars/mychkwpar/usr.
rmwpar: Removing file system /wpars/mychkwpar/tmp.
rmwpar: Removing file system /wpars/mychkwpar/proc.
rmwpar: Removing file system /wpars/mychkwpar/opt.
rmwpar: Removing file system /wpars/mychkwpar/home.
rmwpar: Removing file system /wpars/mychkwpar.
mkwpar: Creating file systems...
/
/home
….( 省略若干 )
syncroot: Processing root part installation status.
syncroot: ATTENTION, Root part is currently synchronized, but there are
other
Workload partition mychkwpar created successfully.
mkwpar: 0960-390 To start the workload partition, execute the following as
root: \
startwpar [-v] mychkwpar
複製 WPAR,我們很快發現可以利用還原 WPAR 的功能快速的複製 WPAR。還可以將備份檔案拷貝到其他的伺服器上,實現快速的應用部署。要注意的是我們在複製 WPAR 的時候需要定義新的主機和 IP 位址。
restwpar -n myclonewpar -h myclonewpar -r -M "-N
address=192.168.21.131"
-d /wpars/myclonewpar -U -f /tmp/wpar.bak
//Restwpar 的基本參數:-n 定義新
WPAR 名,-h 定義新 WPAR 主機名稱,-r 複製功能變數名稱解析相關檔,
-M 為 mkwpar 傳遞參數,-d
指定 wpar 創建位置,-f 指定還原設備或檔。
New volume on /tmp/wpar.bak:
Cluster 51200 bytes (100 blocks).
Volume number 1
Date of backup: Wed Mar 5 21:43:12
2008
Files backed up by name
User root
x 2848 ./.savewpar_dir/wpar.spec
x 399 ./.savewpar_dir/image.data
x 125796 ./.savewpar_dir/backup.data
total size: 129043
files restored: 3
。。。(省略若干)
Workload partition myclonewpar created successfully.
WPAR 的狀態
在文章最後向大家介紹一下 WPAR 的多種狀態,系統管理員在使用 lswpar 命令時可以查看到 WPAR 的狀態資訊。下表給出了各種狀態的說明。
狀態
|
標誌
|
說明
|
Defined
|
D
|
規格參數已定義,但是處於停止、未啟動的狀態。
|
Active
|
A
|
WPAR 已啟動啟動,正在正常運行的狀態
|
Paused
|
P
|
完成一次 checkpointing,WPAR 已經被保存下來後的一種等候狀態,等待用戶發出繼續或者停止運行命令。
|
Broken
|
B
|
WPAR 出現故障,無法正常工作並且恢復操作也失敗。
|
Transitional
|
T
|
當前 WPAR 正在從一個狀態切換到另一個的一種臨時狀態
|
Frozen
|
F
|
主要見於 HPC 或分散式應用中,WPAR 被凍結,管理員可以檢查是否正確的執行了 checkpointing,但是又不用真正去執行暫停操作進入到 Paused 狀態。
|
Loaded
|
L
|
對於支援動態遷移的 WPAR,當其完全移動到在目標系統上又還未啟動進入 Active 狀態前的狀態。
|
沒有留言:
張貼留言