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