Haizea
【1.Haizea介紹】
- 簡介:是一個開放原始碼的以VM為基之租約管理架構(virtual machine-based lease management architecture)
- 資源管理者(排程管理者)
- 使用租約機制
- VM-based
- 開放原始碼
- 用途:(有兩種使用方式)
- 獨立使用,通常用做 simulation
- 作為 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.架構】
- 架構分為三層:
- Request Frontend - 接受需求的地方,可接受(1)OpenNEbula的要求 (2)直接從命令列來的要求 (3)檔案tracefile的要求(有 SWF 格式或是 Haizea專用的 LWF 格式)
- Scheduling Core - requests 被處理和排程的地方
- 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 資源
2.Best-effort lease:
- 資源必須盡可能的可用 (有時需求不限定要在那一段時間被執行,但它對資源卻有著嚴格的要求,通常會等到需要的資源都可用時才會被執行,否則會一直存在於佇列)
- Case1 資源剛好都可以使用
- Case2 等待資源可以使用,才開始執行
- Case3 遇到權限更高的 AR lease 時,會先讓出資源使用權
- Best-effort 又可分為:
- Preemptible best-effort - 比較適用於 batch-jobs 或是不需互動的工作 (上面的Case都是)
- Non-preemptible best-effort - 通常用於需要互動時,同時也會避免資源被其他的租約拿走
3.Immediate leases:
- 資源必須馬上被提供
【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
- 若看到以下訊息則表示安裝成功
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
- 若是您沒有 root 權限,也可以指定安裝再自己的家目錄
- 測試 (使用提供的範本來測試執行,此範本會 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)
【5.使用】
Haizea 的使用可以細分為三種模式: |
【參考】
Last modified 15 years ago
Last modified on Jan 21, 2010, 2:11:15 PM
Attachments (3)
- what_haizea_does.png (76.2 KB) - added by rock 15 years ago.
- architecture.png (54.2 KB) - added by rock 15 years ago.
- Haizea_files.png (24.5 KB) - added by rock 15 years ago.
Download all attachments as: .zip