一、基本概念:

LVM(Logical Volume Manager):首先是基于实际的物理磁盘创建LVM分区,并创建物理卷PV。一个或多个物理卷可以用来创建卷组VG。然后基于卷组可以创建逻辑卷LV。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统中挂载和使用。

物理长度PE(PhysicalExtent):物理长度是将物理卷组合为卷组后,所划分的最小存储单位,即逻辑意义上磁盘的最小存储单位。LVM默认PE大小为4MB。

物理卷PV(PhysicalVolume):物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。

卷组VG(VolumeGroup):卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量以及个数。

逻辑卷LV(LogicalVolume):逻辑卷就是LVM逻辑意义上的分区,可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。

二、演示环境:

新增一块20G的硬盘,分区/dev/sdb1,大小10G,分区ID为8e。

常用fdisk交互式指令说明

指令

说明

d

删除分区

l

显示分区类型

m

显示帮助菜单

n

新建分区

p

显示分区表信息

q

不保存退出

t

修改分区ID,可以通过l查看ID

w

保存并退出

使分区生效:

# partx -a /dev/sdb

# cat /proc/partitions

# fdisk -l /dev/sdb

三、PV、VG和LV中涉及到的常用命令:

名称

物理卷PV

卷组VG

逻辑卷LV

创建

pvcreate

vgcreate

lvcreate

显示

pvs  | pvscan | pvdisplay

vgs  | vgscan | vgdisplay

lvs  | lvscan | lvdisplay

扩容

vgextend

lvextend  | lvresize

缩减

vgreduce

lvreduce  | lvresize

删除

pvremove

vgremove

lvremove

创建LV:

1、将物理磁盘初始化为物理卷PV:# pvcreate /dev/sdb1

2、创建卷组VG,将PV加入到VG中:# vgcreate vgtest1 /dev/sdb1

3、基于VG创建逻辑卷LV:# lvcreate [选项]卷组名

选项:

-l:指定使用多少个VG中的LE创建LV,[%{VG|PVS|FREE}]

-L:指定LV大小

-n:指定LV名称

-p:指定权限,r为只读,rw为读写

# lvcreate -n lvtest1 -L 5G vgtest1或者# lvcreate -n lvtest1 -l 50%FREE vgtest1

//上述两种方法都是创建大小为5G,名为lvtest1的逻辑卷

4、为逻辑卷创建文件系统:

# mke2fs -t ext4 /dev/vgtest1/lvtest1或者# mke2fs -t ext4 /dev/mapper/vgtest1-lvtest1

5、创建挂载点,挂载LV:

# mkdir -pv /mnt/lvtest1

# mount /dev/vgtest1/lvtest1 /mnt/lvtest1

6、创建测试数据:

# cd /mnt/lvtest1

# cp /etc/fstab .

# cp /etc/rc.sysinit .

# dd if=/dev/zero of=test bs=1M count=2048    //创建一个大小为2G的测试数据test

# cat fstab        //能正常显示文件内容

# cat rc.sysinit    //能正常显示文件内容

7、实现开机自动挂载:

# vim /etc/fstab  -->  /dev/vgtest1/lvtest1  /mnt/lvtest1  ext4defaults  0  0

# mount-a

# mount  -->  /dev/mapper/vgtest1-lvtest1 on /mnt/lvtest1type ext4 (rw)

# cat /etc/mtab  -->  /dev/mapper/vgtest1-lvtest1 /mnt/lvtest1 ext4rw 0 0

备注:文件/etc/fstab和/etc/mtab的区别

/etc/fstab:存放的是系统中的文件系统信息,是系统准备装载的。

/etc/mtab:存放的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等。

五、扩容VG:

1、将之前/dev/sdb中再分出一个分区/dev/sdb2,大小为5G,分区ID为8e:# fdisk /dev/sdb

2、将物理磁盘初始化为物理卷PV:# pvcreate /dev/sdb2

3、将PV添加到指定VG中:# vgextend vgtest1 /dev/sdb2

vgtest1的大小增加了5G。

六、扩容LV(可在线扩容,无需卸载LV:

1、确保VG中有足够的可用空间供LV扩容,将lvtest1扩容5G。

2、扩容物理边界,格式:# lvextend [选项] /dev/卷组名/逻辑卷名

选项:

-l:指定使用多少个VG中的LE,[%{VG|LV|PVS|FREE|ORIGIN}]

-L:指定LV大小

# lvextend -L 10G /dev/vgtest1/lvtest1或者

# lvextend -L +5G /dev/vgtest1/lvtest1或者

# lvextend -l +50%FREE /dev/vgtest1/lvtest1

//上述三种方法都是将lvtest1扩容5G,大小为10G

3、扩容文件系统:# resize2fs /dev/vgtest1/lvtest1

4、之前/mnt/lvtest1目录中的数据仍然能正常访问。

vgtest1的可用大小减少了5G,lvtest1的大小增加了5G。

七、缩减LV:

1、确保缩减后LV的大小要比存储在LV中数据的总和要大,将lvtest1缩减至8G。

2、卸载逻辑卷lvtest1:# umount /mnt/lvtest1

3、强制检测文件系统:# e2fsck -f /dev/vgtest1/lvtest1

4、缩减文件系统:# resize2fs /dev/vgtest1/lvtest1 8G

5、缩减物理边界:# lvreduce -L 8G /dev/vgtest1/lvtest1

6、挂载逻辑卷lvtest1使用:# mount /dev/vgtest1/lvtest1 /mnt/lvtest1

7、之前/mnt/lvtest1目录中的数据仍然能正常访问。

PV中的/dev/sdb1的可用大小增加了2G,vgtest1的可用大小增加了2G,lvtest1的大小减少了2G。

八、缩减VG:

1、新增一块大小为20G的磁盘,分区/dev/sdc1,大小10G,分区ID为8e,并初始化为PV,加入vgtest1中:

# fdisk /dev/sdc

# pvcreate /dev/sdc1

# vgextend vgtest1 /dev/sdc1

2、将/dev/sdb1上的所有PV移动至/dev/sdc1中,然后删除/dev/sdb1,从而达到缩减VG的目的:

# pvmove /dev/sdb1 /dev/sdc1

3、从卷组vgtest1中删除/dev/sdb1:# vgreduce vgtest1 /dev/sdb1

/dev/sdb1中的PV已经全部移动至/dev/sdc1中,vgtest1的大小也减少了10G。/dev/sdb1可以删除也可以加入别的VG中。

4、之前/mnt/lvtest1目录中的数据仍然能正常访问。

九、删除LV:

1、将上述的/dev/sdb1加入到新卷组vgtest2中,并创建lvtest2:

# vgcreate vgtest2 /dev/sdb1

# lvcreate -n lvtest2 -l 100%FREE vgtest2

# mke2fs -t ext4 /dev/vgtest2/lvtest2

# mkdir -pv /mnt/lvtest2

# mount /dev/vgtest2/lvtest2 /mnt/lvtest2

2、卸载lvtest2:# umount /mnt/lvtest2

3、删除lvtest2:# lvremove /dev/vgtest2/lvtest2

lvtest2已被删除,vgtest2可用大小为10G。

十、删除VG:

1、删除vgtest2:# vgremove vgtest2

vgtest2已经删除。

十一、删除PV:

1、删除/dev/sdb1:# pvremove /dev/sdb1

2、使用fdisk命令将无用的分区删除,或者将其分区ID从8e修改为83。

PV中的/dev/sdb1已经删除。

十二、创建快照卷:

1、为lvtest1创建大小为5G的快照卷lvtest1-snap:

# lvcreate -s-L 5G -n lvtest1-snap -p r /dev/vgtest1/lvtest1      //-s:创建快照卷,-p r:表示属性为只读

2、创建快照卷挂载点,挂载快照卷:

# mkdir -pv /mnt/snap

# mount /dev/vgtest1/lvtest1-snap /mnt/snap

备注:快照卷是逻辑卷的一种,通常为只读。快照卷与原卷在同一个卷组中,因此创建快照卷之前要确保原卷所在的卷组中有足够空间可用。快照卷无须与原卷一样大,其大小取决于快照卷的存活时长内原卷的数据变化量。

3、查看lvtest1和lvtest1-snap中的内容:

创建快照以后,快照之后所修改的数据,通过快照卷是访问不到的,因为它保存的是过去某一时刻的状态,可以备份或复制该时刻的数据。

十三、删除快照卷:

1、卸载快照卷:# umount /mnt/snap

2、删除快照卷:# lvremove /dev/vgtest1/lvtest1-snap

十四、其他常用操作:

1、重命名lvtest1为marion:# lvrename vgtest1 lvtest1 marion

2、重命名vgtest1为keyso:# vgrename vgtest1 keyso

3、合并卷组:创建一个大小为10G的新卷组vgtest,将vgtest合并到keyso中:

# vgmerge keyso vgtest

linux创建lvm分区命令,CentOS下LVM的创建与使用相关推荐

  1. linux parted 批量分区,Linux的parted分区命令用法是什么

    Linux的parted分区命令用法:1.交互式,手动按序交互式的创建:2.非交互式,可将命令行写在脚本中,运行脚本实现一键创建:适用于远程批量管理多台主机的场景. 本文环境:windows7系统.L ...

  2. linux中磁盘分区命令是什么,linux中创建磁盘分区的命令是什么

    linux中创建磁盘分区的命令是fdisk.具体方法是:1.进入root,查看所有磁盘的分区情况:2.执行命令[fdisk /dev/sdc],对sdc磁盘进行分区:3.依次输入n.p创建主分区即可. ...

  3. linux yum安装 rpmbuild,Redhat/Centos下rpmbuild命令从spec文件或者tar包建立rpm

    rpmbuild是用来指示转换的源码不定编译成二进制文件的包. 二.Redhat/Centos下rpmbuild命令目录 /usr/src/redhat --BUILD #编译之前,如解压包后存放的路 ...

  4. linux查看磁盘分区命令,Linux下查看磁盘分区命令详解

    计算机用户,日复一日在磁盘中存储.移动.删除各类文件.当然会关心磁盘空间的使用情况.在 Linux 中有一个 Shell 可以让用户随时随地对磁盘空间的使用情况一清二楚.它就是"df&quo ...

  5. linux设置网口物理地址吗,centos下网口vlan设置

    如果要使vlan之间进行通信,我们通常会使用三层交换机或者路由器子接口模式来做.Linux上关于VLAN与Cisco交换机中继连接,也是可以实现其互相之间的通信的. 环境:RHEL 5.2 最小化安装 ...

  6. linux格式化指定分区命令,linux格式化硬盘(linux格式化分区命令详解)

    磁盘虽然分好区了,但是还不能用,还需要在这每一个分区上格局化,所谓格局化,其实便是安装文件体系,Windows下的文件体系有Fat32.NTFS,CentOS运用的文件体系为ext,之前centOS5 ...

  7. linux防火墙添加udp 123,centos下的ntp的安装和配置 (注意 防火牆的udp 123要打開,不然會不能用)...

    centos下的ntp的安装和配置安装 yum install ntp 配置文件 /etc/ntp.conf restrict default kod nomodify notrap nopeer n ...

  8. linux 查看efi分区命令,一次修复linux的efi引导的集中方法总结记录

    起因:EFI分区被删除导致引导问题. 症状: 通过安装其它系统的方式.正好想试试其它的linux发行版,就在另一个分区装了deepin,完成后硬盘没有发现UEFI引导:然后又尝试装了openSUSE, ...

  9. linux查看cpu核数命令,centos查看CPU以及核数命令

    1.cd - :返回上次所在的目录 2.查看系统版本 cat /etc/redhat-release 3.查看linux内核版本 1)cat /proc/version 2) uname -a 3) ...

  10. linux nginx rpm 安装配置,Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

最新文章

  1. 专用计算机教室设备,计算机教室专用规章制度
  2. tensorflow 之 ValuError: At least two variables have the same name: bottom/bn1/beta_power0 等
  3. 前端跨域通信的几种方式
  4. 领会CSS,实际中的研究
  5. 多目标进化优化 郑金华pdf_简化审批流程 金华首张以“告知承诺制”审批的医疗器械经营许可证发放...
  6. 计算机主板的1117标识,AMS1117封装尺寸图_AMS1117引脚图及功能 - 全文
  7. python装饰器解析请求参数_我如何在装饰器中获得Flask可选的URL参数?
  8. 第一个十年,我从教师转行为web程序员,下一个十年呢?
  9. ckplayer插件播放m3u8视频
  10. 计算机实验室安全知识心得体会,实验室安全知识宣传
  11. 数据仓库、LODP、OLAP
  12. 中央集成管理系统服务器,一种用于PCB生产设备的CIM集成中央管理系统
  13. swot分析法案例_项目型销售案例剖析的五大步骤
  14. 这个数据库神器真是太diao了
  15. [转]一个人生活,如何摆脱孤独提升幸福感?
  16. 事关健康、教育和工资 | 1月起,这些事有变化 |
  17. 数据结构:设线性表中每个元素有两个数据项k1和k2,现对线性表按一下规则进行排序:先看数据项k1,k1值小的元素在前,大的在后;在k1值相同的情况下,再看k2,k2值小的在前,大的在后。满足这种要求的
  18. 报告:ICO项目2019年第一季度融资总额仅1.18亿美金,相较于2018年同比下降逾58倍...
  19. 最小网元设计【阶段零】
  20. Three.js加载外部模型骨骼动画

热门文章

  1. html图片显示不出来
  2. 照片变老html源码,变老教程,利用ps把年轻人变成老年人效果
  3. 数字人民币隐私与个人信息保护
  4. 计算机网络的高可用性和分布式处理
  5. spark scala求PV,UV,topN
  6. 一个Android沉浸式状态栏上的黑科技
  7. flutter无法抓包
  8. 模块划分-1 功能划分
  9. [生存志] 第99节 白起奋威屠百万
  10. “新元宇宙”奇科幻小说原创作品《地球人奇游天球记》第四回飞离地球