一、概述
Logical Volume Manager(逻辑卷管理)由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如store1、development)代替物理磁盘名(如sda、sdb)来标识存储卷。
LVM模型:
Physical Volume物理卷:
调整实际的分区systerm ID为8e,再通过pvcreate命令将它转变为LVM最底层的物理卷
Volume Group卷组:
所谓的LVM大磁盘就是将许多PV整合成VG,VG的容量与PE(Physical Extend)物理扩展块相关,PE是整个LVM最小的存储块。
PE(physical extent):
每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小可配置,默认为4MB,其实文件数据都是由写入PE来处理的,简单来说,这个PE有点类似于文件系统里的block大小。
Logical Volume逻辑卷:
最终的VG会被切成LV,这个LV就是最后可以被格式化使用的类似分区,LV的大小与在此LV内的PE总数相关,LV的设备名通常指定为”/dev/vgname/lvname“的样式。LVM可以弹性改变文件系统的容量,就是通过交换PE来进行数据转换,将原本LV内的PE转移到其他设备中以降低LV容量,或者将其他设备中的PE加到此LV中以加大容量。
PE与VG相关性:
数据写入LV依据写入机制的不同有两种写入方式:
线性模式(linear):假如将/dev/sda1,/dev/sda2这两个分区加入VG中,且整个VG只有一个LV时,所谓的线性模式就是当/dev/sda1的容量用完之后,/dev/sda2才会被使用
交互模式(triped):将一条数据拆成2个部分,分写入/dev/sda1,/dev/sda2,感觉上有点像RAID 0。
二、LVM实作流程:
1、查询是否安装lvm2软件包,CentOS系统已默认安装
2、创建物理文件系统,将其文件系统的类型设置为LVM,分区时修改文件系统类型为8e:
与创建物理卷(PV)相关的命令;
- pvcreate:将物理分区新建为PV
- pvdisplay:显示目前系统上PV的状态
- pvscan:查询目前系统里任何具有PV的磁盘
- pvremove:将PV属性删除,让该分区不具有PV属性
3、接下来创建PV:
创建卷组相关命令:
- vgcreate:创建VG
- vgscan:查找系统上是否有VG
- vgdisplay:显示目前系统上VG状态
- vgextend:扩展VG,在VG增加额外的PV
- vgreduce:缩小VG,在VG内删除PV
- vgremove:删除VG
- vgrename:VG重命名
4、创建VG的命令格式:vgcreate [-s size] VG名称 PV名称
5、创建好卷组之后,来扩展VG:vgextend vgName PV
创建逻辑卷相关的命令:
- lvcreate:创建LV
- lvscan:查看系统上的LV
- lvdisplay:显示系统上LV的状态
- lvextend:扩展LV
- lvreduce:缩小LV
- lvremove:删除一个LV
- lvresize:调整LV的 容量大小
6、创建LV的命令格式: lvcreate -L [size M,G,T]-n LV名称 VG名称
7、格式化逻辑卷
8、新建目录用来挂载逻辑卷
9、新增一个类型为8e的分区,用来做扩展
放大LV容量:
1、利用PV构建PV–>利用vgextend将PV加入DQvg–>利用lvresize将新加入PV内的PE加入DQlv中
2、最后通过resize2fs将文件系统的容量确实增加
创建分区相当于创建物理边界,在分区上创建文件系统,文件系统边界可理解为逻辑边界
扩展LVM应先扩展物理边界即先创建分区在进一步扩展逻辑边界
缩减LVM应先缩减文件系统边界在缩减物理边界
缩小LV容量:
1、确保缩减后的空间大小依然能存储原有的所有数据, 即缩减后空间大小不小于Used
2、不能在线缩减,得先卸载;
3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态;
4、接下来缩减物理边界
5、转移/dev/sdc9中没有使用的PE
至此文件系统以及实际的LV,VG全部变小了
总结:在扩大和缩小逻辑卷时,使用命令的顺序刚好相反。但是缩减时必须先卸载逻辑卷
扩大:
[root@localhost~]#lvresize -l +64/dev/DQvg/DQlv
[root@localhost~]#resize2fs /dev/DQvg/DQlv
缩小:
[root@localhost~]#umount /dev/DQvg/DQlv
[root@localhost~]#e2fsck -f /dev/DQvg/DQlv
[root@localhost~]#resize2fs /dev/DQvg/DQlv 2G(这里2G指缩减到2G)
[root@localhost~]#lvresize -l -64/dev/DQvg/DQlv
三、快照卷
快照就是将当时的系统信息记录下来,将来若有任何数据改动了,则原始数据会被移动到快照区,没有被改动的区域则由快照区与文件系统共享。
1、生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;
2、快照卷应该是只读的;
3、跟原卷在同一卷组内;
删除之前新建的LVM数据
RAID:Redundant Array Indepedent Disk
基础知识可见http://blog.csdn.net/celeste7777/article/details/49225319
Software RAID实作流程
RAID-0 :等量模式
条带存储数据在每块磁盘上,条带chunk/block越多块磁盘组成的RAID-0性能会越好,因为每块磁盘负责的数据量变低
由于文件是被切割成适合每块磁盘分区的大小,再依次序存放到各个磁盘,所以RAID-0中只要有任何一块磁盘损毁,RAID上的数据都会丢失而无法读取
RAID-1:镜像模式
同一份数据完整保存在2块磁盘上,写性能下降,读性能提升,有容错能力
设置sda7错误
再次设置sda7错误,测试添加进来的sda9已经启用,仍可正常访问文件
制作热空闲盘RAID,磁盘损坏时,自动同步备份
RAID-5:性能与数据备份的均衡考虑
数据写入有点类似RAID-0,不过每个循环的写入过程中,在每块磁盘还加入一个同为检查数据来记录其他磁盘的备份数据,同时也使得总容量是整体磁盘数量减1。至少需要3块磁盘,仅支持一块磁盘损毁,任何一个磁盘损毁都能通过同位检查码来重建原本磁盘内数据