伺服器調度系統和方法
2023-12-09 21:51:46 1
專利名稱:伺服器調度系統和方法
技術領域:
本發明涉及計算機網絡領域,具體涉及一種伺服器調度系統和方法。
背景技術:
LVS (Linux虛擬伺服器,Linux Virtual Server)集群技術是一種基於IP層和基於內容請求分發負載平衡調度的解決方法,其具有很好的吞吐率,可將請求均衡地轉移到不同的伺服器上執行,且能夠自動屏蔽掉伺服器的故障,從而可將一組物理伺服器構成一個高性能的虛擬的物理伺服器集群系統。
現有技術中LVS調度過程具體可以包括LVS定期對服務集群的每臺物理伺服器上的服務進行健康檢查,如果健康檢查通過,則將用戶請求向該臺伺服器分發,反之如果健康檢查不通過,則把用戶請求分發至其它能夠檢查通過的伺服器上。這裡,每臺物理伺服器為物理上的機器,服務為運行在每臺物理伺服器上的程序,檢查通過表示相應伺服器在後端的服務處於正常的狀態;檢查不通過則說明相應伺服器在後端的服務已經下線;後端的服務下線主要可以包括如下兩種情形1、伺服器上的服務程序停止運行,不能處理任何的請求,也即服務停止;2、伺服器上的服務程序沒有停止,但是,在上遊截斷交易請求發送到這臺伺服器上。
現有技術中,LVS對伺服器的健康檢查是定期執行的,這樣,在LVS健康檢查的每個周期時間間隔內,LVS並沒有發起健康檢查,故無從得知後端的服務的健康狀況;現有技術中LVS調度採取的策略是,在LVS健康檢查的每個周期時間間隔內,一味地認為上一次健康檢查通過的物理伺服器上服務都是健康的,並繼續向相應的伺服器分發用戶請求。但是, 上述策略存在很大的風險,因為針對服務集群的伺服器,即使上一次檢查通過,在後續周期時間間隔內服務下線的概率還是很大的;而在一臺物理伺服器上服務下線時,繼續分發過去的用戶請求全部都會失敗,這段時間可能很短暫,或許幾秒鐘,或許十幾秒鐘;但在網際網路應用系統中在短暫的時間內很有可能存在大量交易請求的,大量交易請求失敗對網際網路應用系統來說十分嚴重的事件, 例如會降低系統的吞吐量。
總之,需要本領域技術人員迫切解決的一個技術問題就是如何能夠提高LVS集群系統的吞吐量。發明內容
鑑於上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的一種伺服器調度系統和方法。
依據本發明的一個方面,提供了一種伺服器調度系統,包括
LVS (Linux虛擬伺服器),適於調用其上部署的服務狀態檢測客戶端,使所述服務狀態檢測客戶端檢測物理伺服器上的服務狀態,並依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度;及
物理伺服器集群,其每臺物理伺服器上部署有服務狀態檢測服務端;其中,所述服務狀態檢測服務端適於向服務狀態檢測客戶端提供所述物理伺服器上的服務狀態;
其中,所述LVS在調度所述物理伺服器集群前,向其上部署的服務狀態檢測客戶端發起調用;
所述LVS具體適於依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。
可選地,所述服務狀態適於表示物理伺服器上服務當前是否可用;
則所述LVS,具體適於調度所述物理伺服器集群的服務當前可用的物理伺服器。
可選地,所述服務狀態適於表示物理伺服器上服務當前的繁忙程度;
則所述LVS,具體依據物理伺服器上服務當前的繁忙程度,評價所述物理伺服器集群的物理伺服器的質量,並調度所述物理伺服器集群的最優的物理伺服器。
可選地,所述服務狀態檢測客戶端包括
連接建立模塊,適於依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接;
請求發送模塊,適於向建立連接的服務狀態檢測服務端發送查詢請求;及
結果返回模塊,適於依據服務狀態檢測服務端回傳的查詢結果向所述LVS返回服務狀態的檢測 結果;
所述服務狀態檢測服務端包括
查詢模塊,適於依據所述查詢請求進行物理伺服器上服務狀態的查詢;及
查詢結果回傳模塊,適於向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果包括物理伺服器上的服務狀態。
可選地,所述查詢模塊,具體適於依據所述查詢請求在服務狀態文件中進行查詢, 得到所述物理伺服器上的服務狀態;所述服務狀態文件適於存儲所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述物理伺服器上的服務狀態依據運維人員對所述服務狀態文件的操作確定。
可選地,所述LVS,具體適於在調用所述服務狀態檢測客戶端時,向所調用的服務狀態檢測客戶端傳遞相應的連接參數;所述連接參數包括服務狀態檢測服務端的IP和端 Π ;
則所述連接建立模塊,具體適於查找與所述連接參數中的服務狀態檢測服務端的 IP和埠相應的服務狀態檢測服務端,並與查找得到的服務狀態檢測服務端建立SOCKET 通信鏈路。
可選地,所述調用結果返回模塊,還適於在所述連接建立模塊與相應的服務狀態檢測服務端建立連接失敗時,向所述LVS返回服務不可用的調用結果。
可選地,所述物理伺服器集群的每臺物理伺服器上還部署有啟動裝置;
所述啟動裝置,適於依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端。
根據本發明的另一方面,提供了一種伺服器調度方法,包括
LVS (Linux虛擬伺服器)在調度物理伺服器集群前,向其上部署的服務狀態檢測客戶端發起調用,使所述服務狀態檢測客戶端檢測物理伺服器上的服務狀態;其中,所述物理伺服器集群的每臺物理伺服器上部署有服務狀態檢測服務端;所述服務狀態檢測服務端適於向所述服務狀態檢測客戶端提供所述物理伺服器上的服務狀態;
LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度;
所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。
可選地,所述服務狀態適於表示物理伺服器上服務當前是否可用;
則所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS調度所述物理伺服器集群的服務當前可用的物理伺服器。
可選地,所述服務狀態適於表示物理伺服器上服務當前的繁忙程度;
則所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS依據物理伺服器上服務當前的繁忙程度,評價所述物理伺服器集群的物理伺服器的質量,並調度所述物理伺服器集群的最優的物理伺服器。
可選地,所述方法還包括
所述服務狀態檢測客戶端依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接;
所述服務狀態檢測客戶端向建立連接的服務狀態檢測服務端發送查詢請求;
所述服務狀態檢測客戶端依據服務狀態檢測服務端回傳的查詢結果向所述LVS 返回服務狀態的檢測結果;
所述服務狀態檢測服務端依據所述查詢請求進行物理伺服器上服務狀態的查詢;
所述服務狀態檢測服務端向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果包括物理伺服器上的服務狀態。
可選地,所述服務狀態檢測服務端依據所述查詢請求進行物理伺服器上服務狀態的查詢的步驟具體為,依據所述查詢請求在服務狀態文件中進行查詢,得到所述物理伺服器上的服務狀態;所述服務狀態文件適於存儲所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述物理伺服器上的服務狀態依據運維人員對所述服務狀態文件的操作確定。
可選地,所述LVS向其上部署的服務狀態檢測客戶端發起調用的步驟,包括LVS 在調用所述服務狀態檢測客戶端時,向所調用的服務狀態檢測客戶端傳遞相應的連接參數;所述連接參數包括服務狀態檢測服務端的IP和埠 ;
則所述服務狀態檢測客戶端依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接的步驟具體為,查找與所述連接參數中的服務狀態檢測服務端的IP和埠相應的服務狀態檢測服務端,並與查找得到的服務狀態檢測服務端建立SOCKET通信鏈路。
可選地,所述方法還包括
所述服務狀態檢測客戶端在所述連接建立模塊與相應的服務狀態檢測服務端建立連接失敗時,向所述LVS返回服務不可用的調用結果。
可選地,所述方法還包括
所述物理伺服器集群的每臺物理伺服器上部署有啟動裝置,所述啟動裝置依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端。
本發明的一種伺服器調度系統和方法具有如下有益效果
現有技術中LVS採取的策略是,在LVS健康檢查的每個周期時間間隔內,一味地認為上一次健康檢查通過的物理伺服器上服務都是健康的,並繼續向相應的伺服器分發用戶請求;但是,上一次健康檢查通過的物理伺服器上服務在後續周期時間間隔內服務下線的概率還是很大的,而在一臺物理伺服器上服務下線時,繼續分發過去的用戶請求全部都會失敗;
本發明在LVS調度物理伺服器集群前檢測物理伺服器上的服務狀態,並依據所述服務狀態的檢測結果,進行所述物理伺服器集群103的調度。
本發明的LVS調度可以依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器;這樣,本發明能夠在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求;因此,相對於現有技術,本發明能夠大大減少用戶請求失敗的情況,從而能夠提高LVS集群系統的吞吐量。例如,上一次健康檢查通過的伺服器上某服務在後續周期時間間隔內因下線而變得不可用了,本發明在LVS調度前通過檢測及時獲取該服務的狀態,故本發明的LVS調度能夠在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求。
本發明的LVS調度還可以調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器;由於最優的物理伺服器能夠在較少的時間內處理完成用戶請求,因此,本發明能夠提高用戶請求的處理效率,從而能夠提高LVS集群系統的吞吐量。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段, 而可依照說明書的內容予以實施,並且為了讓本發明的上述和其它目的、特徵和優點能夠更明顯易懂,以下特舉本發明的具體實施方式
。
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對於本領域普通技術人員將變得清楚明了。附圖僅適於示出優選實施方式的目的,而並不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中
圖1示出了根據本發明一個實施例的一種伺服器調度系統的結構圖2示出了根據本發明一個實施例的一種伺服器調度方法流程圖;以及
圖3示出了根據本發明一個實施例的一種伺服器調度方法流程圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以 以各種形式實現本公開而不應被這裡闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,並且能夠將本公開的範圍完整的傳達給本領域的技術人員。
參照圖1,示出了根據本發明一個實施例的一種伺服器調度系統的結構圖,具體可以包括
LVS101,適於調用其上部署的服務狀態檢測客戶端102,使所述服務狀態檢測客戶端檢測物理伺服器上的服務狀態,並依據所述服務狀態的檢測結果,進行所述物理伺服器集群103的調度;及
物理伺服器集群103,其每臺物理伺服器上部署有服務狀態檢測服務端104 ;其中,所述服務狀態檢測服務端104適於向服務狀態檢測客戶端102提供所述物理伺服器上的服務狀態;
其中,所述LVSlOl在調度所述物理伺服器集群103前,向其上部署的服務狀態檢測客戶端102發起調用。
本發明的LVS調度方案具體可以包括通過檢測獲取物理伺服器集群103的物理伺服器上的服務狀態,並依據服務狀態進行所述物理伺服器集群103的調度。
在本發明的一種優選實施例中,所述LVS101,可以具體適於依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。
在本發明的另一種優選實施例中,所述服務狀態適於表示物理伺服器上服務當前是否可用;則所述LVS101,可具體適於調度所述物理伺服器集群的服務當前可用的物理伺服器。這樣,本發明的LVS調度能夠在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求,以大大減少用戶請求失敗的情況,從而能夠提高LVS集群系統的吞吐量。
在本發明的再一種優選實施例中,所述服務狀態適於表示物理伺服器上服務當前的繁忙程度;則所述LVS101,可具體依據物理伺服器上服務當前的繁忙程度,評價所述物理伺服器集群的物理伺服器的質量,並調度所述物理伺服器集群的最優的物理伺服器。
其中,物理伺服器上服務當前的繁忙程度可以具有對應的等級或量化指標,如等級指標的一個示例為空閒、輕度繁忙、重度繁忙,如量化指標的一個示例為O 100之間的數值,其中,數值越大表示越繁忙。這樣,在評價所述物理伺服器集群的物理伺服器的質 量時,物理伺服器越繁忙,可以認為其質量越差,反之物理伺服器越空閒,可以認為其質量越優。從而,在調度時,可以從所述物理伺服器集群中選擇最優的物理伺服器進行調度。由於最優的物理伺服器能夠在較少的時間內處理完成用戶請求,因此,本發明能夠提高用戶請求的處理效率,從而能夠提高LVS集群系統的吞吐量。
服務狀態檢測客戶端102和服務狀態檢測服務端104 ;
首先簡單介紹計算機技術領域中客戶端和服務端的原理。通常,計算機技術領域中,提供服務的一方被稱為服務端(Server),接受服務的另一方被稱作客戶端(Client)。 具體而言,服務端是一種有針對性的服務程序,運行服務端的電腦稱之為「伺服器」;客戶端是指為客戶提供本地服務的程序,需要與服務端互相配合運行;客戶端和服務端,需要建立通信連接以保證服務的正常提供。
具體到本發明實施例,服務狀態檢測客戶端102和服務狀態檢測服務端104分別作為一種客戶端和一種服務端,互相配合運行以提供服務狀態的檢測這一服務。
本發明實施例中,服務狀態檢測客戶端102可部署於LVSlOl上,以保證LVS及時獲取得到服務狀態。
本發明實施例中,服務狀態檢測服務端104可部署於物理伺服器集群103的每臺物理伺服器上,通常,一臺伺服器上部署一個服務狀態檢測服務端104 ;本技術領域中公知的是,每臺物理伺服器上還會部署有適於提供用戶請求處理服務的其它服務端以處理 LVSlOl分發的用戶請求,這樣,服務狀態檢測服務端104就可以通過查詢獲取所屬伺服器之上的服務狀態,並向服務狀態檢測客戶端102提供相應的服務。
在發明實施例中,可通過IP來區分物理伺服器集群103的不同伺服器,也即,物理伺服器集群103的不同伺服器的IP是不同的;進一步,可通過埠來區分同一臺伺服器上的不同服務端,也即,同一臺伺服器上不同服務端的埠是不同的;這樣,本發明能夠通過 IP和埠定位到服務狀態檢測服務端104,進一步,本發明的服務狀態檢測客戶端102通過 IP和埠,就可以建立到服務狀態檢測服務端104的通信連接。
LVSlOl和服務狀態檢測客戶端102 ;
本發明實施例中,LVSlOl和服務狀態檢測客戶端102之間可以是直接的調用關係O
在實際應用中,LVSlOl上可能部署有多個服務狀態檢測客戶端102,故可以依據服務狀態檢測客戶端ID (標識,Identity)來區分不同的服務狀態檢測客戶端102;這樣, 將服務狀態檢測客戶端ID作為調用參數,就可以實現對不同服務狀態檢測客戶端102的調用。當然,本領域技術人員也可以採用其它參數來區分不同的服務狀態檢測客戶端102,本發明對具體的區分參數及調用參數(例如可以將服務狀態檢測客戶端ID和連接參數共同作為調用參數)不加以限制。
在實際應用中,物理伺服器集群103的每臺物理伺服器可以將部署的服務狀態檢測服務端104的IP和埠上報給LVSlOl ;這樣,LVSlOl在欲獲取物理伺服器集群103的某臺物理伺服器上的服務狀態時,可以將該臺伺服器上部署的服務狀態檢測服務端104的IP 和埠攜帶在連接參數中,並傳遞給所調用的服務狀態檢測客戶端102 ;由於IP能夠適於區分物理伺服器集群103的不同伺服器,以及,埠能夠適於區分同一臺伺服器上的不同服務端,因此,服務狀態檢測客戶端102依據連接參數中服務狀態檢測服務端104的IP和埠,就知道該連接到哪個伺服器的哪個服務狀態檢測服務端104。
服務狀態檢測客戶端102和服務狀態檢測服務端104
本發明的一種實施例中,所述服務狀態檢測客戶端102具體可以包括
連接建立模塊,適於依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接;
請求發送模塊,適於向建立連接的服務狀態檢測服務端發送查詢請求;及
結果返回模塊,適於依據服務狀態檢測服務端回傳的查詢結果向所述LVS返回服務狀態的檢測結果;
則所述服務狀態檢測服務端104具體可以包括
查詢模塊,適於依據所述查詢請求進行物理伺服器上服務狀態的查詢;及
查詢結果回傳模塊,適於向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果包括物理伺服器上的服務狀態。
服務狀態檢測客戶端102的功能具體可以包括連接服務狀態檢測服務端104以獲取所述服務狀態檢測服務端104所屬物理伺服器上的服務狀態,以及,依據所述服務狀態檢測服務端104回傳的查詢結果向LVSlOl返回調用結果;上述功能具體可以通過連接建立模塊、請求發送模塊和調用結果返回模塊來實現。
在本發明的一種優選實施例中,連接建立模塊可以依據所述連接參數中的服務狀態檢測服務端104的IP和埠,與相應的服務狀態檢測服務端104建立SOCKET (套接字) 通信鏈路。
在本發明的一種應用示例中,請求發送模塊向建立連接的服務狀態檢測服務端 104的查詢請求中可以攜帶有查詢字符串信息(如QUERY);這裡的查詢字符串信息可由本領域技術人員在服務狀態檢測客戶端102和服務狀態檢測服務端104兩端約定,本發明對具體的查詢串信息不加以限制這樣,服務狀態檢測服務端104接到這個查詢字符串信息之後就可以做出相應的查詢動作。
本發明實施例中,服務狀態檢測客戶端102向LVSlOl返回的調用結果可以作為 LVSlOl進行調度的依據。例如,在本發明的一種應用示例中,所述調用結果具體可以包括 服務可用的調用結果和服務不可用的調用結果;或者,在本發明的另一種應用示例中,所述調用結果具體可以包括所述服務狀態檢測服務端104所屬物理伺服器上的服務狀態, LVSlOl依據所述服務狀態檢測服務端104所屬物理伺服器上的服務狀態判斷一臺物理伺服器上服務是否可用。由於在一臺物理伺服器上服務不可用時,繼續分發過去的用戶請求全部都會失敗,故本發明可以採用將用戶請求分發至服務可用的伺服器的LVS調度策略, 以避免在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求。
在具體實現中,服務狀態檢測客戶端102的內容可採用PHP (超級文本預處理語言,Hypertext Preprocessor)等語言編寫,本發明對具體的服務狀態檢測客戶端102的編寫語言不加以限制。這裡,PHP是一種嵌入HTML (超文本標記語言,Hypertext Markup Language)文檔的腳本語言,在具體實現中,在LVSlOl上安裝PHP解析器即可實現採用PHP 編寫的服務狀態檢測客戶端102。
在具體實現中,服務狀態檢測服務端104的功能主要可以包括戶端102的連接請求和查詢請求,依據查詢請求進行所屬物理伺服器上的服務狀態的查詢,並回傳相應的查詢結果;上述功能可以通過查詢模塊和查詢結果返回模塊實現。
在具體實現中,服務狀態檢測服務端104的內容可採用C言編寫,本發明對具體的服務狀態檢測服務端104的編寫語言不加以限制。
本發明具有如下優點
本發明的LVS調度可以依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器;這樣,本發明能夠在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求;因此,相對於現有技術,本發明能夠大大減少用戶請求失敗的情況,從而能夠提高LVS集群系統的吞吐量。例如,上一次健康檢查通過的伺服器上某服務在後續周期時間間隔內因下線而變得不可用了,本發明在LVS調度前通過檢測及時獲取該服務的狀態,故本發明的LVS調度能夠在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求。
本發明的LVS調度還可以調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器;由於最優的物理伺服器能夠在較少的時間內處理完成用戶請求,因此,本發明能夠提高用戶請求的處理效率,從而能夠提高LVS集群系統的吞吐量。
在本發明的一種優選實施例中,所述查詢模塊,可具體適於依據所述查詢請求在服務狀態文件中進行查詢,得到所述服務狀態檢測服務端104所屬物理伺服器上的服務狀態;所述服務狀態文件適於存儲所述服務狀態檢測服務端所屬物理伺服器上的服務狀態; 所述服務狀態檢測服務端所屬物理伺服器上的服務狀態可依據運維人員對所述服務狀態文件的操作確定。
本優選實施例中,服務狀態文件的存儲內容可依據運維人員對所述服務狀態文件的操作確定,也即,運維人員可以根據所述服務狀態檢測服務端104所屬物理伺服器上服務的實際狀態來對服務狀態文件的存儲內容進行更新。
例如,在本發明的一種優選實施例中,所述服務狀態檢測服務端所屬物理伺服器上的服務狀態至少可以包括下列狀態中的一個或者多個服務正常狀態(ONLINE);服務停止狀態(DETACH);服務要求停止分發用戶請求的狀態(OFFLINE),則運維人員可以依據所述服務狀態檢測服務端104所屬物理伺服器上服務的實際狀態,將服務狀態文件的存儲內容修改為上述三種狀態中的任一。
例如,上一次健康檢查通過的伺服器上某服務在後續周期時間間隔內因下線而變得不可用了,則運維人員可以修改服務狀態文件,將其中存儲的服務狀態修改為DETACH或者 OFFLINE。
在本發明的另一種優選實施例中,所述服務狀態檢測服務端所屬物理伺服器上的服務狀態至少可以包括下列狀態中的一個或者多個服務正常狀態;服務停止狀態;服務要求停止分發用戶請求的狀態;
則所述調用結果返回模塊,可以具體適於在服務狀態檢測服務端回傳的查詢結果為服務正常狀態時,向所述LVSlOl返回服務可用的調用結果;以及,在服務狀態檢測服務端回傳的查詢結果為服務停止狀態或服務要求停止分發用戶請求的狀態時,向所述LVSlOl 返回服務不可用的調用結果;
所述LVS101,則可以具體適於將用戶請 求分發至服務可用的伺服器。
由於在一臺物理伺服器上服務不可用時,繼續分發過去的用戶請求全部都會失敗,故本發明可以採用將用戶請求分發至服務可用的伺服器的LVS調度策略,以避免在物理伺服器上服務不可用時停止向對應的伺服器分發用戶請求。
在具體實現中,物理伺服器上服務可用和不可用可分別使用I和O的調用結果返回值,當然,I和O並不理解為本發明實施例中調用結果返回值的應用限制。
需要說明的是,本優選實施例中判斷一臺物理伺服器上服務是否可用也可由 LVSlOl來完成。例如,當然,LVSlOl可以直接依據所述服務狀態檢測服務端104所屬物理伺服器上的服務狀態判斷一臺物理伺服器上服務是否可用,例如,將服務正常狀態判斷為可用,將服務停止狀態或服務要求停止分發用戶請求的狀態判斷為不可用,將用戶請求分發至服務可用的伺服器等等,本發明對具體的判斷一臺物理伺服器上服務是否可用的執行主體不加以限制。
在本發明的再一種優選實施例中,所述連接建立模塊,可具體適於查找與所述連接參數中的服務狀態檢測服務端的IP和埠相應的服務狀態檢測服務端,並與查找得到的服務狀態檢測服務端建立SOCKET通信鏈路。由於IP能夠適於區分物理伺服器集群103 的不同伺服器,以及,埠能夠適於區分同一臺伺服器上的不同服務端,故依據所述連接參數中的服務狀態檢測服務端的IP和埠所述連接建立模塊能夠定位到唯一的服務狀態檢測服務端。
在本發明實施例中,優選的是,所述調用結果返回模塊,還可適於在所述連接建立模塊與相應的服務狀態檢測服務端104建立連接失敗時,向所述LVSlOl返回服務不可用的調用結果。本優選實施例認為,在所述連接建立模塊與相應的服務狀態檢測服務端104建立連接失敗時,LVSlOl不能連接到該服務狀態檢測服務端104所屬伺服器,故可以認為,該服務狀態檢測服務端104所屬物理伺服器上服務也是不可用的。
在本發明的一種優選實施例中,所述連接參數還至少可以包括下列參數中的一個或者多個連接超時時間;重連次數。
對應於本優選實施例,可以依據所述連接超時時間和重連次數對所述連接建立模塊進行限定。例如,在所述連接建立模塊與相應的服務狀態檢測服務端104不能建立連接時,可以在所述連接超時時間或重連次數的條件下重新建立連接,如果還是連接不上,可以認為所述連接建立模塊與相應的服務狀態檢測服務端104建立連接失敗。
在本發明的另一種優選實施例中,所述物理伺服器集群103的每臺物理伺服器上還可部署有啟動裝置;
所述啟動裝置,可具體適於依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端。
本發明實施例中,服務狀態檢測服務端104是對應於特定的IP和埠的,這樣, 服務狀態檢測服務端104啟動時需要指定IP和埠,為了避免每次手動輸入IP和埠以啟動服務狀態檢測服務端104,本優選實施例可以依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端;在具體實現中,將IP和埠寫在配置文件內,讀取配置文件即可啟動服務狀態檢測服務端104。
參照圖2,示出了根據本發明一個實施例的一種伺服器調度方法流程圖,具體可以包括
步驟201、LVS在調度物理伺服器集群前,向其上部署的服務狀態檢測客戶端發起調用,使所述服務狀態檢測客戶端檢 測物理伺服器上的服務狀態;其中,所述物理伺服器集群的每臺物理伺服器上部署有服務狀態檢測服務端;所述服務狀態檢測服務端適於向所述服務狀態檢測客戶端提供所述物理伺服器上的服務狀態;
步驟202、LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度。
在本發明的一種優選實施例中,所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體可以為,LVS依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。。
在本發明的另一種優選實施例中,所述服務狀態適於表示物理伺服器上服務當前是否可用;
則所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體可以為,LVS調度所述物理伺服器集群的服務當前可用的物理伺服器。。
在本發明的再一種優選實施例中,所述服務狀態適於表示物理伺服器上服務當前的繁忙程度;
則所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體可以為,LVS依據物理伺服器上服務當前的繁忙程度,評價所述物理伺服器集群的物理伺服器的質量,並調度所述物理伺服器集群的最優的物理伺服器。
在本發明的一種優選實施例中,所述方法還可以包括
所述服務狀態檢測客戶端依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接;
所述服務狀態檢測客戶端向建立連接的服務狀態檢測服務端發送查詢請求;
所述服務狀態檢測客戶端依據服務狀態檢測服務端回傳的查詢結果向所述LVS 返回服務狀態的檢測結果;
所述服務狀態檢測服務端依據所述查詢請求進行物理伺服器上服務狀態的查詢;
所述服務狀態檢測服務端向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果包括物理伺服器上的服務狀態。
在本發明的另一種優選實施例中,所述服務狀態檢測服務端依據所述查詢請求進行物理伺服器上服務狀態的查詢的步驟具體可以為,依據所述查詢請求在服務狀態文件中進行查詢,得到所述物理伺服器上的服務狀態;所述服務狀態文件適於存儲所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述物理伺服器上的服務狀態依據運維人員對所述服務狀態文件的操作確定。
在本發明的再一種優選實施例中,所述LVS向其上部署的服務狀態檢測客戶端發起調用的步驟,具體可以包括=LVS在調用所述服務狀態檢測客戶端時,向所調用的服務狀態檢測客戶端傳遞相應的連接參數;所述連接參數包括服務狀態檢測服務端的IP和埠 ;
則所述服務狀態檢測客戶端依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接的步驟具體可以為,查找與所述連接參數中的服務狀態檢測服務端的IP和埠相應的服務狀態檢測服務端,並與查找得到的服務狀態檢測服務端建立SOCKET通信鏈路。
在本發明的一種優選實施例中,所述方法還可以包括
所述服務狀態檢測客戶端在所述連接建立模塊與相應的服務狀態檢測服務端建立連接失敗時, 向所述LVS返回服務不可用的調用結果。
在本發明的一種優選實施例中,所述方法還可以包括
所述物理伺服器集群的每臺物理伺服器上部署有啟動裝置,所述啟動裝置依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端。
參照圖3,示出了根據本發明一個實施例的一種伺服器調度方法流程圖,具體可以包括
步驟301、LVS調用其上部署的服務狀態檢測客戶端,並向所調用的服務狀態檢測客戶端傳遞相應的連接參數;所述連接參數具體可以包括服務狀態檢測服務端的IP和端 Π ;
步驟302、服務狀態檢測客戶端依據所述連接參數中的服務狀態檢測服務端的IP 和埠,與相應的服務狀態檢測服務端建立SOCKET連接;
步驟303、服務狀態檢測客戶端向建立連接的服務狀態檢測服務端發送查詢請求;
步驟304、服務狀態服務端依據所述查詢請求在服務狀態文件中進行查詢,得到所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述服務狀態檢測服務端所屬物理伺服器上的服務狀態至少可以包括下列狀態中的一個或者多個服務正常狀態;服務停止狀態;服務要求停止分發用戶請求狀態;
步驟305、服務狀態服務端向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果具體可以包括所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述物理伺服器上的服務狀態適於表示物理伺服器上服務當前是否可用;
步驟306、服務狀態檢測客戶端在服務狀態檢測服務端回傳的查詢結果為服務正常狀態時,向LVS返回服務可用的調用結果;以及,在服務狀態檢測服務端回傳的查詢結果為服務停止狀態或服務要求停止分發用戶請求的狀態時,向LVS返回服務不可用的調用結果;
步驟307、在調用結果為服務不可用時,LVS停止向對應的伺服器分發用戶請求, 以及,在調用結果為服務可用時,LVS向對應的伺服器分發用戶請求。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。 各種通用系統也可以與基於在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定程式語言。應當明白,可以利用各種程式語言實現在此描述的本發明的內容,並且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋成反映如下意圖即所要求保護的本發明要求比在每個權利要求中所明確記載的特徵更多的特徵。更確切地說,如下面的權利要求書所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此, 遵循具體實施方式
的權利要求書由此明確地併入該具體實施方式
,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變並且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特徵和/或過程或者單元中的至少一些是相互排斥之外,可以採用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特徵以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特徵可以由提供相同、等同或相似目的的替代特徵來代替。
此外,本領域的技術人員能夠理解,儘管在此所述的一些實施例包括其它實施例中所包括的某些特徵而不是其它特徵,但是不同實施例的特徵的組合意味著處於本發明的範圍之內並且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬體實現,或者以在一個或者多個處理器上運行的軟體模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數位訊號處理器(DSP)來實現根據本發明實施例中的一些或者全部部件的一些或者全部功能。本發明還可以實現為適於執行這裡所描述的方法的一部分或者全部的設備或者系統程序(例如,電腦程式和電腦程式產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從網際網路網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,並且本領域技術人員在不脫離所附權利要求的範圍的情況下可設計出替換實施例。在權利要求中, 不應將位於括號之間的任何參考符號構造成對權利要求的限制。單詞「包含」不排除存在未列在權利要求中的元件或步驟。位於元件之前的單詞「一」或「一個」不排除存在多個這樣的元件。本發明可以藉助於包括有若干不同元件的硬體以及藉助於適當編程的計算機來實現。在列舉了若干系統的單元權利要求中,這些系統中的若干個 可以是通過同一個硬體項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
權利要求
1.一種伺服器調度系統,包括 LVS (Linux虛擬伺服器),適於調用其上部署的服務狀態檢測客戶端,使所述服務狀態檢測客戶端檢測物理伺服器上的服務狀態,並依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度;及 物理伺服器集群,其每臺物理伺服器上部署有服務狀態檢測服務端;其中,所述服務狀態檢測服務端適於向服務狀態檢測客戶端提供所述物理伺服器上的服務狀態; 其中,所述LVS在調度所述物理伺服器集群前,向其上部署的服務狀態檢測客戶端發起調用; 所述LVS具體適於依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。
2.如權利要求1所述的系統,所述服務狀態適於表示物理伺服器上服務當前是否可用; 則所述LVS,具體適於調度所述物理伺服器集群的服務當前可用的物理伺服器。
3.如權利要求1所述的系統,所述服務狀態適於表示物理伺服器上服務當前的繁忙程度; 則所述LVS,具體依據物理伺服器上服務當前的繁忙程度,評價所述物理伺服器集群的物理伺服器的質量,並調度所述物理伺服器集群的最優的物理伺服器。
4.如權利要求1所述的系統,所述服務狀態檢測客戶端包括 連接建立模塊,適於依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接;請求發送模塊,適於向建立連接的服務狀態檢測服務端發送查詢請求;及結果返回模塊,適於依據服務狀態檢測服務端回傳的查詢結果向所述LVS返回服務狀態的檢測結果; 所述服務狀態檢測服務端包括 查詢模塊,適於依據所述查詢請求進行物理伺服器上服務狀態的查詢;及查詢結果回傳模塊,適於向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果包括物理伺服器上的服務狀態。
5.如權利要求4所述的系統,所述查詢模塊,具體適於依據所述查詢請求在服務狀態文件中進行查詢,得到所述物理伺服器上的服務狀態;所述服務狀態文件適於存儲所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述物理伺服器上的服務狀態依據運維人員對所述服務狀態文件的操作確定。
6.如權利要求4所述的系統,所述LVS,具體適於在調用所述服務狀態檢測客戶端時,向所調用的服務狀態檢測客戶端傳遞相應的連接參數;所述連接參數包括服務狀態檢測服務端的IP和埠 ; 則所述連接建立模塊,具體適於查找與所述連接參數中的服務狀態檢測服務端的IP和埠相應的服務狀態檢測服務端,並與查找得到的服務狀態檢測服務端建立SOCKET通信鏈路。
7.如權利要求4所述的系統,所述調用結果返回模塊,還適於在所述連接建立模塊與相應的服務狀態檢測服務端建立連接失敗時,向所述LVS返回服務不可用的調用結果。
8.如權利要求1或4所述的系統,所述物理伺服器集群的每臺物理伺服器上還部署有啟動裝置; 所述啟動裝置,適於依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端。
9.一種伺服器調度方法,包括 LVS (Linux虛擬伺服器)在調度物理伺服器集群前,向其上部署的服務狀態檢測客戶端發起調用,使所述服務狀態檢測客戶端檢測物理伺服器上的服務狀態;其中,所述物理伺服器集群的每臺物理伺服器上部署有服務狀態檢測服務端;所述服務狀態檢測服務端適於向所述服務狀態檢測客戶端提供所述物理伺服器上的服務狀態; LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度; 其中,所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。
10.如權利要求9所述的方法,所述服務狀態適於表示物理伺服器上服務當前是否可用; 則所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS調度所述物理伺服器集群的服務當前可用的物理伺服器。
11.如權利要求9所述的方法,所述服務狀態適於表示物理伺服器上服務當前的繁忙程度; 則所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS依據物理伺服器上服務當前的繁忙程度,評價所述物理伺服器集群的物理伺服器的質量,並調度所述物理伺服器集群的最優的物理伺服器。
12.如權利要求9所述的方法,還包括 所述服務狀態檢測客戶端依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接; 所述服務狀態檢測客戶端向建立連接的服務狀態檢測服務端發送查詢請求; 所述服務狀態檢測客戶端依據服務狀態檢測服務端回傳的查詢結果向所述LVS返回服務狀態的檢測結果; 所述服務狀態檢測服務端依據所述查詢請求進行物理伺服器上服務狀態的查詢;所述服務狀態檢測服務端向服務狀態檢測客戶端回傳相應的查詢結果,所述查詢結果包括物理伺服器上的服務狀態。
13.如權利要求12所述的方法,所述服務狀態檢測服務端依據所述查詢請求進行物理伺服器上服務狀態的查詢的步驟具體為,依據所述查詢請求在服務狀態文件中進行查詢,得到所述物理伺服器上的服務狀態;所述服務狀態文件適於存儲所述服務狀態檢測服務端所屬物理伺服器上的服務狀態;所述物理伺服器上的服務狀態依據運維人員對所述服務狀態文件的操作確定。
14.如權利要求12所述的方法,所述LVS向其上部署的服務狀態檢測客戶端發起調用的步驟,包括LVS在調用所述服務狀態檢測客戶端時,向所調用的服務狀態檢測客戶端傳遞相應的連接參數;所述連接參數包括服務狀態檢測服務端的IP和埠 ; 則所述服務狀態檢測客戶端依據所述LVS的調用,與相應的服務狀態檢測服務端建立連接的步驟具體為,查找與所述連接參數中的服務狀態檢測服務端的IP和埠相應的服務狀態檢測服務端,並與查找得到的服務狀態檢測服務端建立SOCKET通信鏈路。
15.如權利要求12所述的方法,還包括 所述服務狀態檢測客戶端在所述連接建立模塊與相應的服務狀態檢測服務端建立連接失敗時,向所述LVS返回服務不可用的調用結果。
16.如權利要求9或12所述的方法,還包括 所述物理伺服器集群的每臺物理伺服器上部署有啟動裝置,所述啟動裝置依據配置文件中存儲的IP和埠,啟動每臺物理伺服器上部署的服務狀態檢測服務端。
全文摘要
本發明公開了一種伺服器調度系統和方法,其中的方法包括LVS在調度物理伺服器集群前,向其上部署的服務狀態檢測客戶端發起調用,使服務狀態檢測客戶端檢測物理伺服器上的服務狀態;其中,所述物理伺服器集群的每臺物理伺服器上部署有服務狀態檢測服務端;所述服務狀態檢測服務端適於向所述服務狀態檢測客戶端提供所述物理伺服器上的服務狀態;LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度;其中,所述LVS依據所述服務狀態的檢測結果,進行所述物理伺服器集群的調度的步驟具體為,LVS依據所述服務狀態的檢測結果,調度所述物理伺服器集群的可用物理伺服器或最優物理伺服器。本發明能夠提高LVS集群系統的吞吐量。
文檔編號H04L12/26GK103002039SQ20121054015
公開日2013年3月27日 申請日期2012年12月13日 優先權日2012年12月13日
發明者陳秋豐 申請人:北京奇虎科技有限公司, 奇智軟體(北京)有限公司