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
等等)已经过时了。您现在可以为该阵列选择任意名称(比如 home
、data
或者 opt
)。所用您选择的名称和 --name=opt
选项创建阵列。无论您用什么命名该阵列,都会在 /dev/md/
中生成那个名称(除非将全路径作为名称,这种情况下则会生成那个路径;或者除非您指定单一数字,比如 0,那么 mdadm
将使用旧的 /dev/md
x 方案启动该阵列)。Anaconda 安装程序目前不允许选择阵列名称,而是使用单一号码方案模拟以前生成阵列的方法。
新的
mdraid
阵列支持使用写意图位图。这些可帮助系统识别阵列有问题的部分,以便在情况不明的关机事件中只需要重新同步有问题的部分,而不是整张磁盘。这可极大减少重新同步所需时间。新生成的阵列将在适当的时候自动添加写意图位图。例如:swap 使用的阵列以及非常小的阵列(比如 /boot
阵列)则不会从写意图位图中受益。当在设备中使用 mdadm --grow
命令完成升级后,您可以在之前的阵列中添加写意图位图,但写意图位图性能确实会在一定程度上影响性能(对于大小为 65536 的块,其位图为 3-5%;而对于小的块,比如 8192 大小的块,则位图可达 10%)。这意味着如果在某个阵列中添加写意图位图,则最好将块保持在合理的大小。推荐的块大小为 65536。