第 13 章 Storage
/proc/diskstats 不再被破坏
由于性能的原因,分区会被 read-copy-update (RCU)保护,在这两种情况下不会正确保护分区:
- 当存在 in-flight 请求时修改分区时。
- 当分区重叠时,DOS 扩展分区和逻辑分区可能。
因此,
/proc/diskstats 文件的一些字段可能会被破坏。在这个版本中,通过在请求结构中缓存分区查找解决了这个问题。因此,在上述情况下,/proc/diskstats 不再被破坏。(BZ#1273339)
multipathd 在设备失败后不再报告成功
如果
multipathd 服务无法调整设备的大小,multipathd 不会在内部将大小重置为原始值。因此,在以后的尝试重新定义设备大小时,multipathd 会报告成功,即使 multipathd 没有调整该设备的大小。如果重新定义大小失败,multipathd 现在会在内部将设备的大小恢复到原始值。因此,只有在设备被成功调整大小时,multipathd 才会报告成功。(BZ#1328077)
多路径不再会因为 libdevmapper 版本不匹配而崩溃
在以前的版本中,多路径代码在编译过程中没有链接到正确的库。因此,如果
device-mapper-multipath 与 libdevmapper 库的新版本一起使用,则多路径有时会意外终止。现在,多路径会在编译过程中正确链接到必要的库。因此,因为库版本不匹配,多路径不再崩溃。(BZ#1349376)
有些设备的故障不再阻止多路径创建其他设备
在以前的版本中,multipath 命令有时因为不相关的设备失败而无法设置工作设备,如果无法获得多路径试图创建的任何设备的信息,则多路径会提前退出。在这个版本中,如果无法获得某些设备和故障信息,则多路径不再提前退出。(BZ#1343747)
多路径不再修改由其他程序创建的带有 DM 表类型的设备
在以前的版本中,多路径工具假设它们负责使用多路径表管理所有设备映射器(DM)设备。因此,
multipathd 服务修改了多路径工具未创建的设备表。现在,多路径工具只在以 mpath- 开始的 DM 通用唯一标识符(UUID)的设备上操作,这是多路径在其创建的所有设备上使用的 UUID 前缀。因此,多路径不再修改由其他程序创建的带有 DM 表类型的设备。(BZ#1364879)
现在,更改会在对活跃精简池使用 lvchange --zero n 后生效
在以前的版本中,当对活跃的精简池使用 lvchange --zero n 命令时,更改不会生效,直到下次取消激活池。在这个版本中,更改会立即生效。(BZ#1328245)
mdadm -IRs 的不正确的退出状态不再会在引导时导致错误消息
在以前的版本中,load_container () 函数会错误地尝试从 member 数组中加载容器。因此,mdadm -IRs 命令错误地返回
1 退出状态,这会导致引导时出现错误消息。load_container ()函数已被修改,以防止从成员数组加载容器。因此,在引导时不再会出现错误消息。(BZ#1348925)
使用 IMSM 时,在容器中迁移两个 RAID 不再会导致两个阵列降级
Intel Matrix Storage Manager (IMSM)不允许更改具有两个数组的容器中的 RAID 级阵列。在以前的版本中,IMSM 在删除磁盘后执行阵列计数检查。因此,在带有两个 RAID 的容器中更改 RAID 1 到 RAID 0 时会返回错误信息,但会保留降级的 RAID 1。在这个版本中,阵列计数检查会在磁盘删除前发生,上面描述的问题不再发生。(BZ#1413615)
IMSM 阵列现在可以正确组装并成功启动
在以前的版本中,Intel Matrix Storage Manager (IMSM)
事件 字段没有使用生成号设置。因此,mdadm 工具有时会重新装置具有过时元数据的容器,并会发生失败。在这个版本中,IMSM 事件 字段使用生成号正确设置。因此,IMSM 阵列可以被正确组装并成功启动。(BZ#1413937)