快照——COFW\ROFW

快照可通過兩種方式實現:COFW、ROFW

COFW執行過程:

1、系統執行快照,此時將所有的寫IO暫掛,然後開始將整個文件系統的元數據鏈複製一份,複製完成後立即解除暫掛。PS:被複製下來的這份元數據鏈與當前活動的元數據鏈完全相同;

2、某時間應用程序更改了當前活動的A數據塊爲A1,數據首次覆蓋寫(COFW),需要先將原來的A數據塊複製出來,然後再寫入A1數據塊。在快照元數據鏈中將原來指向A的指針改爲指向複製出來的A新地址;

3、之後更改的數據同理;

4、如果產生了新分配的數據,由於這個文件系統在快照那一刻沒有記錄,所有系統不會做任何複製動作,追加寫會伴隨着元數據的數量和容量的變化而不僅是指針指向的改變,但對於LUN來說,卷容量和位置是固定的,除非某場景下將某個LUN擴容;

5、當源文件系統內所有的數據塊被覆蓋寫一遍之後,系統內就有兩套完成的文件系統;一套當前活動文件系統,另一套是這個文件系統所對應的歷史某時刻的快照數據。


ROFW執行過程:

ROFW執行過程

1、系統執行快照,此時將所有寫IO暫掛,然後立即開始將整個文件系統的元數據複製一份,複製完成後立即解除暫掛;

2、之後某時刻應用程序更改當前活動C爲C1,屬於首次覆蓋寫(ROFW),直接將C1數據塊重定向寫入到某剩餘空間內,之後將當前活動文件系統元數據鏈中原本指向C的指針改爲指向被重定向寫出去的C1新地址

3、之後更改的數據同理;

4、如果產生了新分配的數據,由於這個文件系統在快照那一刻沒有記錄,所以系統並不會作任何重定向動作

5、當源文件系統內所有的數據塊被覆蓋寫一遍之後,系統內就有兩套完成的文件系統;一套當前活動文件系統,另一套是這個文件系統所對應的歷史某時刻的快照數據。


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