企业高级硬盘管理方案——RAID和LVM详解(图文)
今天我来讲解一下 企业经常用到的RAID+LVM管理模式的建立:
用到的软件:VMware Workstation
系统环境:linux 5.4
首现来了解一下RAID与LVM
独立磁盘冗余阵列:RAID 。
RAID用于在多个硬盘上分散存储数据,并且能够“恰当”的重复储存数据,从而保证某块硬盘发生故障后不至于影响到整个系统的运转。使用RAID还能够在一定程度上提高读写磁盘的性能。RAID将几块独立的硬盘组合在一起,形成一个逻辑上的RAID硬盘,这块“硬盘”在外界(LVM、用户等)看来和真实的硬盘没有任何区别。
RAID按等级分为0,1,2,3,4,5,10,01
我们今天用到的为RAID10,RAID 10/01其实可细分为RAID 1+0或RAID 0+1。
下面为大家讲解一下常见的等级:RAID 0,RAID 1,RAID 1+0
常见的RAID等级:
RAID 0
将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。 所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。
理论上越多的磁盘性能就等于[单一磁盘性能]×[磁盘数],但实际上受限于总线I/O瓶颈及其它因素的影响,RAID 性能会随边际递减,也就是说,假设一个磁盘的性能是50MB/秒,两个磁盘的RAID 0性能约96MB/秒,三个磁盘的RAID 0也许是130MB/秒而不是150MB/秒。所以,两个磁盘的RAID 0最能明显感受到性能的提升。
v RAID 1
两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,另外写入速度有微小的降低。除非拥有相同数据的主磁盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别。
v RAID 10/01
其实可细分为RAID 1+0或RAID 0+1。
RAID 1+0是先镜射再分区数据。是将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。RAID 1+0有着不错的读取速度,而且拥有比RAID 0更高的数据保护性。
RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。RAID 0+1比起RAID 1+0有着更快的读写速度,不过也多了一些会让整个硬盘组停止运转的机率;因为只要同一组的硬盘全部损毁,RAID 0+1就会停止运作,而RAID 1+0则可以在牺牲RAID 0的优势下正常运作。
RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保护两种特性,不过它的缺点是需要的硬盘数较多,因为至少必须拥有四个以上的偶数硬盘才能使用。
逻辑卷管理器:LVM
逻辑卷管理器LVM可以将几块独立的硬盘组成一个“卷组:vg”,一个“卷组”又可以被分成几个“逻辑卷:lv”,这些逻辑卷在外界看起来就是一个个独立的硬盘分区。这种做法的好处在于,如果管理员某天意识到当初给某个分区划分的空间太小了,那么可以再往卷组里增加一块硬盘,接着把这些富裕的空间交给这个逻辑卷,这样就把“分区”扩大了。
在很多情况下,LVM与RAID一起在使用。管理员可以按照下面的顺序建立一个RAID与LVM相结合的管理模式。
这将大大的提高性能、冗余、可操作性。
1.)把多块硬盘组合起来,成为一个RAID硬盘
2)建立一个LVM卷组
3)将这个RAID硬盘加入LVM卷组
4)在LVM卷组上划分逻辑卷
下面我们通过虚拟机来给大家演示操作步骤(图文)
我没有那么多硬盘,用分区代替硬盘为大家演示。如下图,我的硬盘扩展分区sda4下划分了8个逻辑分区用来代替硬盘,分别是sda5、sda6、sda7、···、sda12 并且修改了硬盘id标识为8e,记住此时不要对分区创建文件系统,也就是格式化。
命令:]#fdisk /dev/sda 通过fdisk命令划分磁盘
好了,这下“相当于我们有了8块硬盘,我给每一块划分了1GB.” `````数字而已,不要喷我小气啊··o(∩_∩)o 哈哈
接下来我们就来进行今天的主讲内容:RAID+LVM的高级硬盘管理模式
给大家看一张图片
这就是我们的拓扑结构。
硬盘已经有了,我们开始创建RAID,首现将硬盘,每两个一组做成raid 1级别的raid盘。通过命令
]#mdadm –C /dev/md1 –a yes –l 1 –n 2 /dev/sda{5,6}
]#mdadm –C /dev/md2 –a yes –l 1 –n 2 /dev/sda{7,8}
]#mdadm –C /dev/md3 –a yes –l 1 –n 2 /dev/sda{9,10}
]#mdadm –C /dev/md4 –a yes –l 1 –n 2 /dev/sda{10,11}
再将md1,md2,md3,md4这些raid盘用RAID 0级别做成一个单一的盘,取名md0 做好以后不要格式化,也不要挂载。应为后面我们还要做lvm。
命令:]#mdam –C /dev/md0 –a yes –l 0 –n 4 /dev/md{1,2,3,4}
关于命令的解释如下图
到了这里我们已经创建好了我们所有的raid盘,利用]#cat /proc/mestat可是查看到
大家可以看到md1,2,3,4使用的都是1级别,容量只有两个盘的一般。应为其中有一个盘在做冗余。而md0使用的是0级别,容量也是md1,2,3,4之和。
下面我们就要开始使用LVM创建逻辑卷了。
首现创建PV—物理卷,使用]#pvcreate /dev/md0 ,就可以创建。命令pvs可以进行查看。RAID盘可以做物理卷。
如上图,我们创建了一个物理卷/dev/md0 有了PV,我们就可以把它添加到卷组。下面我们来创建一个名为myvg的卷组。
命令:]#vgcreate myvg /dev/md0 创建完成后,pvs可以查看到myvg
有了vg,我们可以进一步划分。划分我们想要的逻辑卷,逻辑卷个数不受限制,但是大小不能大于卷组大小。
创建lv:]# lvcreat –L 1G –n mydata1 myvg 创建逻辑卷mydata1 大小1G,根据此命令可以创建多个。
好了,拓扑完成了。下面我们可以通过]#mkfs.ext3 /dev/myvg/mydata1对其创建文件系统,就是格式化。
格式化完成后,我们再通过mount命令挂在到我们的目录就完成了整个管理模式的创建。我把刚刚创建的lv挂在到了/lvm1与/lvm2
你懂了么?到此时,已完全结束。可通过]#df -hl 来查看设备状况。
可以看到 我们的设备已经可以正常使用。如果想实现开机自动挂载,可写入/etc/fstab文件