RAID
* 提高IO能力
磁盘并行读写
* 提高耐用性
磁盘冗余来实现
* 级别:多块磁盘组织在一起的工作方式有所不同
* RAID实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器
安装OS前在BIOS里配置
软件RAID:通过OS实现
注意:做raid要求raid成员大小要求一致;即取相同的空间做raid,如两个硬盘1个80M,1个100M,那么两个硬盘均取80M来做radi0
RAID级别
RAID-0:条带卷,strip
RAID-1: 镜像卷,mirror
RAID-2
..
RAID-5
RAID-6
RAID-10
RAID-01
* RAID0
读、写性能提升;
可用空间:N*min(S1,S2,…)
无容错能力
最少磁盘数:2, 2+
在读写数据时,多块硬盘同时进行读写操作,大大提升了读写的性能
* RAID1
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,…)
有冗余能力
最少磁盘数:2, 2N
在写入数据时,要同时对两块硬盘写入相同的数据,这样一来,写入一份数据要花费更多的资源,降低了系统写性能
* RAID4
多块数据盘异或运算值存于专用校验盘
该模式会拿出一块磁盘专用于存储异或校验值,一旦校验盘损坏,系统安全性将会降低
* RAID5
读、写性能提升
可用空间:(N-1)*min(S1,S2,…)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3, 3+
每一个硬盘都有一个异或校验值,一旦其中某块硬盘发生故障,通过异或校验值可以计算出该硬盘的数据,以达到冗余的目的。同时,服务器将会处于“忙碌(降级)”状态,系统读写性能大大降低,需要及时把发生故障的硬盘替换。异或校验值会占用硬盘空间,因此硬盘利用率会被稍微降低,利用率为(n-1)/n
* RAID-6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,…)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
该模式与raid5类似,不同之处在于raid6每个成员内存有两个异或校验值,因此允许损坏2块硬盘,硬盘利用率为(n-2)/n
* RAID10
读、写性能提升
可用空间:N*min(S1,S2,…)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
raid10即对硬盘先两两做raid1,再对两组raid1做raid0
* RAID01
多块磁盘先实现RAID0,再组合成RAID1
注意:raid10和raid01硬盘利用率均为50%,但raid10容错性比raid01更好
* RAID-50
多块磁盘先实现RAID5,再组合成RAID0
* JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(S1,S2,…)
该模式对每个磁盘成员大小没有要求,写入数据时,将第一块磁盘写满后,再写入第二块磁盘,以此类推;因此既无容错性,读写性能也大大降低,一般情况下不推荐这种模式
* RAID7
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
*常用RAID级别:
RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
传统分区扩展性差,逻辑卷能够很好的解决该问题
* 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
* 允许在多个物理设备间重新组织文件系统
将设备指定为物理卷(PV)
用一个或者多个物理卷来创建一个卷组(VG)
物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
在物理卷上创建的逻辑卷(LVM)是由物理区域(PE)组成
可以在逻辑卷上创建文件系统(FS_TYPE)
LVM介绍
* LVM: Logical Volume Manager,ersion: 2
* dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
* 设备名:/dev/dm-#
* 软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
[root@centos7 ~]#ll /dev/vg0/lv0 /dev/mapper/vg0-lv0
lrwxrwxrwx. 1 root root 7 Aug 19 16:31 /dev/mapper/vg0-lv0 -> ../dm-0
lrwxrwxrwx. 1 root root 7 Aug 19 16:31 /dev/vg0/lv0 -> ../dm-0
LVM更改文件系统的容量
* LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
PV管理工具
* 显示pv信息
pvs:简要pv信息显示
pvdisplay
* 创建pv
pvcreate /dev/DEVICE
VG管理工具
* 显示卷组
vgs
vgdisplay
* 创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupNamePhysicalDevicePath[PhysicalDevicePath…]
* 管理卷组
vgextend VolumeGroupName PhysicalDevicePath[PhysicalDevicePath…]
vgreduce VolumeGroupName PhysicalDevicePath[PhysicalDevicePath…]
* 删除卷组
先做pvmove,再做vgremove
知识扩展:
把已经使用的PE移动到同一个卷组的其他成员的物理卷(pv)上;
注意:要确保同一个卷组中有足够可用的空间
pvmove /dev/sde 移动的是空间(PE)不是数据
vgreduce newvg0 /dev/sde 把/dev/sde从卷组newvg0中删除
pvremove /dev/sde 删除物理卷
LV管理工具
* 显示逻辑卷
lvs
Lvdisplay
* 创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvcreate -l 60%VG -n mylvtestvg
lvcreate -l 100%FREE -n yourlvtestvg
* 删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
* 重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
实验1:创建逻辑卷
1、准备磁盘或逻辑卷
如果从硬盘中分出一部分空间作为逻辑卷,需要通过对硬盘分区来分离出需要的硬盘空间,分区以后更改ID类型为8e
2、创建物理卷
pvcreate /dev/sdd1(分区名) /dev/sde(设备名)
3、创建卷组
vgcreate -s 16M vg0 /dev/sdd1 /dev/sde
-s 是扇区的指数倍,即2^n,至少128k
4、创建逻辑卷
lvcreate -L 1.5G -n lv0 vg0
-L 以容量为单位指定逻辑卷大小
-l 以pe为单位指定逻辑卷大小
PE在逻辑卷中的名称为LE
5、创建文件系统
mkfs.ext4 /dev/vg0/lv0
6、挂载
mount /dev/vg0/lv0 /mnt/lv0
实验2:删除所有的PV、VG、LVM
1、删除fstab表中挂载项
2、取消挂载
umount /mnt/lv0
umount /mnt/lv0
3、删除逻辑卷
lvremove /dev/newvg0/lv{0,1}
4、删除卷组
vgremove /dev/newvg0
5、删除物理卷
pvremove /dev/sdc /dev/sdd1
扩展和缩减逻辑卷
* 扩展逻辑卷:
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME
lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
* 缩减逻辑卷:
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
mount
实验1:扩展逻辑卷
扩展逻辑卷,首先要扩展卷组
1、查看卷组空间 vgdisplay
2、如果空间足够,直接扩展
lvextend -l 100%FREE /dev/vg0/lv0
然后扩展文件系统:
ext系列文件系统:resize2fs /dev/vg0/lv0
xfs文件系统:xfs_grow /mnt/lv0
或者一步完成:lvextend -r -l 100%FREE /dev/vg0/lv0
3、如果空间不足,则需要新增物理卷
(1)pvcreate /dev/sdc 增加物理卷
(2)vgextend vg0 /dev/sdc 扩展卷组
(3)lvextend -L +1G /dev/vg0/lv0 逻辑卷在原来的基础上增加大小+1G
lvextend -L 3G /dev/vg0/lv0 逻辑卷直接指定大小3G
(4)扩展文件系统
ext系列文件系统 resize2fs /dev/vg0/lv0(设备名)
xfs文件系统 xfs_grow /mnt/lv1(挂载点)
扩展逻辑卷,由于新增分区没有文件系统,因此硬盘容量虽然加入逻辑卷,但是却不能写入数据,因此需要扩展文件系统
或者:
扩展空间和扩展文件系统一步完成,不用管是哪种文件系统
lvextend -r -L +1G /dev/vg0/lv0
实验2:缩减逻辑卷
逻辑卷缩减(ext系列)
xfs文件系统不支持缩减,ext4支持缩减
逻辑卷缩减,数据要提前做备份
1、缩减不支持在线缩减,要先取消挂载要缩减的逻辑卷
umount /mnt/lv0
2、检查系统完整性(必须执行该步骤,否则后续会报错)
fsck -f /dev/vg0/lv0
3、缩减文件系统
resize2fs /dev/vg0/lv0 2G 缩减后的大小必须大于逻辑卷大小
4、缩减逻辑卷
lvreduce -L 2G /dev/vg0/lv0 逻辑卷缩减大小必须和文件系统缩减大小一致
5、重新挂载
mount -a
6、查看缩减后的结果
df -h
跨主机迁移卷组
* 源计算机上
1 在旧系统中,umount所有卷组上的逻辑卷
2 vgchange –a n vg0
lvdisplay
3 vgexport vg0
pvscan
vgdisplay
拆下旧硬盘
* 在目标计算机上
4 在新系统中安装旧硬盘,并vgimport vg0.
5 vgchange –ay vg0
6 mount所有卷组上的逻辑卷
实验:跨主机迁移卷组
1、为防止名字与目标主机上的逻辑卷、卷组冲突,需要在迁移之前对逻辑卷、卷组更改名称
vgrename vg0 newvg0
lvrename /dev/newvg0/lv0 newlv0(卷组名称更改后,逻辑卷可以不用更改名称)
lvdisplay 查看更改后的逻辑卷信息
2、取消挂载
umount /mnt/lv0
查看该逻辑卷所在分区下是否有其他逻辑卷,如果有,也要取消挂载
umount /mnt/lv1
3、卷组设置为非活动状态
vgchange -an newvg0
vgdisplay、lvdisplay 查看卷组、逻辑卷状态
4、卷组设置为导出状态
vgexport newvg0
5、把逻辑卷所在硬盘拆下来,并且安装到目标设备上
pvscan 在目标设备上查看物理卷
6、vgimport newcg0 导入卷组
7、vgchange -ay newvg0 激活卷组
8、mkdir /mnt/newlv0
注意:centos6默认文件系统为ext系列,因此从centos7迁移到centos6版本,会有问题,如果从centos6往centos7上迁移,则没问题
使用LVM快照
* 为现有逻辑卷创建快照
lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data
* 挂载快照
mkdir -p /mnt/snap
mount -o ro /dev/vg0/data-snapshot /mnt/snap
* 恢复快照
umount /dev/vg0/data-snapshot
umount /dev/vg0/data
lvconvert –merge /dev/vg0/data-snapshot
* 删除快照
umount /mnt/databackup
lvremove /dev/vg0/databackup
实验1-1:创建快照(ext系列文件系统)
1、查看卷组是否有多余空间,如果有,创建逻辑卷的快照
lvcreate -n lv0-snapshot -s -L 1G /dev/vg0/lv0
或lvcreate -n lv0-snapshot -s -p r -L 1G /dev/vg0/lv0 加上-p r选项,把文件设备只读,保证数据完整性
lvdisplay
2、挂载快照逻辑卷
mkdir /mnt/lv0-snapshot
mount /dev/lv0-snapshot /mnt/lv0-snapshot
ext系列文件系统虽然快照逻辑卷和原有逻辑卷uuid一致,但不用使用-o nouuid选项,这是文件系统特性造成的结果
3、ls /mnt/lv0-snapshot 查看快照文件
实验1-2:创建快照(xfs文件系统)
1、创建快照逻辑卷
lvcreate -n lv1-snapshot -s -L 1G /dev/vg0/lv1
2、挂载快照逻辑卷
mkdir /mnt/lv1-snapshot
mount -o nouuid /dev/vg0/lv1-snapshot /mnt/lv1-snapshot
注意:挂载时由于xfs文件系统下快照逻辑卷和原有逻辑卷uuid一致,因此不能挂载;可以使用mount -o nouuid选项进行挂载。
实验2:根据快照还原数据
1、取消挂载
umount /mnt/lv0 取消逻辑卷挂载
umount /mnt/lv0-snapshot 取消快照逻辑卷挂载
2、把快照数据还原到原来的逻辑卷
lvconvert --merge /dev/vg0/lv0-snapshot
3、重新挂载逻辑卷
mount /dev/vg0/lv0 /mnt/lv0
实验3:删除快照
1、取消快照逻辑卷挂载
umount /mnt/lv0-snapshot
2、删除快照
lvremove /dev/vg0/lv0-snapshot