1.數據庫服務器需求
數據庫服務器有著十分明確的存儲和I/O需要,這正反映了它們所支持的商業應用的個性化特征。例如,事務數據庫典型地要求小的、陣發性I/O,而數據挖掘數據庫系統則需要長時間的流式I/O。數據庫系統已經成為支持各種商業需要的重要工具,為了提供最高的服務質量,它經常根據某類特殊應用的需要提供專門的服務。這就意味著可以針對某個應用特性,對數據庫的I/O成分、配置和數據結構進行調整,以達到最優的性能。
有時候,數據庫系統也使用原始分區為自己提供卷管理功能,原始分區的思想是:數據庫在磁盤上定義一個塊范圍,并對I/O過程的軟件成分實行直接的管理,而不通過文件系統來管理。這個方法具有一定的意義,因為數據庫不是面向文件系統,而是面向記錄的。在數據庫I/O策略中,原始分區承擔了文件系統的角色。
所以,當數據庫應用產生一個I/O請求時,數據庫系統必須自己安排數據存儲的細節,而不是將其傳遞給文件系統。換言之,數據庫為產生I/O請求提供了完整的系統機制。當更高層的數據庫操作需要一個I/O請求時,它就將那個請求發送到一個進程,該進程維護一個類似于文件系統的查找表,由此確定記錄在設備中的位置。這個記錄級的I/O請求通過原始分區管理器傳送到設備驅動程序,I/O路徑的其余成分同標準的文件服務器一樣。圖3-16給出了文件服務器和運行在原始分區上的數據庫軟件成分的差別。
許多數據庫的實現建立在文件系統之上,而不是使用原始分區。這樣,數據庫為了更新記錄必須要打開文件。當周期性地產生I/O請求以更新文件中的特別塊范圍時,就使文件一直處于打開狀態。事實上,這種類型的操作十分類似于原始分區上的操作,只是操作的文件與許多其他文件一起存在于服務器的文件系統中。
2.Web服務器需求
Web服務器是一類相對新的服務器,對存儲和I/O的需求也隨環境變化而不同。對于基本的HMTL,Web服務器的存儲需求相對簡單,但對于大型的搜索引擎站點、入口及電子商務站點,存儲需求就極具挑戰性。隨著Web站點的流行以及傳輸量的增加,對Web服務器的存儲性能要求將變得難以滿足。在大的Web服務器上,客戶I/O處理程序必須能夠在每分鐘內處理幾千條請求。雖然部分處理能夠以分布式實現,但客戶請求的巨大數量仍是令人驚訝的。第16章將討論Internet存儲需求,以及建立可擴展性更強的Web站點的存儲網絡技術的應用。