功能分析之DNS負載均衡
常談到負載均衡和DNS的問題,那么對于動態的負載均衡,也就是這用地址域名的分配我們應該考慮一些什么問題,這種技術能給我們帶來什么樣的好處呢?現在我們就來詳細地討論一下這個話題。希望通過這篇文章的詳細介紹,能讓大家了解DNS擴展的優越性能。
解決網絡過載的問題的一個解決方法是在現有的DNS中加入動態負載均衡的特性。
隨著計算機網絡的應用的日益廣泛,在互聯網上的負載也變得日益擁擠,這經常導致服務器無法正常地響應,并且影響了一些應用程序的崩潰。而且,這種現象的發生是動態的。解決這個問題的一個方法是建造更加強大的服務器,而另外一個途徑就是將客戶請求分散到多個服務器上。后者是解決這個問題的一種巧妙的方法,通過這種方法實際上是一種平衡的藝術,可以避免一些服務器過于繁忙而另外的服務器非常空閑的狀態。跨服務器的需求分配技術成為網絡技術的一個重要課題。
我們來考慮這么兩種情況:首先,每個TCP進程會消耗32比特的內存,這樣,一個有32MB內存的服務器從理論上支持100萬的連接。其次,在多個擁有同樣內容的服務器中,用戶總是喜歡根據他們自己的經驗(或者是一些監測數據)訪問一些服務負載較小的服務器,比如說,GetRight就可以選擇一個較佳的服務器進行FTP下載。
但是,我們可以可以通過定期地監測服務器的狀態并將請求指向***服務器來實現請求的分配。這種在多個服務器中根據服務器負載動態定向請求的技術稱之為動態負載均衡。這個功能可以加入域名服務(DNS)中,而這是因為域名服務器本身就充當了解析客戶請求的主要責任,而具有這種特性的DNS稱為dlbDNS(dynamicloadbalanceDNS)。在這里,***服務器指的是通過一種排名算法的出***排名的服務器。
在這里,我們將要解釋通過dlbDNS對DNS擴展所帶來的好處。首先,我們必須要考慮dlbDNS設計應該達到的性能:
(1)新的設計必須與原來的DNS應用兼容。
(2)該設計必須要易于配置。
(3)負載均衡必須快速而且有效。
(4)一個主機可以屬于多個組或者簇。
(5)對一個請求的響應應當動態地產生。
(6)對服務器的監控應當由不同的進程所產生。
(7)TTL的值應當設為最小以防止其他名字服務器的緩存的響應。
(8)最終的設計應當是一個通用性的名字服務器,可以被同時用于簡單的、反向的和動態的請求。
(9)對錯誤應當有所響應。
(10)負載均衡的過程對用戶來說是透明的。
負載均衡模型
有四種負載均衡模型可供使用:首先,RFC1794描述了使用一個特別區域代理以從外部資源獲得信息的負載均衡方法,這樣,一個新的區域通過名字服務器被載入。這個方法的問題是大量的信息量,包括靜態的或者是可能需要分配的信息量,都在區域中進行循環地傳送。同時,這個方法也不支持根據被請求的名字所回應的動態創建的虛擬/動態域名。
第二個模型是通過一個專門的負載均衡服務器來解釋請求并將其指向一個***服務器。這種設計由負載服務器在內部使用虛擬的IP地址。而這種服務器的問題在于需要在被監控地服務器群中加入另外一臺服務器而不是使用現有的資源。
第三個模型是通過一個遠程監視系統來監視不同服務器的性能,從而提供給DNS一個反饋。這個設計可以幫助解決無法直接觀測的系統問題,同時提供給用戶以訪問時間的測算。這種方式的問題就是在于需要依靠遠程網絡進行監視并且分發數據。
***一種方案就是通過內部監視系統來監視服務器的性能,并且提供給DNS的反饋。這主要的優點就是易維護性和管理性,而且也沒有安全方面的問題。dlbDNS就是使用的這種方式。