淺析固態(tài)盤應用程度及文件系統(tǒng)難題 |
發(fā)布時間: 2012/8/7 17:51:17 |
基于閃存的固態(tài)盤(SSD)正在成為企業(yè)存儲用戶的一個大難題;和我一起工作的很多用戶出于很多原因正打算采用這種新型“Tier 0”數(shù)據(jù)存儲,可能這些原因非常簡單,比如每瓦IOPS、每單位成本IOPS、(或者對于某些應用來說)每GB/s存儲的帶寬。 相比傳統(tǒng)磁盤存儲來說,固態(tài)盤有很多缺點,到目前為止最大的缺點恐怕就是成本了。有人說,因為閃存固態(tài)盤的出現(xiàn),旋轉硬盤很快將成為歷史,但我認為這在短期內是不太可能發(fā)生的,即使發(fā)生了,取代了旋轉硬盤的設備也不會是基于閃存的,并且不會在這個十年結束之前出現(xiàn)。廠商們說磁帶將走向滅亡已經說了20多年了,但是磁帶至今仍然在數(shù)據(jù)保護策略中扮演著重要的角色?瓷先ニ坪醵鄬哟鎯⒁恢贝嬖。 這是關于閃存固態(tài)盤部署系列文章的第一篇,將談到適用于閃存的應用,以及一些用于部署的文件系統(tǒng)和其他等問題。第二篇文章將談到硬件問題,第三篇將談一談固態(tài)盤設計和所使用的SAS以及RAID控制器。 適用于固態(tài)盤的應用 我們都知道,高IOPS架構有利于數(shù)據(jù)庫等應用,但是當你嘗試向架構中引入閃存固態(tài)盤的時候你應該考慮些什么? 對于應用來說,固態(tài)盤真正的好處包括小塊I/O請求的延遲,F(xiàn)在,大多數(shù)企業(yè)級固態(tài)盤很輕松地就可以保持40000的讀取IOPS和30000的寫入IOPS,而最快的2.5英寸1.5萬轉硬盤只能做250個隨機IOPS。當然,你需要硬件來實現(xiàn)這一性能,后面的第二篇文章我們將談到這個問題。 顯然使用密集的數(shù)據(jù)庫可以從固態(tài)盤技術中獲益,最突出的要算數(shù)據(jù)庫索引了,其次是數(shù)據(jù)庫日志文件。這些文件一般要比表格空間小,而且通常是保存在1.5萬轉硬盤中的,甚至經常受到性能方面的限制。像iostat這樣的性能工具、sar和其他等性能監(jiān)控工具通常被用于評估與這些設備相連接的LUN附加存儲的延遲。 盡管閃存存儲相比旋轉磁盤來說仍然是非常昂貴,但是了解閃存所能帶來的潛在好處是非常關鍵的。如果你的設備上有較大型的命令隊列,而且每個命令的延遲較高,那么也許你的數(shù)據(jù)庫比較適合于使用閃存存儲。 閃存的文件系統(tǒng)難題 另外一個新出現(xiàn)可利用閃存的潛在領域就是文件系統(tǒng)元數(shù)據(jù),F(xiàn)在有很多文件系統(tǒng)是將數(shù)據(jù)與元數(shù)據(jù)分離開來的,這樣我們就可以把元數(shù)據(jù)保存在固態(tài)盤上。這種類型的文件系統(tǒng)將變得越來越普遍。順便說一下,當我與文件系統(tǒng)設計者交流,或者我自己設計文件系統(tǒng)的時候,我個人比較推崇這種文件系統(tǒng)。這種方法很有意義,因為元數(shù)據(jù)通常有不同的訪問模式。除了文件系統(tǒng)元數(shù)據(jù)以外,與數(shù)據(jù)庫一樣,對于那些有日志的文件系統(tǒng)來說,這些文件系統(tǒng)的日志也適合保存在固態(tài)盤中。 對于大多數(shù)閃存固態(tài)盤來說,最大的問題之一就是它們的讀寫限制在4096字節(jié)范圍內。你可能會認為這并不算是個問題,因為索引節(jié)點大多數(shù)是512字節(jié)的,而且就我所知文件系統(tǒng)元數(shù)據(jù)的分配通常是成對的。這時候出現(xiàn)的問題我們通常稱之為文件系統(tǒng)超級塊(superblock)。超級塊包括關于文件系統(tǒng)的基本信息:用于文件系統(tǒng)的卷和位置,配置和可調節(jié)的大小,分配映射表和其他關鍵數(shù)據(jù)的不同種類。一些文件系統(tǒng)不會將超級塊設定在4096字節(jié)。這對于緩存大小固定的RAID控制器來說顯然是一個問題,而且對于閃存設備也是一樣的。這并不是說性能十分糟糕,但是對于大多數(shù)企業(yè)級閃存設備來說,在4096字節(jié)的限制基礎上進行調整和讀寫性能降低達50%已經是很不錯的了。這要比磁盤好多了,但是對于一種高成本設備來說,為什么要浪費那50%的性能呢? 對于我們這些有幸擁有足夠預算為文件系統(tǒng)購買固態(tài)盤的人們來說,你需要考慮文件系統(tǒng)調節(jié)參數(shù)。有些文件系統(tǒng)的配置是允許超過64KB的,那么使用大型配置對于基于磁盤的文件系統(tǒng)來說是有利的,而且你可以為浪費空間買單。因此,如果你的配置是1MB,在磁盤上保存了很多大容量文件和一些小容量文件,每個文件的大小都在幾MB,那么犧牲小型文件的空間但是有效地配置大型文件,這樣你就不需要遵循以往針對大型文件的常規(guī)配置。固態(tài)盤能夠起到幫助作用,因為元數(shù)據(jù)的分配開銷很小,因此遵循常規(guī)分配方式往往不會影響到性能。盡管固態(tài)盤空間的成本很高,但是當你既有大型文件又有小型文件的時候使用大型分配方式并沒有太大意義。按照最小的文件那樣進行分配,這樣就不會浪費寶貴的固態(tài)盤空間。例如,我的筆記本電腦使用了固態(tài)盤,我設置NTFS為1024字節(jié),而不是默認的4096字節(jié),因為我知道我有很多小型文件。 其他固態(tài)盤軟件問題 當利用閃存固態(tài)盤設備滿足高IOPS需求的時候,你還要考慮到其他一些軟件規(guī)劃的問題。例如,如果你在固態(tài)盤上將元數(shù)據(jù)分為文件系統(tǒng)和數(shù)據(jù)庫,那么你的備份和找回程序需要能夠訪問固態(tài)盤。有時候這些程序有一些認證的硬件,那么你需要確保固態(tài)盤是支持這些硬件的。 到目前為之最大的問題恐怕就是你需要多大的空間了。如果你使用固態(tài)盤來保存文件系統(tǒng)元數(shù)據(jù)或者日志、數(shù)據(jù)索引或者日志的話,那么空間計算就會變得極其復雜。文件系統(tǒng)中的超級塊通常很小,不便于計算。往往管理員也不了解目錄中的文件數(shù)或者目錄數(shù)。文件系統(tǒng)的不同空間分配也是不同的,你肯定不希望空間被占滿,因為你無法添加更多文件或者完成請求中的文件寫入操作。文件系統(tǒng)日志也是一樣。在數(shù)據(jù)庫方面也面臨和文件系統(tǒng)一樣的問題。你不希望空間被占滿,但是用于索引和日志的空間是很容易計算出來的。對于數(shù)據(jù)庫來說,另外一個需要考慮的就是,如果你在文件系統(tǒng)上運行數(shù)據(jù)庫的話,你就需要計算數(shù)據(jù)庫和文件系統(tǒng)的空間需求。所有這些都會變成一個難題,因為固態(tài)盤的成本要遠遠高于磁盤的成本,因此浪費空間在我看來是非最優(yōu)的。 本文出自:億恩科技【mszdt.com】 |