我們知道,fat表的表項號是連續的,即由0開始編號,0號表項與1號表項由系統保留做特殊用途。使用者資料由2號表項開始使用,也就是2號簇對應的fat表項。表項內記錄的簇號可能是不連續的,但表項號本身則是連續的。利用表項號的這個連續性,我們就可以計算raid塊的大小。
1. 計算方法
利用 fat
表計算塊大小的原理就是,相鄰磁碟的同條帶同位置的
fat項間占用的空間是乙個塊大小。如圖
11.1
所示。
11.1
中,磁碟
0 和磁碟
1 是陣列中兩塊相鄰的磁碟,
fat項 n
位於磁碟
0 的某個塊,當該塊寫滿後,就會轉至磁碟
1 的同條帶進行寫入。
fat項 m
是磁碟1 上與
fat項 n
同條帶同位置的
fat表項,這樣,由
fat項 n
開始至fat
項 m
前的空間即為乙個塊(灰色加亮部分)。因此,我們可以得出以下公式:
塊大小扇區數=(
m – n)*
每fat
表項位元組數
/ 每扇區位元組數
最大的問題是,每個表項內記錄的值是為當前資料分配的下乙個簇的簇號,而並不記錄表項號本身,我們必須想辦法得到當前
fat項的表項號才可以進行計算。那麼,如何得到這個表項號呢?
我們知道,系統為檔案分配空間時,會優先為其分配連續的空間,這時,它們的簇號就是連續的。簇號連續,則記錄這些簇號的相應表項也是連續的,如圖
11.2
所示。簇號
14、 15
、 16
連續,則它們所在的表項的號碼也是連續的。
因此,我們可以找到至少有三個連續的簇號記錄位置,取中間的簇號值(原則上另一磁碟的相同位置也需要符合同樣要求,但並不意味著不是三個連續的記錄位置就一定不能使用,因為可能會有結束標記存在。後面我們的例項中
2.img
中所取的位置就沒有明顯的三個簇號連續)。對於圖
11.2
中的記錄值為
15的簇來講,它的值實際上是當前位置的表項號14加
1而來。同樣,對於圖
11.1
中來講,在磁碟0上
fat表項為
n的位置實際記錄的是下一簇的簇號n+1
;同樣,磁碟1中fat項為m的位置記錄的是下一簇的簇號m+1,m-n與(m+1)-(n-1)結果是相同的。因此,我們可以使用符合要求的位置記錄的簇號直接進行計算。為了便於理解,下面我們將演示乙個例項的計算。
RAID在企業伺服器中的應用(RAID幾種級別)
企業級的 資料庫應用大多部署在 raid 磁碟陣列的伺服器上,這樣能提高磁碟的訪問效能,並能夠實現容錯 容災。raid 冗餘磁碟陣列 簡單理解,就是拿一些廉價的硬碟來做成陣列。其目的無非是為了擴充套件儲存容量,提公升讀寫效能,實現資料冗餘 備份容災 就像很早就有老外拿n台舊pc,做成乙個強大的 伺服...
RAID在企業伺服器中的應用(RAID幾種級別)
企業級的資料庫應用大多部署在raid磁碟陣列的伺服器上,這樣能提高磁碟的訪問效能,並能夠實現容錯 容災。raid 冗餘磁碟陣列 簡單理解,就是拿一些廉價的硬碟來做成陣列。其目的無非是為了擴充套件儲存容量,提公升讀寫效能,實現資料冗餘 備份容災 就像很早就有老外拿n台舊pc,做成乙個強大的 伺服器集群...
c 在vc 中的應用基礎 1
公司最近有個廣告ts流生成器的工具,需要用到mfc來實現。mfc斷斷續續學了半年,似懂非懂。下週3要催著交demo,頓時感到壓力和緊迫。於是重拾c 我一直相信 無論時光怎麼流逝,技術怎麼發展,基礎的東西永遠都不會過時。mfc說白了就是c 各種類的封裝,組合的一種微軟定製的框架。只要靜下來認真的搞,一...