标签: md

LVM、设备映射器、软件突袭和块设备的预读设置 - 什么获胜?

我一直试图在这个问题上找到一个直接的答案,但事实证明这是难以捉摸的。这个问题它的答案是接近,但并没有真正给我,我想细节。让我们从我认为我知道的开始。

如果你有一个标准的块设备并且你运行sudo blockdev --report你会得到这样的东西:

RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0    500107862016   /dev/sda
rw   256   512  4096       2048    399999238144   /dev/sda1
rw   256   512  1024  781252606            1024   /dev/sda2
Run Code Online (Sandbox Code Playgroud)

现在,您决定使用--setra任何分区将默认值 256 更改为 128 ,并且它会发生在整个块设备上,如下所示:

sudo blockdev --setra 128 /dev/sda1
sudo blockdev --report
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   128   512  4096          0    500107862016   /dev/sda
rw   128   512  4096       2048    399999238144   /dev/sda1
rw   128   512  1024  781252606            1024 …
Run Code Online (Sandbox Code Playgroud)

linux lvm software-raid md block-device

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

破译持续的 mpt2sas 系统日志消息

概括

自从我安装了一些新硬件后,我一直在 syslog 中收到这些神秘消息,但我无法弄清楚问题是什么,是否严重,或者如何处理。

它们来自新的 SATA HBA,并且遵循一种模式。5-30 秒后,我将收到几条第一条消息,然后是几条第二条消息。它们出现在同一秒内全部记录的 blob 中,每个 blob 的确切数量在大约 2 到 35 之间变化。条目出现之间可能是几分钟或几小时。

两条消息的示例:

Jul 13 06:06:23 durandal kernel: [366918.435596] mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303)
Jul 13 06:06:28 durandal kernel: [366923.145524] mpt2sas0: log_info(0x31110d01): originator(PL), code(0x11), sub_code(0x0d01)
Run Code Online (Sandbox Code Playgroud)

它始终是 0x31120303 后跟 0x31110d01。

mpt2sas 是我正在使用的 SATA 主机总线适配器的驱动程序,但错误内容过于神秘。它没有告诉我问题是什么,它是什么磁盘或端口,或者它有多严重。

硬件

Supermicro X9SCL配备至强 E3-1220和 8GB 内存。

基于 LSI SAS2008 的 Supermicro AOC-USAS2-L8I SAS/SATA HBA 连接到 Supermicro CSE-M35T-1B磁盘托盘组。它插入了三个 Western Digital WD30EZRX和两个Segate ST3000DM001。所有 3TB 驱动器(实际上完全相同的扇区数)。没有使用端口扩展器。

HBA、磁盘托盘和 4 个驱动器是新的。其中一台 …

linux sata syslog software-raid md

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

当 RAID 处于降级模式时如何重新添加驱动器?

我正在运行一个不受管理的 Ubuntu 服务器,由于最近的性能问题,我向提供商发送了一个请求,但只收到以下响应:

“亲爱的客户,

根据要求,我们检查了您的驱动器。两个驱动器都通过了测试,没有任何错误,这里没有显示任何临界值。我们注意到 RAID 处于降级状态,因此您需要在此处将驱动器重新添加到阵列:

-----------------%<-----------------
Personalities : [raid1]
md3 : active raid1 sda4[0]
      1839089920 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda3[0]
      1073610560 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda2[0]
      523968 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[0]
      16768896 blocks super 1.2 [2/1] [U_]

unused devices: <none>
-----------------%<-----------------"
Run Code Online (Sandbox Code Playgroud)

Google 表示 U_ 表示驱动器出现故障,这似乎与支持人员所说的相矛盾。我如何从这里开始?

就像是

mdadm /dev/mdX -r /dev/sdaY  
mdadm /dev/mdX -a /dev/sdaY  
Run Code Online (Sandbox Code Playgroud)

如果是这样,对于我的情况,X 和 Y 是什么?如果需要有关我的配置的更多信息,请告诉我。

编辑,更多信息如下:

root@Ubuntu-1204-precise-64-minimal /home # …
Run Code Online (Sandbox Code Playgroud)

raid ubuntu mdadm raid1 md

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

将新磁盘添加到 RAID 1 时,为什么会同步未使用的空间?

我最近在 Linux 上使用mdadm. 将新 HDD 添加到 RAID 1 时,数据开始在我的驱动器之间同步,这是预期的。我没想到它开始同步整个驱动器,包括未使用的空间。HDD 为 6\xc2\xa0TB,只有大约 1\xc2\xa0TB 的数据,因此花费的时间比预期要长。为什么MD要同步未使用的空间?

\n

linux mdadm raid1 md

14
推荐指数
1
解决办法
2798
查看次数

如何停止 Linux LVM 卷组?

我目前正在处理由 RAID-5md设备备份的 Linux LVM 卷组上的多磁盘故障。一个磁盘已被完全取出,另一个磁盘显示有限数量的损坏扇区,原因是电源似乎出现了异常。

问题是一旦发生 I/O 错误,md阵列就会关闭,因为它没有足够的设备来运行。在md唯一涉及的地方,我可以mdadm --stop创建阵列,然后重新创建它以使所有设备再次处于活动状态。

不幸的是,该阵列是 LVM 卷组中的 PV,我似乎无法让内核释放它。vgchange -an似乎没有做任何事情,酒吧吐出几个 I/O 错误。

我显然遗漏了一些东西,但是如何以-insert-favorite-deity-的名义让 LVM 在重新启动服务器的情况下释放底层 PV ?

linux lvm md

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

RAID 条带大小对预读设置有何影响?

我正在尝试找出要在 RAID10 阵列上设置的正确预读值,我想知道 RAID 条带大小是否应纳入我的考虑因素。

我过去听说过关于此的相互矛盾的信息。我曾经听说您应该始终将预读值设置为 RAID 条带大小的倍数,并且永远不要低于条带大小,因为这是 RAID 控制器尝试一次读取的最小数据量。

然而,其他人告诉我,将预读设置为低于条带大小很好,并且实际上可以增加您可以跨阵列中的设备执行的并行读取量,从而提高性能并减少阵列上的负载。

那么它是哪个?不是条带大小倍数的预读设置是否有意义?

linux raid software-raid md block-device

6
推荐指数
1
解决办法
2616
查看次数

MD RAID - 禁用 NCQ

为什么建议在 MD RAID (mdadm) 中禁用每个磁盘的 NCQ?echo 1 > /sys/block/sdX/device/queue_深度

我在许多有关 RAID 调整的文章中读到过此提示,但没有人解释原因。

mdadm md

6
推荐指数
1
解决办法
2877
查看次数

MD (RAID1) + LVM 上的 root 引导失败:udev 事件计时

全新安装的 Ubuntu Server 13.10 (x64) 从位于 md+lvm 的根卷启动时遇到问题。我现在已经找到了一个解决方案,但我想更多地了解正在发生的事情以及可能有哪些更好的解决方案。

由于这台机器的目标是试验 Xen(为了更好地了解商业虚拟机托管),所以这台机器是由我手头的零件组装而成的,具体来说:Q6600 + Asus P5QL Pro、1 TB 和 500 GB SATA 磁盘(尽管 500 GB 光盘仍在其他地方使用,但稍后会添加。)

1TB 磁盘有三个分区:sda1 与 500 GB 磁盘上的 sdb1 大小相等,sda2 是交换区,其余在 sda3 中。md0 是由 sda1+sdb1 组成的 RAID1 卷[1],是 LVM 可用的一个 PV。

Ubuntu 安装在这个 VG (vg_mir) 中的两个 LV(dom0_root 和 dom0_homes)中,/boot 位于 dom0_root 中。

在光盘初始化后,特定问题立即显示为以下消息:

kernel: [    3.003506] md: bind<sda1>
kernel: [    3.007705] md/raid1:md0: active with 1 out of 1 mirrors
kernel: [    3.007768] md0: detected capacity change from 0 to …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu lvm udev md

5
推荐指数
1
解决办法
1998
查看次数

在预置安装中重用现有的 RAID

我正在尝试自动执行现有 Ubuntu 安装的重新安装过程。

分区布局:

  • md0(raid1, /dev/sda1#/dev/sdb1 ) - 交换 (2G)
  • md1(raid1, /dev/sda2#/dev/sdb2 ) - / (20G)
  • md2( raid1, /dev/sda3#/dev/sdb3 ) - PV(剩余空间)

我想要完成的是:

  • 重用现有的 RAID(如果存在)

最重要的是保留现有 PV 上的数据。我能够通过在 lvm.conf 中设置一个过滤器来实现这一点,它排除了所有块设备,因此禁用了 lvm 支持。

问题是安装后我必须重新创建/dev/md/2,希望数据完好无损。

配置的预置部分是:

d-i partman/early_command string sed 's/filter\ =\ \[\ "a\/.*\/\"\ \]/filter\ =\ \[\ "r\/.*\/\"\ \]/g' -i /etc/lvm/lvm.conf

d-i partman-auto-raid/recipe string \
    1 2 0 swap  -   /dev/sda1#/dev/sdb1     .\
    1 2 0 ext3  /   /dev/sda2#/dev/sdb2     .

d-i partman-auto/expert_recipe  string  \
    multiraid ::    \
        2000 10 2000 raid   $primary{ } …
Run Code Online (Sandbox Code Playgroud)

ubuntu debian lvm preseed md

5
推荐指数
1
解决办法
551
查看次数

MD RAID 扇区修复

本文指出 RAID 控制器对不可恢复的读取错误很聪明,并尝试使用组件驱动器的冗余来重写此类扇区。如果扇区坏了,磁盘的固件会透明地重新分配扇区。

Linux MD RAID 做类似的事情吗?也许我的 Google-Fu 不好,但我找不到任何关于它的信息。

raid mdadm md

5
推荐指数
1
解决办法
1884
查看次数

标签 统计

md ×10

linux ×6

lvm ×4

mdadm ×4

raid ×3

software-raid ×3

ubuntu ×3

block-device ×2

raid1 ×2

debian ×1

preseed ×1

sata ×1

syslog ×1

udev ×1