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

一、基本概念:

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

保存并退出

2f804f7a408ae46b83db50d8f1a4cb20.png

使分区生效:

# 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

24abc5aa68e2be12b93992a0d9d31408.png

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的逻辑卷

c84babcdcfe95c55c259b2222f86fff3.png

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    //能正常显示文件内容

636b35a0cf52166b565ee1c591dc22ef.png

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

8a4adcd6086c4fef259cf6ffd58edcf6.png

备注:文件/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

b8617fcfcfa40fb37321228b3cc26a6c.png

vgtest1的大小增加了5G。

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

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

e0a9f205b1ba496e9425dd33dab7067b.png

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

6ef20efecbae38be08eb8ae6b28bb1b6.png

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

765b957fe161b6746e22446f84d1414b.png

866047a18169879ee2b7622c380dbbf1.png

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

七、缩减LV:

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

e6a92093fbca6bf7e476a132fc73aa7c.png

e7fb476b21fa806823348b3dcad42f8b.png

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

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

80a5bddaf50e73a3edb1f530ac0a4239.png

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

e20c83191dfceb212afdbb0cb897e091.png

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

36475bda67474f872ccd66b0bbeb536b.png

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

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

4e20a7b6d4eb2c7586bdd3892c65aa9e.png

137adb888836822e94d7703eb92a8f73.png

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

0d1e8dc0296dbd793c98d78d1af99e14.png

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

# pvmove /dev/sdb1 /dev/sdc1

f43a39c9a340712f442978949f3729c5.png

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

b04587cd76b19c41a30e5647bd93061c.png

/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

95ad9af247cad31af16a20e65593bd05.png

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

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

af85da2da6680ac172bde166034dc201.png

403091f31de963a7a1ca2d13210b4f62.png

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

十、删除VG:

1、删除vgtest2:# vgremove vgtest2

fe2c2f9e35bcafda6b2594a607ae9d08.png

vgtest2已经删除。

十一、删除PV:

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

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

bbc7e5e0e515b397f74eb8c7292533b5.png

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

0171ef38505e60674d4530183af17d41.png

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

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

99f3020a98f12d1a197d2290b21bf92d.png

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

6de0915ccde52946cff8a1e9ce9ead3e.png

十三、删除快照卷:

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

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

7aac27bb60cf481aeee6b9651bf0a438.png

984ca88a83aff1921811486ccf36e037.png

十四、其他常用操作:

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

0b9948f772e4f71bf007f12f459f9841.png

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

3d2b7887640b5378b69be6099e41c102.png

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

ec89967b4291d1638d5de22302270edd.png

# vgmerge keyso vgtest

1b8dbd73d365387c10d8df2017819c92.png

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值