标签: mdadm

Linux; 什么是 stripe_cache_size,它有什么作用?

我目前正在使用mdadm实用程序在 Linux 下构建软件 RAID ,我已经阅读了一些文章,这些文章描述了如何增加该 RAID 的 stripe_cache_size 值以及如何计算合适的 stripe_cache_size 值。

我已将我的速度提高到 16384,我当前在 /proc/mdstat 中的新 RAID5 上的同步速率已从 71065K/秒跃升至 143690K/秒(翻倍!),这是个好消息。我还看到 RAM 使用量的匹配和预期增加,但是我找不到任何关于此设置的作用及其工作原理的文档。

它似乎是存在于 RAM 中的 RAID 的某种缓存。这就是我从它的名字和改变它所看到的效果所能知道的。是否有任何关于此设置及其描述的官方“Linux”文档?

linux cache mdadm

11
推荐指数
1
解决办法
1万
查看次数

apt-get install linux-image-extra 得到“W: mdadm: /etc/mdadm/mdadm.conf 没有定义数组。”

安装时:

sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual
Run Code Online (Sandbox Code Playgroud)

我正进入(状态:

W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
Run Code Online (Sandbox Code Playgroud)

我发现其他人也有类似的问题:apt-get update mdadm 可怕的警告

所以我按照说明操作:

/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
Run Code Online (Sandbox Code Playgroud)

然后:

update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

但输出是:

update-initramfs: Generating /boot/initrd.img-4.10.0-30-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
Run Code Online (Sandbox Code Playgroud)

lsb_release -a

LSB Version:    core-9.20160110ubuntu5-amd64:core-9.20160110ubuntu5-noarch:security-9.20160110ubuntu5-amd64:security-9.20160110ubuntu5-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 17.04
Release:    17.04
Codename:   zesty
Run Code Online (Sandbox Code Playgroud)

vim /etc/mdadm/mdadm.conf

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# …
Run Code Online (Sandbox Code Playgroud)

ubuntu mdadm apt ubuntu-17.04

11
推荐指数
1
解决办法
2万
查看次数

mdadm 和 4k 扇区(高级格式)

关于对齐 4k 扇区磁盘的 Serverfault 有很多问题,但有一件事对我来说还不是很清楚。

我成功地对齐了我的 RAID1+LVM。我所做的其中一件事是使用 mdadm superblock 1.0 版(将超级块存储在磁盘的末尾)。

手册页是这样说的:

不同的子版本将超级块存储在设备的不同位置,要么在末尾(对于 1.0),要么在开头(对于 1.1),要么从开头开始 4K(对于 1.2)。“1”相当于“1.0”。“默认”相当于“1.2”。

默认的 1.2 版本是为 4k 扇区驱动器制作的吗?在我看来,事实并非如此,因为从一开始的 4k + 超级块的长度并不是 4k 的众多(如果我没记错的话,超级块大约有 200 字节长)。

欢迎对此有任何见解。

编辑:

下面的回答是 mdadm superblock 1.1 和 1.2 用于 4k 对齐。我刚刚创建了一个全设备突袭:

mdadm --create /dev/md4 -l 1 -n 2 /dev/sdb /dev/sdd
Run Code Online (Sandbox Code Playgroud)

然后我给它添加了一个逻辑卷:

vgcreate universe2 /dev/md4
Run Code Online (Sandbox Code Playgroud)

阵列以 16 MB/s 的速度同步:

md4 : active raid1 sdd[1] sdb[0]
      1465137424 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.8% (13100352/1465137424) finish=1471.6min speed=16443K/sec
Run Code Online (Sandbox Code Playgroud)

所以我怀疑它是否正确对齐。

(磁盘为 1.5 TB …

linux raid storage mdadm advanced-format

10
推荐指数
1
解决办法
7428
查看次数

在重建/恢复/增长使用 mdadm 构建的 RAID5 阵列时关闭机器是否安全

我最近在文件服务器中的 5 驱动器 RAID 上开始恢复,它说需要 691 分钟以上才能完成。我想知道如果机器断电 - 比如说停电,这个过程会发生什么?我是否需要再次重新启动恢复过程?我会丢失整个 RAID 数据吗?

另外,如果我在扩充 RAID 的过程中断电了会发生什么?

linux raid mdadm software-raid raid5

9
推荐指数
1
解决办法
1万
查看次数

Ubuntu 服务器、gpt 分区表、mdadm、grub 启动失败

基本工作系统详细信息:

我使用 Ubuntu 12.04 服务器 CD 安装服务器。

我有 4 个磁盘。在所有磁盘上,我执行了以下操作,类似于此操作方法

  • 创建了一个 2GB 的交换分区
  • 创建了一个 256 GB 的 /boot 分区
  • 创建了一个 64 GB 的 RAID10 分区(用于 root)
  • 创建了一个大的 RAID10 分区,占用了其余空间

我将引导格式化为 ext3。我在根分区和大分区上设置了 RAID10。我将根目录格式化为 ext4。我在大卷上创建了一个逻辑卷,并将其格式化为 ext4。

生成的系统运行良好,启动正常。

问题详情:

然后我决定记录一个失败的过程。作为第一步,我决定重新安装 grub。

# grub-install /dev/sda
warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
error: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use …
Run Code Online (Sandbox Code Playgroud)

raid ubuntu mdadm grub2 gpt

9
推荐指数
1
解决办法
2万
查看次数

mdadm mdadm: 无法打开 /dev/sda1: 设备或资源繁忙

我在从单个磁盘转到 raid 10 时遇到问题

发出的命令是:

mdadm --create /dev/md0 --level=10 --raid-devices=8 /dev/sd[abcdefgh]1
Run Code Online (Sandbox Code Playgroud)

输出是:

mdadm mdadm: cannot open /dev/sda1: Device or resource busy
Run Code Online (Sandbox Code Playgroud)

我已经证实这与 DM 无关:

]# dmsetup status

No devices found
Run Code Online (Sandbox Code Playgroud)

文件系统是 GPT,我使用 sgdisk --backup=table /dev/sda 之后通过 sgdisk --load-backup=table /dev/sdb 到 sdh 复制分区表

该表看起来像:

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  525MB   524MB   ext3                  boot
 2      525MB   86.4GB  85.9GB  ext4
 3      86.4GB  90.7GB  4295MB  linux-swap(v1)
 4      90.7GB  1000GB  909GB
Run Code Online (Sandbox Code Playgroud)

我已经很好地创建了其他阵列,但是我无法为第一个和第二个分区创建突袭。

当前状态:

]# cat /proc/mdstat
Personalities : [raid10]
md3 …
Run Code Online (Sandbox Code Playgroud)

linux centos mdadm

9
推荐指数
2
解决办法
6万
查看次数

如何使用 mdadm/btrfs raid1 或 zfs mirror 获取两个磁盘的读取速度?

鉴于 RAID1 写入数据的两个副本,我的理解是读取应该接近单个磁盘的两倍。

我测试了不同技术(mdadm、zfs、btrfs)的读取性能,但收效甚微。

根据我的经验:

  • btrfs 在读取过程中只使用了一个磁盘
  • zfs/mdadm 使用了两个磁盘,但是达到的读取速度是单个磁盘的速度

我已经使用 dd、iotop 和 iostat 验证了结果。

如何同时读取两个磁盘上的数据才能达到单个磁盘两倍的读取性能?

performance zfs mdadm raid1 btrfs

9
推荐指数
1
解决办法
3013
查看次数

为什么 open-iscsi 通过 10G 以太网写入比 Samba 慢两倍?

在我的本地文件服务器上,我在 7x HDD 驱动器上安装了 raid-6。

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync
Run Code Online (Sandbox Code Playgroud)

本地速度测试给了我 349 MB/s 的写入速度。

从 SSD 远程写入 Samba(> 2Gb/s 读取速度)给了我 259 MB/s 的写入速度。但是远程写入 iSCSI 驱动器(在 Win10 iSCSI 启动器上)仅提供 151 Mb/s 的写入速度。

raid6 配置 - 128K 块大小,stripe_cache_size = 8191。写入意图位图在 SSD 上(三星 860 PRO,4096K 位图块)。

使用选项安装的阵列: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

open-iscsi 设置:目标基于 4Tb 文件。

任何提示为什么 iSCSI 在写入时比 Samba 慢?关于如何提高 iSCSI 写入速度的任何提示?

我认为这与 open-iscsi 在每次操作后刷新写入磁盘的愿望有关,由于过多的奇偶校验重写,这增加了 raid6 上的写入放大。但我不知道如何解决它。在断电的情况下,速度比当前写入数据的安全更重要。

作为旁注,较旧的 ietd iSCSI 目标能够启用回写模式(使用 IOMode=wb),并且持续写入速度要快得多。不幸的是,它目前似乎没有维护。

iscsi mdadm software-raid raid5 open-iscsi

9
推荐指数
1
解决办法
504
查看次数

如何列出每个 RAID 阵列的一部分驱动器?

我有一个使用 md 的 linux 软件 RAID。我想列出我所有的 RAID 阵列和连接到它们的每个硬盘驱动器。有没有简单的方法来做到这一点?

raid mdadm software-raid

8
推荐指数
3
解决办法
2万
查看次数

如何对 RAID 阵列进行故障排除?

我今天早上刚检查了我的 RAID 阵列,我得到的是:

$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdc7[0]
      238340224 blocks [2/1] [U_]

md0 : active raid1 sdc6[0]
      244139648 blocks [2/1] [U_]

md127 : active raid1 sdc3[0]
      390628416 blocks [2/1] [U_]

unused devices: <none>
$
Run Code Online (Sandbox Code Playgroud)

我相信这意味着我的阵列的一个磁盘已经死了,这是真的吗?

我如何进行正确的故障排除?我的/etc/mdadm/mdadm.conf样子:

$ cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers …
Run Code Online (Sandbox Code Playgroud)

raid mdadm

8
推荐指数
1
解决办法
3029
查看次数