定義
虛擬主機,也叫“網站空間”,就是把一台運行在網際網路上的物理伺服器劃分成多個“虛擬”伺服器。虛擬主機技術極大的促進了網路技術的套用和普及。同時虛擬主機的租用服務也成了網路時代的一種新型經濟形式。
背景
Internet上互聯有近億台的計算機,不管它們是什麼機型、運行什麼作業系統、使用什麼軟體,都可以歸結為兩大類:客戶機和伺服器。
• 客戶機:客戶機是訪問其它主機的機器。通過ISP(Internet Service Provider,網際網路業務提供者)上網時,客戶機被分配了一個臨時IP位址,利用這個臨時IP位址,客戶機就可以在Internet的網際網路中獲取信息,網路斷線後,客戶機就脫離了Internet,IP位址也被收回。
• 伺服器:伺服器是指那些具有較高計算能力,能夠提供給多個用戶使用的計算機,通常又稱為主機。伺服器與客戶機的不同點很多,例如客戶機在一個時刻通常只為一個用戶服務。客戶機是通過終端給用戶使用的,伺服器是通過網路給客戶端用戶使用的。和客戶機相比,伺服器需要連續工作在7×24小時的環境。這就意味著伺服器需要更多的穩定性技術RAS(Reliability, Availability and Serviceability,可靠性、可用性、適用性),比如支持使用ECC(Error Check and Correction,錯誤檢查和糾正)記憶體。
技術特點
虛擬主機技術是網際網路伺服器採用的節省伺服器硬體成本的技術,虛擬主機技術主要套用於HTTP(Hypertext Transfer Protocol,超文本傳輸協定)服務,將一台伺服器的某項或者全部服務內容邏輯劃分為多個服務單位,對外表現為多個伺服器,從而充分利用伺服器硬體資源。
虛擬主機是使用特殊的軟硬體技術,把一台真實的物理伺服器主機分割成多個邏輯存儲單元。每個邏輯單元都沒有物理實體,但是每一個邏輯單元都能像真實的物理主機一樣在網路上工作,具有單獨的IP位址(或共享的IP位址)、獨立的域名以及完整的Internet伺服器(支持WWW、FTP、E-mail等)功能。
虛擬主機的關鍵技術在於,即使在同一台硬體、同一個作業系統上,運行著為多個用戶打開的不同的伺服器程式,也互不干擾。而各個用戶擁有自己的一部分系統資源(IP位址、文檔存儲空間、記憶體、CPU等)。各個虛擬主機之間完全獨立,在外界看來,每一台虛擬主機和一台單獨的主機的表現完全相同。所以這種被虛擬化的邏輯主機被形象地稱為“虛擬主機”。
優點
費用低廉
相對於購買獨立伺服器,網站建設的費用大大降低,為普及中小型網站提供了極大便利。
虛擬主機之間完全獨立,在外界看來,每一台虛擬主機和一台獨立的主機完全一樣。由於多台虛擬主機共享一台真實主機的資源,每個虛擬主機用戶承受的硬體費用、網路維護費用、通信線路的費用均大幅度降低。
許多企業建立網站都採用這種方法,這樣不僅大大節省了購買機器和租用專線的費用,網站伺服器管理簡單,諸如軟體配置、防病毒、防攻擊等安全措施都由專業服務商提供,大大簡化了伺服器管理的複雜性;同時也不必為使用和維護伺服器的技術問題擔心,更不必聘用專門的管理人員。
提升效率
網站建設初期,購買伺服器到安裝作業系統和套用軟體需要較長的時間,而租用虛擬主機通常只需要幾分鐘的時間就可以開通,因為主要的註冊域名查詢服務商都已經實現了整個業務流程的電子商務化,選擇適合自己需要的虛擬主機,線上付款之後馬上就可以開通了。
虛擬主機技術的出現,是對Internet技術和網路發展的重大貢獻,由於多台虛擬主機共享一台真實主機的資源,大大增加了伺服器和通訊線路的利用率,使得一台伺服器上能夠毫無衝突地配置多個網路IP位址,這意味著人們能夠利用虛擬主機把若干個帶有單獨域名的站點建置在一台伺服器上,不必再為建立一個站點而購置單獨的伺服器和用巨資申請專線作為網路信息出口。
缺點
功能限制
某些功能受到服務商的限制,比如可能耗用系統資源的論壇程式、流量統計功能等。網站設計需要考慮服務商提供的功能支持,比如資料庫類型、作業系統等。一般虛擬主機為了降低成本沒有獨立IP位址,就是用IP位址不能直接訪問網站(因為同一個IP位址對應有多個網站)
訪問速度及流量限制
一台伺服器上的不同虛擬主機是各自獨立的,並由用戶自行管理。但一台伺服器主機只能夠支持一定數量的虛擬主機,當超過這個數量時,用戶將會感到性能急劇下降。
某些虛擬主機網站訪問速度過慢,這可能是由於主機提供商將一台主機出租給數量眾多的網站,或者伺服器配置等方面的原因所造成的,這種狀況網站自己無法解決,對於網站的正常訪問會產生不利影響;
有些服務商對網站流量有一定限制,這樣當網站訪問量較大時將無法正常訪問。
自主性差
虛擬主機不能由客戶隨意的安裝軟體及遠程桌面等操作。
目的
方便管理
所有的虛擬主機都在同一部主機中,因此彼此可以共享相同的配置設定,藉此節省管理的人力與成本。
提高性能
相同主機內的虛擬主機可以共享彼此的程式集(Process Pool),因此可以縮短對客戶端的回應時間。
降低成本
虛擬主機使得單一伺服器的資源可以被更有效的利用,包括存儲器、存儲空間或處理器資源。因為通常服務單一網址所需的資源對整部伺服器來說相當小,如此可讓伺服器的資源被更有效的利用。
多個虛擬伺服器,可以通過軟體架設在同一個實體伺服器上,而每個虛擬伺服器有可以提供伺服器的所有功能,這樣相對來說每個虛擬伺服器的成本有一定程度的降低。
實現類型
實現方式主要有三種:網址名稱對應(Name-based)、IP位址對應(IP-based)以及Port連線埠號對應(Port-based)。
網址名稱對應(Name-based)
網址名稱對應(Name-based)是藉由識別客戶端所以提供的網址,決定其所對應的服務,這個方法有效的減少IP位址的占用,但缺點是必須仰賴DNS名稱對應服務的支持,若名稱對應服務中斷,對應此名稱的服務也會無法取用。
IP位址對應(IP-based)
IP位址對應(IP-based)是指在同一部伺服器上,藉由同一份配置設定、不同的IP來管理多個服務。
Port連線埠號對應(Port-based)
近似於IP位址對應,不過是在同一個IP之下,利用不同的Port連線埠號來區別不同的服務,藉以快速創建多個虛擬主機。例如:
• 192.168.0.1:80
• 192.168.0.1:8080
• 192.168.0.1:8888
不過這類的套用大多用在私人或實驗性質的服務中,原因是用戶無法利用默認的連線埠號(例如Web服務的默認連線埠號80)取用提供的服務,除非用戶知道提供服務的連線埠號。
選擇虛擬主機
• 主機的硬體設施情況
• 虛擬主機提供商的所擁有的虛擬主機機房,是什麼規模的數據中心,是否有足夠機房線路的頻寬,虛擬主機網站聯線的速度是否同時滿足他所有虛擬主機客戶的流量頻寬。
• 虛擬主機上架設的網站有多少
• 通常一個虛擬主機能夠架設上百至千個網站,若網站數量越多,就是共享同台伺服器的人就越多;相比較而言資源就比較吃緊。一般與機器的CPU、存儲器等有關。IIS一般為10000/每伺服器連線數。