##LVM是什么? LVM(Logical Volume Manager),即磁盘卷管理,是Linux环境下对磁盘分区进行管理的一种机制。经过LVM能够很方便的实现:服务器
##LVM原理 LVM是磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上创建文件系统。 LVM架构以下: 架构
如下操做前请肯定保存好硬盘中的数据。。。。app
首先安装LVM(以Debian为例)布局
sudo apt-get install lvm2
性能
将硬盘初始化为物理卷 在建立卷组前,首先要将硬盘初始化成物理卷已供LVM使用。code
pvcreate /dev/sda /dev/sdb /dev/sdc2
ip
能够经过pvdisplay或者pvs来查看已经建立的物理卷信息。rem
建立卷组 将已经建立的物理卷整合成为一个卷组get
vgcreate mydisk /dev/sda /dev/sdb /dev/sdc2
vgcreate能够经过-s选项来改变PE的默认大小,大小必须是2的阶乘,最小为1kb。 一样能够经过vgdisplay和vgs来查看卷组信息。 能够发现/dev/多了一个mydisk文件夹效率
建立逻辑卷
lvcreate -n MyRoot -L +14G mydisk
这样就建立了名字为MyRoot的逻辑卷,块设备文件默认为/dev/mydisk/MyRoot(其是一个链接,指向/dev/mapper/的同名文件)。 一样可使用lvs和lvdisplay来查看逻辑卷的状况。
PS 若是过须要条块化,请参阅7
在逻辑卷上建立分区 逻辑卷建立完成后就能够当成普通的块文件来使用。
mkfs.ext4 /dev/mydisk/MyRoot
挂载使用 挂载到合适的位置。 mount /dev/mydisk/MyRoot/ /mnt/MySecret
条块化I/O LVM条块化是LVM功能之一,该技术会跨多个磁盘写入数据,而不是对单一物理卷持续写入。条块化优势以下:
建立lv的时候能够加上-i[number]选项就可使用条块化方法,若是须要可使用-I选项声明条块尺寸,一样必须是2的阶乘,可是不能超过PE的大小。
##LVM的伸展 LVM能够实如今线扩大分区容量,也就是说,若是分区的空间不够用了,能够随时扩大而不用下线。 从下至上
初始化要添加的物理分区或硬盘,同上。
扩展卷组 将一个硬盘或者物理分区添加到卷组之中。 vgextend mydisk /dev/sdd
扩展逻辑卷 扩大逻辑卷 lvextend -L +1G /dev/mydisk/MyRoot
注意扩大的单位可使用必定不要超过VG的剩余空间。
更新文件系统 resizefs /dev/mydisk/MyRoot #ext二、ext三、ext4
xfs_growfs /dev/mydisk/MyRoot #XFS
简单而优雅。
##LVM的缩小 LVM缩小操做必须离线,并且必定要备份数据 相比伸展,LVM的缩小操做就有必定的风险了,必定要当心。 自上而下
umount /mnt/MySecret
resize2fs /dev/mydisk/MyRoot 1G #将文件系统改变为1G,请肯定已存在的文件体积小于1G
e2fsck -f /dev/mydisk/MyRoot
lvreduce -L -1G /dev/mydisk/MyRoot #将MyRoot缩小成1G
mount /dev/mydisk/MyRoot /mnt/MySecret
必定要当心谨慎。。##缩小卷组 缩小卷组其实就是将物理硬盘移出卷组,移出前必定要保证移出的物理硬盘是空的。若是使用了条块化I/O的化,备份数据吧(求大神指教)。 vgreduce mydisk /dev/sda
vgreduck -a mydisk #自动移除空的卷
##删除LVM 由上至下。。
1.删除LV lvremove /dev/mydisk/MyRoot
2.删除VG vgremove mydisk 3.删除PV
pvremove /dev/sda`
##LVM快照
LVM快照是以空间换时间时间的方式制做的lvm卷副本。它只在lvm中工做,并只在源逻辑卷发生改变时占用快照卷的空间。若是源卷的变化达到1GB这么大,快照卷一样也会产生这样大的改变。于是,对于空间有效利用的最佳途径,就是老是进行小的修改。若是快照将存储空间消耗殆尽,咱们可使用lvextend来扩容。而若是咱们须要缩减快照所占用卷的大小,可使用lvreduce。
说白了快照就是保存变化前的文件,因此快照不能用于备份,它并非完整的副本,因此当遇到硬盘物理损坏等非正常情况是没法恢复的。
步骤:
vgdisplay
信息里的Free PE/Size项)来建立快照,没有的话请参考上面扩容部分扩容。2.建立快照
lvcreate --size 1G --snapshot --name my_snap /dev/mydisk/MyRoot
验证快照 使用lvs
查看,会发现多了一个my_snap,而它的origin栏对应着MyRoot,这就是存放快照的卷,能够经过df -Th
来查看占用的空间。
扩充快照 在使用过程当中可能发生空间不够用的状况,这时候请必定在空间占慢前扩充快照的空间,也就是其逻辑卷的空间(参考上文)。
快照恢复 恢复操做是没法在线的。 首先要卸载要回复的物理卷,而后在进行合并操做。
umount /mnt/MyRoot lvconvert --merge /dev/mydisk/my_snap
在合并完成后,快照卷将被自动移除。
##LVM迁移
LVM迁移是LVM众多优秀特性之一,经过它,咱们能够迁移逻辑卷到一个新的磁盘而不会丢失数据,也不用关机操做。该特性的功能是将数据从旧磁盘移动到新磁盘。一般,咱们只是在一些磁盘发生错误时,才将数据从一个磁盘迁移到另一个磁盘存储。 特色:
###方法一:
df -h
和lvdisplay
和vgdisplay
查看磁盘和LVM状态2.在要迁移到的硬盘/分区上建立物理卷
`pvcreate /dev/sdc1`
添加到已有卷组
` vgextend mydisk /dev/sdc1` `vgs`
建立镜像到新物理卷
`lvconvert -m 1 /dev/mydisk/MyRoot /dev/sdc1`
-m为--mirror的缩写,数字是表示镜像份数,过程时间稍长。。
验证镜像
lvs -o+devices
删除原镜像 这时候MyRoot对应者/dev/sdc1的镜像和对应原来的多个物理卷组成的镜像。要将原来的移除,要先删除原来的镜像
lvconvert -m 0 /dev/mydisk/MyRoot
0即移除。
###方法2 方法一第三步日后:直接使用`pvmove /dev/mydisk/MyRoot /dev/sdc1 方法一的意义在于,服务器环境LVM通常会有不少镜像,相似raid 1,直接建立镜像要快的多。(听人说的,待肯定)