btrfs使用方法
創建文件系統
mkfs.btrfs 命令建立一個 btrfs 格式的文件系統。可以用如下命令在設備 sda5 上建立一個 btrfs 文件系統,并將其掛載到 /btrfsdisk 目錄下:
#mkfs.btrfs /dev/sda5 #mkdir /btrfsdisk #mount – t btrfs /dev/sda5 /btrfsdisk
這樣一個 Btrfs 就在設備 sda5 上建立好了。值得一提的是在這種缺省情況下,即使只有一個設備,Btrfs 也會對 metadata 進行冗余保護。如果有多個設備,那么您可以在創建文件系統的時候進行 RAID 設置。詳細信息請參見后續的介紹。
這里介紹其他幾個 mkfs.btrfs 的參數。
Nodesize 和 leafsize 用來設定 btrfs 內部 BTree 節點的大小,缺省為一個 page 大小。但用戶也可以使用更大的節點,以便增加 fanout,減小樹的高度,當然這只適合非常大的文件系統。
Alloc-start 參數用來指定文件系統在磁盤設備上的起始地址。這使得用戶可以方便的預留磁盤前面的一些特殊空間。
Byte-count 參數設定文件系統的大小,用戶可以只使用設備的一部分空間,當空間不足時再增加文件系統大小。
修改文件系統的大小
當文件系統建立好之后,您可以修改文件系統的大小。 /dev/sda5 掛載到了 /btrfsdisk 下,大小為 800M 。假如您希望只使用其中的 500M,則需要減小當前文件系統的大小,這可以通過如下命令實現:
#df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 101086 19000 76867 20% /boot /dev/sda5 811248 32 811216 1% /btrfsdisk #btrfsctl – r -300M /btrfsdisk #df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 101086 19000 76867 20% /boot /dev/sda5 504148 32 504106 1% /btrfsdisk
同樣的,您可以使用 btrfsctl 命令增加文件系統的大小。
創建 Snapshot
下面的例子中,創建快照 snap1 時系統存在 2 個文件。創建快照之后,對 test1 的內容進行修改。再回到 snap1,打開 test1 文件,可以看到 test1 的內容依舊是之前的內容。
#ls /btrfsdisk test1 test2 #vi test1 This is a test #btrfsctl – s snap1 /btrfsdisk #vi test1 Test1 is modified #cd /btrfsdisk/snap1 #cat test1 This is a test
可以從上面的例子看到,快照 snap1 保存的內容不會被后續的寫操作所改變。
創建 subvolume
使用 btrfs 命令,用戶可以方便的建立 subvolume 。假設 /btrfsdisk 已經掛載到了 btrfs 文件系統,則用戶可以在這個文件系統內創建新的 subvolume 。比如建立一個 /sub1 的 subvolume,并將 sub1 掛載到 /mnt/test 下:
#mkdir /mnt/test #btrfsctl – S sub1 /btrfsdisk #mount – t btrfs – o subvol=sub1 /dev/sda5 /mnt/test
Subvolme 可以方便管理員在文件系統上創建不同用途的子文件系統,并對其進行一些特殊的配置,比如有些目錄下的文件關注節約磁盤空間,因此需要打開壓縮,或者配置不同的 RAID 策略等。目前 btrfs 尚處于開發階段,創建的 subvolme 和 snapshot 還無法刪除。此外針對 subvolume 的磁盤 quota 功能也未能實現。但隨著 btrfs 的不斷成熟,這些功能必然將會進一步完善。
創建 RAID
mkfs 的時候,可以指定多個設備,并配置 RAID 。下面的命令演示了如何使用 mkfs.btrfs 配置 RAID1 。 Sda6 和 sda7 可以配置為 RAID1,即 mirror 。用戶可以選擇將數據配置為 RAID1,也可以選擇將元數據配置為 RAID1 。
將數據配置為 RAID1,可以使用 mkfs.btrfs 的 -d 參數。如下所示:
#mkfs.btrfs – d raid1 /dev/sda6 /dev/sda7 #mount – t btrfs /dev/sda6 /btrfsdisk
添加新設備
當設備的空間快被使用完的時候,用戶可以使用 btrfs-vol 命令為文件系統添加新的磁盤設備,從而增加存儲空間。下面的命令向 /btrfsdisk 文件系統增加一個設備 /sda8
#btrfs-vol – a /dev/sda8 /btrfsdisk
SSD 支持
用戶可以使用 mount 參數打開 btrfs 針對 SSD 的優化。命令如下:
#mount – t btrfs – o SSD /dev/sda5 /btrfsdisk
開啟壓縮功能
用戶可以使用 mount 參數打開壓縮功能。命令如下:
#mount – t btrfs – o compress /dev/sda5 /btrfsdisk
同步文件系統
為了提高效率,btrfs 的 IO 操作由一些內核線程異步處理。這使得用戶對文件的操作并不會立即反應到磁盤上。您可以做一個實驗,在 btrfs 上創建一個文件后,稍等 5 到 10 秒將系統電源切斷,再次重啟后,新建的文件并沒有出現。
對于多數應用這并不是問題,但有些時候用戶希望 IO 操作立即執行,此時就需要對文件系統進行同步。下面的 btrfs 命令用來同步文件系統:
#btrfsctl – c /btrfsdisk
Debug 功能
Btrfs 提供了一定的 debug 功能,對于想了解 Btrfs 內部實現原理的讀者,debug 將是您最喜歡的工具。這里簡單介紹一下 debug 功能的命令使用。
下面的命令將設備 sda5 上的 btrfs 文件系統中的元數據打印到屏幕上。
#btrfs-debug-tree /dev/sda5
總結
- 上一篇: 云闪付转账失败怎么办?
- 下一篇: 邮储银行里的理财宝怎么赎回?