btrfs文件系统

网友投稿 231 2022-11-09

btrfs文件系统

1.查看磁盘情况:

[root@network ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─centos-root 253:0 0 17.5G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 5G 0 part ├─sdb2 8:18 0 5G 0 part ├─sdb3 8:19 0 5G 0 part └─sdb4 8:20 0 5G 0 part sr0 11:0 1 4G 0 rom

2.设置卷标格式化为btrfs文件系统

[root@network ~]# mkfs.btrfs -L mydata /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4 btrfs-progs v3.19.1 See for more information. Turning ON incompat feature 'extref': increased hardlink limit per file to 65536 Turning ON incompat feature 'skinny-metadata': reduced-size metadata extent refs adding device /dev/sdb2 id 2 adding device /dev/sdb3 id 3 adding device /dev/sdb4 id 4 fs created label mydata on /dev/sdb1 nodesize 16384 leafsize 16384 sectorsize 4096 size 20.00GiB

3. 发现有filesystem这个命令

[root@network ~]# man btrfs [root@network ~]# man btrfs-filesystem BTRFS-FILESYSTEM(8) Btrfs Manual BTRFS-FILESYSTEM(8) NAME btrfs-filesystem - control btrfs filesystem SYNOPSIS btrfs filesystem

4. 查看制作的btrfs文件系统

[root@network ~]# btrfs filesystem show Label: 'mydata' uuid: ddbcaabe-8e2d-4254-8e02-5fd310927cd9 Total devices 4 FS bytes used 112.00KiB devid 1 size 5.00GiB used 1.52GiB path /dev/sdb1 devid 2 size 5.00GiB used 1.50GiB path /dev/sdb2 devid 3 size 5.00GiB used 519.94MiB path /dev/sdb3 devid 4 size 5.00GiB used 519.94MiB path /dev/sdb4 btrfs-progs v3.19.1

5. #显示所有挂载

[root@network ~]# btrfs filesystem show --mounted btrfs-progs v3.19.1 [root@network ~]# btrfs filesystem show --all-devices #显示所有的设备 Label: 'mydatas' uuid: 6507eecb-29fb-4b33-a5aa-b3d39b4f36b9 Total devices 2 FS bytes used 112.00KiB devid 1 size 20.00GiB used 2.03GiB path /dev/sdc devid 2 size 20.00GiB used 2.01GiB path /dev/sdd Label: 'mydata' uuid: ddbcaabe-8e2d-4254-8e02-5fd310927cd9 Total devices 4 FS bytes used 200.00KiB devid 1 size 1.00GiB used 531.94MiB path /dev/sdb1 devid 2 size 5.00GiB used 519.94MiB path /dev/sdb2 devid 3 size 5.00GiB used 783.94MiB path /dev/sdb3 devid 4 size 5.00GiB used 783.94MiB path /dev/sdb4 btrfs-progs v3.19.1

6. 输出一个磁盘就两个都显示

[root@network ~]# btrfs filesystem show /dev/sdc Label: 'mydatas' uuid: 6507eecb-29fb-4b33-a5aa-b3d39b4f36b9 Total devices 2 FS bytes used 112.00KiB devid 1 size 20.00GiB used 2.03GiB path /dev/sdc devid 2 size 20.00GiB used 2.01GiB path /dev/sdd btrfs-progs v3.19.1 [root@network ~]# btrfs filesystem show /dev/sdd Label: 'mydatas' uuid: 6507eecb-29fb-4b33-a5aa-b3d39b4f36b9 Total devices 2 FS bytes used 112.00KiB devid 1 size 20.00GiB used 2.03GiB path /dev/sdc devid 2 size 20.00GiB used 2.01GiB path /dev/sdd btrfs-progs v3.19.1

7.或者最直接对磁盘:

[root@network ~]# mkfs.btrfs -L mydatas /dev/sdc /dev/sdd btrfs-progs v3.19.1 See for more information. Turning ON incompat feature 'extref': increased hardlink limit per file to 65536 Turning ON incompat feature 'skinny-metadata': reduced-size metadata extent refs adding device /dev/sdd id 2 fs created label mydatas on /dev/sdc nodesize 16384 leafsize 16384 sectorsize 4096 size 40.00GiB

[root@network ~]# blkid /dev/sdb1 /dev/sdb1: LABEL="mydata" UUID="ddbcaabe-8e2d-4254-8e02-5fd310927cd9" UUID_SUB="01609da4-e282-4aa3-91fb-45dfd4573831" TYPE="btrfs" [root@network ~]# blkid /dev/sdb2 /dev/sdb2: LABEL="mydata" UUID="ddbcaabe-8e2d-4254-8e02-5fd310927cd9" UUID_SUB="88e06cb6-0fbc-4257-b264-31e9f782731c" TYPE="btrfs"

9. 查看卷标

[root@network ~]# btrfs filesystem label /dev/sdb1 mydata [root@network ~]# btrfs filesystem label /dev/sdb2 mydata [root@network ~]# btrfs filesystem label /dev/sdb3 mydata [root@network ~]# btrfs filesystem label /dev/sdb4 mydata

10. 挂载使用

[root@network ~]# mount -t btrfs /dev/sdb1 /mydata

11.实现自动的压缩

[root@network ~]# mount -o compress=lzo /dev/sdb1 /mydata [root@network ~]# cp /etc/rc.d/init.d/ functions netconsole network README [root@network ~]# cp /etc/rc.d/init.d/functions /mydata/ [root@network ~]# cd /mydata/ [root@network mydata]# ls functions

[root@network mydata]# man btrfs-device

13.resize子命令减容

Resize '/mydata/' of '-3G' [root@network mydata]# btrfs filesystem resize -3G /mydata/

[root@network ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 18G 5.6G 12G 32% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 483M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 497M 108M 390M 22% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb 80G 18M 78G 1% /mydata [root@network ~]# btrfs filesystem df /mydata/ #btrfs 自带的命令 df命令查看 Data, RAID0: total=4.00GiB, used=1.25MiB System, RAID1: total=8.00MiB, used=16.00KiB System, single: total=4.00MiB, used=0.00B Metadata, RAID1: total=1.00GiB, used=112.00KiB Metadata, single: total=8.00MiB, used=0.00B GlobalReserve, single: total=16.00MiB, used=0.00B [root@network ~]#

15 扩展到最大空间 max

[root@network ~]# btrfs filesystem resize max /mydata/ Resize '/mydata/' of 'max'

16 从磁盘挪出那一部分,如果是添加就add

[root@network ~]# btrfs device delete /dev/sdc /mydata/ [root@network ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 18G 5.6G 12G 32% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 483M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 497M 108M 390M 22% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb 60G 18M 57G 1% /mydata

17 BTRFS-BALANCE(8) Btrfs Manual BTRFS-BALANCE(8) NAME btrfs-balance - balance btrfs filesystem SYNOPSIS btrfs balance 18 [root@network ~]# btrfs balance status /mydata No balance found on '/mydata' [root@network ~]# btrfs balance start /mydata #开启balance Done, had to relocate 5 out of 5 chunks

19 [root@network ~]# man btrfs-balance 他有子命令 pause Pause running balance. resume Resume interrupted balance. start [options] -d[] act on data chunks. See FILTERS section for details about . -m[] act on metadata chunks. See FILTERS section for details about . -s[] act on system chunks (only under -f). See FILTERS section for details about . convert Convert each selected block group to the given profile name identified by parameters.

20 修改为raid5级别

Done, had to relocate 1 out of 3 chunks [root@network ~]# btrfs balance start -dconvert=raid5 /mydata/ 或者 [root@network ~]# btrfs balance start -mconvert=raid5 /mydata/ Done, had to relocate 2 out of 3 chunks

21 [root@network ~]# man btrfs-subvolume BTRFS-SUBVOLUME(8) Btrfs Manual BTRFS-SUBVOLUME(8) NAME btrfs-subvolume - control btrfs subvolume(s) SYNOPSIS btrfs subvolume []

22 列出子卷[root@network ~]# btrfs subvolume list /mydata/

23 SUBCOMMAND create [-i ] [] Create a subvolume in . #创建子卷 [root@network ~]# btrfs subvolume create /mydata/logs #创建子卷 Create subvolume '/mydata/logs' [root@network ~]# btrfs subvolume list /mydata/ #列出子卷 ID 264 gen 65 top level 5 path logs

24 挂载子卷,挂载父卷以后子卷就自动挂载,现在单独挂载子卷

[root@network ~]# umount /mydata #先卸载父卷 [root@network ~]# mount -o subvol=logs /dev/sde /mnt #挂载子卷,也可以不用logs用卷ID来挂载 [root@network ~]# cp /var/log/messages /mnt [root@network ~]# ll /mnt total 848 -rw------- 1 root root 866759 Aug 4 13:41 messages [root@network ~]# btrfs subvolume show /mnt #查看子卷的详细信息 /mnt Name: logs uuid: a87a7495-22cb-4644-b1a9-5ecd353af544 Parent uuid: - Creation time: 2020-08-04 13:36:04 Object ID: 264 Generation (Gen): 67 Gen at creation: 65 Parent: 5 Top Level: 5 Flags:

-

[root@network ~]# umount /mnt [root@network ~]# mount /dev/sdd /mydata/ #卸载子卷重新挂载父卷,发现子卷里面的东西依然存在 [root@network ~]# ls /mydata/logs/ messages

25删除子卷

[root@network ~]# btrfs subvolume delete /mydata/logs/ Delete subvolume (no-commit): '/mydata/logs'

26.对卷创建快照

[root@network ~]# btrfs subvolume create /mydata/logs.logs 1.先创建子卷 reate subvolume '/mydata/logs.logs' [root@network ~]# cp /etc/grub2.cfg /mydata/logs.logs/ 2.复制内容到子卷里面

创造快照卷与子卷必须同一父卷下

[root@network ~]# btrfs subvolume snapshot /mydata/logs.logs/ /mydata/logs.logs_sanpshot 3. Create a snapshot of '/mydata/logs.logs/' in '/mydata/logs.logs_sanpshot' [root@network ~]# btrfs subvolume list /mydata/ ID 264 gen 73 top level 5 path logs.logs ID 265 gen 73 top level 5 path logs.logs_sanpshot #展开发现父卷下多了快照卷 [root@network ~]# cd /mydata/logs.logs_sanpshot/ #发现快照卷里面也有和子卷一模一样的东西 [root@network logs.logs_sanpshot]# ls

grub2.cfg #修改子卷中的grub2.cfg,快照卷grub2.cfg不发生变化

27删除快照

[root@network logs.logs_sanpshot]# btrfs subvolume delete /mydata/logs.logs_sanpshot/

单独对子卷的某一文件快照

[root@network mydata]# ls logs.logs logs.logs_sanpshot [root@network mydata]# cd logs.logs [root@network logs.logs]# ls grub2.cfg [root@network logs.logs]# cp --reflink grub2.cfg grub2.cfg_snap #此时修改grub2.cfg 不会影响到grub2.cfg_snap

如何将ext系列文件系统转化为btrfs毫无损坏

[```root@network logs.logs]# btrfs balance start -dconvert=single /mydata/Done, had to relocate 1 out of 3 chunks[root@network logs.logs]# btrfs balance start -mconvert=raid1 /mydata/Done, had to relocate 2 out of 3 chunks[root@network logs.logs]# btrfs device delete /dev/sde /mydata/ 1.挪走一块盘即/dev/sde[root@network logs.logs]# fdisk /dev/sde 2.对这块盘分区[root@network logs.logs]# mke2fs -t ext4 /dev/sde 3.格式化为ext4类型文件系统[root@network logs.logs]# mount /dev/sde /mnt #挂载写入数据[root@network logs.logs]# cp /etc/fstab /mnt [root@network logs.logs]# umount /mnt #文件系统相互转化危险,所以转化之前要先卸载

[root@network logs.logs]# fsck -f /dev/sde 4.检查此文件系统 [root@network logs.logs]# btrfs-convert /dev/sde 5.装换为btrfs [root@network logs.logs]# btrfs filesystem show Label: 'mydata' uuid: b689a89b-3a4a-4258-8412-e3d2180056a9 Total devices 3 FS bytes used 680.00KiB devid 1 size 20.00GiB used 1.00GiB path /dev/sdb devid 3 size 20.00GiB used 1.03GiB path /dev/sdd devid 5 size 20.00GiB used 1.03GiB path /dev/sdc Label: none uuid: 55a1c30b-62b3-4728-ba7d-138cff575bcd #此时已经被转换了 Total devices 1 FS bytes used 493.57MiB devid 1 size 20.00GiB used 20.00GiB path /dev/sde btrfs-progs v3.19.1 [root@network logs.logs]# mount /dev/sde /mnt #重新挂载里面数据有丢失 [root@network logs.logs]# ll /mnt total 20 drwxr-xr-x 1 root root 10 Aug 4 14:38 ext2_saved -rw-r--r-- 1 root root 559 Aug 4 14:37 fstab drwx------ 1 root root 0 Aug 4 14:35 lost+found 30.相互转化 [root@network logs.logs]# umount /mnt 卸载 [root@network logs.logs]# btrfs-convert -r /dev/sde -r:装换为ext4 rollback complete. [root@network logs.logs]# blk blkdeactivate blkdiscard blkid blkmapd [root@network logs.logs]# blkid /dev/sde /dev/sde: UUID="8007b2ad-cde4-48c3-8d2a-ce236d0f7eb6" TYPE="ext4" [root@network logs.logs]# btrfs-convert /dev/sde #无-r重新转化为btrfs系列 creating btrfs metadata. copy inodes [o] [ 0/ 12] creating ext2fs image file. cleaning up system chunk. conversion complete. [root@network logs.logs]# blkid /dev/sde /dev/sde: UUID="9a37e348-40cf-44a2-a4e3-52868c913be1" UUID_SUB="f3088659-df3a-4a0c-a6a9-b8d7e6f0aae4" TYPE="btrfs" [root@network logs.logs]#

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Linux内核模块的编写方法
下一篇:Mybatis中resultMap标签和sql标签的设置方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~