虚拟机增加磁盘空间后lv扩容详细流程,linux扩容根目录详细流程【openstack和VMware虚拟机方法同理】,2024尾声祝福送上。

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

  • 我先给第一快盘给扩成200g,然后新增一个300g的盘把。

在这里插入图片描述

扩容根[/]目录


  • 注:我在这呢,把说明中的1和2都给做了

在这里插入图片描述

  • 我上面已经给硬盘扩成200g了,lsblk可以看到sda已经变成200了

并且可以看到/目录对应的是centos-root,所以我们只需要扩centos-root这个lv就是扩根目录了

[root@lv-test ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 200G 0 disk

├─sda1 8:1 0 1G 0 part /boot

└─sda2 8:2 0 99G 0 part

├─centos-root 253:0 0 50G 0 lvm /

├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

└─centos-home 253:2 0 41.1G 0 lvm /home

sdb 8:16 0 300G 0 disk

sr0 11:0 1 4.3G 0 rom

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 50.00g

swap centos -wi-ao---- <7.88g

  • lv名称锊清楚了,就开始搞吧

做扇区

  • 现在可以看到,sda有214G,但实际只用了100g

[root@lv-test ~]# fdisk -l /dev/sda

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x00017d4d

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 209715199 103808000 8e Linux LVM

[root@lv-test ~]#

  • 因为我是要把剩下空间全部给/的,所以我直接把全部剩下空间都划成一个扇区吧

注:需要吧格式给改成linux lvm哦【参数是8e】

[root@lv-test ~]# fdisk /dev/sda

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): p

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x00017d4d

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 209715199 103808000 8e Linux LVM

Command (m for help): n

Partition type:

p primary (2 primary, 0 extended, 2 free)

e extended

Select (default p): p

Partition number (3,4, default 3):

First sector (209715200-419430399, default 209715200):

Using default value 209715200

Last sector, +sectors or +size{K,M,G} (209715200-419430399, default 419430399):

Using default value 419430399

Partition 3 of type Linux and of size 100 GiB is set

Command (m for help): p

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x00017d4d

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 209715199 103808000 8e Linux LVM

/dev/sda3 209715200 419430399 104857600 83 Linux

Command (m for help): t

Partition number (1-3, default 3): 3

Hex code (type L to list all codes): 8e

Changed type of partition ‘Linux’ to ‘Linux LVM’

Command (m for help): p

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x00017d4d

Device Boot Start End Blocks Id System

/dev/sda1 * 2048 2099199 1048576 83 Linux

/dev/sda2 2099200 209715199 103808000 8e Linux LVM

/dev/sda3 209715200 419430399 104857600 8e Linux LVM

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@lv-test ~]#

刷新

[root@lv-test ~]# partprobe

Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.

[root@lv-test ~]#

可以看到sda3的100g空间了

[root@lv-test ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 200G 0 disk

├─sda1 8:1 0 1G 0 part /boot

├─sda2 8:2 0 99G 0 part

│ ├─centos-root 253:0 0 50G 0 lvm /

│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

│ └─centos-home 253:2 0 41.1G 0 lvm /home

└─sda3 8:3 0 100G 0 part

sdb 8:16 0 300G 0 disk

sr0 11:0 1 4.3G 0 rom

[root@lv-test ~]#

增加pv空间

  • 现在的pv信息

注:pv实际上都是新增,而不是把空间加到某个已有vp上

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 4.00m

[root@lv-test ~]#

  • 现在开始吧我们上面的创建的sda3的100g创成pv

很简单的,都不需要命名,直接pvcreate即可

[root@lv-test ~]# lsblk | grep sda3

└─sda3 8:3 0 100G 0 part

[root@lv-test ~]# pvcreate /dev/sda3

Physical volume “/dev/sda3” successfully created.

[root@lv-test ~]#

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 4.00m

/dev/sda3 lvm2 — 100.00g 100.00g

[root@lv-test ~]#

[root@lv-test ~]# pvscan

PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free]

PV /dev/sda3 lvm2 [100.00 GiB]

Total: 2 [<199.00 GiB] / in use: 1 [<99.00 GiB] / in no VG: 1 [100.00 GiB]

[root@lv-test ~]#

增加vg空间

  • 现有vg信息

注:增加vg的时候就需要注意了,如果有多个vg,得确定最终扩容lv所属vg是什么,如:现在扩容的 根目录是在这个 centos的vg下的【因为根目录lv的vg是centos所以我们增加容量必须得增加到这个centos的vg上才行】。

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 1 3 0 wz–n- <99.00g 4.00m

[root@lv-test ~]#

lvs可以看到需要扩容的vg名称

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 50.00g

swap centos -wi-ao---- <7.88g

[root@lv-test ~]#

  • 开始把上面100g的lv空间加到这个centos上

可以看到vg已经变成198g,并且可用是100g了

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 1 3 0 wz–n- <99.00g 4.00m

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 4.00m

/dev/sda3 lvm2 — 100.00g 100.00g

[root@lv-test ~]#

[root@lv-test ~]# vgextend centos /dev/sda3

Volume group “centos” successfully extended

[root@lv-test ~]#

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 100.00g

[root@lv-test ~]#

增加lv空间

  • 扩容前根目录的lv和df看到的信息都是50G,我们需要扩100g,那么最终根会为150G才对

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 50.00g

swap centos -wi-ao---- <7.88g

[root@lv-test ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 50G 1.1G 49G 3% /

devtmpfs 3.8G 0 3.8G 0% /dev

tmpfs 3.9G 0 3.9G 0% /dev/shm

tmpfs 3.9G 12M 3.8G 1% /run

tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup

/dev/sda1 1014M 146M 869M 15% /boot

/dev/mapper/centos-home 42G 33M 42G 1% /home

tmpfs 781M 0 781M 0% /run/user/0

[root@lv-test ~]#

  • 开始扩

可以看到扩容后root信息已经变成150G了

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 50.00g

swap centos -wi-ao---- <7.88g

[root@lv-test ~]#

不知道lv名称格式的,可以用lvdisplay 查看详细路径

[root@lv-test ~]# lvextend -L +100G /dev/centos/root

Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 150.00 GiB (38400 extents).

Logical volume centos/root successfully resized.

[root@lv-test ~]#

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

[root@lv-test ~]#

  • 现在df呢,是看不到150g空间的,需要刷新以后才能看到

刷新之前呢,需要先看这个是啥格式的,如我的根是xfs格式的,那么我就需要用xfs的方式来刷新

[root@lv-test ~]# df -Th

Filesystem Type Size Used Avail Use% Mounted on

/dev/mapper/centos-root xfs 50G 1.1G 49G 3% /

devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev

tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm

tmpfs tmpfs 3.9G 12M 3.8G 1% /run

tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup

/dev/sda1 xfs 1014M 146M 869M 15% /boot

/dev/mapper/centos-home xfs 42G 33M 42G 1% /home

tmpfs tmpfs 781M 0 781M 0% /run/user/0

[root@lv-test ~]#

xfs的刷新,ext4不能用

一般是用挂载目录作为刷新地址,所以我直接用 /

[root@lv-test ~]# xfs_growfs /

meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=13107200, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=6400, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

data blocks changed from 13107200 to 39321600

刷新后就可以看到/目录空间已经增加了

[root@lv-test ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 150G 1.1G 149G 1% /

devtmpfs 3.8G 0 3.8G 0% /dev

tmpfs 3.9G 0 3.9G 0% /dev/shm

tmpfs 3.9G 12M 3.8G 1% /run

tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup

/dev/sda1 1014M 146M 869M 15% /boot

/dev/mapper/centos-home 42G 33M 42G 1% /home

tmpfs 781M 0 781M 0% /run/user/0

[root@lv-test ~]#

扩容后信息一览和说明

  • 其中就pv能看到多了一个空间罢了,其他基本看不出啥

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

[root@lv-test ~]#

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

[root@lv-test ~]#

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

[root@lv-test ~]#

  • lsblk的话就能看到很多东西了,可以看到sda2下面的centos-root和sda3下面同样有一个centos-root,这2个信息是一摸一样的,别慌这是正常的,表示 centos-root是由 sda2和sda3的空间组成的一个总容量为150G【这时候可以看到sda3有100g,所以可以得知sda2中用了50g】

[root@lv-test ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 200G 0 disk

├─sda1 8:1 0 1G 0 part /boot

├─sda2 8:2 0 99G 0 part

│ ├─centos-root 253:0 0 150G 0 lvm /

│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

│ └─centos-home 253:2 0 41.1G 0 lvm /home

└─sda3 8:3 0 100G 0 part

└─centos-root 253:0 0 150G 0 lvm /

sdb 8:16 0 300G 0 disk

sr0 11:0 1 4.3G 0 rom

[root@lv-test ~]#

新增一块硬盘,把容量加到固定的vg和lv上


做扇区

  • 做扇区的意义其实还是挺重要的,比如我现在有一个300g的新硬盘,我这次只想用100g,把100g的空间加到某个lv上,剩下的200g先不用。

然后后面200g想用的时候再随时做扇区,这样有规划的使用是不是正规的多?【其实最主要的是如果想把空间增加到不同的vg上,就必须这么做】

如果只有一个vg,那么我们直接把这300g做成一个扇区也无所谓,300g全部划到vg上。lv用多少取多少,只是只能在这一个vg上做罢了,不能跨vg使用这300g容量

  • 我这呢准备用2个vg来做实验,方便更能理解vg,所以我扇区先做2个100g的,剩余100g我后面做其他实验用。

现在没有扇区的

[root@lv-test ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

[root@lv-test ~]#

开始增加2个100g空间

[root@lv-test ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x359bff9f.

Command (m for help): n

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-629145599, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): +100G

Partition 1 of type Linux and of size 100 GiB is set

Command (m for help): p

Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x359bff9f

Device Boot Start End Blocks Id System

/dev/sdb1 2048 209717247 104857600 83 Linux

Command (m for help): n

Partition type:

p primary (1 primary, 0 extended, 3 free)

e extended

Select (default p): p

Partition number (2-4, default 2): 2

First sector (209717248-629145599, default 209717248):

Using default value 209717248

Last sector, +sectors or +size{K,M,G} (209717248-629145599, default 629145599): +100G

Partition 2 of type Linux and of size 100 GiB is set

Command (m for help): p

Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x359bff9f

Device Boot Start End Blocks Id System

/dev/sdb1 2048 209717247 104857600 83 Linux

/dev/sdb2 209717248 419432447 104857600 83 Linux

Command (m for help): t

Partition number (1,2, default 2): 1

Hex code (type L to list all codes): 8e

Changed type of partition ‘Linux’ to ‘Linux LVM’

Command (m for help): t

Partition number (1,2, default 2): 2

Hex code (type L to list all codes): 8e

Changed type of partition ‘Linux’ to ‘Linux LVM’

Command (m for help): p

Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x359bff9f

Device Boot Start End Blocks Id System

/dev/sdb1 2048 209717247 104857600 8e Linux LVM

/dev/sdb2 209717248 419432447 104857600 8e Linux LVM

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@lv-test ~]#

可以看到已经有2个100g空间了,还剩100g

[root@lv-test ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 200G 0 disk

├─sda1 8:1 0 1G 0 part /boot

├─sda2 8:2 0 99G 0 part

│ ├─centos-root 253:0 0 150G 0 lvm /

│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

│ └─centos-home 253:2 0 41.1G 0 lvm /home

└─sda3 8:3 0 100G 0 part

└─centos-root 253:0 0 150G 0 lvm /

sdb 8:16 0 300G 0 disk

├─sdb1 8:17 0 100G 0 part

└─sdb2 8:18 0 100G 0 part

sr0 11:0 1 4.3G 0 rom

[root@lv-test ~]#

增加pv空间

  • 现在的pv信息

注:pv实际上都是新增,而不是把空间加到某个已有vp上

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

[root@lv-test ~]#

  • 现在开始吧我们上面的创建的sdb1和sdb2的100g创成pv

很简单的,都不需要命名,直接pvcreate即可

[root@lv-test ~]# lsblk | grep sdb

sdb 8:16 0 300G 0 disk

├─sdb1 8:17 0 100G 0 part

└─sdb2 8:18 0 100G 0 part

[root@lv-test ~]#

[root@lv-test ~]# pvcreate /dev/sdb1

Physical volume “/dev/sdb1” successfully created.

[root@lv-test ~]# pvcreate /dev/sdb2

Physical volume “/dev/sdb2” successfully created.

[root@lv-test ~]#

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 lvm2 — 100.00g 100.00g

/dev/sdb2 lvm2 — 100.00g 100.00g

[root@lv-test ~]# lsblk | grep sdb

sdb 8:16 0 300G 0 disk

├─sdb1 8:17 0 100G 0 part

└─sdb2 8:18 0 100G 0 part

[root@lv-test ~]#

创建vg和lv【测试用,必看】

  • 注意啊,因为我系统只有一个默认的centos的vg,我现在新建一个vg,是为了后面测试说明啊,如果你已有vg和lv,跳过创建,看下面需要扩的挂载目录信息

  • 因为现在只有一个系统默认vg,我新建一个vg吧

可以看到,上面创建的2个pv此时是没有绑定vg的,我在这创建一个vg绑定到/sev/sdb1上,此时再次查看pv,可以看到/dev/sdb1的这个pv自动给绑定上我刚创建的vg了

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 lvm2 — 100.00g 100.00g

/dev/sdb2 lvm2 — 100.00g 100.00g

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

[root@lv-test ~]#

[root@lv-test ~]# vgcreate vg-test /dev/sdb1

Volume group “vg-test” successfully created

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 1 0 0 wz–n- <100.00g <100.00g

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 vg-test lvm2 a-- <100.00g <100.00g

/dev/sdb2 lvm2 — 100.00g 100.00g

[root@lv-test ~]#

  • 然后我们再创建一个lv

#创建前

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 1 0 0 wz–n- <100.00g <100.00g

[root@lv-test ~]#

[root@lv-test ~]# lvcreate -l 100%free -n lv-test vg-test

Logical volume “lv-test” created.

[root@lv-test ~]#

#可以看到,最下面新增了一个lv,vg名称和上面的不一样哦

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

lv-test vg-test -wi-a----- <100.00g

[root@lv-test ~]#

  • 格式化这个lv并挂载到任意目录

[root@lv-test ~]# mkfs.xfs /dev/vg-test/lv-test

meta-data=/dev/vg-test/lv-test isize=512 agcount=4, agsize=6553344 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=26213376, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal log bsize=4096 blocks=12799, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

[root@lv-test ~]#

[root@lv-test ~]# mkdir /date-test

[root@lv-test ~]# mount /dev/vg-test/lv-test /date-test/

[root@lv-test ~]#

[root@lv-test ~]# df -h |tail -n 1

/dev/mapper/vg–test-lv–test 100G 33M 100G 1% /date-test

[root@lv-test ~]#

模拟这个lv是在使用的,所以我们随便写点内容进去吧

[root@lv-test ~]# cd /date-test/

[root@lv-test date-test]# ls

[root@lv-test date-test]#

[root@lv-test date-test]# touch ccx{1…66}

[root@lv-test date-test]# ls

ccx1 ccx15 ccx20 ccx26 ccx31 ccx37 ccx42 ccx48 ccx53 ccx59 ccx64

ccx10 ccx16 ccx21 ccx27 ccx32 ccx38 ccx43 ccx49 ccx54 ccx6 ccx65

ccx11 ccx17 ccx22 ccx28 ccx33 ccx39 ccx44 ccx5 ccx55 ccx60 ccx66

ccx12 ccx18 ccx23 ccx29 ccx34 ccx4 ccx45 ccx50 ccx56 ccx61 ccx7

ccx13 ccx19 ccx24 ccx3 ccx35 ccx40 ccx46 ccx51 ccx57 ccx62 ccx8

ccx14 ccx2 ccx25 ccx30 ccx36 ccx41 ccx47 ccx52 ccx58 ccx63 ccx9

[root@lv-test date-test]#

  • 假设我们现在需要扩的目录是/date-test,可以看到该目录对应的是vg--test-lv--test,所以,最终我们需要扩的是vg–test-lv–test这个lv

[root@lv-test date-test]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 200G 0 disk

├─sda1 8:1 0 1G 0 part /boot

├─sda2 8:2 0 99G 0 part

│ ├─centos-root 253:0 0 150G 0 lvm /

│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

│ └─centos-home 253:2 0 41.1G 0 lvm /home

└─sda3 8:3 0 100G 0 part

└─centos-root 253:0 0 150G 0 lvm /

sdb 8:16 0 300G 0 disk

├─sdb1 8:17 0 100G 0 part

│ └─vg–test-lv–test 253:3 0 100G 0 lvm /date-test

└─sdb2 8:18 0 100G 0 part

sr0 11:0 1 4.3G 0 rom

[root@lv-test date-test]#

增加vg空间

  • 现有vg信息

[root@lv-test date-test]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 1 1 0 wz–n- <100.00g 0

[root@lv-test date-test]#

  • 增加vg空间

注:增加vg的时候就需要注意了,如果有多个vg,得确定最终扩容lv所属vg是什么,如,我现在要扩的是lv-test,这个lv是属于vg-test的,所以我们需要把空间扩到vg-test上

[root@lv-test date-test]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 vg-test lvm2 a-- <100.00g 0

/dev/sdb2 lvm2 — 100.00g 100.00g

[root@lv-test date-test]# vgextend vg-test /dev/sdb2

Volume group “vg-test” successfully extended

[root@lv-test date-test]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 2 1 0 wz–n- 199.99g <100.00g

[root@lv-test date-test]#

增加lv空间

  • 因为我们需要扩容的目录是/date-test,现在是100G,我们扩60g吧,那么最终/date-test为160g才对

扩容这个其实可以不用卸载的,如果版本过低,先umoun卸载挂载信息在扩也无所谓哈。

[root@lv-test date-test]# df -h | grep /date-test

/dev/mapper/vg–test-lv–test 100G 33M 100G 1% /date-test

[root@lv-test date-test]#

[root@lv-test date-test]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

lv-test vg-test -wi-ao---- <100.00g

[root@lv-test date-test]#

  • 开始扩

[root@lv-test date-test]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 2 1 0 wz–n- 199.99g <100.00g

[root@lv-test date-test]# lvs | tail -n1

lv-test vg-test -wi-ao---- <100.00g

[root@lv-test date-test]#

不知道lv名称格式的,可以用lvdisplay 查看详细路径

[root@lv-test date-test]# lvextend -L +60G /dev/vg-test/lv-test

Size of logical volume vg-test/lv-test changed from <100.00 GiB (25599 extents) to <160.00 GiB (40959 extents).

Logical volume vg-test/lv-test successfully resized.

[root@lv-test date-test]#

[root@lv-test date-test]# lvs | tail -n1

lv-test vg-test -wi-ao---- <160.00g

[root@lv-test date-test]#

  • 现在df呢,是看不到160g空间的,需要刷新以后才能看到

刷新之前呢,需要先看这个是啥格式的,如我的/date-test是xfs格式的,那么我就需要用xfs的方式来刷新

[root@lv-test date-test]# df -Th | tail -n1

/dev/mapper/vg–test-lv–test xfs 100G 33M 100G 1% /date-test

[root@lv-test date-test]#

xfs的刷新,ext4不能用

一般是用挂载目录作为刷新地址,所以我直接用 /date-test

[root@lv-test date-test]# xfs_growfs /date-test

meta-data=/dev/mapper/vg–test-lv–test isize=512 agcount=4, agsize=6553344 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=26213376, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=12799, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

data blocks changed from 26213376 to 41942016

[root@lv-test date-test]#

完成扩容

[root@lv-test date-test]# df -Th | tail -n1

/dev/mapper/vg–test-lv–test xfs 160G 33M 160G 1% /date-test

[root@lv-test date-test]#

进去看看里面的内容,依然存在,扩容完成

[root@lv-test date-test]# cd /date-test/

[root@lv-test date-test]#

[root@lv-test date-test]# ls

ccx1 ccx15 ccx20 ccx26 ccx31 ccx37 ccx42 ccx48 ccx53 ccx59 ccx64

ccx10 ccx16 ccx21 ccx27 ccx32 ccx38 ccx43 ccx49 ccx54 ccx6 ccx65

ccx11 ccx17 ccx22 ccx28 ccx33 ccx39 ccx44 ccx5 ccx55 ccx60 ccx66

ccx12 ccx18 ccx23 ccx29 ccx34 ccx4 ccx45 ccx50 ccx56 ccx61 ccx7

ccx13 ccx19 ccx24 ccx3 ccx35 ccx40 ccx46 ccx51 ccx57 ccx62 ccx8

ccx14 ccx2 ccx25 ccx30 ccx36 ccx41 ccx47 ccx52 ccx58 ccx63 ccx9

[root@lv-test date-test]#

疑问验证


说明

  • 需要解决这个疑惑

在这里插入图片描述

  • 这呢,我模拟了上面的环境问题,之前的sdb还剩100g,我待会给划分成sdb3,格式为linux,sdc呢,我不做扇区,直接加pv,看后面会咋样

在这里插入图片描述

  • sdb创建一个linux格式的扇区sdb3,然后sdc我不做扇区,最终信息如下

[root@lv-test ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Command (m for help): n

Partition type:

p primary (2 primary, 0 extended, 2 free)

e extended

Select (default p): p

Partition number (3,4, default 3):

First sector (419432448-629145599, default 419432448):

Using default value 419432448

Last sector, +sectors or +size{K,M,G} (419432448-629145599, default 629145599):

Using default value 629145599

Partition 3 of type Linux and of size 100 GiB is set

Command (m for help): p

Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk label type: dos

Disk identifier: 0x359bff9f

Device Boot Start End Blocks Id System

/dev/sdb1 2048 209717247 104857600 8e Linux LVM

/dev/sdb2 209717248 419432447 104857600 8e Linux LVM

/dev/sdb3 419432448 629145599 104856576 83 Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@lv-test ~]#

[root@lv-test ~]# partprobe

Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.

[root@lv-test ~]#

[root@lv-test ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 200G 0 disk

├─sda1 8:1 0 1G 0 part /boot

├─sda2 8:2 0 99G 0 part

│ ├─centos-root 253:0 0 150G 0 lvm /

│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

│ └─centos-home 253:2 0 41.1G 0 lvm /home

└─sda3 8:3 0 100G 0 part

└─centos-root 253:0 0 150G 0 lvm /

sdb 8:16 0 300G 0 disk

├─sdb1 8:17 0 100G 0 part

│ └─vg–test-lv–test 253:3 0 160G 0 lvm

├─sdb2 8:18 0 100G 0 part

│ └─vg–test-lv–test 253:3 0 160G 0 lvm

└─sdb3 8:19 0 100G 0 part

sdc 8:32 0 66G 0 disk

sr0 11:0 1 4.3G 0 rom

[root@lv-test ~]#

在这里插入图片描述

环境准备

  • 因为遇到的环境最开始是用sda3这个linux格式的扇区创建了一个lv的100g空间,sdb无扇区的200g是后面加上去的,所以lvm2的300g是由前面2个磁盘组成。

在这里插入图片描述

  • 所以我现在先模拟这套环境出来【sdb3是linux格式,sdc是无扇区】

[root@lv-test ~]# vgextend vg-test /dev/sdc

Volume group “vg-test” successfully extended

[root@lv-test ~]#

[root@lv-test ~]# pvcreate /dev/sdb3

Physical volume “/dev/sdb3” successfully created.

[root@lv-test ~]#

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 vg-test lvm2 a-- <100.00g 0

/dev/sdb2 vg-test lvm2 a-- <100.00g <40.00g

/dev/sdb3 lvm2 — <100.00g <100.00g

/dev/sdc lvm2 — 66.00g 66.00g

[root@lv-test ~]#

[root@lv-test ~]# vgreduce vg-test /dev/sdc

Removed “/dev/sdc” from volume group “vg-test”

[root@lv-test ~]#

[root@lv-test ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 vg-test lvm2 a-- <100.00g 0

/dev/sdb2 vg-test lvm2 a-- <100.00g <40.00g

/dev/sdb3 lvm2 — <100.00g <100.00g

/dev/sdc lvm2 — 66.00g 66.00g

[root@lv-test ~]#

[root@lv-test ~]# vgcreate vg01 /dev/sdb3

Volume group “vg01” successfully created

[root@lv-test ~]#

[root@lv-test ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 2 1 0 wz–n- 199.99g <40.00g

vg01 1 0 0 wz–n- <100.00g <100.00g

[root@lv-test ~]# lvcreate -L 88G -n lvm2 vg01

Logical volume “lvm2” created.

[root@lv-test ~]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

lv-test vg-test -wi-ao---- <160.00g

lvm2 vg01 -wi-a----- 88.00g

[root@lv-test ~]# mkfs.xfs /dev/vg01/lvm2

meta-data=/dev/vg01/lvm2 isize=512 agcount=4, agsize=5767168 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=23068672, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal log bsize=4096 blocks=11264, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

[root@lv-test ~]#

[root@lv-test ~]# mkdir /aidmp

[root@lv-test ~]# mount /dev/vg01/lvm2 /aidmp/

[root@lv-test ~]# df -h | tail -n1

/dev/mapper/vg01-lvm2 88G 33M 88G 1% /aidmp

[root@lv-test ~]#

随便写点数据进去

[root@lv-test ~]# cd /aidmp/

[root@lv-test aidmp]# ls

[root@lv-test aidmp]# mkdir ccx_hero{1…66}

[root@lv-test aidmp]# ls

ccx_hero1 ccx_hero2 ccx_hero3 ccx_hero4 ccx_hero5 ccx_hero6

ccx_hero10 ccx_hero20 ccx_hero30 ccx_hero40 ccx_hero50 ccx_hero60

ccx_hero11 ccx_hero21 ccx_hero31 ccx_hero41 ccx_hero51 ccx_hero61

ccx_hero12 ccx_hero22 ccx_hero32 ccx_hero42 ccx_hero52 ccx_hero62

ccx_hero13 ccx_hero23 ccx_hero33 ccx_hero43 ccx_hero53 ccx_hero63

ccx_hero14 ccx_hero24 ccx_hero34 ccx_hero44 ccx_hero54 ccx_hero64

ccx_hero15 ccx_hero25 ccx_hero35 ccx_hero45 ccx_hero55 ccx_hero65

ccx_hero16 ccx_hero26 ccx_hero36 ccx_hero46 ccx_hero56 ccx_hero66

ccx_hero17 ccx_hero27 ccx_hero37 ccx_hero47 ccx_hero57 ccx_hero7

ccx_hero18 ccx_hero28 ccx_hero38 ccx_hero48 ccx_hero58 ccx_hero8

ccx_hero19 ccx_hero29 ccx_hero39 ccx_hero49 ccx_hero59 ccx_hero9

[root@lv-test aidmp]#

然后把sdc这个无扇区盘加到vg01里下面的lvm2中

[root@lv-test aidmp]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <99.00g 0

/dev/sda3 centos lvm2 a-- <100.00g 0

/dev/sdb1 vg-test lvm2 a-- <100.00g 0

/dev/sdb2 vg-test lvm2 a-- <100.00g <40.00g

/dev/sdb3 vg01 lvm2 a-- <100.00g <12.00g

/dev/sdc lvm2 — 66.00g 66.00g

[root@lv-test aidmp]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 2 1 0 wz–n- 199.99g <40.00g

vg01 1 1 0 wz–n- <100.00g <12.00g

[root@lv-test aidmp]#

[root@lv-test aidmp]# vgextend vg01 /dev/sdc

Volume group “vg01” successfully extended

[root@lv-test aidmp]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 2 3 0 wz–n- 198.99g 0

vg-test 2 1 0 wz–n- 199.99g <40.00g

vg01 2 1 0 wz–n- 165.99g 77.99g

[root@lv-test aidmp]# lvextend -L +66G /dev/vg01/lvm2

Size of logical volume vg01/lvm2 changed from 88.00 GiB (22528 extents) to 154.00 GiB (39424 extents).

Logical volume vg01/lvm2 successfully resized.

[root@lv-test aidmp]# lvs

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

home centos -wi-ao---- <41.12g

root centos -wi-ao---- 150.00g

swap centos -wi-ao---- <7.88g

lv-test vg-test -wi-ao---- <160.00g

lvm2 vg01 -wi-ao---- 154.00g

[root@lv-test aidmp]#

[root@lv-test aidmp]# xfs_growfs /aidmp/

meta-data=/dev/mapper/vg01-lvm2 isize=512 agcount=4, agsize=5767168 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=23068672, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=11264, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

data blocks changed from 23068672 to 40370176

[root@lv-test aidmp]#

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

[root@lv-test aidmp]#

[root@lv-test aidmp]# xfs_growfs /aidmp/

meta-data=/dev/mapper/vg01-lvm2 isize=512 agcount=4, agsize=5767168 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0 spinodes=0

data = bsize=4096 blocks=23068672, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal bsize=4096 blocks=11264, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

data blocks changed from 23068672 to 40370176

[root@lv-test aidmp]#

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值