gpt4 book ai didi

BTRFS raid-1 : which device gets the reads?

转载 作者:行者123 更新时间:2023-12-04 11:24:14 25 4
gpt4 key购买 nike

我有一个具有以下配置的 raid-1:

$ btrfs fi show
Total devices 2 FS bytes used 203.31GiB
devid 1 size 224.00GiB used 206.03GiB path /dev/sda
devid 2 size 224.00GiB used 206.03GiB path /dev/mmcblk0p4
/dev/mmcblk0p4速度快且 /dev/sda是慢的

什么决定了哪个设备将获得 IO 读取,有没有办法控制它?

最佳答案

从 Linux 内核的 5.0 版本开始,有一个代码来决定将使用镜像阵列的哪一部分。它使用进程的 pid 来选择可用的 strip 之一:

https://elixir.bootlin.com/linux/v5.0/source/fs/btrfs/volumes.c

static int find_live_mirror(struct btrfs_fs_info *fs_info, ...
{ ...
if (map->type & BTRFS_BLOCK_GROUP_RAID10)
num_stripes = map->sub_stripes;
else
num_stripes = map->num_stripes;

preferred_mirror = first + current->pid % num_stripes;

当数据替换处于事件状态时,还有用于更改首选的附加逻辑。但是当前的代码在“旋转”选择逻辑上没有“SSD”。

Timofey Titovets在2017年和2018年提出了一个补丁来实现搜索ssd作为首选使用,但仍然没有被接受:

Btrfs: enchanse raid1/10 balance heuristic for non rotating devices Timofey Titovets. Wed, 27 Dec 2017

Currently btrfs raid1/10 balancer blance requests to mirrors, based on pid % num of mirrors. ...

If one of mirrors are non rotational, then all read requests will be moved to non rotational device. ...

P.S. Inspired by md-raid1 read balancing



https://www.spinics.net/lists/linux-btrfs/msg80033.html
[PATCH V5] Btrfs:enchanse raid1/10 balance heuristic,2018 年 7 月 7 日

https://patchwork.kernel.org/patch/10681671/
[V8] Btrfs:增强 raid1/10 平衡启发式,2018 年 11 月 14 日

关于BTRFS raid-1 : which device gets the reads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55408256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com