OpenNEbula 的運作架構
0.安裝面
- 只需安裝 ONE 於 Server 即可
- Client 和 Server 透過 ssh 來溝通
- Host 和 VM 的資訊透過 SQLite 來存取 ($ONE_LOCATION/var/one.db)
- 當 one start 時,會根據 oned.conf 啟動 (1)!ONE daemon 和 Scheduler (2)Drivers
- oned (主程式)
- mm_sched (排程用)
- one_im_ssh.rb (資訊管理者)
- one_vmm_xen.rb (虛擬管理者,此處的 Vitualizer 為 Xen,若是用 KVM 則為 one_vmm_kvm.rb)
- one_tm.rb (傳輸管理者)
- Drivers 都是獨立的 process,透過 internal ASCII protocol 與 ONE core 溝通,在 load driver 前會啟動兩個 Run Command (RC) 來獲得境變數,這兩個 RC file為:
- $ONE_LOCATION/etc/mad/defaultrc
- Driver 各自的特定的檔案
1. ONE Daemon
- oned 管理 host, vnet & vm ($ONE_LOCATION/etc/oned.conf)
- 相關參數:
- HOST_MONITORING_INTERVAL: Time in seconds between host monitorization
- VM_POLLING_INTERVAL: Time in seconds between virtual machine monitorization
- VM_DIR: Remote path to store the VM images, it should be shared between all the cluster nodes to perform live migrations. This path will be used for all the cluster nodes.
- MAC_PREFIX: Default MAC prefix to generate virtual network MAC addresses
- NETWORK_SIZE: Default size for virtual networks
- PORT: Port where oned will listen for xml-rpc calls
- DEBUG_LEVEL: Sets the level of verbosity of $ONE_LOCATION/var/oned.log log file.
(0 -> ERROR, 1 -> WARNING, 2 ->INFO, 3 -> DEBUG)
- 範例:
HOST_MONITORING_INTERVAL = 10 VM_POLLING_INTERVAL = 10 VM_DIR = /local/images MAC_PREFIX = "00:01" NETWORK_SIZE = 254 PORT = 2633 DEBUG_LEVEL = 3
- 相關參數:
2. Information Driver
- 從 Clustre node 去收集資訊,相依選擇的 Virtualizer
- IM 的 File:
- $ONE_LOCATION/lib/mads/one_im_ssh : shell script wrapper to the driver itself. Sets the environment and other bootstrap tasks.
- $ONE_LOCATION/lib/mads/one_im_ssh.rb : The actual Information driver.
- $ONE_LOCATION/lib/im_probes/* : sensors home. Little scripts or binaries that extract information from the remote hosts. Let's see a simple one to understand how they work:
- 適用於 Xen 的 IM File:
- $ONE_LOCATION/etc/im_xen/im_xenrc : environment setup and bootstrap instructions
- $ONE_LOCATION/etc/im_xen/im_xen.conf : This file defines the REMOTE_DIR and which sensors will be used
- $ONE_LOCATION/lib/im_probes/xen.rb : xen specific sensor.
- 範例 (適用於 Xen)
IM_MAD = [ name = "im_xen", executable = "bin/one_im_ssh", arguments = "im_xen/im_xen.conf", default = "im_xen/im_xen.conf" ]
3. Transfer Driver
- 功能:傳輸、複製、回復和開啟 VM 印象檔
- 範例檔:
TM_MAD = [ name = "tm_ssh", executable = "one_tm", arguments = "tm_ssh/tm_ssh.conf", default = "tm_ssh/tm_ssh.conf" ]
4. Virtualization Driver
- 開啟、控制和監控 VMs
- 範例檔:
VM_MAD = [ name = "vmm_xen", executable = "one_vmm_xen", default = "vmm_xen/vmm_xen.conf", type = "xen" ]
5. Scheduler
- 分配 pending VM 到 Host,他是獨立的 process
- match making scheduler (mm_sched) 實作 Rank Scheduling Policy.
Last modified 16 years ago
Last modified on Apr 6, 2009, 1:45:17 PM
Attachments (2)
- oper.png (68.7 KB) - added by rock 16 years ago.
- arch.png (34.0 KB) - added by rock 16 years ago.
Download all attachments as: .zip