farseerfc / farseerfc.github.io

My new blog style with bootstrap-material-design
17 stars 6 forks source link

btrfs-vs-zfs-difference-in-implementing-snapshots #93

Open farseerfc opened 4 years ago

farseerfc commented 4 years ago

This issue is reserved for https://farseerfc.me/btrfs-vs-zfs-difference-in-implementing-snapshots.html

rhjdvsgsgks commented 4 years ago

2.1 数据集下这些参数可以被子级数据集基础是不是把继承打成了基础,还是说我理解错了

farseerfc commented 4 years ago

2.1 数据集下这些参数可以被子级数据集基础是不是把继承打成了基础,还是说我理解错了

感謝發現錯誤!是繼承,我打錯了,已修。

duament commented 4 years ago

充当别的文件系统中 block bitmap 的指责

应该是职责?

farseerfc commented 4 years ago

充当别的文件系统中 block bitmap 的指责

应该是职责?

多謝,改掉啦

karuboniru commented 4 years ago

页面中链接

在 F2FS 設計中是通過近乎「作弊」的 NAT 轉換表

NAT 轉換表 : https://farseerfc.me/WanderingTreeProblem 返回 404

farseerfc commented 4 years ago

页面中链接

在 F2FS 設計中是通過近乎「作弊」的 NAT 轉換表

NAT 轉換表 : https://farseerfc.me/WanderingTreeProblem 返回 404

感謝!實際鏈接是 https://www.kernel.org/doc/html/latest/filesystems/f2fs.html#id1 , 馬上修

thx0701 commented 3 years ago

你整個分析File system文章真棒.我能引用跟轉載嗎? 預定會放在 https://blog.osslab.com.tw/

WaLaibin commented 3 years ago

你好, 在 btrfs wiki SysadminGuide 中关于 Flat 布局中这样描述:"Flat: subvolumes are children of the top level subvolume (ID 5), typically directly below in the hierarchy or below some directories belonging to the top level subvolume.",而在您描述的flat布局中画的示意图中下面的root、home以及www子卷均和5号the fs tree并列,请问是否存在问题?另请问是否有兴趣补充下wiki中那个nested的布局表示意图,因为全网络上您的这篇是理解btrfs中最好的文章。

farseerfc commented 3 years ago

你整個分析File system文章真棒.我能引用跟轉載嗎? 預定會放在 https://blog.osslab.com.tw/

可以隨意轉載引用,我的博客內容除了特別說明的,都是 CC BY-NC-SA ,符合協議註明來源就可以。

farseerfc commented 3 years ago

你好, 在 btrfs wiki SysadminGuide 中关于 Flat 布局中这样描述:"Flat: subvolumes are children of the top level subvolume (ID 5), typically directly below in the hierarchy or below some directories belonging to the top level subvolume.",而在您描述的flat布局中画的示意图中下面的root、home以及www子卷均和5号the fs tree并列,请问是否存在问题?

SysadminGuide 中說的子卷間的父子關係是在說文件夾樹中的關係,類似文件夾和子文件夾的關係。我後面的配圖中畫出的 FS_TREE 是平級和5號子卷並列,是在表達它們在磁盤上表示方式,它們都是從 root_tree 引出的 fs_tree ,這裏在存儲上的確是並列的。可以對比傳統文件系統比如 ext4 / xfs 的 inode table ,父子文件夾在 inode table 中都是並列的 inode 方式的記錄。同樣 btrfs 中每個子卷的 FS_TREE 在 ROOT_TREE 中都是並列的記錄方式。

另请问是否有兴趣补充下wiki中那个nested的布局表示意图,因为全网络上您的这篇是理解btrfs中最好的文章。

btrfs wiki 中那個 nested 的例子有點大,畫成圖會比較難看清 XD ,我下面對 flat 的 5 號子卷做 snapshot 的時候畫了一個例子,那個 snapshot 的結果就會產生 nested 方式的子卷,可以考慮存儲方式類似。

WaLaibin commented 3 years ago

感谢解答!另外还有个疑问就是为什么在您的这个Flat布局数据结构示意图中是 5 号 the FS TREEE 指向文件夹树的根目录,而不是/root这个subvolume呢?因为根据Btrfs wiki中关于这个flat 子卷布局的描述如下: “toplevel (volume root directory, not to be mounted by default) +-- root (subvolume root directory, to be mounted at /)” 根据上述的理解也就是挂载在 “/“ 下的subvolume 应该是root子卷才是,那么关于这一点是否与您的描述箭头相冲突? 因为我日常使用openSUSE,用Btrfs subvolume get-default / 得到的子卷一般是.snapshot/1/snapshot这样的子卷,但在您的数据结构中均为5号子卷指向/,能否详细解惑下,谢谢!

farseerfc commented 3 years ago

感谢解答!另外还有个疑问就是为什么在您的这个Flat布局数据结构示意图中是 5 号 the FS TREEE 指向文件夹树的根目录,而不是/root这个subvolume呢?因为根据Btrfs wiki中关于这个flat 子卷布局的描述如下: “toplevel (volume root directory, not to be mounted by default) +-- root (subvolume root directory, to be mounted at /)” 根据上述的理解也就是挂载在 “/“ 下的subvolume 应该是root子卷才是,那么关于这一点是否与您的描述箭头相冲突?

注意「根目錄」的概念是相對的,每個子卷,包括5號的頂級子卷,都有一個「根目錄」。 5 號子卷的根目錄是整個 pool 的名字空間的根,和系統的根目錄是兩個概念,系統的根目錄是掛載在「/」的那個子卷的根目錄。

不加掛載參數 -o subvol= 的時候,默認掛載的子卷根據 root_tree 中 6 號對象 root_dir 指向的東西決定,我的圖裏 6 號 root_dir 指向 256 號對象,256 號是叫做 "root" 的那個子卷的 fs_tree 。

因为我日常使用openSUSE,用Btrfs subvolume get-default / 得到的子卷一般是.snapshot/1/snapshot这样的子卷,但在您的数据结构中均为5号子卷指向/,能否详细解惑下,谢谢!

我畫的圖中的數據結構沒有關心系統目錄結構,只畫了以5號子卷開始的子卷佈局。系統目錄結構是掛載的時候才確定的,和磁盤記錄的子卷佈局是不同的概念。

httaotao commented 3 years ago

你好,这里看到多次提到disk format这篇论文,我最近也有看,但是看到后面的部分,不太理解,能否有空分享分享,文章中很多内容感觉也是和那个数据结构有关的,有很多点没接触过,我刚接触存储和zfs,多谢了。

daiaji commented 1 year ago

ZFS的去重性能确实烂完。 BTRFS带内去重现在还在树外,不好评估。 等bcache和带内去重什么时候整好。 我再把NAS转BTRFS吧。 Linux内核一更新ZFS就编译不过。 得等就很烦。 如果你问我对哪个文件系统的未来更看好。 我的答案是bcachefs. 虽然性能貌似还完全没优化。 但起码已经实现的的饼有bcache了。 raid5/6似乎由于设计原因难以实现。 去重没提。