Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.2. RAID

3.2.1. 升级

不支持从 dmraid 组件到 mdraid 组件的升级。如果尝试使用这种类型的升级,则会显示一条警告信息。使用现有 mdraid 组件升级并生成新的 mdraid 组件是可行的。
当更新组件时,新的默认超级块(superblock)可能引起问题。这个新的超级块格式(除了创建 RAID1 /boot 分区的时候以外,应用于所有设备)现在在阵列的开头,任何文件系统或 LVM 数据会从分区开头平移。当阵列不运转时,LVM 和文件系统 mount 命令可能不能检测到设备有有效卷或文件系统数据。这是有目的的,意味着如果您想在 RAID1 阵列装载单个磁盘,您需要在只有那个单个磁盘在里面时启动阵列,然后再装载阵列。您不能直接装载裸盘(bare disk)。之所以做出这个改变是因为,如果没有强制同步,直接装载裸盘可能默默使该阵列崩溃。
在接下来重启时,RAID 系统就会把不包含在阵列中的磁盘认定为不兼容,就会把那个设备与阵列的连接断开。这也是正常的。当您准备把另外一个磁盘再次添加回阵列时,使用 mdadm 命令把该磁盘热添加到该阵列,这时,将会执行该磁盘被改变的部分(如果您有写意图位图(write intent bitmaps))或者整个磁盘(如果您没有位图(bitmap))的再同步,于是这个阵列将会再次被同步。此后,设备将不会与阵列的连接断开,因为该阵列已被认定为正确安装的阵列。
新的超级块支持名为 mdraid 阵列的概念。阵列枚举中用于区分阵列的旧方法的相依性(例如:/dev/md0,然后 /dev/md1 等等)已经过时了。您现在可以为该阵列选择任意名称(比如 homedata 或者 opt)。所用您选择的名称和 --name=opt 选项创建阵列。无论您用什么命名该阵列,都会在 /dev/md/ 中生成那个名称(除非将全路径作为名称,这种情况下则会生成那个路径;或者除非您指定单一数字,比如 0,那么 mdadm 将使用旧的 /dev/mdx 方案启动该阵列)。Anaconda 安装程序目前不允许选择阵列名称,而是使用单一号码方案模拟以前生成阵列的方法。
新的 mdraid 阵列支持使用写意图位图。这些可帮助系统识别阵列有问题的部分,以便在情况不明的关机事件中只需要重新同步有问题的部分,而不是整张磁盘。这可极大减少重新同步所需时间。新生成的阵列将在适当的时候自动添加写意图位图。例如:swap 使用的阵列以及非常小的阵列(比如 /boot 阵列)则不会从写意图位图中受益。当在设备中使用 mdadm --grow 命令完成升级后,您可以在之前的阵列中添加写意图位图,但写意图位图性能确实会在一定程度上影响性能(对于大小为 65536 的块,其位图为 3-5%;而对于小的块,比如 8192 大小的块,则位图可达 10%)。这意味着如果在某个阵列中添加写意图位图,则最好将块保持在合理的大小。推荐的块大小为 65536。