由于之前先入为主地接触了ZFS,对于ZFS的那一套基本管理体系已经有所了解,所以后来再接触btrfs时候觉得btrfs在管理上显得稍弱。
最近准备认真学习下btrfs的管理体系,但是遇到了几个问题,也看过btrfs的FAQ和相关Wiki,仍然未能解决。不知道吧里的各位可否为在下稍作解答。
1、可否用未分区的磁盘设备直接作为btrfs的根存储池,并从该存储池启动?
在ZFS下面,我可以用形如下面的结构来直接使用未分区的整块磁盘作为top level vdev,并将我整个系统放在ZFS上:

而到了btrfs这里,虽然可以顺利安装,却无法从根存储池启动,即使我已经指定了用来启动的subvolid和subvolgen。难道btrfs的根存储池必须使用已分区的磁盘设备?
2、btrfs似乎并不能递归地创建快照?
我们知道,在用mkfs.btrfs格式化某个分区或磁盘之后,就已经建立起了btrfs的一个存储池,而所有的subvolume都是在此存储池之上的分叉。而根据我所看的资料,btrfs似乎只能为单个subvolume创建快照,而无法递归为整个存储池结构创建快照。
3、btrfs成功创建之后,fstab条目是否真的有必要写得那么长?
就拿我今天测试的btrfs+RAID10来说,在我将四块磁盘创建btrfs并组成RAID10之后,为了确保每个subvolume都正确挂载,我的fstab条目不得不这么写:
/dev/sdb / btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde,subvol=root,compress=lzo,space_cache,autodefrag 0 1
按照找到的资料,似乎如果生成initrd的话,则可以让initrd自动去扫描所有的btrfs设备,那么device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde这一串东西就不用写了。但是我仍然无法确保这样的话是否能正确识别并挂载所有的btrfs设备。
鄙人才疏学浅,问题有点多,望各位不吝赐教。
最近准备认真学习下btrfs的管理体系,但是遇到了几个问题,也看过btrfs的FAQ和相关Wiki,仍然未能解决。不知道吧里的各位可否为在下稍作解答。
1、可否用未分区的磁盘设备直接作为btrfs的根存储池,并从该存储池启动?
在ZFS下面,我可以用形如下面的结构来直接使用未分区的整块磁盘作为top level vdev,并将我整个系统放在ZFS上:

而到了btrfs这里,虽然可以顺利安装,却无法从根存储池启动,即使我已经指定了用来启动的subvolid和subvolgen。难道btrfs的根存储池必须使用已分区的磁盘设备?
2、btrfs似乎并不能递归地创建快照?
我们知道,在用mkfs.btrfs格式化某个分区或磁盘之后,就已经建立起了btrfs的一个存储池,而所有的subvolume都是在此存储池之上的分叉。而根据我所看的资料,btrfs似乎只能为单个subvolume创建快照,而无法递归为整个存储池结构创建快照。
3、btrfs成功创建之后,fstab条目是否真的有必要写得那么长?
就拿我今天测试的btrfs+RAID10来说,在我将四块磁盘创建btrfs并组成RAID10之后,为了确保每个subvolume都正确挂载,我的fstab条目不得不这么写:
/dev/sdb / btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde,subvol=root,compress=lzo,space_cache,autodefrag 0 1
按照找到的资料,似乎如果生成initrd的话,则可以让initrd自动去扫描所有的btrfs设备,那么device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde这一串东西就不用写了。但是我仍然无法确保这样的话是否能正确识别并挂载所有的btrfs设备。
鄙人才疏学浅,问题有点多,望各位不吝赐教。