2012-03-01-NILFS

2012-03-01-NILFS

Created Thursday 28 June 2012

nilfs test Posted on March 1, 2012 by Thomas| Comments Off

昨天討論到這個 nilfs 檔案系統

http://www.nilfs.org/

Debian sid, wheezy 的 kernel 已經有 nilfs 支援!

其中幾個重要的關鍵字”checkpoint(cp)” 與 “snapshot(ss)” cp 會自動產生,根據觀察只要有檔案IO, 就會自動產生cp ss 要手動產生 (從cp轉會成ss, 這個ss就可以mount) ss 可以被mount (不需要offline 原本的裝置) mount 的時候會啟動清道夫 GC or nilfs_cleanerd 的daemon 透過設定/etc/nilfs_cleanerd.conf 可以設定檔案保留頻率、時間與百分比等

sudo apt-get install nilfs-tools

有幾個基本指令可用 mkfs.nilfs mount.nilfs

checkpoint (cp) 相關的指令 lscp 列出所有的 cp mkcp 手動產生 cp rmcp 刪除 chcp 將cp與ss互轉

snapshot (ss) mkcp -s 產生ss chcp ss (cpid) 將某個cp轉換為ss mount -t nilfs2 -r “-o cp 5″ /dev/loop0 nilfs-pt3 ## 可以指定特定的snapshot, 不需要先umount /dev/loop0

lscp 結果: lscp CNO DATE TIME MODE FLG NBLKINC ICNT 1 2012-02-29 15:51:39 cp – 11 2 2 2012-02-29 15:57:26 ss – 819 157 //可以被mount 4 2012-02-29 16:00:49 cp – 1891 165 5 2012-02-29 16:04:27 ss – 19 162 //可以被mount 6 2012-02-29 16:04:33 cp – 51 29 7 2012-02-29 16:04:38 cp – 24 10

CN 指的是代號,上面的第一攔 CNO 的數字!

如此一來,當我刪掉某個檔案,我只要 chcp ss CN, mount -r -o cp CN 就可以直接拿回刪掉的檔案!

意外狀況: mount.nilfs 執行之後會呼叫一隻叫做 GC (nilfs_cleanerd) 用來release空間 我剛好一直遇到啟動失敗,所以刪檔、刪ss、刪cp 的結果沒有完全,disk用到100%無法release 目前也沒有fsck可以用,目前還不知道怎麼辦 XD 如果沒有遇到 Please remount the partition with -f option after making /etc/mtab writable. nilfs_cleanerd not started 應該就可以放心!

Comments