常用的RAID级别:RAID0 RAID 1+0 RAID 1 RAID 5
RAID 0:RAID 0使用两块硬盘平均的存放数据,同时也有两块磁盘参与数据的读取,由此来加快数据的存取。但是其可靠度降低,其中一块硬盘若出了问题则会全部数据都将出错。
再windows中称为带区卷
总的空间大小:两块磁盘的总容量。
RAID 1 :RAID 1同样使用两块硬盘存储数据,一块存储数据,另一块做其数据的冗余。读取速度与一块磁盘相同,且容量也与一块磁盘相同,但是可靠度上升。再windows中称镜像卷
RAID 10 : RAID 10采用四块硬盘,分为两组,每一组都做一个RAID 1冗余,然后再将每一组视为一个对象做RAID 0。
可以理解为先每两个磁盘做镜像卷,然后将两个镜像卷合起来做带区卷
如果先做RAID 0,再做RAID 1,那么有可能两组的RAID 0中的存储方式可能不同,这就导致虽然RAID 1使得两边的RAID 0的数据相同,但是这些数据存储在RAID 0的两块磁盘上可能有些不同,这就使得数据的还原可能会出现问题。
所以一般使用RAID 10,即先做镜像,再做带区。
RAID 5:至少要有三块磁盘,RAID 5将数据平均的存储到磁盘上,也就是说最少有三块磁盘参与数据的读取,同时RAID还将数据的校验码平均地存入磁盘中,若其中一块磁盘损坏,可以由其他磁盘恢复这出错地一块磁盘。但是若两块都损坏,则不能恢复。
磁盘总容量是所有(n-1)*单个磁盘容量。
配置软RAID 10
mdadm(muti disk admin 多磁盘管理)
mdadm -C /dev/newname -a yes -n number -l 10 /dev/{sdd,sdc,sdd,sde}
-C:代表我要创建一个阵列 ,-C后面跟随的是生成的设备文件的路径和名字
-a:代表我要生成对应的设备文件
-n:代表着该阵列的磁盘数
-l:代表着level,也就是RAID级别,然后后面跟着的是它的组成成员的设备文件
创建之后,可以cat /proc/mdstat 查看muti disk的状态信息,确认该阵列是否创建成功
同时也可以使用-D选项后面加上设备文件区查看该阵列的信息
-D(diskplay) : /dev/md10
mdadm /dev/md10 -f /dev/sdb :可以从md10的阵列中将sdb成员磁盘标记为损坏
mdadm /dev/md10 -r /dev/sdb :可以将md10阵列坏磁盘移除
mdadm /dev/md10 -a /dev/sdc :新添加成员磁盘
我在做RAID的删除的时候,发现如果使用-f或者-r选项删除磁盘时,若该命令将导致整体的RAID磁盘的失效,它是不会允许执行的。最终会报设备繁忙的错误。
这时应该这样做:
1、停止RAID10:mdadm -S /dev/md0
2、删除块设备文件:mdadm --misc --zero superblock /dev/sdb
mdadm --misc --zero superblock /dev/sdc
mdadm --misc --zero superblock /dev/sde
有几个raid成员就删除几个
3、删除/ect/mdadm.conf,若没有这个文件就ok了,然后就可以发现这些分离出来的磁盘又可做分区和挂载,正常使用了。
可使用dd命令测试RAID的速度,我们从/dev/zero的文件中读取两个500M的文件,分别放入自带的磁盘和RAID的磁盘,可发现速度提升了1倍左右。
配置RAID 5与备份盘
使用三块做RAID5,在使用额外的一个磁盘做备份盘(即平时处于闲置的磁盘,需要时使用)
配置命令与RAID 10类似:
mdadm -C /dev/md1 -a yes -n 3 -l 5 -x 1 /dev/sd{b,c,d,e}
其中-x 1 代表着拿出一块磁盘做备份盘,当某块磁盘出现了问题之后,该磁盘会快速同步,补上错误磁盘的位置,当然在raid10上也可以做备份盘的操作。
我们可以通过查看proc目录下面的mdstat文件来查看是否有对应的软raid生成
卷信息显示命令
1、将普通的磁盘转换为卷的概念,然后将卷组合为一个卷组(即一个存储池),当有需要使用空间时,就从卷组中分离空间,转化为逻辑卷,再将逻辑卷视为普通的磁盘去进行格式化和挂载。
pvdiskplay :详细显示所有物理卷相关信息 (physical volume)
vgdisplay :详细显示卷组相关信息 (volume group)
lvdisplay :详细显示逻辑卷相关信息 (logic volume)
pvs :简略显示物理卷信息
vgs:简略显示卷组信息
lvs:简略逻辑卷信息
PS:以上所有命令都可以在尾部上加上自己想要查看的特定对象的文件名,做到单一信息查看,如pvs /dev/sda2
物理卷相关命令
pvcreate 设备文件(pvcreate /etc/sdb):创建对应的物理卷
注意!!!!!
若我们想要使用某个分区作为物理卷,则在使用fdisk 进行分区的时候,需要输入“t”,将该分区的系统ID该为8e才能转化为物理卷
卷组相关命令
vgcreate VolumeGroupName 一个或多个物理卷的名字(vgcreate VG /dev/sdb /dev/sdc):将物理卷整合为一个卷组
-s 3M:设置最小分配单元的大小为3M,以此类推
当多个物理卷整合为一个卷组之后,会定义卷组中的最小分配单元(PE)。
逻辑卷相关命令
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
-l number:分配以最小分配单元*number的总空间,比如number是3,最小分配单元的大小是3M,那么就是指定该逻辑卷的大小是9M
当我们从卷组中分配一定的空间去创建逻辑卷时,会在dev目录下创建与卷组同名的目录,该目录下存放着与逻辑卷同名的链接文件,该链接文件最终的指向都是代表卷组的设备文件。同时dev下的mapper目录下也会创建一个链接文件去执行卷组的设备文件,这两个链接文件的意义都是相同的,但是逻辑卷的一个指代。同时也是逻辑卷后续进行文件系统格式化和挂载的昵称。
卷组的空间拓展
vgextend 卷组名 一个或多个设备文件名 :拓展卷组的大小
逻辑卷的空间拓展
lvreduce -L 减少模式:这种减少逻辑卷大小的做法,xfs文件系统做不了,如果使用了该命令很容易出问题。如果非要减少空间不如把数据备份出去,然后重新分配一个逻辑卷。如果是在ext系列的文件系统,则空间的减少步骤与增加的步骤类似。
lvextend -L 增加模式 逻辑卷的文件名
-L +10G:代表在原有基础上加上10G
-L 10G:代表将大小拓展到10G
上述命令输入后还需要输入“xfs_growfs 逻辑卷名”在逻辑上将其空间扩充
xfs的逻辑卷:xfs_growfs 逻辑卷名
ext系列的的逻辑卷:resize2fs 逻辑卷名
总的来说:第一步:使用lvextend物理上拓展逻辑卷的大小
第二步:使用xfs_grow或者resize2fs在逻辑上去拓展逻辑空间。
删除逻辑卷
1、先卸载逻辑卷,确保fstab中没有对应的挂载信息
2、lvremove 逻辑卷的文件名
删除卷组
vgremove 卷组名
删除物理卷
pvremove 物理卷名