关于LVM:
1、第一次创建,按照如下的命令顺序进行:
pvcreate -> vgcreate -> lvcreate -> mkfs.ext3
解释:
pvcreate
--创建pv。示例:pvcreate /dev/xvde
vgcreate
--创建逻辑磁盘,相对于真实的分区,逻辑磁盘还可以包括几个分区哦。一个vg可以包含几个pv。示例:vgcreate myvg /dev/xvde
这个命令,要指定一个/dev/xvde,创建myvg的同时也加上第一个分区/dev/xvde。
lvcreate
--创建逻辑卷,使用上就类似于真实分区了。 创建快照也是此命令。示例:lvcreate -n mydata -L 9G myvg
9G就是要创建的空间大小,小于等于pvs里显示的空间大小。此空间大小后面还会有解释。
mkfs.ext3
--创建文件系统,格式化。示例:mkfs.ext3 /dev/myvg/mydata
这个过程会持续一段比较长的时间。
2、再挂上一个磁盘,进行扩容:
pvcreate -> vgextend -> lvextend -> resize2fs
解释:
vgextend
--扩展vg,因为多了pv了。示例:vgextend myvg /dev/xvdf
lvextend
--扩容lv,因为多了pv,多了的pv又加到了vg中了(vg相当于逻辑磁盘,空间会变大的)。示例:lvextend -L +100G /dev/myvg/mydata
resize2fs
--创建文件系统,格式化。示例:resize2fs /dev/myvg/mydata
不带空间大小,会把lvextend里增加的所有空间都格式化掉。这个过程持续时间比较长,如果挂载到df了,还能实时看到变化。
3、减少磁盘:
umount -> e2fsck -> resize2fs -> lvresize -> pvs -> pvmove -> vgreduce -> pvremove
这个流程在容量上T的时候,到e2fsck会卡住,暂时不知道为啥。
解释:
e2fsck
--检查ext2、ext3、ext4等文件系统的正确性。示例:e2fsck /dev/myvg/mydata
resize2fs
--减少文件系统占用的空间大小。示例:resize2fs /dev/myvg/mydata 8G
lvresize
--调整逻辑卷空间大小。示例:lvresize -L 8G /dev/myvg/mydata
pvs
--查看有多少pv,每个pv剩余空间有多少。示例:
PV VG Fmt Attr PSize PFree
/dev/xvde myvg lvm2 a-- 10.00g 0
/dev/xvdf myvg lvm2 a-- 1000.00g 0
/dev/xvdg myvg lvm2 a-- 1000.00g 1012.00m
PFree里就是每个pv里的剩余空间,如果剩余空间跟PSize一样,说明这个盘是可以被摘下来的;如果不一样,其他空间又够空间可以容纳,也是可以摘下来的。这时候需要依赖下一个命令pvmove。
pvmove
--把某个pv里的空间移动到别的地方去。示例:pvmove /dev/xvde
vgreduce
--从vg里删掉一个pv。示例:vgreduce myvg /dev/xvde
pvremove
--删除pv。示例:pvremove /dev/xvde
4、其他命令:
lvremove /dev/myvg/mydata 删除lv
vgremove myvg 删除卷组
fdisk -l 可以看到所有磁盘,包括使用lvm的虚拟磁盘
dumpe2fs -h /dev/myvg/mydata 根据lvm使用的单位来统计大小,关注block count和block size
1、第一次创建,按照如下的命令顺序进行:
pvcreate -> vgcreate -> lvcreate -> mkfs.ext3
解释:
pvcreate
--创建pv。示例:pvcreate /dev/xvde
vgcreate
--创建逻辑磁盘,相对于真实的分区,逻辑磁盘还可以包括几个分区哦。一个vg可以包含几个pv。示例:vgcreate myvg /dev/xvde
这个命令,要指定一个/dev/xvde,创建myvg的同时也加上第一个分区/dev/xvde。
lvcreate
--创建逻辑卷,使用上就类似于真实分区了。 创建快照也是此命令。示例:lvcreate -n mydata -L 9G myvg
9G就是要创建的空间大小,小于等于pvs里显示的空间大小。此空间大小后面还会有解释。
mkfs.ext3
--创建文件系统,格式化。示例:mkfs.ext3 /dev/myvg/mydata
这个过程会持续一段比较长的时间。
2、再挂上一个磁盘,进行扩容:
pvcreate -> vgextend -> lvextend -> resize2fs
解释:
vgextend
--扩展vg,因为多了pv了。示例:vgextend myvg /dev/xvdf
lvextend
--扩容lv,因为多了pv,多了的pv又加到了vg中了(vg相当于逻辑磁盘,空间会变大的)。示例:lvextend -L +100G /dev/myvg/mydata
resize2fs
--创建文件系统,格式化。示例:resize2fs /dev/myvg/mydata
不带空间大小,会把lvextend里增加的所有空间都格式化掉。这个过程持续时间比较长,如果挂载到df了,还能实时看到变化。
3、减少磁盘:
umount -> e2fsck -> resize2fs -> lvresize -> pvs -> pvmove -> vgreduce -> pvremove
这个流程在容量上T的时候,到e2fsck会卡住,暂时不知道为啥。
解释:
e2fsck
--检查ext2、ext3、ext4等文件系统的正确性。示例:e2fsck /dev/myvg/mydata
resize2fs
--减少文件系统占用的空间大小。示例:resize2fs /dev/myvg/mydata 8G
lvresize
--调整逻辑卷空间大小。示例:lvresize -L 8G /dev/myvg/mydata
pvs
--查看有多少pv,每个pv剩余空间有多少。示例:
PV VG Fmt Attr PSize PFree
/dev/xvde myvg lvm2 a-- 10.00g 0
/dev/xvdf myvg lvm2 a-- 1000.00g 0
/dev/xvdg myvg lvm2 a-- 1000.00g 1012.00m
PFree里就是每个pv里的剩余空间,如果剩余空间跟PSize一样,说明这个盘是可以被摘下来的;如果不一样,其他空间又够空间可以容纳,也是可以摘下来的。这时候需要依赖下一个命令pvmove。
pvmove
--把某个pv里的空间移动到别的地方去。示例:pvmove /dev/xvde
vgreduce
--从vg里删掉一个pv。示例:vgreduce myvg /dev/xvde
pvremove
--删除pv。示例:pvremove /dev/xvde
4、其他命令:
lvremove /dev/myvg/mydata 删除lv
vgremove myvg 删除卷组
fdisk -l 可以看到所有磁盘,包括使用lvm的虚拟磁盘
dumpe2fs -h /dev/myvg/mydata 根据lvm使用的单位来统计大小,关注block count和block size