二、磁盘阵列是一种把若干硬磁盘驱动器按照一定的要求组成一个整体,整体磁盘阵列由阵列控制器管理的系统。冗余磁盘阵列RAID技术1987年由加州大学伯克利分销提出的。
三、RAID基本结束
RAID:Redundant Array of Inexpensive Disks,全称为廉价磁盘冗余阵列。
RAID的基本特性就是组合,捆绑2个或多个物理磁盘成组,形成一个单一的逻辑盘。在RAID内数据以块(chunks)的形式写入组合套中。另一个特性是具备数据校验功能,该校验可以用于RAID级别2、3、4、5、的额外信息,当磁盘失败的情况发生时,校验功能结合完好的磁盘中的数据,可以重建失效的磁盘上的数据。
RAID的优点:提高磁盘的存储容量,多磁盘并行工作,提高了数据的传输率,由于数据的校验功能,提高了数据的可靠性!
四、RAID各个级别的介绍
1、RAID0:条带技术,亦称为带区集。
所需硬盘:至少2块
处理数据:把数据分块写入组成RAID的磁盘内,从而提升了I/O速率。
容错功能:不提供冗余功能,如果有一个磁盘损坏,则所有数据无法使用
磁盘利用率:nS
磁盘容量:n
2、RAID1:镜像技术,亦称为磁盘镜像。
所需硬盘:至少2块
处理数据:把数据写入一个磁盘上后再复制到此磁盘的镜像盘上进行备份,从而造成写入能力减慢,但是读出的时候速度快。
容错功能:提供冗余功能,只有保证两个磁盘中的有一个为好的,系统就可以使用此卷内的数据。
磁盘利用率:1/2
磁盘容量: n/2
3、RAID10:镜像和条带技术
所需硬盘:至少4块
处理数据:先把数据按照RAID1的方式进行镜像存储组合,然后把组合后的RAID1卷当成物理卷进行RAID0组合。从而读、写功能都得到了提高。
容错功能:利用RAID1技术对数据提供容错功能。
磁盘利用率:1/2
磁盘容量: n/2
4、RAID01:条带和镜像技术
所需硬盘:至少4块
处理数据:先把数据按照RAID0的方式进行存储组合,然后把组合后的RAID0卷当成物理卷进行RAID1组合。从而读、写功能都得到了提高。
容错功能:利用RAID1技术对数据提供容错功能。
磁盘利用率:1/2
磁盘容量: n/2
5、RAID5:校验码技术
所需硬盘:至少3块
处理数据:把数据分别写入其中的n-1块磁盘上,然后在另外一块磁盘上存储数据的校验码,提高了数据的读写能力。
容错功能:根据效验码提供冗余功能,
磁盘利用率:(n-1)/n
磁盘容量: n-1
6、RAID50:校验码和条带存储技术
所需硬盘:至少6块
处理数据:先把磁盘安装RAID5进行数据存储,然后再把RAID5安装RAID0的方式组合起来,这样既提供了读写能力,也提供了数据冗余功能。
容错功能:提供冗余功能
磁盘利用率:(n-2)/n
磁盘容量: n-2
五、RAID在linux系统上的实现:
1、RAID的实现有两种方式:硬RAID和软RAID,
硬RAID是在硬件上进行RAID阵列的假设,要求主机上面具有RAID卡和RAID控制器。然后在计算机BIOS里进行设置,此处先不做详细介绍。
软RAID:linux系统内核内提供了md模块,来提供在linux系统内进行RAID磁盘阵列架设所需要的服务和支持。
2、mdadm命令;linux系统上建立RAID卷的命令,这是个模式化的命令
创建模式:
-C:新建RAID卷
专用选项:
-l:选择RAID级别
-n:硬盘设备个数
-a:自动为其创建设备文件,后跟yes、no
-c:指定chunk(数据库)大小,为2的整数次方默认为64K
-x:指定空闲盘个数--提供冗余,磁盘损坏后直接加载上去
Fg:创建raid0
madadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{6,7}
Mke2fs -j /dev/md0
Mount /dev/mdo /mnt
管理模式:
-f | --fail :模拟磁盘为损坏盘
Fg: mdadm /dev/md0 --fail /dev/sda7
-a | --add :新增硬盘
Fg:mdadm /dev/md0 -a /dev/sda8
-r | --remove :移除损坏的硬盘
监控模式:
-F
增长模式:
-G
装配模式:
-A
Fg:mdadm -A /dev/md0 /dev/sda8 /dev/sda9
3、查看当前系统的RAID信息:
-D:显示RAID的相关信息
--detail:显示信息
4、停止RAID阵列
-S | --stop
5、将当前RAID信息保存至配置文件,一便以后进行装配
Mdadm -D --scan > /dev/mdadm.conf
装配:mdadm -A /dev/md#
六、RAID小练习:
创建一个空间大小为10G的RAID5设备;其chuck大小为32k;要求此设备开机时可以自动挂载至/backup目录;
1、先建立3个大小为5G的磁盘分别为sda{5,6,7},文件格式为fd.
fdisk /dev/sda
n
+5G
t
fd
w
Partprobe
创建完成以后查看磁盘效果如下图
2、创建RAID5,并制定chunk为32K,结果如下图
3、建立完成,同步结束后效果如下图:
4、格式化md0并挂载至/backup目录,并设置为开机启动
mke2fs -j /dev/md0
monut /dev/md0 /backup
设置为开机启动:
Vim /etc/fstab
七、LVM:由linux内核模块DM:Device Mapper提供,简称为逻辑设备。
1、LVM设备能提供RAID和LVM2、块照、多路径等功能,在linux系统内通常利用MD来进行RAID,利用DM来设置LVM2。
2、逻辑卷分为三层:
第一层:逻辑卷LV(Logical Volume)
第二层:卷组VG(Volume Group)
第三层:物理卷PV(Physiacl Volum)
在创建LVM的时候是从第三层向第一层进行一层一层的创建的,第三层的物理卷在linux系统内文件系统为8e。
3、物理层PV的创建:
pvcreate :创建PV 、pvmore:挪动数据、pvremove:擦除PV卷、pvdisplay:显示物理卷的信息、pvscan:扫描并显示系统上的pv卷、pvs:查看pv信息
Fg:创建物理卷
pvcreate /dev/sda{10,11}
4、卷组的创建:
vgcreate :创建Vg 、vgmore:移除、vgremove:删除vg、vgdisplay:显示vg的信息、vgs:查看vg信息
Vgcreate -s #:指定pe大小,默认为4Mb,默认单位为mb
Fg:创建vg
Vgcreate myvg /dev/sda{10,11}
5、逻辑卷的创建:
lvcreate、lvreduce、、lvremove(移除lv,后加路径)、lvextend、lvdisplay(查看lv相关信息)、lvs(查看lv信息)
Lvcreate -L #:指定lv卷的大小
Lvcreate -n NAME:指定lv的名字
Fg:创建个50M的lv卷
Lvcreate -L 50M -n mylv myvg
mke2fs -j /dev/myvg/mylv
6、扩展逻辑卷
LVM的扩展:先扩展物理卷,再扩展逻辑卷
lvextend:扩展物理边界
Lvextend -L [+]# /PATH/TO/PV:+是至增加多大,不接+号时,则为扩展到多大
resize2fs:扩展逻辑边界
resize2fs /PATH/TO/LV 5G:扩展逻辑边界到5G
resize2fs -p /PATH/TO/LV :有多大扩展到多大
7、缩减逻辑卷
LVM缩减:先缩减逻辑边界,再缩减物理卷边界、
1、不能在线缩减,得先卸载
2、确保缩减后的空间大小能储存原来所有文件
3、在缩减之前应该强行检查文件,以确保文件系统处于一致性状态。
e2fsck -f:强行检查文件
df -lh:检查利用率
umount:缩减之前必须先卸载
e2fsck -f:强行检查文件
resize2fs /PATH/TO/LV 5G:缩减逻辑卷到5G
lvreduce -L [-]# /PATH/TO/PV: 缩减物理卷
重新挂载。
8、快照卷:
1、生命周期为整个数据时长:在这段时长内,数据的增长量不能超出块照卷大小:
2、快照卷应该是只读的
3、跟原卷在同一卷组内
创建快照命令:
lvcreate
-s :指定类型为块照
-p r|w:表示指定权限
Fg:创建、还原过程
lvcreate -s -L # SLV_NAME -p -r /PATH/TO/LV
tar jcf /tmp/usrs.tar.bz2 块照挂载点内的内容
tar -xf /tmp/users.tar.bz2 解压缩
八、LVM创建练习
创建一个由两个物理卷组成的大小为15G的卷组myvg,要求其PE大小为16M;而后在此卷组中创建一个大小为5G的逻辑卷mylv,此逻辑卷要能在开机后自动挂载至/mnt目录;然后对mylv进行扩展2G
1、创建两个物理卷大小分别为7G和8G的sda{8,9},并设置为lvm格式的磁盘格式8e。
fdisk /dev/sda
n
+7G
T
8e
W
pvcreate /dev/sda{8,9}
2、创建卷组myvg
Vgcreate -s 16 myvg /dev/sda{7,8}
3、创建逻辑卷mylv
lvreate -L 5G -n mylv /dev/myvg
4、逻辑卷要能在开机后自动挂载至/mnt目录
Mke2fs -j /dev/myvg/mylv
mount /dev/myvg/mylv /mnt
Vim /etc/fstab内加入启动项
5、对然后对mylv进行扩展3G
Lvextend -L +3G /dev/myvg/mylv