centos7檔案系統管理btrfs
一、基礎簡介
Btrfs(又名:B-tree, Butter FS, Better FS),GPL授權, Oracle從2007研發,寫實複製更新機制 CoW,其主要是為了取代ext2,ext3,ext4,其主要功能有
例如我們現在去修改一個檔案A,COW機制是先將目標檔案A複製一份為檔案B,那麼我們修改檔案時是修改的複製檔案B,相當於對源檔案A做了快照,如對檔案B修改操作失誤,可以有效恢複源檔案A。
多物理卷支援:btrfs可由多個底層物理卷組成,內建支援RAID(即支援條帶、mirror等功能),以聯機“添加”、“移除”,“修改”操作
支援b-tree檔案功能即支援子卷功能,如在vg中建立lv一樣
寫時複製更新機制(英譯CoW):複製、更新及替換指標,而非“就地”更新機制
資料及來源資料校正碼機制checksum:我們儲存某個檔案時,checksum會將資料的來源資料和資料的校正碼,分別通過檔案的屬性擴充進行儲存,當我們再次讀取資料時可以方便的檢測資料是否受損,如果檔案受損系統可以完成自動修複。
支援子卷sub_volume:可以在一個卷上建立子卷,然後分別掛載使用
快照:支援快照的快照功能即增量快照
透明壓縮:即資料自動實現壓縮和解壓縮,以節約空間,會消耗一定的cpu的
:
二、檔案系統建立
命令協助btrfs --help
mkfs.btrfs
-L 'LABEL' 指定卷標
-d <type>: raid0,raid1, raid5, raid6, raid10, single指明資料存放區類型
-m <profile>: raid0,raid1, raid5, raid6, raid10, single, dup指明來源資料儲存的機制
-O <feature> 指明在格式化時使用的特性
-O list-all:列出支援的所有feature
man btrfs-filesystem查看更多的子命令
mount -t btrfs /dev/sdbMOUNT_POINT掛載檔案系統
mount -o compress={lzo|zlib} DEVICE MOUNT_POINT透明壓縮機制
btrfs filesystem resize ±VALUE MOUNT_POINT 調整磁碟大小
btrfs devices [subcommand] args 管理磁碟裝置
btrfs-balancesubcomand|args 均衡資料
btrfs subvolume [subcommand][args] 建立子卷
btrfs snapshot 建立快照
快照必須要與原卷在同一卷組中,子卷的快照必須要與子卷在同一個父卷中
btrfs subvolume delete snapshot-name 刪除子快照
三、建立應用樣本
# fdisk -l 查看存在的分區的磁碟
# mkfs.btrfs -L"mybtrfs" /dev/sdb /dev/sdc 將sdb、sdc磁碟建立成為一個btrfs系統
# btrfs filesystem show 查看已經建立的btrfs檔案系統
# blid /dev/sdb 查看UUID是相同的(說明其實屬於同一個卷的)
# mkdir /mybtrfs 建立掛載點
# mount -t btrfs /dev/sda(掛載點是/dev/sda也是可以的)
# umount /dev/sda 卸載
# mount-o compress=lzo /dev/sdb /mybtrs重新使用,此時就是自動壓縮(透明壓縮)
#btrfs filesystem resize -10G /mybtrfs
(btrfs filesystem resize調整磁碟大小)
# btrfs devices add /dev/sdd /mybtrfs 自動磁碟擴充邏輯邊界
# man btrfs-balance start /mytrfs
#btrfs-lalance start -mconvert=raid1 /mytrfs 修改中繼資料的raid層級
#btrfs balance status /mytrfs
# btrfs device delete /dev/sda /mybtrfs 拆除裝置,系統會自動移動資料
# btrfs sublimvolume create /mybtrfs 建立子卷
# btrfs subvolume create /mybtrfs/logs 建立logs子卷
umount /mybtrfs
mount /dev/sdb /mybtrfs 可以卸載父卷,只掛著子卷
btrfs subvolume list /mybtrfs 顯示mybtrs