Btrfs

rmlint 對 btrfs 的“複製”有什麼作用?

  • March 5, 2018

我正在閱讀rmlint手冊,其中一個重複的處理程序是複製和重新連結:

· 複製:僅限 btrfs。嘗試使用 BTRFS_IOC_FILE_EXTENT_SAME ioctl(3p) 複製這兩個文件。這將物理刪除重複的範圍。至少需要核心 4.2。

· reflink:嘗試將重複文件重新連結到原始文件。另請參見 man 1 cp 中的 –reflink。如果文件系統不支持它會失敗。

這個複製究竟做了什麼,它與反射連結有什麼不同?BTRFS_IOC_FILE_EXTENT_SAME ioctl 做什麼?

差異有些微妙。

Reflink 刪除重複文件並在其位置創建一個新文件,該文件是原始文件的複製。副本的元數據失去了,儘管 rmlint 盡最大努力通過使用touch -mr.

複製使用 BTRFS_IOC_FILE_EXTENT_SAME ioctl(或者,在最新版本中,FIDEDUPERANGE ioctl),它要求核心檢查文件是否相同,如果是,則使它們共享相同的數據范圍。他們保留原始元數據。它可以說比 reflink 更安全,因為它是由核心自動完成的,並且因為它檢查文件是否仍然相同。

引用自:https://unix.stackexchange.com/questions/423973