lvm基本应用和lvm的扩展及缩减
2015-08-28 22:22
281 查看
LVM是Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。 逻辑的创建是由物理卷PV组合成卷组VG,然后再在卷组VG上划分PE,然后创建LV
pv管理工具: pvs:pv的简要信息显示
pvdisplay:显示pv的详细信息
pvmove /dev/DEVICE:把当前pv上的数据移动到其他pv上 pvcreate /dev/DEVICE: 创建pv
vg管理工具:
vgs:vg的简要信息显示
vgdisplay:显示vg的详细信息
创建vg的语法格式:
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] vg的扩展,增加
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vg的缩减
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
要做vg缩减,就必须先把pv中的数据移到其他pv上,然后再做缩减,即先做pvmove 然后做 vgreduce
lv管理工具:
lvs:lv的简要信息显示
lvdisplay:显示lv的详细信息
创建lv的语法格式:
lvcreate -L#[mMgGtT] -n NAME VolumeGroup 指定的空间大小,要不能大于vg的空间;还有你指定的空间大小不会完全匹配,这个取决于你指定的大小是否能被PE的空间大小整除 移除lv
lvremove /dev/VG_NAME/LV_NAME 扩展逻辑卷:
#lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
#resize2fs /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
±5G是在原来的基础上加上或减去5G;5G是设定现在的逻辑卷大小为5G
lv的命名和调用时,使用的名称格式:
/dev/mapper/VG_NAME-LV_NAME /dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
例:
快照:snapshot,就是把所有的文件做一个快速备份,可以让你回到以前的某个特定时间,快照只能在同一个分区内创建。 语法格式:
lvcreate -L #[mMgGtT] -p r -s -nsnapshot_lv_name original_lv_name
下面以一个实例,做下实验
创建一个5G的pv,然后把它加入VG中,再给VG中添加一个5G的pv,做缩减操作后再添加回来,然后创建lv,并进行扩展及缩减操作
1、 首先创建几个分区,然后把格式改为8e,加载到内核中(此步演示略,如有不会请看前面的博客)
2、 然后创建pv
重复几次,pv就算创建成功了,可以使用pvs或pvdisplay进行查看
因为没有创建和加载到vg中,所以 VG Name为空3、 然后创建vg
查看下
再次查看下pv
然后为vg扩展,使用vgextend ,并查看下vg
vg的缩减,必须先使用pvmove,然后在vgreduce,并查看
重新把/dev/sda6加入4、 根据需要再添加pv到vg中
创建lv,使用lvcreate -L SIZE –n LV_NAME VG_NAME;使用ls 查看下会发下多了一个myvg-mylv的路径,
对这个lv进行格式化
下面就可以挂载使用了
这就是逻辑卷创建的整个过程 下面做下逻辑卷的扩展和缩减
以前的大小
扩展
现在还是2G,这是因为你逻辑卷的边界虽然大了,但文件系统的大小没有变需要使用resize2fs/dev/VG_NAME/LV_NAME 来扩展,这条命令只对ext系列的文件系统有效,不指定大小默认扩展到跟逻辑卷大小一样
逻辑卷的缩减,必须先卸载文件系统,然后做文件系统的强制检测和修复,然后把文件系统大小缩减(逻辑边界缩小),最后缩减逻辑卷的大小(物理边界)
缩减完成,在挂载就可以使用了
pv管理工具: pvs:pv的简要信息显示
pvdisplay:显示pv的详细信息
pvmove /dev/DEVICE:把当前pv上的数据移动到其他pv上 pvcreate /dev/DEVICE: 创建pv
vg管理工具:
vgs:vg的简要信息显示
vgdisplay:显示vg的详细信息
创建vg的语法格式:
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] vg的扩展,增加
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vg的缩减
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
要做vg缩减,就必须先把pv中的数据移到其他pv上,然后再做缩减,即先做pvmove 然后做 vgreduce
lv管理工具:
lvs:lv的简要信息显示
lvdisplay:显示lv的详细信息
创建lv的语法格式:
lvcreate -L#[mMgGtT] -n NAME VolumeGroup 指定的空间大小,要不能大于vg的空间;还有你指定的空间大小不会完全匹配,这个取决于你指定的大小是否能被PE的空间大小整除 移除lv
lvremove /dev/VG_NAME/LV_NAME 扩展逻辑卷:
#lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
#resize2fs /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
±5G是在原来的基础上加上或减去5G;5G是设定现在的逻辑卷大小为5G
lv的命名和调用时,使用的名称格式:
/dev/mapper/VG_NAME-LV_NAME /dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
例:
快照:snapshot,就是把所有的文件做一个快速备份,可以让你回到以前的某个特定时间,快照只能在同一个分区内创建。 语法格式:
lvcreate -L #[mMgGtT] -p r -s -nsnapshot_lv_name original_lv_name
下面以一个实例,做下实验
创建一个5G的pv,然后把它加入VG中,再给VG中添加一个5G的pv,做缩减操作后再添加回来,然后创建lv,并进行扩展及缩减操作
1、 首先创建几个分区,然后把格式改为8e,加载到内核中(此步演示略,如有不会请看前面的博客)
2、 然后创建pv
重复几次,pv就算创建成功了,可以使用pvs或pvdisplay进行查看
因为没有创建和加载到vg中,所以 VG Name为空3、 然后创建vg
查看下
再次查看下pv
然后为vg扩展,使用vgextend ,并查看下vg
vg的缩减,必须先使用pvmove,然后在vgreduce,并查看
重新把/dev/sda6加入4、 根据需要再添加pv到vg中
创建lv,使用lvcreate -L SIZE –n LV_NAME VG_NAME;使用ls 查看下会发下多了一个myvg-mylv的路径,
对这个lv进行格式化
下面就可以挂载使用了
这就是逻辑卷创建的整个过程 下面做下逻辑卷的扩展和缩减
以前的大小
扩展
现在还是2G,这是因为你逻辑卷的边界虽然大了,但文件系统的大小没有变需要使用resize2fs/dev/VG_NAME/LV_NAME 来扩展,这条命令只对ext系列的文件系统有效,不指定大小默认扩展到跟逻辑卷大小一样
逻辑卷的缩减,必须先卸载文件系统,然后做文件系统的强制检测和修复,然后把文件系统大小缩减(逻辑边界缩小),最后缩减逻辑卷的大小(物理边界)
缩减完成,在挂载就可以使用了
相关文章推荐
- 应用领航:盘点那些年我们一起追过的OS
- 无奇不有!盘点各国自己开发的操作系统
- 可自定义oem的萝卜家园 Ghost XP 新春装机版 V200801 下载
- C#实现判断操作系统是否为Win8以上版本
- Linux操作系统添加新硬盘方法
- java如何获取本地操作系统进程列表
- Linux rdesktop操作系统下远程登录Windows XP桌面
- 32位操作系统认出超出4G内存的方法
- Linux rpm tar 操作系统下软件的安装与卸载方法
- JavaScript 获取用户客户端操作系统版本
- jsp 获取客户端的浏览器和操作系统信息
- Windows 操作系统的安全设置
- PHP获取用户的浏览器与操作系统信息的代码
- Perl操作系统环境变量的脚本代码
- javascript获取本机操作系统类型的方法
- 封装好的js判断操作系统与浏览器代码分享
- javascript实现获取浏览器版本、操作系统类型
- php根据操作系统转换文件名大小写的方法
- JS获得浏览器版本和操作系统版本的例子
- Python中使用异常处理来判断运行的操作系统平台方法