史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 系統 & 硬體安裝及故障判斷技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-07-07, 09:09 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 RAID容錯式獨立磁碟陣列和資料佈局

我們將漫遊一下整個資料的通道。如果你沒有閱讀本系列的早期文章(I/O系統和效能漫談資料路徑,操作系統使用和I/O) ,最好先讀一下它們,以便更好地理解資料通道和相應的設備及軟體。資料的I/O通道經歷了以下的步驟:

  應用程式←→庫←→操作系統←→磁碟區管理器和文件系統←→RAID容錯式獨立磁碟陣列

  在本系列講座的開頭,我已經表達了一個前提:如果你打算最佳化I/O效能,你就必須首先瞭解整個資料通道。所以,本月我們將結合應用程式和所使用的RAID容錯式獨立磁碟陣列硬體來介紹文件系統的規劃(資料通道)。

  從何處開始

  你也許認為首先是著手構建RAID容錯式獨立磁碟陣列磁碟區,但是,正如你即將看到的,那是最糟糕的起點。你需要做的第一件事是瞭解應用程式是如何進行IO操作的,以及它們是如何影響文件系統和磁碟區管理器的。需要考慮的因素包括:
  1. 文件系統中的文件數量
  2. 文件系統中的文件大小
  3. 請求文件的大小
  4. 讀操作對寫操作的次數之比
  5. 最常使用的文件存取類型(例如,對於資料庫,經常使用索引文件)

  在我們深入學習之前,首先回顧一下那篇討論應用程式I/O的存儲和I/O的文章。
假設你有個資料庫應用程式和一個文件系統(請參見文章選項文件系統或者磁碟區管理器關於條塊化文件和單循環化文件系統的討論)。你需要考慮的一些事情包括:
  1. 索引新增和重建的頻次
  2. 索引文件的大小和數量
  3. 索引的資料量同資料庫中的資料量之比

  先記住這些知識,你也許打算考慮對不同類型的資料建立不同的文件系統。擁有幾種文件系統是有好處的。例如,你也許打算這樣安排:
  1. 對於索引文件建立一個文件系統
  2. 對於資料庫中的資料建立一個文件系統
  3. 安裝資料庫時建立一個文件系統(我建議這樣做,是因為資料庫應用程式本身通常有不少的小文件,新增帶有小的分配空間的文件系統可減少安裝時資料庫時所需要的尺寸,並且可以讓其他文件系統使用大些的分配空間)
  4. 對於資料庫日誌,建立一個或者更多的文件系統,或者採用初始記錄設備(這些文件系統通常不在文件系統控制器的管轄範圍中,因為採用初始記錄設備,可用來確保資料不在記憶體中緩衝,以免出現系統崩潰的情況)

  如果效能是個問題,那麼建立一定數量的文件系統,且在RAID容錯式獨立磁碟陣列中對每個文件系統和邏輯單元號(LUN)進行最佳化,這將為每種類型的文件和相應的I/O操作提供最佳效能的發揮。通過使用資料庫的例子,可理解需要建立各種文件系統的原因所在。
 索引文件

  關於索引文件,首先要注意:它們的尺寸一般比資料庫文件要小得多。在許多資料庫中,索引文件的大小為2 G字元,這樣一旦文件系統支持大的分配空間,文件系統中放的就都是索引文件了,你可以設定分配空間大小為2G字元,且每個文件對應一個分配空間。大多數文件系統不支持那麼大的分配空間,但你可以盡可能的設定大一些。另外,索引文件儘管是在記憶體中緩衝的,在進行搜尋操作時,只伴有少量的隨機的I/O請求。在RAID容錯式獨立磁碟陣列-1上進行小量的隨機的I/O請求,其效能比在帶有8+1或者4+1的RAID容錯式獨立磁碟陣列-5上更好。

  如果你給RAID容錯式獨立磁碟陣列緩衝賦予一個邏輯單元號(LUN),且索引文件能夠裝進該緩衝,你就可以大大地減少進行搜尋的延遲時間。通常在企業的RAID容錯式獨立磁碟陣列系統中是這樣做的,因為它們支持很大的緩衝。你需要多少邏輯單元?在RAID容錯式獨立磁碟陣列中如何規劃LUN?你如何最佳化磁碟區管理器和文件系統?要回答這些問題,請考慮下面的例子:

  假如你需要200 GB的索引文件空間,且你在RAID容錯式獨立磁碟陣列中的硬碟容量有72 GB。對於大多數的RAID容錯式獨立磁碟陣列,在規劃LUN時,考慮採用6個硬碟(200/72=~3 個硬碟,因為是RAID容錯式獨立磁碟陣列-1,所以需要6個硬碟),此時你有兩個選項:
  1. 新增一個帶有6個硬碟的LUN,讓RAID容錯式獨立磁碟陣列控制器以條塊化方式管理6個硬碟。
  2. 新增3個 RAID容錯式獨立磁碟陣列-1 LUN,且讓磁碟區管理器或者文件系統管理這3個LUN。

  情況開始變得複雜了,因為對於即將新增的每個LUN,你得決定內部的分配空間或者RAID容錯式獨立磁碟陣列的塊大小。 內部的分配空間有時稱為段尺寸,或者稱為元素尺寸,讓我們從這裡開始。如果你的資料庫索引實際上是小尺寸的隨機塊,這些I/O通常為8 KB的請求,所以你打算讓內部塊的大小盡可能地接近該數值。因為RAID容錯式獨立磁碟陣列是在這些內部塊上進行讀寫的,這就確保RAID容錯式獨立磁碟陣列不會讀到它不使用的資料。另外,假如I/O操作是隨機的,這樣一旦你打算關掉RAID容錯式獨立磁碟陣列控制器預讀緩衝功能,效能將會提高。而問題是:I/O操作通常是順序進行的,或者是帶有skip增量的方式順序進行的,所以有個預讀的帶有skip增量的緩衝,將能夠提高效能。

  好的,我們知道RAID容錯式獨立磁碟陣列應該如何設定,但是我們仍然需要構造LUN,我一般建議在硬體上採取措施比在軟體上更好。所以,對於大多數的RAID容錯式獨立磁碟陣列,我建議讓RAID容錯式獨立磁碟陣列控制器對資料分成條塊,但有個很重要的關鍵問題,資料目前在3個硬碟(對於鏡像,則為6個硬碟)上分塊,如果你在對單個索引文件進行順序I/O操作,在你對第一個,第二個和第三個硬碟進行I/O操作,且尚未回到第一個硬碟之前,你的I/O操作在物理上並非順序進行的。

  所以,如果你正在進行順序的I/O操作,那麼在物理硬碟上,實際並不順序進行。當然,這取決於磁碟區中的條塊大小。如果索引文件是隨機搜尋的,且一切均不是順序的,這倒是個優點,因為在三個硬碟上的I/O操作是分散進行的。

  另外一方面,你應該有三個LUN,並使用磁碟區管理器或者文件系統,要麼以條塊化方式,要麼以單循環方式存取資料。對於僅僅條塊化資料的磁碟區管理器,我有個竅門,那就是在磁碟區管理器中把條塊大小設定為等同於資料庫文件的大小 (不少場合中為2 G字元)。你可以有效地單循環化索引文件的存取,因為每個索引文件將分配給一個單獨的設備。這僅在索引文件的大小是固定的情況下適用,通常是在使用資料庫的場合。支持單循環存取的磁碟區管理器和文件系統也可適用。此處的優勢是:如果索引是順序搜尋的,且文件是順序分配的,你可以根據索引文件的利用率,來設定你的預讀緩衝和緩衝的利用率,這將極大地改進效能。

  通過使用這個程序,在一些例子中,可以消除從緩衝到硬碟的超過80%的I/O操作,這樣,就有了更好的回應時間,且用戶的使用率更高。
資料文件

  對於實際資料來說,經歷的是同樣一套步驟,在資料的存取方式和索引文件的存取方式之間,通常有不少差別,但程序是一樣的。下面為步驟:
  1. 關於如下因素,來決定如何規劃LUN:
  A. 你計劃使用的文件系統和磁碟區管理器。考慮分配空間大小,是否採用單循環和條塊化。
  B. 文件的大小。考慮文件如何在物理硬碟設備上分配空間,以及如何使用RAID容錯式獨立磁碟陣列緩衝。
  2. 決定用來讀寫資料的I/O請求的大小。如改尺寸很大,那麼RAID容錯式獨立磁碟陣列-5可能是個好的選項,因為如果使用RAID容錯式獨立磁碟陣列-1,你就需要:
  i. 使用更多緩衝寫入更多資料,比RAID容錯式獨立磁碟陣列-5佔用了更多硬碟帶寬。
  ii. 對於同樣數量的資料空間,使用了更多的硬碟。

  如果你瞭解了上述信息,你將能夠新增LUN,並在此基礎上建立文件系統或者磁碟區管理器。你仍將需要調整資料庫的內部參數,但對於存儲器中的I/O,將發揮出最大效率。我把效率定義為最大可能的緩衝利用率和最小可能的資料延遲。

  該程序可以用於任何其他類型的應用程式,並不局限於資料庫。

  結論

  當我去年底開始寫這系列文章時,我介紹了影響I/O效能的關鍵因素是瞭解終端到終端的資料通道。通過一系列的文章,我認為已經把這個問題講透。RAID容錯式獨立磁碟陣列控制器並不瞭解資料是如何存取的,也不瞭解文件是如何映射到物理設備中,雖然它們有用來緩衝資料,改進I/O延遲,和減少從硬碟到緩衝的I/O操作次數的內在的算法。

  這取決於體系結構設計師,存儲工程師小組,以及存儲管理員,需要他們瞭解磁碟區管理器和文件系統的知識,以便為RAID容錯式獨立磁碟陣列控制器設計緩衝算法。RAID容錯式獨立磁碟陣列和磁碟區管理器和文件系統相互之間並不是溝通得很好,因為它們之間沒有真正的通信。也許將來會有所改變,但這種情況至少要持續一段時間。

  現在我們已經完成了資料通道的漫遊,下個月我們將開始介紹基準測試的原理。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 05:15 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1