通过最的学习,我加深了对LVM的理解,在这里,我将它写成博客,一是方便自己记忆,二是让Linux的入门学习者一起学习一下。

首先我们引入LVM的概念,并展开详细的说明,主要是近期学习的看法,我们先看一个图

我们将会提到的名词有:PV、VG、LV、PE

在图中,最下面的,我们可以理解为物理存储介质,硬盘或是分区

PV:称为物理卷,是LVM的基本存储块。

VG:称为卷组,我们可以看卷组是由物理卷组合而成的。

LV:称为逻辑卷,是从卷组中划分出来的。

PE:physical extent,我就称为物理块,它是LVM中的最小单元。

原理:LVM技术,就是将一个个物理存储介质,生成一个个物理卷,然后再将多个物理卷构成一个或多个卷组,最后,再从卷组中划分出一个个的逻辑卷,格式化之后,挂载使用。

通俗解释:如果大家没有接触过的话,我就这么解释一下,PV就是一桶一桶的水,VG就是一个大型的水库,LV则是大家按需从水库中取得需要的水,意味着大家把自己的水放在一个水库中,然后,大家按需去索取,而且还能从外面添加进水库中,其中的关键之处就是PE,相当一滴一滴的水,它是整个划分的关键,这样说,不知道大家有没有一些了解呢

下面,我就将通过部分例子来进一步说明LVM的原理,在这之前,我们先看看部分命令。

接下来,我们将在实验中一步步的解释这些命令的意思,让读者理解LVM的创建流程

实验环境是在虚拟机中进行的,我们有一个20G的硬盘,接下来,我们将它划分为3个5G的分区(最后还剩,我们就先不管了),划分分区用fdisk命令,硬盘为/dev/sdb,结果如下图所示:

注意事项,要将分区的系统格式改为LVM(fdisk中按t更改)

开始实验:

创建物理卷(PV)

1、先将/dev/sdb1、/dev/sdb2和/dev/sdb创建成物理卷(PV)

PV:创建物理卷的命令

PV的用法:pvcreate DEVICE

2、查看我们的物理卷(PV)

从上图,我们可以看出刚刚的三个分区已经被成功的创建成物理卷了

3、将我们的任一分区移除物理卷,然后再添加回来(添加用上面的pvcreate)

pvremove:移除分区或是物理介质

pvremove的用法:pvremove  DEVICE

4、我们的读者可能会提到,我们的pvdisplay呢,这也是查看物理卷的,但是,它返回的信息更详细

(以下的结果类似,就不一一解释了)

创建卷组(VG)

1、接下来,就是把刚刚创建的这些PV一起放到一个卷组(VG)中去

vgcreate:是用来创建卷组的命令

vgcreate的用法:vgcreate  VG_NAME  DEVICE

2、查看我们的VG情况,使用vgs命令

3、这样,我们的卷组就创建成功了,卷组就是像是一个PV的容器一样,既然是容器,应该就能改变它的容量,下面,我们就说说如何扩展和移除卷组中的物理卷

vgextend:扩展vg的命令

vgextend的用法:vgextend  VG_NAME DEVICE

vgreduce:移除VG中的卷组(PV)

vgreduce的用法:vgreduce VG_NAME   DEVICE

创建逻辑卷(LV)

1、LV就像是从容器里面取出的水,它可以使一个杯子的容量,也可以使一只碗的容量,但是,它一定不能超过VG这个容器里面的容量,即,逻辑边界不能大于物理边界,LV创建的方法如下:

lvcreate:这个命令是不是跟上面的两个create的相似啊,是的,它就是创建LV的

lvcreate的用法:lvcreate  -L #UNIT -n LV_NAME VG_NAME

假设我们要创建一个6G的逻辑卷,创建后用lvs命令查看

2、然后,我们要如何使用这个逻辑卷呢,我们先将其格式化,再进行挂载使用

步骤如下:

#mkdir /mylv
#mke2fs -t ext4 /dev/cshangvg/cshanglv
#mount /dev/cshangvg/shanglv /mylv

这样,我们的LV(逻辑卷)就能够被使用了

3、卷组可以扩展和移除,那我们的逻辑卷可以吗?答案是可以的。

注意:扩展逻辑卷时,它的逻辑边界不能大于物理边界

lvextend:扩展逻辑卷的大小

lvextend的用法: lvextend  -L #UNIT DEVICE_LV

我们先看看/mylv挂载时,它的大小:

然后进行扩展成7G大小,步骤就如下图所示:

然后,再次查看/mylv挂载的大小

从上面两次df命令,我们可以看到,逻辑卷的大小的确扩展了

由于逻辑卷的缩减是一个非常危险的事情,所以,大家操作时,一定要很谨慎

4、先卸载逻辑卷,然后,要进行强制检测

#umount  /mylv
#e2fsck  -f  /dev/cshangvg/cshanglv
#resize  /dev/cshangvg/cshanglv  #UNIT

5、lvreduce:缩减逻辑卷的命令

lvreduce的用法: lvreduce  -L #UNIT /dev/cshangvg/cshanglv

6、最后再把逻辑卷挂载上去,我们看看大小

可以看出,在这过程中,我们的逻辑卷从扩展到缩减的过程

创建快照卷

快照卷指的是对某个逻辑卷做快照,必须跟目录逻辑卷是在同一个卷组中的,无须指定卷组。

1、我们要查看逻辑卷是否正则被使用,如果有,则让其程序进程结束

#fuser -v /mylv
#如果有进程使用中,杀掉
#fuser -km  /mylv

2、为了验证,我们可以拷贝一个文件到/mylv中去,例如/etc/issue

3、创建快照卷

上图中有些参数要解释一番

-L:指定快照卷的大小

-n:快照卷的名称

-p r:表示只有读权限

-s:指定该逻辑卷为快照卷

4、然后,创建一个目录,挂载起来

#mkdir /mysnap
#mount /dev/cshangvg/cshang-snap

5、然后我们改变/mylv中的issue时,/mysnap中的issue不发生改变,拷贝文件进去时,是同样的效果,快照卷就很好的起到了备份作用。

总结:LVM的内容比较多,需要大家多多练习,这更是对我自己说的;对于一个服务器的存储大小的扩展有着很好的应用性,最后的快照卷对于备份也是一个很好的选择。

转载于:https://blog.51cto.com/cshang/1438982

Linux下的LVM创建以及Linux快照卷相关推荐

  1. linux 下的进程创建线程,Linux线程 之 线程 线程组 进程 轻量级进程(LWP)

    线程是有栈的,我们知道,普通的一个进程,它的栈空间是8M,我们可以通过ulmit -a查看: stack size (kbytes, -s) 8192 线程也不例外,线程也是需要栈空间的这句话是废话, ...

  2. linux下进程的创建代码,Linux下进程创建分析

    如何创建一个进程? 子进程拷贝父进程的代码和数据,进程拥有自己的独占资源(写时拷贝),父,子进程共享代码区,不共享数据区(私有化) 当使用pid_t fork(void)创建进程时,若创建成功,给父进 ...

  3. 《LINUX下动态链接库的创建与应用》

    大家都知道,在windows系统中有很多的动态链接库(以.dll为后缀的文档,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一部 ...

  4. linux lvm添加磁盘,Linux下添加磁盘创建lvm分区

    shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...

  5. linux下多线程的创建与等待详解 【转载】

    linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...

  6. linux cvs账户,在linux下为cvs创建用户

    在linux下为cvs创建用户 1.创建可以登陆cvs服务器的用户名和密码: #> su cvsroot #> vi /home/cvsroot/CVSROOT/passwd test1: ...

  7. linux下使用mdadm组软raid,Linux下使用mdadm创建和管理软raid

    Linux下使用mdadm创建和管理软raid 注:本次操作以RHEL4为例,但应该可以应用到其它大部分的distro上(guess). mdadm的几个常用参数 -C 创建Raid,后面跟参数,代表 ...

  8. linux下剪切文件怎么恢复,linux下文件夹的创建、复制、剪切、重命名、清空和删除命令...

    在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinozzz 一.目录创建 在/home/wwwroot目录下新建一个sinozzz123的 ...

  9. linux新建图片,Fedora 下的图像创建程序 | Linux 中国

    原标题:Fedora 下的图像创建程序 | Linux 中国 Fedora 有很多程序可以帮助你的创造力.从数字绘图.矢量到像素艺术,每个人都可以在这个周末发挥创意. -- Ryan Lerch 致谢 ...

最新文章

  1. iOS端Socket(二)ProtocolBuffer使用
  2. 大学计算机数学基础2,大学计算机基础(第2版)
  3. 使用pycharm运行调试scrapy
  4. freenas安装使用和弃坑
  5. Html5 postMessage
  6. android 组合属性动画,Android属性动画组合(sequence串行、together并行)
  7. spring boot 邮件端口_springboot集成qq邮件发送功能
  8. (转)理解SQLSERVER中的排序规则
  9. 百度Hi 2.3 Beta1 增量升级至内部版本号 2.3.10.12
  10. 软件项目版本号命名规则
  11. mongodb driver c#语法
  12. 用C语言实现俄罗斯方块游戏
  13. 一些音视频相关概念学习笔记
  14. android smb windows,Android使用SMB协议共享电脑内文件方法
  15. vue中使用rrweb实现页面回放功能
  16. 手机上怎么把图片转成PDF?操作起来很简单
  17. html5中扇形的绘制
  18. 微信视频号怎么运营?实操分享我的30个经验
  19. 【乌鸦算法】基于多段扰动共享型乌鸦算法求解单目标优化问题含Matlab代码
  20. 一个剪切shader 液体水

热门文章

  1. uni-app在iOS移动端页面上下滑动关闭(页面回弹问题,非刷新)
  2. Swift3.0语言教程获得一个公共的前缀
  3. Xamarin.Android编译CPU类型选择方式
  4. oss客户端工具_阿里云服务器ECS上使用ossfs工具挂载阿里云OSS存储
  5. oracle表增加自增主键,Oracle中给已存在的表增加自增主键
  6. 简述python程序结构_python架构的概念讲解
  7. winform是如何自动弹出软键盘_自媒体广告如何创造出更大的价值?
  8. win7怎么启动对远程服务器的登陆,深度Win7旗舰版如何开启telnet服务使用远程登录...
  9. 全国计算机二级计基础题第十五套,计算机等级考试:二级VFP机试第15套
  10. 推荐7本EEG领域值得阅读的书籍