[[PageOutline]] {{{ #!html

Haizea

}}} ---- = 【1.Haizea介紹】 = * '''簡介:'''是一個開放原始碼的'''''以VM為基之租約管理架構'''''(virtual machine-based lease management architecture) * 資源管理者(排程管理者) * 使用租約機制 * VM-based * 開放原始碼 [[Image(what_haizea_does.png,width=500px)]] * '''用途:'''(有兩種使用方式) 1. 獨立使用,通常用做 simulation 2. 作為 OpenNEbula 的後端排程 * '''特色:''' * 租約特色: * lease必須能平行處理 * Best-effort 租約 - 將會使用queue等待,直到有合適資源可使用 * Advance reservation (AR) 租約 - 可以預定於未來某一段時間執行 * Immediate 租約 - 資源必須馬上被提供 * 演算法特色: * 明確地排程VM部署時所需的相關程序,而不需使用者來做分配 * 利用 suspend/resume (當有更高權限的租約時,會將較低權限的VM suspend,再 migration 到其他台機器,再resume,也可使用 live-migration) * best-effort requests 使用先到先處理 queue with backfilling (aggressive, conservative, or with any number of reservations). ---- = 【2.架構】 = [[Image(architecture.png,width=300px)]] * 架構分為三層: 1. '''Request Frontend''' - 接受需求的地方,可接受(1)OpenNEbula的要求 (2)直接從命令列來的要求 (3)檔案tracefile的要求(有 SWF 格式或是 Haizea專用的 LWF 格式) 2. '''Scheduling Core''' - requests 被處理和排程的地方 3. '''Enactment Modules''' - 真正執行排程後後動作的地方,Haizea可以管理 Xen 和 KVM 的叢集(藉著 OpenNEbula)(VMware 再將來也會支持),或是模擬的叢集 ---- = 【3.租約機制探討】 = || 相較於叢集常見的 Job-based schedule,Haizea 是偏向於Resource (資源)層級的排程,也比 Job-based 的排程更是用於異質性的環境,Haizea使用lease(租約)來分配和管理資源,接下來將細談三種出租約機制 (根據不同需求,來選擇你要的租約機制,再未來會增加兩種機制 Best-effort with deadlines 和 Negotiated leases)|| == 1.Advance reservation(AR) leases: == * 資源再某一段時間被提供,下圖表示在 13:00~14:00 會使用到 3台node 資源 [[Image(http://haizea.cs.uchicago.edu/manual/lease_ar.png,width=300px)]] == 2.Best-effort lease: == * 資源必須盡可能的可用 (有時需求不限定要在那一段時間被執行,但它對資源卻有著嚴格的要求,通常會等到需要的資源都可用時才會被執行,否則會一直存在於佇列) * Case1 資源剛好都可以使用 [[Image(http://haizea.cs.uchicago.edu/manual/lease_be1.png,width=300px)]] * Case2 等待資源可以使用,才開始執行 [[Image(http://haizea.cs.uchicago.edu/manual/lease_be2.png,width=300px)]] * Case3 遇到權限更高的 AR lease 時,會先讓出資源使用權 [[Image(http://haizea.cs.uchicago.edu/manual/lease_be3.png,width=300px)]] * Best-effort 又可分為: * Preemptible best-effort - 比較適用於 batch-jobs 或是不需互動的工作 (上面的Case都是) * Non-preemptible best-effort - 通常用於需要互動時,同時也會避免資源被其他的租約拿走 == 3.Immediate leases: == * 資源必須馬上被提供 [[Image(http://haizea.cs.uchicago.edu/manual/lease_im.png,width=300px)]] ---- = 【4.安裝】 = || 測試平台的 OS 為 Debian 5.03 (AMD64) || * 相依性套件 {{{ # sudo aptitude install python2.5 python-egenix-mxdatetime python-mako }}} * python-psyco 只支援 i386 的處理器 * 安裝 {{{ # wget http://haizea.cs.uchicago.edu/downloads/haizea-1.0.tar.gz # tar zxvf haizea-1.0.tar.gz # cd haizea-1.0 # sudo python setup.py install }}} * 若是您沒有 root 權限,也可以指定安裝再自己的家目錄 {{{ # python setup.py install --home=$HOME }}} * 若看到以下訊息則表示安裝成功 {{{ #!sh creating /usr/share/haizea/traces/multi copying traces/multi/inj1.lwf -> /usr/share/haizea/traces/multi copying traces/multi/inj2.lwf -> /usr/share/haizea/traces/multi copying traces/multi/withprematureend.lwf -> /usr/share/haizea/traces/multi copying traces/multi/withoutprematureend.lwf -> /usr/share/haizea/traces/multi running install_egg_info Writing /usr/lib/python2.5/site-packages/haizea-XXX.egg-info }}} * 測試 (使用提供的範本來測試執行,此範本會 simulate 沒有需求的排程 {{{ # sudo haizea -c /usr/share/haizea/etc/sample_trace.conf [2006-11-25 13:00:00.00] RM Starting resource manager [2006-11-25 13:00:00.00] TFILE Loading tracefile /usr/share/haizea/traces/sample.lwf [2006-11-25 13:00:00.00] TFILE Loaded workload with 0 requests () [2006-11-25 13:00:00.00] CLOCK Starting simulated clock [2006-11-25 13:00:00.00] CLOCK Simulated clock has stopped [2006-11-25 13:00:00.00] RM Stopping resource manager gracefully... [2006-11-25 13:00:00.00] RM --- Haizea status summary --- [2006-11-25 13:00:00.00] RM Number of leases (not including completed): 0 [2006-11-25 13:00:00.00] RM Completed leases: 0 [2006-11-25 13:00:00.00] RM ---- End summary ---- }}} * 檔案路徑 (預設會放於 /usr/share/haizea) [[Image(Haizea_files.png,width=400px)]] ---- = 【5.使用】 = || Haizea 的使用可以細分為三種模式:|| 1. [wiki:Haizea_sim Unattended simulated mode] 2. [wiki:Haizea_int Interactive simulated mode] 3. [wiki:Haizea_ONE OpenNebula mode] ---- = 【參考】 = * [http://haizea.cs.uchicago.edu/ Haizea] [[BR]]