软件RAID
独立磁盘冗余阵列“RAID”是根据所使用的RAID级别,使用多个磁盘来提供不同的增加数据可靠性和/或增加输入/输出性能的平衡的方法。RAID可以通过软件(操作系统知道两个驱动器并主动维护两个驱动器)或硬件(一个特殊的控制器使操作系统认为只有一个驱动器并保持驱动器不可见)实现。
当前版本的Linux(和Ubuntu)包含的RAID软件基于“mdadm” 驱动程序,运行良好,甚至比许多所谓的“硬件”RAID控制器更好。本节将指导您如何在两个物理硬盘驱动器上使用两个RAID1分区来安装Ubuntu Server Edition,一个用于 “/“ 和另一个用于swap。
分区
按照安装步骤进行操作,直到进入“ 分区磁盘”步骤,然后:
选择Manual作为分区方法。
选择第一个硬盘,并同意“Create a new empty partition table on this device?”。
对于您希望成为RAID阵列一部分的每个驱动器重复此步骤。
选择第一个驱动器上的“FREE SPACE”,然后选择“Create a new partition”。
接下来,选择分区的大小。这个分区将是交换分区,交换大小的一般规则是RAM的两倍。输入分区大小,然后选择“ Primary”,然后选择“ Beginning”。
可用RAM容量的两倍的swap大小可能并不总是可取的,特别是在具有大量RAM的系统上。计算服务器的交换分区大小主要取决于系统将如何使用。
选择顶部的“Use as:”行。默认情况下,这是 “Ext4日志文件系统”,将其更改为“physical volume for RAID”, 然后“Done setting up partition”。
对于 “ / “ 分区再次选择第一个驱动器上的“Free Space”,然后 “Create a new partition”。
使用驱动器上其余的可用空间,然后选择Continue ,然后选择Primary。
与swap一样,选择顶部的“Use as:”physical volume for RAID”。还要选择 “Bootable flag:”来将该值更改为 “on”。然后选择“完成设置分区”。
对其他磁盘和分区重复第三步到第八步。
RAID配置
通过分区设置,阵列可以进行配置:
回到主“Partition Disks”页面,选择顶部的“Configure Software RAID”。
选择“yes”将更改写入磁盘。
选择“Create MD device”。
在这个例子中,选择“RAID1”,但如果使用不同的设置,请选择适当的类型(RAID0 RAID1 RAID5)。
为了使用RAID5,您至少需要三个驱动器。使用RAID0或RAID1只需要两个驱动器。
为阵列 输入活动设备的数量“2”,或者硬盘的数量。然后选择“Continue”。
接下来,默认输入备用设备的数量“0”,然后选择“Continue”。
选择使用哪个分区。通常它们是sda1,sdb1,sdc1等。数字通常会匹配,不同的字母对应不同的硬盘。
对于swap,选择sda1和sdb1。选择“Continue”进入下一步。
为 “/“ 分区选择 sda2和sdb2 重复第三步到第七步。
完成后,选择“Continue”。
格式化
现在应该有一个硬盘和RAID设备的列表。下一步是格式化和设置RAID设备的安装点。将RAID设备视为本地硬盘驱动器,进行相应的格式化和安装。
- 选择“ RAID1 device #0”分区下的“#1”。
- 选择“Use as:”。然后选择“swap”,然后选择 “Done setting up partitio”。
- 接下来,选择“ RAID1 device #1”分区下的“#1”。
- 选择“Use as:”。然后选择“Ext4日志文件系统”。
- 然后选择“挂载点”并选择“/ - 根文件系统”。根据需要更改任何其他选项,然后选择“Done setting up partition”。
- 最后,选择“Finish partitioning and write changes to disk”。
如果您选择将根分区放置在RAID阵列上,则安装程序会询问您是否要在降级状态下引导。有关更多详细信息,请参阅“ 降级RAID ”。
安装过程将继续正常。
降级的RAID
在计算机生命中的某个时刻,可能会发生磁盘故障事件。发生这种情况时,使用软件RAID,操作系统将把阵列置于所谓的降级状态。
如果阵列已经降级,由于数据损坏的可能性,默认情况下,Ubuntu Server Edition将在三十秒后启动到initramfs。initramfs启动后,会有15秒的提示,让您选择继续并引导系统,或尝试手动恢复。引导到initramfs提示可能会或可能不是所需的行为,特别是如果机器位于远程位置。引导到降级阵列可以通过以下几种方式进行配置:
在参阅dpkg-重新配置工具可以用来配置默认行为,过程中你会被问及有关阵列其他设置。如监控,电子邮件警报等。要重新配置mdadm,请输入以下内容:
1
sudo dpkg-reconfigure mdadm
在参阅dpkg-重新配置mdadm的进程将改变/etc/initramfs-tools/conf.d/mdadm 配置文件。该文件的优点是可以预先配置系统的行为,也可以手动编辑:
1
BOOT_DEGRADED=true
配置文件可以通过使用Kernel参数来覆盖。
使用Kernel参数将允许系统启动到降级阵列:
- 当服务器启动时,按下Shift打开Grub菜单。
- 按e编辑您的内核命令选项。
- 按down箭头突出显示内核行。
- 将“bootdegraded = true”(不带引号)添加到该行的末尾。
- 按Ctrl+x启动系统。
一旦系统启动后,您可以修复阵列,请参阅“ RAID维护”以了解详细信息,或者将重要数据复制到另一台计算机,因为严重的硬件故障。
RAID维护
所述mdadm的实用程序可用于查看一个阵列的状态,将磁盘添加到阵列,删除磁盘等:
要从终端提示符查看数组的状态,请输入:
1
sudo mdadm -D /dev/md0
所述-D告诉mdadm的显示详细有关信息的/ dev / MD0设备。用相应的RAID设备替换/ dev / md0。
要查看数组中磁盘的状态,请执行以下操作:
1
sudo mdadm -E /dev/sda1
输出如果非常类似于mdadm -D命令,请为每个磁盘调整/ dev / sda1。
如果磁盘发生故障,需要从阵列中删除,请输入:
1
sudo mdadm --remove /dev/md0 /dev/sda1
将/ dev / md0和/ dev / sda1更改为相应的RAID设备和磁盘。
同样,要添加一个新的磁盘:
1
sudo mdadm --add /dev/md0 /dev/sda1
有时,即使驱动器没有任何物理错误,磁盘也可能会更改为故障状态。通常值得从阵列中移除驱动器,然后重新添加它。这将导致驱动器与阵列重新同步。如果驱动器不能与阵列同步,则表示硬件故障。
在的/ proc / mdstat文件还包含了系统的RAID设备的有用信息:
1 | cat /proc/mdstat |
以下命令非常适合查看同步驱动器的状态:
1 | watch -n1 cat /proc/mdstat |
按下Ctrl + c停止监视命令。
如果确实需要更换有故障的驱动器,在更换和同步驱动器之后,需要安装grub。要在新驱动器上安装grub,请输入以下内容:
1 | sudo grub-install /dev/md0 |
用相应的阵列设备名称替换/ dev/md0。
扩展卷组
继续以srv作为LVM卷的例子,本节介绍添加第二个硬盘,创建物理卷(PV),将其添加到卷组(VG),扩展逻辑卷srv 并最终扩展文件系统。这个例子假定第二个硬盘已经被添加到系统中。在这个例子中,这个硬盘将被命名为/ dev/sdb,我们将使用整个磁盘作为物理卷(您可以选择创建分区并将它们用作不同的物理卷)
在发出下面的命令之前, 请确保您没有现有的/ dev / sdb。如果您在非空磁盘上执行这些命令,则可能会丢失一些数据。
首先创建物理卷,在终端执行:
1
sudo pvcreate /dev/sdb
现在扩展卷组(VG):
1
sudo vgextend vg01 /dev/sdb
使用vgdisplay来找出剩余的物理盘区 - 剩余的PE /大小(你可以分配的大小)。我们将假定一个511 PE的自由大小(相当于2GB,PE大小为4MB),我们将使用整个可用空间。使用自己的PE和/或剩余空间。
逻辑卷(LV)现在可以通过不同的方法扩展,我们只会看到如何使用PE来扩展LV:
1
sudo lvextend /dev/vg01/srv -l +511
的-l选项允许LV使用PE来扩展。的-L选项允许LV使用梅格,吉格,特拉等字节被扩展。
即使你应该能够扩展一个ext3或者ext4文件系统,而不需要先卸载它,但是最好还是卸载它,然后检查一下文件系统,这样你就不会搞砸了你想要减少的那一天逻辑卷(在这种情况下首先卸载是强制性的)。
以下命令适用于EXT3或EXT4文件系统。如果您正在使用其他文件系统,则可能有其他实用程序可用。
1
2sudo umount /srv
sudo e2fsck -f /dev/vg01/srv即使系统看起来干净,e2fsck 的-f选项也会强制检查。
最后,调整文件系统的大小:
1
sudo resize2fs /dev/vg01/srv
现在安装分区并检查其大小。
1
mount /dev/vg01/srv /srv && df -h /srv