云操作系統(tǒng)的虛擬化層連接方法及裝置制造方法
【專利摘要】本發(fā)明涉及一種云操作系統(tǒng)的虛擬化層連接方法及裝置。該方法包括:根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列;判斷所述連接隊列中是否存在空閑的SSH連接,若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用。本發(fā)明通過池化管理的方法,連接池負責SSH連接生命周期的管理,SSH連接創(chuàng)建以后云操作系統(tǒng)以共享的方式使用SSH連接,使用完后歸還給連接池而不是關閉SSH連接,下次指令調用還可以復用,大大減少了云操作系統(tǒng)對虛擬化層SSH連接打開和關閉的次數。
【專利說明】云操作系統(tǒng)的虛擬化層連接方法及裝置
[0001]
【技術領域】
[0002]本發(fā)明涉及計算機領域的云計算技術,具體涉及云操作系統(tǒng)的虛擬化層連接方法及裝置。
[0003]
【背景技術】
[0004]SSH為Secure Shell的縮寫,指安全外殼協議,由IETF的網絡工作小組(Network Working Group)所制定。SSH為建立在應用層和傳輸層基礎上的安全協議。SSH是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統(tǒng)上的一個程序,后來又迅速擴展到其他操作平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用于多種平臺。幾乎所有 U NIX 平臺一包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺都可運行SSH。
[0005]當前在云操作系統(tǒng)中通常需要通過SSH協議連接到虛擬化層(Hypervisor)完成對虛擬機的管理和任務調度,比如云操作系統(tǒng)響應一個用戶對自己虛擬機的開機指令或者是云操作系統(tǒng)自身根據策略發(fā)起的虛擬機遷移任務等,云操作系統(tǒng)都需要打開一個到虛擬化層的SSH會話,通過SSH向虛擬化層發(fā)送操作指令,執(zhí)行完指令之后再將SSH會話關閉。
[0006]如圖1所示,云操作系統(tǒng)向虛擬化層發(fā)送一次指令調用共包含6個步驟:
1.版本號協商,SSH目前包括SSHl和SSH2兩個版本,雙方通過版本協商確定使用的版本;
2.密鑰和算法協商,SSH支持多種加密算法,雙方根據本端和對端支持的算法,協商出最終使用的算法;
3.安全認證,客戶端向服務器端發(fā)起認證請求,服務器端對客戶端進行認證;
4.會話請求階段,認證通過后,客戶端向服務器端發(fā)送會話請求;
5.交互會話階段,會話請求通過后,服務器端和客戶端進行信息的交互;
6.關閉會話,完成信息交互后,斷開會話連接。
[0007]其中云操作系統(tǒng)對虛擬化層的每次指令調用都要通過I至4過程建立SSH會話,在第5階段發(fā)送指令,之后關閉SSH會話連接。
[0008]目前的云操作系統(tǒng)與虛擬化層的連接方法,存在以下問題:
1.云操作系統(tǒng)通過SSH連接發(fā)出的每一條指令都需要打開和關閉一次SSH連接,由于SSH連接不能共享,在一個大規(guī)模的云平臺中會造成比較大的額外開銷;
2.在并發(fā)訪問比較大的情況下,在虛擬化層打開過多的SSH連接會影響虛擬化層的性能,從而影響上層虛擬機業(yè)務系統(tǒng)的運行;
3.在虛擬化層SSH連接數達到上限后,云操作系統(tǒng)發(fā)出的SSH調用指令會因為無法連接而造成指令失效。
[0009]
【發(fā)明內容】
[0010]本發(fā)明的目的在于提出一種云操作系統(tǒng)的虛擬化層連接方法及裝置,其能解決頻繁打開和關閉SSH連接的問題。
[0011]為了達到上述目的,本發(fā)明所采用的技術方案如下:
云操作系統(tǒng)的虛擬化層連接方法,其包括以下步驟:
根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列;其中,所述連接池具有虛擬化層的唯一識別碼與連接隊列的關聯信息,所述連接隊列具有預設數量的SSH連接;
判斷所述連接隊列中是否存在空閑的SSH連接,若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用;若否,則進一步判斷所述連接隊列的SSH連接的數量是否已達到預設的最大數量,若是,則阻塞等待,直到有空閑的SSH連接分配給云操作系統(tǒng)使用,若否,則創(chuàng)建一個新的SSH連接分配給云操作系統(tǒng)使用。
[0012]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接方法還包括以下步驟:將已分配給云操作系統(tǒng)使用的SSH連接標記為已分配;將空閑的SSH連接和云操作系統(tǒng)使用完畢歸還給連接池的SSH連接均標記為可分配。
[0013]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接方法還包括以下步驟:根據預設的時間間隔,檢查連接隊列中所有SSH連接的狀態(tài),將無效的SSH連接刪除,并創(chuàng)建有效的SSH連接加入到對應的連接隊列中。
[0014]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接方法還包括以下步驟:根據預設的時間間隔,檢查虛擬化層的網絡連接狀態(tài),若虛擬化層的網絡連接狀態(tài)異常,則將與發(fā)生網絡連接狀態(tài)異常的虛擬化層對應的連接隊列刪除,當發(fā)生網絡連接狀態(tài)異常的虛擬化層重啟后,創(chuàng)建對應的連接隊列。
[0015]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接方法還包括以下步驟:根據預設的時間間隔,檢查虛擬化層的SSH服務狀態(tài),若虛擬化層的SSH服務狀態(tài)異常,則將與發(fā)生SSH服務狀態(tài)異常的虛擬化層對應的SSH連接刪除。
[0016]本發(fā)明還提出一種云操作系統(tǒng)的虛擬化層連接裝置,其包括以下模塊:
查找模塊,用于根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列;其中,所述連接池具有虛擬化層的唯一識別碼與連接隊列的關聯信息,所述連接隊列具有預設數量的SSH連接;
判斷模塊,用于判斷所述連接隊列中是否存在空閑的SSH連接,若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用;若否,則進一步判斷所述連接隊列的SSH連接的數量是否已達到預設的最大數量,若是,則阻塞等待,直到有空閑的SSH連接分配給云操作系統(tǒng)使用,若否,則創(chuàng)建一個新的SSH連接分配給云操作系統(tǒng)使用。
[0017]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接裝置還包括標記模塊:用于將已分配給云操作系統(tǒng)使用的SSH連接標記為已分配;將空閑的SSH連接和云操作系統(tǒng)使用完畢歸還給連接池的SSH連接均標記為可分配。[0018]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接裝置還包括第一檢查模塊:用于根據預設的時間間隔,檢查連接隊列中所有SSH連接的狀態(tài),將無效的SSH連接刪除,并創(chuàng)建有效的SSH連接加入到對應的連接隊列中。
[0019]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接裝置還包括第二檢查模塊:用于根據預設的時間間隔,檢查虛擬化層的網絡連接狀態(tài),若虛擬化層的網絡連接狀態(tài)異常,則將與發(fā)生網絡連接狀態(tài)異常的虛擬化層對應的連接隊列刪除,當發(fā)生網絡連接狀態(tài)異常的虛擬化層重啟后,創(chuàng)建對應的連接隊列。
[0020]優(yōu)選的,該云操作系統(tǒng)的虛擬化層連接裝置還包括第三檢查模塊:用于根據預設的時間間隔,檢查虛擬化層的SSH服務狀態(tài),若虛擬化層的SSH服務狀態(tài)異常,則將與發(fā)生SSH服務狀態(tài)異常的虛擬化層對應的SSH連接刪除。
[0021]本發(fā)明具有如下有益效果:
通過池化管理的方法,連接池負責SSH連接生命周期的管理,SSH連接創(chuàng)建以后云操作系統(tǒng)以共享的方式使用SSH連接,使用完后歸還給連接池而不是關閉SSH連接,下次指令調用還可以復用,大大減少了云操作系統(tǒng)對虛擬化層SSH連接打開和關閉的次數,有效控制云操作系統(tǒng)對虛擬化層SSH的連接數量,降低了對虛擬化層和上層虛擬機業(yè)務系統(tǒng)的影響,避免了因為虛擬化層SSH連接用盡而造成的調用指令失效。
[0022]
【專利附圖】
【附圖說明】
[0023]圖1為現有技術的云操作系統(tǒng)與虛擬化層連接的方法的流程圖;
圖2為本發(fā)明較佳實施例的云操作系統(tǒng)的虛擬化層連接方法的流程圖;
圖3為本發(fā)明較佳實施例的連接池的數據結構示意圖。
[0024]【具體實施方式】
[0025]下面,結合附圖以及【具體實施方式】,對本發(fā)明做進一步描述。
[0026]如圖2和圖3所示,一種云操作系統(tǒng)的虛擬化層連接方法,其流程如下:
云操作系統(tǒng)向連接池發(fā)送獲取SSH連接請求,所述獲取SSH連接請求包括與云操作系統(tǒng)需要操作的虛擬化層對應的唯一識別碼(UUID)。
[0027]所述連接池具有虛擬化層的唯一識別碼與連接隊列的關聯信息,所述連接隊列具有預設數量的SSH連接。例如,初始化時,連接隊列中,SSH連接的數量為4個。
[0028]根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列。
[0029]判斷所述連接隊列中是否存在空閑的SSH連接(即是否具有標記為可分配的SSH連接),若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用;若否,則進一步判斷所述連接隊列的SSH連接的數量是否已達到預設的最大數量(例如,最大數量設定為6個),若是,則阻塞等待,直到有空閑的SSH連接分配給云操作系統(tǒng)使用,若否,則創(chuàng)建一個新的SSH連接分配給云操作系統(tǒng)使用。
[0030]云操作系統(tǒng)分配到可用的SSH連接后,向虛擬化層發(fā)送調用指令,所述虛擬化層返回指令結果,以完成對所述虛擬化層的操作。當云操作系統(tǒng)對所述虛擬化層操作完畢后,向連接池歸還SSH連接。
[0031]在上述過程中,將已分配給云操作系統(tǒng)使用的SSH連接標記為已分配;將空閑的SSH連接和云操作系統(tǒng)使用完畢歸還給連接池的SSH連接均標記為可分配,以使下次調用SSH連接時,可以根據標記進行相應操作。
[0032]為了保證SSH連接的有效性,在上述過程中,還可以啟動一個線程,根據預設的時間間隔(如2秒)進行如下檢查:檢查連接隊列中所有SSH連接的狀態(tài),將無效的SSH連接刪除,并創(chuàng)建有效的SSH連接加入到對應的連接隊列中,可以采用發(fā)送打印指令的方式,例如發(fā)送echo指令,如果指令調用失敗,則判斷為無效;檢查虛擬化層的網絡連接狀態(tài),若虛擬化層的網絡連接狀態(tài)異常,則將與發(fā)生網絡連接狀態(tài)異常的虛擬化層對應的連接隊列刪除,當發(fā)生網絡連接狀態(tài)異常的虛擬化層重啟后,創(chuàng)建對應的連接隊列,網絡連接狀態(tài)的檢查,可以采用發(fā)送ICMP包的方式進行探測,若發(fā)送的ICMP包沒有返回數據,則判斷為異常;檢查虛擬化層的SSH服務狀態(tài),若虛擬化層的SSH服務狀態(tài)異常,則將與發(fā)生SSH服務狀態(tài)異常的虛擬化層對應的SSH連接刪除,SSH服務狀態(tài)的檢查,同上,可以采用發(fā)送打印指令的方式,如果指令調用失敗,則判斷為異常。
[0033]此外,連接池可與云操作系統(tǒng)打包在一起。
[0034]本實施例還提出一種云操作系統(tǒng)的虛擬化層連接裝置,其包括以下模塊:
查找模塊,用于根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列;其中,所述連接池具有虛擬化層的唯一識別碼與連接隊列的關聯信息,所述連接隊列具有預設數量的SSH連接;
判斷模塊,用于判斷所述連接隊列中是否存在空閑的SSH連接,若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用;若否,則進一步判斷所述連接隊列的SSH連接的數量是否已達到預設的最大數量,若是,則阻塞等待,直到有空閑的SSH連接分配給云操作系統(tǒng)使用,若否,則創(chuàng)建一個新的SSH連接分配給云操作系統(tǒng)使用。
[0035]標記模塊:用于將已分配給云操作系統(tǒng)使用的SSH連接標記為已分配;將空閑的SSH連接和云操作系統(tǒng)使用完畢歸還給連接池的SSH連接均標記為可分配。
[0036]第一檢查模塊:用于根據預設的時間間隔,檢查連接隊列中所有SSH連接的狀態(tài),將無效的SSH連接刪除,并創(chuàng)建有效的SSH連接加入到對應的連接隊列中。
[0037]第二檢查模塊:用于根據預設的時間間隔,檢查虛擬化層的網絡連接狀態(tài),若虛擬化層的網絡連接狀態(tài)異常,則將與發(fā)生網絡連接狀態(tài)異常的虛擬化層對應的連接隊列刪除,當發(fā)生網絡連接狀態(tài)異常的虛擬化層重啟后,創(chuàng)建對應的連接隊列。
[0038]第三檢查模塊:用于根據預設的時間間隔,檢查虛擬化層的SSH服務狀態(tài),若虛擬化層的SSH服務狀態(tài)異常,則將與發(fā)生SSH服務狀態(tài)異常的虛擬化層對應的SSH連接刪除。
[0039]對于本領域的技術人員來說,可根據以上描述的技術方案以及構思,做出其它各種相應的改變以及變形,而所有的這些改變以及變形都應該屬于本發(fā)明權利要求的保護范圍之內。
【權利要求】
1.云操作系統(tǒng)的虛擬化層連接方法,其特征在于,包括以下步驟: 根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列;其中,所述連接池具有虛擬化層的唯一識別碼與連接隊列的關聯信息,所述連接隊列具有預設數量的SSH連接; 判斷所述連接隊列中是否存在空閑的SSH連接,若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用;若否,則進一步判斷所述連接隊列的SSH連接的數量是否已達到預設的最大數量,若是,則阻塞等待,直到有空閑的SSH連接分配給云操作系統(tǒng)使用,若否,則創(chuàng)建一個新的SSH連接分配給云操作系統(tǒng)使用。
2.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接方法,其特征在于,還包括以下步驟:將已分配給云操作系統(tǒng)使用的SSH連接標記為已分配;將空閑的SSH連接和云操作系統(tǒng)使用完畢歸還給連接池的SSH連接均標記為可分配。
3.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接方法,其特征在于,還包括以下步驟:根據預設的時間間隔,檢查連接隊列中所有SSH連接的狀態(tài),將無效的SSH連接刪除,并創(chuàng)建有效的SSH連接加入到對應的連接隊列中。
4.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接方法,其特征在于,還包括以下步驟:根據預設的時間間隔,檢查虛擬化層的網絡連接狀態(tài),若虛擬化層的網絡連接狀態(tài)異常,則將與發(fā)生網絡連接狀態(tài)異常的虛擬化層對應的連接隊列刪除,當發(fā)生網絡連接狀態(tài)異常的虛擬化層重啟后,創(chuàng)建對應的連接隊列。
5.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接方法,其特征在于,還包括以下步驟:根據預設的時間間隔,檢查虛擬化層的SSH服務狀態(tài),若虛擬化層的SSH服務狀態(tài)異常,則將與發(fā)生SSH服務狀態(tài)異常的虛擬化層對應的SSH連接刪除。`
6.云操作系統(tǒng)的虛擬化層連接裝置,其特征在于,包括以下模塊: 查找模塊,用于根據云操作系統(tǒng)提供的虛擬化層的唯一識別碼,在連接池中查找與所述唯一識別碼對應的連接隊列;其中,所述連接池具有虛擬化層的唯一識別碼與連接隊列的關聯信息,所述連接隊列具有預設數量的SSH連接; 判斷模塊,用于判斷所述連接隊列中是否存在空閑的SSH連接,若是,則將所述空閑的SSH連接分配給云操作系統(tǒng)使用;若否,則進一步判斷所述連接隊列的SSH連接的數量是否已達到預設的最大數量,若是,則阻塞等待,直到有空閑的SSH連接分配給云操作系統(tǒng)使用,若否,則創(chuàng)建一個新的SSH連接分配給云操作系統(tǒng)使用。
7.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接裝置,其特征在于,還包括標記模塊:用于將已分配給云操作系統(tǒng)使用的SSH連接標記為已分配;將空閑的SSH連接和云操作系統(tǒng)使用完畢歸還給連接池的SSH連接均標記為可分配。
8.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接裝置,其特征在于,還包括第一檢查模塊:用于根據預設的時間間隔,檢查連接隊列中所有SSH連接的狀態(tài),將無效的SSH連接刪除,并創(chuàng)建有效的SSH連接加入到對應的連接隊列中。
9.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接裝置,其特征在于,還包括第二檢查模塊:用于根據預設的時間間隔,檢查虛擬化層的網絡連接狀態(tài),若虛擬化層的網絡連接狀態(tài)異常,則將與發(fā)生網絡連接狀態(tài)異常的虛擬化層對應的連接隊列刪除,當發(fā)生網絡連接狀態(tài)異常的虛擬化層重啟后,創(chuàng)建對應的連接隊列。
10.如權利要求1所述的云操作系統(tǒng)的虛擬化層連接裝置,其特征在于,還包括第三檢查模塊:用于根據預設的時間間隔,檢查虛擬化層的SSH服務狀態(tài),若虛擬化層的SSH服務狀態(tài)異常,則將與發(fā)生SSH服務狀態(tài)異常的虛擬化層對應的SSH連接刪除。
【文檔編號】H04L29/06GK103701678SQ201310606551
【公開日】2014年4月2日 申請日期:2013年11月25日 優(yōu)先權日:2013年11月25日
【發(fā)明者】張國強, 鄒理賢, 謝浩安 申請人:廣州云宏信息科技有限公司