• 沒有找到結果。

self-service)、2.運算資源透過網際網路取得(broad network access)、3.資源共享中 心(resource pooling)、4.動態且彈性(rapid elasticity)、5. 依據使用量付費(measured service)[1]。在雲端運算中,使用者不用經過第三方的許可,隨時可以提出服務 的需求,且使用者取得運算資源的方式是透過網際網路[3]。而運算資源不會只 限制單一使用者可以使用,運算資源將可以服務不同的使用者。雲端運算可以應 付變化量大的使用率,根據需求使用量動態調整運算資源,也因此服務商可以根 據使用者的使用量來收取對應的費用。

2

雲端運算能將運算能力作為服務提供給使用者,主要使用的是虛擬化技術。

虛擬化技術應用在雲端運算上,除了能增加運算資源的使用率之外,虛擬化技術 還能讓多種運算資源連結成一個資源中心(resource pooling),換句話說,使用者 不用指定運算資源,也不用知道運算資源的實際位置,只要提出工作,就能得到 運算結果[4]。同樣的,運算資源也將不再限定只運算單一使用者的工作,而且 運算資源之間可以根據使用者的需求變換組合,使運算資源可以更彈性的提供給 使用者。

許多科技公司都表示雲端運算可以幫助企業節省大量的資訊科技(IT)成本。

在傳統運算環境中,若企業要取得高效能的運算資源,或是應付變動幅度大的流 量,企業往往需要購買大量的設備。但是大部分的時間這些設備都是處於低使用 率的狀態,長時間下來,設備也會需要汰舊換新,因此企業花費的設備成本和實 際使用的運算資源不成比例[5]。但是在雲端運算環境中,企業只要向雲端服務 商簽訂服務合約(SLA),無論是平常時日的低使用率,或是需要取得大量運算資 源,都只要租用需要的雲端服務,而且依照使用量來付費。雲端運算,也能應付 變化幅度大的流量環境,當流量變化突然增加時,雲端環境可以提供足夠的運算 資源來應付,當流量降低之後,雲端環境即可收回沒有使用的運算資源。對於企 業來說,相較於傳統的運算資源環境,雲端運算的特性將可以幫助企業節省購買 設備的成本。

1.2 動機

在雲端運算中,雲端服務商將運算能力作為服務提供給使用者,使用者根據 使用量支付對應的費用,因此使用者將和雲端服務商租用雲端服務並簽訂服務合 約,服務合約將由雙方來訂立,其合約內容將可包含服務品質、服務期限及費用 計算方式等[6]。當雲端服務商違反合約時,將付出合約內容所訂立的代價。對 於雲端服務商來說,避免違反合約將是第一考量,因此雲端服務商應當妥善管理

3 資源中心使用本身以外的計算資源,可稱為聯邦雲(Federated cloud) [8] [9]。

一個聯邦雲是指混和使用不同雲端環境的計算資源,共同完成一個特定的工

4

值得探討的議題。

1.3 議題

當雲端服務商無法滿足客戶的需求時,可以將客戶的服務轉移到其他的雲端 服務商。而且在轉移的過程中,讓客戶無接縫的使用服務是必要的。為了要讓客 戶所使用的服務不中斷,在轉移的方式中,動態轉移是一個有效的方式[12]。動 態轉移虛擬機器,是為了容錯及動態配置所採取的方式,但是不同雲端環境互相 支援,可視為一種動態配置,只是配置的對象不再只是單一雲端環境的資源,而 擴展到外部的雲端資源。雖然虛擬機器可以在不同的雲端環境中動態轉移,但是 轉移的時機以及整合不同雲端環境是需要研究探討的。

雲端服務商需要轉移客戶服務的時機有以下兩種可能:提供的服務超過成本 的負荷,或是無法符合與客戶之間的服務合約。據研究指出,雲端服務商往往追 求高效能的運算資源,卻忽略了耗能是雲端服務商的主要成本支出[13]。當兩台 實體機器平均運算兩個工作,相較於一台實體機器運行兩個工作,前者的耗能將 大於後者。原因在於實體機器的基本運行就消耗一定的能源,而實體機器處於低 使用率的狀態,耗費的能源及運算的工作量不成比例。解決的方式之一是將工作 集中,減少開啟實體機器的數量。因此,考慮耗能的狀況時,虛擬機器將在實體 機器之間轉移。另一種轉移的時機發生在服務商無法提供足夠的資源給客戶時。

當服務商無法滿足合約,服務商必頇依照合約賠償客戶,往往合約訂定的賠償代 價會高於獲利,因此,違反服務合約將不是雲端服務商所樂見的。為了滿足服務 合約,雲端服務商勢必要將客戶的服務轉移到其他的服務商。

然而,在不同的雲端資源中心,會有各自獨立的管理介面,為了能讓雲端服 務商轉移客戶的服務,需要整合不同的雲端環境。以資源管理的角度來看,來源 端將客戶的服務動態轉移到目的端時,來源端要將客戶的資訊轉移給目的端,並 且將原來的資源釋放;而目的端要將轉移過來的客戶資訊,紀錄到管理介面,並

5

且將提供客戶所要求的資源使用。另一方面,為了要讓客戶的服務不受影響,客 戶存取轉移之後的服務所使用的網路應一致。然而,不同的雲端環境有不同的網 路設定以及路由方式,客戶的服務在不同的雲端環境之間轉移時,網路的轉移也 將是一個議題。目前在跨雲的議題中,不考慮網路轉移的問題,因為客戶所使用 的是實體網路位址,即使服務轉移,網域名稱伺服器可以轉譯實體網路位址,客 戶存取服務的網路也將不受影響。然而,當雲端環境的實體網路位址不夠時,分 配給客戶存取服務的網路將使用虛擬網路位址,轉譯虛擬網路位址的網域名稱伺 服器將限制在雲端環境之中,此時,在不同的雲端環境之間轉移服務的時候,網 域名稱伺服器將不能轉譯其他的網路位址。因此,服務在不同的雲端環境之間轉 移,網路的問題就值得探討。

1.4 目標

本論文將客戶服務轉移的問題視為虛擬機器在雲端環境之間轉移。虛擬機器 分別在不同的雲端環境,不同的雲端環境分別有獨立的管理介面,並且有各自獨 立的網路,在雲端環境上的虛擬機器是使用虛擬網路位址。為了不讓客戶的服務 在轉移的時候中斷,將使用動態轉移的方式轉移虛擬機器。當虛擬機器從來源端 轉移到目的端時,來源端的管理層要能釋放資源,將虛擬機器的資訊發送給目的 端,並且刪除虛擬機器的資訊。目的端的管理層接收到虛擬機的資訊之後,要能 將資訊紀錄,並且提供虛擬機器使用資源。在網路方面,虛擬機器所使用的虛擬 網路位址,在轉移之後將繼續使用。本論文採用 OpenStack 作為雲端環境的管理 介面[14],虛擬機器在兩個獨立的 OpenStack 管理介面之間完成動態轉移,目前 的 Openstack 並不支援不同規格的實體機器之間的轉移,也不支援兩個獨立的介 面之間的動態轉移。本論文欲實作出讓管理介面分別能夠正確管理轉移的虛擬機 器,並且讓虛擬機器所使用的虛擬網路位址能夠繼續使用。

當虛擬機器動態轉移有多於一個目的端可以選擇時,就需要考慮適合的目的

6

端。為了選擇虛擬機器動態轉移的目的端,可以考慮節省耗能、負載平衡、CPU 平衡或是溫度[15],本論文以降低耗能為選擇目的端的考量,並且提出選擇最小 耗能為目的端的演算法。本論文將以實驗評估動態轉移的效能以及演算法的效能。

評估動態轉移效能的實驗,將測量在獨立的 OpenStack 之間動態轉移所花費的時 間,並且比較使用動態轉移與未使用動態轉移之間的差異。評估演算法的效能,

將在 OpenStack 的實驗環境中,與其他演算法進行比較,並且以耗能模組計算耗 能,評估各演算法對耗能的影響。

1.5 論文架構與內容

本論文主要分為五個部分:第一章為說明本文研究背景以及動機,在研究背 景下的研究目標,並且簡述實驗環境及進行方式。第二章將分為四個部分,分別 是介紹關於雲端運算、聯邦雲、虛擬化技術與動態轉移以及 OpenStack 的相關研 究文獻。第三章將敘述本文提出的系統架構,以及問題的解決方法,並且提出在 OpenStack 上的動態轉移實作方式,使 OpenStack 可以正確管理動態轉移的虛擬 機器;在動態轉移目的端的選擇中,提出考慮耗能的演算法。第四章將進行動態 轉移的效能分析以及評估考慮耗能的演算法。第五章為本論文總結及未來展望。

7

相關文件