LVM的创建,修改大小,删除以及彻底卸载的操作步骤

Stella981
• 阅读 941

首先解释一下几个关键词
pv: physical volume 物理卷,就是用物理磁盘组成的卷,要在物理磁盘上创建。
vg:volume group卷组,就是物理卷组成的卷组合,要在物理卷基础上创建。
lv:logical volume逻辑卷,可以理解为逻辑可动态分配的磁盘空间,要在卷组上创建。

所以lvm的创建顺序就是,物理磁盘分区(也可以不分区),在物理分区上创建pv,在pv上创建vg,在vg上创建lv,然后格式化lv挂载使用
ok,下面具体来操作一下逻辑卷的创建以及空间扩容和删除
我们使用的虚拟机sdb磁盘来分几个区做一下测试(一般可使用多个磁盘直接加入到卷组,这里我们使用物理磁盘的多个分区,操作方法相同)

01

[root@cnhejia ~]``# fdisk -l

02

 

03

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

04

255 heads, 63 sectors/track, 2610 cylinders

05

Units = cylinders of 16065 * 512 = 8225280 bytes

06

Sector size (logical/physical): 512 bytes / 512 bytes

07

I/O size (minimum/optimal): 512 bytes / 512 bytes

08

Disk identifier: 0x32d0a442

09

 

10

Device Boot Start End Blocks Id System

先将sdb分3个100M的分区出来

01

[root@cnhejia ~]``# fdisk /dev/sdb <<EOF

02

 

03

n

04

p

05

1

06

 

07

+100M

08

n

09

p

10

2

11

 

12

+100M

13

n

14

p

15

3

16

 

17

+100M

18

w

19

EOF

20

 

21

[root@cnhejia ~]``# fdisk -l

22

 

23

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

24

255 heads, 63 sectors/track, 2610 cylinders

25

Units = cylinders of 16065 * 512 = 8225280 bytes

26

Sector size (logical/physical): 512 bytes / 512 bytes

27

I/O size (minimum/optimal): 512 bytes / 512 bytes

28

Disk identifier: 0x32d0a442

29

 

30

Device Boot Start End Blocks Id System

31

/dev/sdb1 1 14 112423+ 83 Linu x

32

/dev/sdb2 15 28 112455 83 Linu x

33

/dev/sdb3 29 42 112455 83 Linu x

将sdb[1-3]转换为物理卷

1

[root@cnhejia ~]``# pvcreate /dev/sdb[1-3]

2

Physical volume "/dev/sdb1" successfully created

3

Physical volume "/dev/sdb2" successfully created

4

Physical volume "/dev/sdb3" successfully created

使用pvs查看目前的物理卷情况,都没有加入VG

1

[root@cnhejia ~]``# pvs

2

PV VG Fmt Attr PSize PFree

3

/dev/sdb1 lvm2 a-- 109.79m 109.79m

4

/dev/sdb2 lvm2 a-- 109.82m 109.82m

5

/dev/sdb3 lvm2 a-- 109.82m 109.82m

现在我们先将sdb1和sdb2加入一个卷组vgtest

01

[root@cnhejia ~]``# vgcreate vgtest /dev/sdb[1-2]

02

Volume group "vgtest" successfully created

03

[root@cnhejia ~]``# vgs

04

VG #PV #LV #SN Attr VSize VFree

05

VolGroup 1 2 0 wz--n- 19.51g 0

06

vgtest 2 0 0 wz--n- 216.00m 216.00m

07

[root@cnhejia ~]``# pvs

08

PV VG Fmt Attr PSize PFree

09

/dev/sda2 VolGroup lvm2 a-- 19.51g 0

10

/dev/sdb1 vgtest lvm2 a-- 108.00m 108.00m

11

/dev/sdb2 vgtest lvm2 a-- 108.00m 108.00m

12

/dev/sdb3 lvm2 a-- 109.82m 109.82m

13

[root@cnhejia ~]``#

卷组vgtest创建成功,并且将sdb1和sdb2加入了这个卷组,通过vgs可以看到卷组大小为216M

现在我们在卷组vgtest上创建一个名为lvtest的100M的逻辑卷,这样才能真正使用这个磁盘

1

[root@cnhejia ~]``# lvcreate -L 100M -n lvtest vgtest

2

Logical volume "lvtest" created

3

[root@cnhejia ~]``# lvs

4

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

5

lv_root VolGroup -wi-ao---- 17.57g

6

lv_swap VolGroup -wi-ao---- 1.94g

7

lvtest vgtest -wi-a----- 100.00m

这时候就可以对lvtest进行格式化使用了

01

[root@cnhejia ~]``# mkfs.ext4 /dev/vgtest/lvtest

02

或者

03

[root@cnhejia ~]``# mkfs.ext4 /dev/mapper/vgtest-lvtest

04

mapper下会生成卷组映射,等同于软连接一样,操作完全同步。

05

[root@cnhejia ~]``# mkfs.ext4 /dev/mapper/vgtest-lvtest ^C

06

[root@cnhejia ~]``# mount /dev/mapper/vgtest-lvtest /mnt/

07

[root@cnhejia ~]``# df -h

08

Filesystem Size Used Avail Use% Mounted on

09

/dev/mapper/VolGroup-lv_root 18G 3.6G 13G 22% /

10

tmpfs 495M 0 495M 0% /dev/shm

11

/dev/sda1 485M 70M 391M 16% /boot

12

/dev/mapper/vgtest-lvtest 97M 5.6M 87M 7% /mnt

目前已经成功挂载完成在物理卷sdb1和sdb2上创建的卷组vgtest上创建的100M大小的逻辑卷lvtest

如果这100M的mnt目录不够用怎么办?逻辑卷的好处就是动态无损扩容,使用lvextend增加空间然后使用resize2fs重新同步磁盘大小。操作方法如下:

01

[root@cnhejia ~]``# lvextend -L +50M /dev/mapper/vgtest-lvtest

02

Rounding size to boundary between physical extents: 52.00 MiB

03

Extending logical volume lvtest to 152.00 MiB

04

Logical volume lvtest successfully resized

05

[root@cnhejia ~]``# lvs

06

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

07

lv_root VolGroup -wi-ao---- 17.57g

08

lv_swap VolGroup -wi-ao---- 1.94g

09

lvtest vgtest -wi-ao---- 152.00m

10

[root@cnhejia ~]``# resize2fs /dev/mapper/vgtest-lvtest

11

resize2fs 1.41.12 (17-May-2010)

12

Filesystem at /dev/mapper/vgtest-lvtest is mounted on /mnt; on-line resizing required

13

old desc_blocks = 1, new_desc_blocks = 1

14

Performing an on-line resize of /dev/mapper/vgtest-lvtest to 155648 (1k) blocks.

15

The filesystem on /dev/mapper/vgtest-lvtest is now 155648 blocks long.

16

 

17

[root@cnhejia ~]``# df -h

18

Filesystem Size Used Avail Use% Mounted on

19

/dev/mapper/VolGroup-lv_root 18G 3.6G 13G 22% /

20

tmpfs 495M 0 495M 0% /dev/shm

21

/dev/sda1 485M 70M 391M 16% /boot

22

/dev/mapper/vgtest-lvtest 148M 5.6M 135M 4% /mnt

23

[root@cnhejia ~]``#

mnt目录已经成功变成150M了
如果想减少这个逻辑卷的空间,操作也很简单:

1

umount /mnt

2

//检测空间使用情况

3

[root@cnhejia ~]``# e2fsck -f /dev/mapper/vgtest-lvtest

4

//将逻辑卷调整为100M即可

5

[root@cnhejia ~]``# resize2fs /dev/mapper/vgtest-lvtest 100M

这时候如果两个物理卷200M都用光了怎么办?没关系,lvm也可以将新的磁盘加进来。现在我们就把sdb3加进来,操作方法如下:

01

[root@cnhejia ~]``# pvcreate /dev/sdb3

02

Physical volume "/dev/sdb3" successfully created

03

[root@cnhejia ~]``# vgextend vgtest /dev/sdb3

04

Volume group "vgtest" successfully extended

05

[root@cnhejia ~]``# vgdisplay

06

--- Volume group ---

07

VG Name vgtest

08

System ID

09

Format lvm2

10

Metadata Areas 3

11

Metadata Sequence No 4

12

VG Access read``/write

13

VG Status resizable

14

MAX LV 0

15

Cur LV 1

16

Open LV 1

17

Max PV 0

18

Cur PV 3

19

Act PV 3

20

VG Size 324.00 MiB

21

PE Size 4.00 MiB

22

Total PE 81

23

Alloc PE / Size 38 / 152.00 MiB

24

Free PE / Size 43 / 172.00 MiB

25

VG UUID Xh0P8e-FMPu-oA4G-nNP4-9Vcn-tiZN-szYlSQ

怎么样,vgtest这个卷组有300M空间了吧,需要的话可以都放到/mnt的挂载下。

——————————————————————————————
上述是创建和使用管理的一些介绍,如果某个分区/硬盘可能健康状态不好,要卸载或者移出或者更换怎么办?
先使用pvmove将看着不爽的物理卷数据转移,数据转移完成后然后使用vgreduce将看着不爽的物理卷从卷组移出,然后使用pvremove删除物理卷,这个磁盘就变成普普通通的磁盘了,爱修爱丢随便你;
假设现在sdb2这个分区(或者磁盘)坏了,要移除,但是数据不能丢,操作步骤如下:

1

[root@cnhejia ~]``# pvmove /dev/sdb2

2

/dev/sdb2: Moved: 18.5%

3

/dev/sdb2: Moved: 100.0%

4

 

5

[root@cnhejia ~]``# vgreduce vgtest /dev/sdb2

6

Removed "/dev/sdb2" from volume group "vgtest"

7

[root@cnhejia ~]``# pvremove /dev/sdb2

8

Labels on physical volume "/dev/sdb2" successfully wiped

至此sdb2这个分区和lvm已经没有关系了

一个VG卷组是可以创建多个LV逻辑卷的,如果有一个卷你不想要了直接执行lvremove即可

1

[root@cnhejia ~]``#lvremove /dev/mapper/vgtest/lvtest

如何删除整个系统的卷组,不再使用lvm?
需要数据先备份,不要数据直接操作,操作如下:

1

[root@cnhejia ~]``# vgremove vgtest

2

Do you really want to remove volume group "vgtest" containing 1 logical volumes? [y/n]: y

3

Do you really want to remove active logical volume lvtest? [y/n]: y

4

Logical volume "lvtest" successfully removed

5

Volume group "vgtest" successfully removed

这时候fdisk就不再能看到之前的卷组了,pvremove移出卷组即可,直接重分区格式化其实也可以。

注意:

如果磁盘添加到了vg中,并且vg是激活的,那么再去对磁盘分区表做修改的时候会失败,提示readonly。

先通过vgchange -a n vgname取消vg的激活状态再通过fdisk分区,分区后通过vgchange -ay vgname重新激活即可。

当然,激活状态去修改原有的磁盘分区表增加新的分区,重启后一般也能够正常生效。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Ubuntu的Linux逻辑卷管理
LVM(逻辑卷)管理系统可以将多个物理磁盘组装为一个大的逻辑磁盘进行使用,尤其是管理大文件时非常方便。LVM可以减少多个磁盘的部分空间闲置的情况,集中使用提高磁盘利用率。LVM的卷可以动态伸缩,方便使用。LVM由PV(物理卷)、VG(卷组)、LV(逻辑卷)组成,其中PV对应到物理磁盘的一个物理分区,LV相当于一个逻辑分区,VG建立起逻辑卷和物理卷之间的对
Stella981 Stella981
3年前
OpenStack块存储nova
对swift对象存储的内部原理和相关技术可以查找对象存储、一致性哈希等文章,新浪有几篇技术分享介绍的很好,推荐看一看。一、相关概念LVM存储常用术语物理存储介质(PhysicalMedia):物理存储设备,如磁盘或者磁盘上的分区,是存储系统的最底层实体。物理卷(PV,PhysicalVolume):硬盘分区或从逻
Stella981 Stella981
3年前
Linux磁盘和文件系统扩容彻底研究
1.物理卷:_LVM逻辑卷的底层物理存储单元是一个块设备,比如一个分区或整个磁盘。要在LVM逻辑卷中使用该设备,则必须将该设备初始化为物理卷(PV)。_2.卷组:物理卷合并为卷组(VG)。这样就创建了磁盘空间池,并可使用它分配逻辑卷。3.逻辑卷:逻辑卷管理会根据物理存储生成提取层,以便创建逻辑存储卷。这样就比直接使用物理存储在很
Stella981 Stella981
3年前
Linux磁盘管理:LVM逻辑卷的创建及使用
转载 http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/24/3096087.html详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理,包括LVM中最重要的四个基本点(PE、PV、VG以及LV),这篇随笔将会详细的讲解LVM逻辑卷的创建、使用以及删除.一、
Stella981 Stella981
3年前
MAN VGEXTEND
VGEXTEND(8)                                                       VGEXTEND(8)NAME/名称      vgextendaddphysicalvolumestoavolumegroup   vgextend将物理卷添加到卷组SYNOPSI
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这