raid介绍
在生产环境中,服务器所需的存储容量比较大,一般都会选择磁盘阵列来走存储。
阵列的优点
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
首先在I/O能力上,多个磁盘并行读写,可以提高读写的速度。 阵列所提供的磁盘冗余,提升存储设配的耐用性。
RAID实现的
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
安装OS前在BIOS里配置
软件RAID:通过OS实现
这里我主要介绍一下软件raid中的raid5
RAID-5拥有用有raid的共同特点,就是读写性能的提高。并且,raid5拥有一定的拍错能力。
raid如何实现拍错
异或
二进制中
相同为0不同为1
磁盘会把每一个数据进行异或,把异或校验后的数据存入校验磁盘中,磁盘损坏后再用校验位把数据恢复到备用磁盘中。
10001001110数据
11100100010数据
01101101100校验值
无论哪个磁盘损坏都能通过另一个磁盘数据和校验值来获取到损害磁盘的数据,并写入备用磁盘中。这也就形成了raid的容错能力。
但是就因为算法比较单一,所以raid的容错只能是坏一块硬盘,要是同时坏两块就无法恢复。
创建raid5
首先要添加几块磁盘
lsblk 列出块设备
为了做阵列,我添加了3块磁盘。并把他们都分两个相同大小的分区。
fdisk /dev/sdd 磁盘分区管理
查看分好分区后的块设备
创建raid5
mdadm -C /dev/md0 -a yes -l 5 -n 4 -x1 /dev/sd{b1,b2,c1,c2,d1}
这里我把前四块做raid,sdd1作为备用盘。可以用
mdadm -D /dev/md0
命令来查看md0
这些操作做完后就把raid配置生成文件,这样吧raid停止后还能重新起来,要不然停止就无法启动。
生成配置文件命令
mdadm -Ds /dev/md0 > /etc/mdadm.conf
这时raid已经创建好了,创建后要使用就要给md0创建一个文件系统。
mkfs.ext4 /dev/md0
创建好文件系统后,把md0挂载到一个文件夹就可以使用了。 这里我创建一个 /home/d1的文件夹,然后挂载上。
mkdir /home/d1
mount /dev/md0 /home/d1
然后就写配置文件让挂载的开机自动挂载。
vim /etc/fstab
UUID文件系统查询
blkid /dev/md0
这样raid5就创建成功并且可以使用了。
下面我们可以试验一下raid 5的容错性。
首先先查看一下raid的成员
然后选择一个磁盘损坏。这里系统给我们提供的有模拟损坏的命令。
mdadm /dev/md0 -f /dev/sdc1
然后我们再次查看成员
我们可以看出,模拟损坏的磁盘sdc1已经停用。而备用磁盘sdd1顶替了sdc1的位置现在启用了。 由这个实验可以看出raid5具有一定的容错性。