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