DVR硬盤錄像機硬盤格式分析
時間:2013-04-03 10:55 作者:春源麗影
嵌入式硬盤錄像機(DVR)與PC機一樣,都存在硬盤文件系統。嵌入式DVR硬盤文件系統可分為兩類,一是與PC機相同的FAT文件系統,第二種是嵌入式DVR生產廠家自行開發的,適合存儲大容量媒體數據流的專業文件系統。
目前市場上,PC-based DVR一般基于Windows系統,文件系統一般采用NTFS或FAT32;而嵌入式 DVR所采用的文件系統則與廠商選擇的嵌入式操作系統有密切的關系。目前嵌入式 DVR中所采用的嵌入式操作系統有RTOS、pSOS、嵌入式 Linux、vxWorks等,而采用的文件系統則有較多種類,如MS-DOS兼容文件系統、UNIX兼容文件系統、Windows兼容文件系統等。
PC系統使用的FAT文件系統,對于長時間錄像產生的大數據包(幾G到數十G的數據)無法管理,只能進行分包,將一段完整的錄像,分為若干個小的文件包,如5、10、30分鐘自動形成一個文件,或者150M、200M作為一個文件。因此容易產生包與包之間丟幀現象,同時硬盤磁頭需要頻繁地讀寫數據與文件索引,磁頭頻繁跳動,對于每天十幾到二十四小時連續讀寫硬盤的DVR系統,極容易造成硬盤故障。同時硬盤錄滿后,需要刪除整段文件,但新錄制的文件與老的文件大小不同,由此會在硬盤上產生大量碎片空間,影響硬盤的使用和系統效率。另外,FAT文件系統用做錄像機錄像資料管理還存在兩個風險,一是文件分配表如果損壞,則錄像資料大多會丟失,二是系統突然斷電或遭到人為破壞,當前的錄像數據不能夠保存。
針對FAT文件系統在媒體數據流存儲領域中的不足之處,專業公司開發了適合媒體數據流存儲方式的硬盤管理文件系統,該系統可以高效率地管理整個硬盤,不受錄像數據包大小影響,錄像機從開始到結束為一個錄像機段,錄像機段長度可從幾秒鐘到幾十小時,數據可從幾K到幾十T。采用這種硬盤管理方式,克服了FAT系統對長時間錄像管理存在的缺陷。由于不存在分包錄像,因此也不存在包與包之間丟幀現象;磁頭不需要頻繁讀寫數據與文件索引,延長硬盤使用壽命;硬盤錄滿后,采用逐幀覆蓋技術,不存在硬盤碎片。可以將硬盤形象地比做一盤錄像機帶,硬盤任何地方的錯誤,不會影響前面或后面的錄像。在突然斷電的情況下,也能保存斷電前瞬間的圖像;同時,原始錄像資料盤數據與PC不兼容,無法在PC上直接修改,保證原始資料的保密性和可靠性。
但由于開發難度和資金投入的限制,多數嵌入式DVR生產企業仍然會采用FAT文件存儲方式對硬盤錄像機進行數據管理。從嵌入式DVR硬盤文件系統的發展方向看,長時間穩定錄像采用這種方式可以大幅度提高硬盤錄像機的可靠性,但需要專業公司具備開發硬盤操作系統的能力與經驗,目前國內只有少數幾個廠家擁有該項技術。
儲存結構
為了提高靈活性,系統將硬盤進行分區。一個硬盤最多劃分為兩個區(又稱為驅動器)。系統預留了一分區扇區,保存在該扇區的分區信息結構包括著硬盤的操作狀態、校驗標記等一些重要信息,同時還包含兩個分區的硬盤參數表(即DPT)。DPT又包含每個分區的儲存特征、總的簇數等信息。硬盤分區(如圖1 硬盤分區示意圖)所示:
分區扇區
|
分區信息結構(含兩個硬盤參數表):扇區號,硬盤信息
|
第一分區
|
.驅動器參數結構
.目錄區
.索引區
.數據區
|
第二分區
|
.驅動器參數結構
.目錄區
.索引區
.數據區
|
驅動器參數結構是文件系統訪問驅動器的依據,它包含驅動器的操作狀態、儲存特征、鏈表指針、校驗標記等信息。硬盤排列時,根據驅動器的操作狀態(特別是錄像起止時間),驅動器形成雙向鏈表,鏈表指針被填充。硬盤格式化時,根據硬盤容量和分區個數生成DPT,再用DPT來初始化每個分區的驅動器參數結構,并保存到對應扇區。硬盤初始化時,根據DPT中的驅動器參數結構扇區偏移直接得到驅動器參數結構。
對于大數據量的流媒體應用,系統采用單位比較大的簇來管理數據,這樣可以提高效率,而數據碎片的影響可以忽略不計。每簇與目錄區和索引區中的目錄結構、索引結構物理上一一對應。寫數據時,目錄結構、索引結構、簇在物理上都是順序申請的,按照申請的時間先后次序,各個通道混合存放。
( 如圖2 硬盤目錄結構圖)所示,組成如下表。其中簇標志用于標識文件的起始和結束,數據標志和數據屬性用于文件的查找和定位,關聯屬性將特定通道的簇鏈接起來,主要用于文件的連續讀取。
簇標志
|
該簇為空閑簇或所在文件的首簇、擴展首簇、非首簇的標志。
|
數據標志
|
該簇錄像數據的通道號、音視頻標志、報警標志。
|
數據屬性
|
該簇錄像數據的起止時間、長度、圖像質量。
|
關聯屬性
|
該簇為文件的第幾簇,以及該簇在所在文件的首簇號、下項簇號、上項簇號。
|
保留
|
|
|
索引結構包含簇內數據的通道號、音視頻標志、報警標志。由于索引結構占用空間小,實際上使用索引結構代替目錄結構中的數據標志來實現文件的查找,可以提高效率。
緩沖管理
由于對索引區及目錄區的讀寫操作比較頻繁,存在空間、時間局部性,如果每次讀寫直接對底層接口進行調用,比較浪費資源,而從系統中開一緩沖數組進行管理,從而減少真正的讀寫次數。而對數據區的讀寫不存在上述特性,所以對數據區的讀寫可以直接調用底層接口函數。
為了提高緩沖的命中率,緩沖開設大小應該大于64個扇區單元,如果系統內存資源不存在問題,則加大開設的緩沖數。在大的緩沖數開設情況下,系統存在緩沖查找的時間開銷,為減小這部分開銷,在定位緩沖時采用hash查找。Hash表的長度定為緩沖數的2倍以上。由于訪問上順序特性,hash函數可以直接從LBA的低位生成。
在突然斷電的情況下,為了能夠恢復數據,對目錄區必須進行隨時保存,所以緩沖在任意情況下都能進行同步,同步方式有單緩沖、單驅動器、所有緩沖。
電源管理
硬盤正常運行的功耗都比較大,一般都帶電源管理功能,它基本上分為三種工作狀態,分別為尋道、空閑、待命。空閑狀態硬盤的電機還是運轉的,待命狀態時硬盤的電機是停轉的,但它接受命令的輸入。
系統設置了硬盤的參數,使其如果在固定時間無任何操作情況下自動進入待命狀態,但由于硬盤從待命狀態恢復到尋道狀態需要比較長的時間(一般在8秒以上),會引起數據的丟失,所以程序中在對待命的硬盤進行操作前會預先進行喚醒。
對于同一端口的主從盤,由于采用的是同一組線,現對它們在電源管理上采用一致的方式,即要么兩盤一起工作,要么一起進行待命狀態。
文件系統初始化與沖突處理
文件系統初始化的流程為:緩沖初始化-版本檢測-驅動器初始化-句柄初始化、文件系統恢復-沖突掃描-硬盤排列。初始化成功后,文件系統才能開始正常工作。
版本檢測時,判斷分區扇區中的校驗標記,如果不是系統要求的文件系統標記,對其格式化。
硬盤排列指文件系統初始化時,需要根據硬盤錄像時間的先后順序將所有驅動器參數結構連成雙向鏈表,并確定當前工作盤。對硬盤的工作順序正確排列,理功能,它基本上分為三種工作狀態,分別為尋道、空閑、待命。空閑狀態硬盤的電機還是運轉的,待命狀態時硬盤的電機是停轉的,但它接受命令的輸入。
系統設置了硬盤的參數,使其如果在固定時間無任何操作情況下自動進入待命狀態,但由于硬盤從待命狀態恢復到尋道狀態需要比較長的時間(一般在8秒以上),會引起數據的丟失,所以程序中在對待命的硬盤進行操作前會預先進行喚醒。
對于同一端口的主從盤,由于采用的是同一組線,現對它們在電源管理上采用一致的方式,即要么兩盤一起工作,要么一起進行待命狀態。
文件系統初始化與沖突處理
文件系統初始化的流程為:緩沖初始化-版本檢測-驅動器初始化-句柄初始化、文件系統恢復-沖突掃描-硬盤排列。初始化成功后,文件系統才能開始正常工作。
版本檢測時,判斷分區扇區中的校驗標記,如果不是系統要求的文件系統標記,對其格式化。
硬盤排列指文件系統初始化時,需要根據硬盤錄像時間的先后順序將所有驅動器參數結構連成雙向鏈表,并確定當前工作盤。對硬盤的工作順序正確排列,是保證數據連續性和空間最大利用率的基礎。
但是,由于機器上的硬盤變動(如人為的硬盤更換),硬盤之間錄像時間會有重疊,或者與機器的當前時間沖突,這些統稱為硬盤沖突。對沖突進行適當的處理,才能使系統正常工作,并且在最佳狀態,反之,會對數據連續性,空間利用率和查找都帶來壞的影響。
以往的系統沒有沖突處理功能,檢測到沖突后跳出了硬盤排列,余下的硬盤沒有排列到鏈表中,浪費了大量空間,而用戶只能清除所有數據,才能恢復正常。后來,系統增加與用戶交互的沖突處理功能,把檢查出來的沖突提交給用戶,再由用戶根據實際情況進行處理(格式化或設為只讀盤),在一定程度上降低了沖突帶來的影響,但有時用戶不能做出正確和果斷的判斷,沖突處理反而會造成使用不方便。新系統可以自動處理沖突,幫助用戶做出決定,在有沖突發生時將系統性能損失降到最低。
定時打包與文件系統恢復
關閉一個正在寫的文件,稱為打包。打包后的錄像文件信息是完整無誤的。對文件定時打包,將連續的數據分割成小的塊,有利于文件的檢索,方便用戶操作。一般設置打包時間為一小時,文件系統會在整點自動打包,即先關閉正在寫的文件,再打開一個新的文件。
非正常關機后啟動,可能會有未打包的文件,此時驅動器參數表也可能沒有更新,會造成以后讀寫操作錯誤,因此需要對其進行恢復。關機時系統時間被保存在CMOS中,恢復時會使用到。
文件操作、查找、定位
保存錄像的文件系統調用順序為:打開寫文件句柄-寫文件-關閉文件句柄。其間,文件系統內部還會對文件自動打包。回放錄像的文件系統調用順序為:查找文件-打開讀文件句柄-文件內定位-讀文件-關閉文件句柄。在文件句柄生存周期中,讀寫定位操作都可以多次調用。
查找的參數是時間,找到的文件起止時間應包含查找時間,或者是查找時間之后最早的文件。查找有普通、列表、報警列表等模式。不同查找只查找一個文件,列表查找按時間順序找到指定數目的文件。定位的參數可以是數據長度、絕對時間,或相對時間。
如圖3、4所示,可以看到,目前硬盤消費超脫了傳統PC的主導地位,慢慢向消費類電子進軍。在這類消費類電子中,DVR占了其中的一大部分。但是在現在的監控系統中DVR應用的硬盤問題特別突出,據不完全統計DVR的故障率60%是由硬盤引起的。硬盤在DVR中有這么高的故障率,引起了社會硬盤廠商的高度關注。另外,硬盤問題突出,也直接增加服務成本,影響了品牌的形象。針對硬盤的需求,監控系統的應用和個人電腦有一定的區別,如圖5所示。
|
監控系統
|
個人電腦
|
開機電流
|
設計電源時需考慮硬盤的開機電流,尤其是多硬盤的系統
|
電腦電源能提供足夠電流
|
讀寫速度
|
不需很快
|
越快越好
|
數據完整性
|
對話音和影像不很重要
|
很重要
|
散熱
|
硬盤多,設計及安裝時必須考慮散熱問題
|
硬盤不多,基本上沒有散熱問題
|
振動
|
設計及安裝時需考慮硬盤的振動問題
|
個人電腦的機箱設計一般能解決硬盤的振動問題
|
|
根據上述表格,針對DVR 應用可以從四個方面進行特性優化設計:
•啟動電流;
•功耗;
•不同方式同時容納系統數據和圖像數據;
•自動休眠。
|