复制过程中文件丢失 btrfs文件系统的简单使用方法(2)
添加、删除、移除底层磁盘设备
1、我们添加/dev/sdd磁盘:
这里先用命令更改下btrfs文件数据的存储格式:命令 btrfs balance start -dconvert=raid0 /testdata 将数据的存储方式改为raid0
添加/dev/sdd
命令为:btrfs device add /sdd /testdata /testdata
然后查看其属性:
现在testdata由三块磁盘组成
但此时三块磁盘存储的数据不均衡,
3、btrfs balance命令格式:
btrfs balance [options] <path>
Balance chunks across the devices
btrfs balance [start、pause、cancel、status]<path>
开始、暂停、继续、取消、平衡操作、查看状态
我们开始平衡数据:
btrfs balance start /testdata
这个操作会暂用资源,主要看数据量,现在数据均衡存储在三块盘上
如果要移除其中一块盘,数据会自动移动到其他两块盘上,然后删除,不需要人工转移数据:
下面演示: btrfs device remove /dev/sdd /testdata
移除后我们查看/testdata中的数据并没有丢失。
测试完后将其加回然后再做数据均衡 btrfs device add /dev/sdd /testdata;btrfs balance start /testdata
4、接下来演示数据和元数据的组织机制转换
命令格式为: btrfs balance start <-d -m -s><convert>=<[raid0,raid1,raid5...single]> <path>
我们将其数据和元数据的组织机制改为:raid5
更改完成后:用命令 btrfs filesystem usage /testdata 查看详细信息:
显示已经改变
三、subvolume
1、创建子卷
查看子卷命令:btrfs subvolume list /testdata
创建格式: btrfs subvolume <subcommand>
create [-i <qgroupid>] [<dest>/]<name>
创建子卷
delete [options] <subvolume> [<subvolume>...]
删除子卷
下面我们创建一个名为volume1的子卷:
btrfs subvolume create /testdata/subvolume1
子卷创建成功,
查看子卷:btrfs subvolume list /testdata
因为子卷在主卷当中所以挂载主卷就可以进入子卷,也可以单独挂载子卷,
比如将子卷挂载到/mnt 目录下
我们先卸载/testdata
然后挂子卷
umount /testdata
mount -o subvol=subvolume /dev/sdb /mnt (挂载子卷的方法)
cd /mnt 进入/mnt
cp /etc/passwd ./ 复制文件到当前目录下
将/dev/sdb 挂载 到/testdata 上去
5、给子卷创建快照
命令 btrfs subvolume snapshot /testdata/subvolume1 /testdata/subvolume1_snapshot (注意快照卷需要和其原卷在同一个文件系统上)
快照卷创建成功,更改快照原卷当中的文件,然后查看快照卷当中是否发生变化。
四、ext文件系统与btrfs文件系统的转换
下面我们将/dev/sdd 从btrfs文件系统中删掉然后格式化成ext4类型的文件系统
上图以改为ext4文件系统,下面进行转换
转换前我们对其进行卸载然后强制检测:
上图转换成功,
blkid 查看格式:
转换会原来的格式 :btrfs-convert -r /dev/sdd
完成。
写的粗糙,,,,,
轰-6K等强力对地对海攻击飞机