2017年8月12日 星期六

btrfs 一些筆記

純筆記, 有很多土炮之處在所難免.


  • 建立 btrfs:
    • 基本上 btrfs 你把它看做是 ext4fs 的衍生型就好
    • mkfs.btrfs /dev/sdv -L "btrfsroot" -U "0000" UUID 要 ubuntu 16.04 的工具才有
    • 轉換自 ext4fs btrfs-convert /dev/sdv
    • mkfs.btrfs 我目前不知道怎麼增加可用檔案數 (ext4 叫 inode), 只能靠轉換.
  • 壓縮:
    • mount /dev/sdv /mnt compress=zlib 或 mount /dev/sdv /mnt compress=lzo
    • btrfs 似乎是看檔案壓縮.
    • 全部重壓成 lzo : btrfs filesystem defragment -r -v -clzo /
  • kernel 掛載:
    • 用 UUID 就可以. btrfs 本身就有支援 label / uuid 不像 zfs.
    • initrd.img 要改 /etc/initramfs-tools/modules 加上 btrfs
    • 記得 update-initramfs
  • grub 支援:
    • grub-install --modules="part_msdos part_gpt btrfs" 
    • 其它要加什麼比照辦理.
    • 記得 update-grub
我只用它的壓縮, 其它沒研究. 就這樣.

update 2017/08/14

  • 如果是用於 VMware vmdk 檔案存放, 那強烈不建議使用 btrfs. 簡單的說, vmdk 它只是一個磁碟映像檔, 當你這個虛擬硬碟檔案用滿再清空 (wipe 還 zerofree 啥的都可以), btrfs 不會釋放空間, zfs 可以, 而且 btrfs 再重 defragment 後一樣無效, 這點要特別注意.
  • 虛擬機器裡掛 btrfs 不管用 zlib 還 lzo 壓縮, 外面的 vmdk 檔掛在 zfs 用 lz4 壓縮的話, 還可以有效的再壓一道. 工作用的 ubuntu 14.04.5 amd64 原本 4GiB 的使用空間最後被壓到剩 1.7GiB...
其它想到我再寫.

沒有留言: