On 11/3/13, 1:38 PM, Goffredo Baroncelli wrote:
> Hi all,
>
> this patch provides a mount.btrfs helper for the mount command to
> mounting a btrfs filesystem.
> A btrfs filesystem could spans several disks. This helper scans all
> the partition to discover all the disks required to mount a filesystem.
> So it is not necessary any-more to "scan" manually the partitions to mount
> a filesystem via the "btrfs device scan" command.
>
> It adds in the option parameters the devices required to mount a
> filesystem. Supposing that a filesystem is composed by several disks
> (/dev/sd[cdef]), when the user does "mount /dev/sdd /mnt", mount calls
> mount.btrfs which int turn calls the mount(2) syscall like:
> mount("/dev/sdd", "/mnt", "btrfs", 0,
> "device=/dev/sdc,device=/dev/sde,device=/de/vsdf").
>
> This helper uses both the libblkid and libmount to discover the
> devices, to compute the parameters manipulation and to update the mtab
> file.
>
> I got the idea from the btrfs.wiki; its biggest gains is to avoid the
> separation of scanning phases (at boot time or during the block device
> discovery) from the mounting. Also mkfs.btrfs could avoid to re-do a
> rescan of the devices after a formatting.
>
> mount.btrfs doesn't add more requirement than the mount command. It
> would be possible to remove the "btrfs" command from the initramfs, and
> all the related scripts (in my debian both udev and btrfs-tools
> packages contains three udev rules for btrfs).
>
> Comments are welcome.
I like the idea but I'm concerned how well this will perform on large
systems with thousands of disks attached. btrfs dev scan can have a list
of potential devices specified, but this helper defaults to all devices.
A quick test run with 2000 scsi_debug targets shows that btrfs dev scan
can take 8 seconds, and that's with no actual I/O occurring. I don't
think we want to specify the list of devices to scan on the mount
command line, but perhaps an /etc config file that limits the scan to a
list of devices (and defaults to all) similar to how mdadm.conf works
would be a good improvement.
-Jeff
--
Jeff Mahoney
SUSE Labs
Attachment:
signature.asc
Description: OpenPGP digital signature
