非易失性存儲設備寫數據掉電恢復策略

本文允許轉載。
轉載請註明出處:http://blog.csdn.net/z2007b

作者:無爲和尚

 

非易失性存儲設備寫數據時掉電恢復是一個比較頭痛的問題,如果寫入數據寫入到一半的時候掉電,數據的完整性就沒法得到保證,本文提出的方法是在不增加新硬件的情況下,完成掉電恢復的一個策略,但是本文介紹的方法沒法保證數據邏輯上的完整性。比如你要寫入的數據需要在A處寫1,在B處寫2,才能保證功能的正確性,如果這兩步操作是分開的,並且你在寫A的時候掉電了,那麼可以恢復A,但是沒法恢復B。就保證不是AB這個大集合的完整性。只能保證寫A的完整性。

 

原理:

我們先要準備一塊非易失性的存儲區域。這個可以硬盤,也可以是一塊專門的高速存儲芯片。

這個備份所需的空間用於存儲臨時的文件。

假設我們要寫的文件的全路徑是/FILPATH。我們在寫此文件時,先將所需寫入內容的詳細信息和入備份文件/BACK/FILEPATH,然後將數據本身寫入/BACK/FILEPATH,在寫入數據完成之後再寫入結束信息。然後纔將數據寫入文件FILEPATH

上電啓動的時候遍歷備份文件區內的文件,並依照相關信息,清除掉之前寫FILEPATH寫到一半時掉電的數據,再將備份區內的完整信息再寫入,再清除掉備份文件本身。

下面給出流程圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章