Re: [PATCH 0/3] readmirror feature

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tested-by: Steven Davies <btrfs-list@xxxxxxxxxxx>

Series (inc. btrfs-progs changes) tested working as expected against current btrfs-devel and btrfs-progs/devel.

Am I correct in thinking that if more than one devid is assigned as a readmirror, the lowest available devid will be preferred?

Also I think it would be nice to be able to set this property at mkfs time.

I'd love to see this feature make it upstream.

--
Steven Davies

On 25/04/2019 12:59, Anand Jain wrote:
These patches are tested to be working fine.

Function call chain  __btrfs_map_block()->find_live_mirror() uses
thread pid to determine the %mirror_num when the mirror_num=0.

This patch introduces a framework so that we can add policies to determine
the %mirror_num. And adds the devid as the readmirror policy.

The property is stored as an extented attributes of root inode
(BTRFS_FS_TREE_OBJECTID).
User provided devid list is validated against the fs_devices::dev_list.

  For example:
    Usage:
      btrfs property set <mnt> readmirror devid<n>[,<m>...]
      btrfs property set <mnt> readmirror ""

    mkfs.btrfs -fq -draid1 -mraid1 /dev/sd[b-d] && mount /dev/sdb /btrfs
    btrfs prop set /btrfs readmirror devid1,2
    btrfs prop get /btrfs readmirror
     readmirror=devid1,2
    getfattr -n btrfs.readmirror --absolute-names /btrfs
     btrfs.readmirror="devid1,2"
    btrfs prop set /btrfs readmirror ""
    getfattr -n btrfs.readmirror --absolute-names /btrfs
     /btrfs: btrfs.readmirror: No such attribute
    btrfs prop get /btrfs readmirror

RFC->v1:
   Drops pid as one of the readmirror policy choices and as usual remains
   as default. And when the devid is reset the readmirror policy falls back
   to pid.
   Drops the mount -o readmirror idea, it can be added at a later point of
   time.
   Property now accepts more than 1 devid as readmirror device. As shown
   in the example above.

Anand Jain (3):
   btrfs: add inode pointer to prop_handler::validate()
   btrfs: add readmirror property framework
   btrfs: add readmirror devid property

  fs/btrfs/props.c   | 120 +++++++++++++++++++++++++++++++++++++++++++--
  fs/btrfs/props.h   |   4 +-
  fs/btrfs/volumes.c |  25 +++++++++-
  fs/btrfs/volumes.h |   8 +++
  fs/btrfs/xattr.c   |   2 +-
  5 files changed, 150 insertions(+), 9 deletions(-)

Anand Jain (2):
   btrfs-progs: add helper to create xattr name
   btrfs-progs: add readmirror policy

  props.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------
  1 file changed, 68 insertions(+), 7 deletions(-)




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux