逻辑卷小试

前两周得磁盘管理学的不是太好,所以做了很多磁盘得操作进行操作,这次来试试逻辑卷,也来看看逻辑卷得特性
创建逻辑卷前应该先知道一些关于逻辑卷得最基本的三个参数
逻辑卷参数
pv vg 跟 lv
以我自身浅显的简介来看,pv就是在磁盘上或者分区上添加一个标记,这个标记可以被vg识别,而vg就是某些pv的集合,lv则是某个vg的一部分
废话不多说,直接操刀

  • 系统 Centos8 最小化安装
    首先先来看看自己的磁盘分区利用率吧
[root@centos8 ~]# lsblk -f
NAME        FSTYPE  LABEL                      UUID                                 MOUNTPOINT
sr0         iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00               
nvme0n1                                                                             
├─nvme0n1p1 ext4                               2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69 /boot
├─nvme0n1p2 xfs                                1c3eaab1-02ff-4f94-8bab-579e52560108 /
├─nvme0n1p3 xfs                                cd026e8c-baf4-4e4c-9d1d-53684d2978a6 /data
├─nvme0n1p4                                                                         
└─nvme0n1p5 swap                               91b7946d-6ddd-4043-a3ca-f33d5ba4f197 [SWAP]

原来我只放了一块硬盘,一块硬盘操作起来没什么意思,在加一块硬盘吧
添加硬盘1
在VMware的虚拟机设置里,点击硬盘位置,有添加选项,即可添加硬盘
这里硬盘分了几个类型,但是有几个不可选,剩下两个,它推荐我添加SCSI,那就SCSI吧
一步一步下一步就添加好了默认的20G的SCSI硬盘
那接下来就吧新添加的硬盘扫描出来吧

[root@centos8 ~]# lsblk -f
NAME        FSTYPE  LABEL                      UUID                                 MOUNTPOINT
sr0         iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00               
nvme0n1                                                                             
├─nvme0n1p1 ext4                               2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69 /boot
├─nvme0n1p2 xfs                                1c3eaab1-02ff-4f94-8bab-579e52560108 /
├─nvme0n1p3 xfs                                cd026e8c-baf4-4e4c-9d1d-53684d2978a6 /data
├─nvme0n1p4                                                                         
└─nvme0n1p5 swap                               91b7946d-6ddd-4043-a3ca-f33d5ba4f197 [SWAP]

没有自动识别出来吗?
那手动扫描一下呢?

[root@centos8 ~]# echo '- - -' > /sys/class/scsi_host/host0/scan 
[root@centos8 ~]# echo '- - -' > /sys/class/scsi_host/host1/scan 
[root@centos8 ~]# echo '- - -' > /sys/class/scsi_host/host2/scan 
[root@centos8 ~]# echo '- - -' > /sys/class/scsi_host/host3/scan 
[root@centos8 ~]# echo '- - -' > /sys/class/scsi_host/host4/scan 
[root@centos8 ~]# echo '- - -' > /sys/class/scsi_host/host5/scan
#重复32次以后
[root@centos8 ~]# lsblk -f
NAME        FSTYPE  LABEL                      UUID                                 MOUNTPOINT
sr0         iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00               
nvme0n1                                                                             
├─nvme0n1p1 ext4                               2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69 /boot
├─nvme0n1p2 xfs                                1c3eaab1-02ff-4f94-8bab-579e52560108 /
├─nvme0n1p3 xfs                                cd026e8c-baf4-4e4c-9d1d-53684d2978a6 /data
├─nvme0n1p4                                                                         
└─nvme0n1p5 swap                               91b7946d-6ddd-4043-a3ca-f33d5ba4f197 [SWAP]

还不出来?
记得老师好像还说过一个命令好像叫partprobe? 要不试试?

[root@centos8 ~]# partprobe   
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
#此命令知识用来同步硬盘分区表的,不是来扫名硬盘的

还是不行啊,退出重新连接试试吧

[root@centos8 ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1    7G  0 rom  
nvme0n1     259:0    0  200G  0 disk 
├─nvme0n1p1 259:1    0    1G  0 part /boot
├─nvme0n1p2 259:2    0  100G  0 part /
├─nvme0n1p3 259:3    0   50G  0 part /data
├─nvme0n1p4 259:4    0    1K  0 part 
└─nvme0n1p5 259:5    0    4G  0 part [SWAP]
#并没有发生任何变化

放大招吧,重启试试

reboot

然后,然后,欸卧槽,我电脑怎么连接不上了
连接失败
这时候打开VMware发现弹出了安装向导
内心:???
淡定的点击下一步
安装向导
分区被覆盖
这,这,这怎么连我之前的分区也搞没了???

  • 这是第一个坑 PS:我也没搞懂是怎么回事,没有scsi的驱动?,跟nvme不兼容??

总之快照恢复出厂,当这一切没发生,再重新来过好吧
这次关机添加一块nvme的硬盘,(只能在关机状态下添加)不在添加SCSI类型的了(关机状态,推荐的类型也变成了nvme了)
开机,查看硬盘

[root@centos8 ~]# lsblk -f
NAME        FSTYPE  LABEL                      UUID                                 MOUNTPOINT
sr0         iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00               
nvme0n1                                                                             
├─nvme0n1p1 ext4                               2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69 /boot
├─nvme0n1p2 xfs                                1c3eaab1-02ff-4f94-8bab-579e52560108 /
├─nvme0n1p3 xfs                                cd026e8c-baf4-4e4c-9d1d-53684d2978a6 /data
├─nvme0n1p4                                                                         
└─nvme0n1p5 swap                               91b7946d-6ddd-4043-a3ca-f33d5ba4f197 [SWAP]
nvme0n2             

嗯,终于正常显示了
那咱就开始吧,分几个分区就开始搞逻辑卷吧

但是在开始之前先给,磁盘分几个分区,用几个创建好的分区来创建逻辑卷

[root@centos8 ~]# fdisk /dev/nvme0n1 
#针对第一块硬盘
nvme0n1    nvme0n1p1  nvme0n1p2  nvme0n1p3  nvme0n1p4  nvme0n1p5  nvme0n2
[root@centos8 ~]# fdisk /dev/nvme0n1

Welcome to fdisk (util-linux 2.32.1).
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/nvme0n1: 200 GiB, 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
Disklabel type: dos
Disk identifier: 0x0408fa67
#p显示分区的信息
Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1 *         2048   2099199   2097152    1G 83 Linux
/dev/nvme0n1p2        2099200 211814399 209715200  100G 83 Linux
/dev/nvme0n1p3      211814400 316671999 104857600   50G 83 Linux
/dev/nvme0n1p4      316672000 419430399 102758400   49G  5 Extended
/dev/nvme0n1p5      316674048 325062655   8388608    4G 82 Linux swap / Solaris

Command (m for help): n
#n创建新分区
All primary partitions are in use.
Adding logical partition 6
First sector (325064704-419430399, default 325064704): 
#指定初始扇区
Last sector, +sectors or +size{K,M,G,T,P} (325064704-419430399, default 419430399): +200M
#指定分区空间大小
Created a new partition 6 of type 'Linux' and of size 200 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 7
First sector (325476352-419430399, default 325476352): 
Last sector, +sectors or +size{K,M,G,T,P} (325476352-419430399, default 419430399): +100M

Created a new partition 7 of type 'Linux' and of size 100 MiB.

Command (m for help): p
Disk /dev/nvme0n1: 200 GiB, 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
Disklabel type: dos
Disk identifier: 0x0408fa67

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1 *         2048   2099199   2097152    1G 83 Linux
/dev/nvme0n1p2        2099200 211814399 209715200  100G 83 Linux
/dev/nvme0n1p3      211814400 316671999 104857600   50G 83 Linux
/dev/nvme0n1p4      316672000 419430399 102758400   49G  5 Extended
/dev/nvme0n1p5      316674048 325062655   8388608    4G 82 Linux swap / Solaris
/dev/nvme0n1p6      325064704 325474303    409600  200M 83 Linux
/dev/nvme0n1p7      325476352 325681151    204800  100M 83 Linux

Command (m for help): w
The partition table has been altered.
Syncing disks.
#w存盘退出
  • 这样就创建好了第一块硬盘的分区6,分区7,空间分别为200M,100M
    这是基于MBR分区方式的,"Disklabel type"这栏写着 DOS 跟扩展分区都出卖了它

不是还有一块硬盘吗,在创建两个tpg的分区?搞

[root@centos8 ~]# fdisk /dev/nvme0n2

Welcome to fdisk (util-linux 2.32.1).
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.
Created a new DOS disklabel with disk identifier 0x71144f90.
Command (m for help): g
Created a new GPT disklabel (GUID: 7149CE05-ECBE-8A41-B142-3CE518323C0C).
#创建个GPT的分区格式

Command (m for help): n
Partition number (1-128, default 1): 
First sector (2048-41943006, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943006, default 41943006): +200M

Created a new partition 1 of type 'Linux filesystem' and of size 200 MiB.

Command (m for help): n
Partition number (2-128, default 2): 
First sector (411648-41943006, default 411648): 
Last sector, +sectors or +size{K,M,G,T,P} (411648-41943006, default 41943006): +100M

Created a new partition 2 of type 'Linux filesystem' and of size 100 MiB.

Command (m for help): p
Disk /dev/nvme0n2: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: gpt
Disk identifier: 7149CE05-ECBE-8A41-B142-3CE518323C0C

Device          Start    End Sectors  Size Type
/dev/nvme0n2p1   2048 411647  409600  200M Linux filesystem
/dev/nvme0n2p2 411648 616447  204800  100M Linux filesystem
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

  • 成功创建了第二块硬盘的两个分区 也是一个200M,一个100M

查看一下

[root@centos8 ~]# lsblk -f
NAME        FSTYPE  LABEL                      UUID                                 MOUNTPOINT
sr0         iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00               
nvme0n1                                                                             
├─nvme0n1p1 ext4                               2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69 /boot
├─nvme0n1p2 xfs                                1c3eaab1-02ff-4f94-8bab-579e52560108 /
├─nvme0n1p3 xfs                                cd026e8c-baf4-4e4c-9d1d-53684d2978a6 /data
├─nvme0n1p4                                                                         
├─nvme0n1p5 swap                               91b7946d-6ddd-4043-a3ca-f33d5ba4f197 [SWAP]
├─nvme0n1p6                                                                         
└─nvme0n1p7                                                                         
nvme0n2                                                                             
├─nvme0n2p1                                                                         
└─nvme0n2p2         

成功,那咱就接着往下搞吧,终于可以创建逻辑卷了

第一步是什么来着,哦创建pv 来吧,先看看有有没有定义了的pv

[root@centos8 ~]# pvs
-bash: pvs: command not found

哦,原来最小化安装没有带啊,那就安装一个吧

[root@centos8 ~]# dnf provides pvs
lvm2-8:2.03.05-5.el8.0.1.x86_64 : Userland logical volume management tools
#查看一下pvs这个功能是出自于那个包
Repo        : BaseOS
Matched from:
Filename    : /usr/sbin/pvs
[root@centos8 ~]# dnf -y install lvm2

Installed:
  lvm2-8:2.03.05-5.el8.0.1.x86_64                                                       
  device-mapper-event-8:1.02.163-5.el8.0.1.x86_64                                       
  device-mapper-event-libs-8:1.02.163-5.el8.0.1.x86_64                                  
  device-mapper-persistent-data-0.8.5-2.el8.x86_64                                      
  libaio-0.3.112-1.el8.x86_64                                                           
  lvm2-libs-8:2.03.05-5.el8.0.1.x86_64                                                  

Complete!

#安装完毕

那就先把分区标记成pv把

[root@centos8 ~]# pvcreate  /dev/nvme0n1p6 /dev/nvme0n1p7 /dev/nvme0n2p1 /dev/nvme0n2p2
  Physical volume "/dev/nvme0n1p6" successfully created.
  Physical volume "/dev/nvme0n1p7" successfully created.
  Physical volume "/dev/nvme0n2p1" successfully created.
  Physical volume "/dev/nvme0n2p2" successfully created.
#吧这4个分区标记成pv
[root@centos8 ~]# pvs
  PV             VG Fmt  Attr PSize   PFree  
  /dev/nvme0n1p6    lvm2 ---  200.00m 200.00m
  /dev/nvme0n1p7    lvm2 ---  100.00m 100.00m
  /dev/nvme0n2p1    lvm2 ---  200.00m 200.00m
  /dev/nvme0n2p2    lvm2 ---  100.00m 100.00m
#查看pv

下一步就是把创建vg了

[root@centos8 ~]# vgcreate  vg_1   /dev/nvme0n1p6 /dev/nvme0n2p1 /dev/nvme0n2p2
  Volume group "vg_1" successfully created
#这里把第一个硬盘的6分区,第二个硬盘的两个分区都放到第一个vg里,打算弄两个vg
[root@centos8 ~]# vgcreate  vg_2   /dev/nvme0n1p7
  Volume group "vg_2" successfully created
#第二个vg
[root@centos8 ~]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree  
  vg_1   3   0   0 wz--n- 488.00m 488.00m
  vg_2   1   0   0 wz--n-  96.00m  96.00m
#查看一下vg情况

这次就可以创建逻辑卷了

[root@centos8 ~]# lvcreate -n lv_1 -L 150M vg_1
  Rounding up size to full physical extent 152.00 MiB
  Logical volume "lv_1" created.
#-n 指定逻辑卷名字   -L 指定大小  -l指定pe数
[root@centos8 ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_1 vg_1 -wi-a----- 152.00m
#lvs查看一下
[root@centos8 ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg_2
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               96.00 MiB
  PE Size               4.00 MiB
  Total PE              24
  Alloc PE / Size       0 / 0   
  Free  PE / Size       24 / 96.00 MiB
  VG UUID               0L2u2p-EDxC-syEg-rWvj-OprH-bL7X-OeCnIN
   
  --- Volume group ---
  VG Name               vg_1
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               488.00 MiB
  PE Size               4.00 MiB
  Total PE              122
  Alloc PE / Size       38 / 152.00 MiB
  Free  PE / Size       84 / 336.00 MiB
  VG UUID               kTKkcs-v2m1-bS90-Yht5-qhah-A8jO-OYiygs
#也可以用vgdisplay来查看更相信的信息 ,可以看到  vg_1这个vg有38个pe被使用了
[root@centos8 ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/nvme0n1p7
  VG Name               vg_2
  PV Size               100.00 MiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              24
  Free PE               24
  Allocated PE          0
  PV UUID               IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT
   
  --- Physical volume ---
  PV Name               /dev/nvme0n1p6
  VG Name               vg_1
  PV Size               200.00 MiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              49
  Free PE               11
  Allocated PE          38
  PV UUID               mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u
   
  --- Physical volume ---
  PV Name               /dev/nvme0n2p1
  VG Name               vg_1
  PV Size               200.00 MiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              49
  Free PE               49
  Allocated PE          0
  PV UUID               qncFGp-HRp2-rGhp-cyGJ-eFO0-tWbG-4pqjYm
   
  --- Physical volume ---
  PV Name               /dev/nvme0n2p2
  VG Name               vg_1
  PV Size               100.00 MiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              24
  Free PE               24
  Allocated PE          0
  PV UUID               cLJac2-ZtIu-uv1v-zntf-V6de-RyWS-9Lelfy
#甚至可以用pvdisplay来查看具体是被那个分区占用了pe,可以看到vg_1使用的是/dev/nvme0n1p6 的38个pe
#还记得我们创建的lv吗  用vg_1的卷组创建的叫lv_1的逻辑卷名,所以,逻辑卷创建成功的时候/dev 下就应该有以下的文件
[root@centos8 ~]# ll /dev/vg_1/lv_1 
lrwxrwxrwx. 1 root root 7 May 10 22:06 /dev/vg_1/lv_1 -> ../dm-0
#实际上就是一个软链接
[root@centos8 ~]# blkid
/dev/nvme0n1: PTUUID="0408fa67" PTTYPE="dos"
/dev/nvme0n1p1: UUID="2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69" TYPE="ext4" PARTUUID="0408fa67-01"
/dev/nvme0n1p2: UUID="1c3eaab1-02ff-4f94-8bab-579e52560108" TYPE="xfs" PARTUUID="0408fa67-02"
/dev/nvme0n1p3: UUID="cd026e8c-baf4-4e4c-9d1d-53684d2978a6" TYPE="xfs" PARTUUID="0408fa67-03"
/dev/nvme0n1p5: UUID="91b7946d-6ddd-4043-a3ca-f33d5ba4f197" TYPE="swap" PARTUUID="0408fa67-05"
/dev/nvme0n1p6: UUID="mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u" TYPE="LVM2_member" PARTUUID="0408fa67-06"
/dev/nvme0n1p7: UUID="IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT" TYPE="LVM2_member" PARTUUID="0408fa67-07"
/dev/nvme0n2: PTUUID="f73681fe-0e4c-d54e-b149-e1b3984a4b43" PTTYPE="gpt"
/dev/nvme0n2p1: UUID="qncFGp-HRp2-rGhp-cyGJ-eFO0-tWbG-4pqjYm" TYPE="LVM2_member" PARTUUID="b0f20469-1224-9748-919e-eaf9d3febefb"
/dev/nvme0n2p2: UUID="cLJac2-ZtIu-uv1v-zntf-V6de-RyWS-9Lelfy" TYPE="LVM2_member" PARTUUID="b4525ab0-185b-614f-ac36-03207d1bf370"
/dev/sr0: UUID="2020-01-03-21-42-40-00" LABEL="CentOS-8-1-1911-x86_64-dvd" TYPE="iso9660" PTUUID="087a73cc" PTTYPE="dos"
#我们用blkid也能观察到 /dev/nvme0n*的type类型已经变成了某个逻辑卷的成员

然后就可以创建文件系统了

[root@centos8 ~]# mkfs.xfs  /dev/vg_1/lv_1 
meta-data=/dev/vg_1/lv_1         isize=512    agcount=4, agsize=9728 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=38912, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
#格式化成xfs系统
[root@centos8 ~]# blkid
/dev/nvme0n1p1: UUID="2dfd6d3d-0b7a-4e0f-962f-c14f22e3cb69" TYPE="ext4" PARTUUID="0408fa67-01"
/dev/nvme0n1p2: UUID="1c3eaab1-02ff-4f94-8bab-579e52560108" TYPE="xfs" PARTUUID="0408fa67-02"
/dev/nvme0n1p3: UUID="cd026e8c-baf4-4e4c-9d1d-53684d2978a6" TYPE="xfs" PARTUUID="0408fa67-03"
/dev/nvme0n1p5: UUID="91b7946d-6ddd-4043-a3ca-f33d5ba4f197" TYPE="swap" PARTUUID="0408fa67-05"
/dev/nvme0n1p6: UUID="mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u" TYPE="LVM2_member" PARTUUID="0408fa67-06"
/dev/nvme0n1p7: UUID="IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT" TYPE="LVM2_member" PARTUUID="0408fa67-07"
/dev/nvme0n2p1: UUID="qncFGp-HRp2-rGhp-cyGJ-eFO0-tWbG-4pqjYm" TYPE="LVM2_member" PARTUUID="b0f20469-1224-9748-919e-eaf9d3febefb"
/dev/nvme0n2p2: UUID="cLJac2-ZtIu-uv1v-zntf-V6de-RyWS-9Lelfy" TYPE="LVM2_member" PARTUUID="b4525ab0-185b-614f-ac36-03207d1bf370"
/dev/sr0: UUID="2020-01-03-21-42-40-00" LABEL="CentOS-8-1-1911-x86_64-dvd" TYPE="iso9660" PTUUID="087a73cc" PTTYPE="dos"
/dev/nvme0n1: PTUUID="0408fa67" PTTYPE="dos"
/dev/nvme0n2: PTUUID="f73681fe-0e4c-d54e-b149-e1b3984a4b43" PTTYPE="gpt"
/dev/mapper/vg_1-lv_1: UUID="5016fc46-9fbb-4586-8f01-2bd2b583f5e0" TYPE="xfs"
#这时候再用blkid就可以观察到 最后一栏的逻辑卷了

这时候就可以考虑挂载了

[root@centos8 ~]# mkdir /mnt/lvm
#创建一个文件夹,因为打算把逻辑卷挂载到这里
vi /etc/fstab 把下面这行添加进去
UUID=5016fc46-9fbb-4586-8f01-2bd2b583f5e0 /mnt/lvm                xfs     defaults        0 0
#实现永久挂在,第一栏建议是UUID,不建议是文件名称
[root@centos8 ~]# mount -a
#自动加载可以挂载的挂载点
[root@centos8 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               967M     0  967M   0% /dev
tmpfs                  983M     0  983M   0% /dev/shm
tmpfs                  983M   17M  966M   2% /run
tmpfs                  983M     0  983M   0% /sys/fs/cgroup
/dev/nvme0n1p2         100G  2.1G   98G   3% /
/dev/nvme0n1p3          50G  390M   50G   1% /data
/dev/nvme0n1p1         976M  112M  797M  13% /boot
tmpfs                  197M     0  197M   0% /run/user/0
/dev/mapper/vg_1-lv_1  147M  9.0M  138M   7% /mnt/lvm
#df查看一下,发现已经挂载成功了

挂载完成

[root@centos8 lvm]# cp  -av /etc/*   .
#拷贝点文件过来
[root@centos8 mnt]# dd if=/dev/zero of=/mnt/lvm/123  bs=1024K  count=110
110+0 records in
110+0 records out
115343360 bytes (115 MB, 110 MiB) copied, 0.321176 s, 359 MB/s
[root@centos8 mnt]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               967M     0  967M   0% /dev
tmpfs                  983M     0  983M   0% /dev/shm
tmpfs                  983M   17M  966M   2% /run
tmpfs                  983M     0  983M   0% /sys/fs/cgroup
/dev/nvme0n1p2         100G  2.1G   98G   3% /
/dev/nvme0n1p3          50G  390M   50G   1% /data
/dev/nvme0n1p1         976M  112M  797M  13% /boot
tmpfs                  197M     0  197M   0% /run/user/0
/dev/mapper/vg_1-lv_1  147M  141M  6.2M  96% /mnt/lvm
写点数据进去,磁盘空间利用率达到了96%

那现在空间不够用了,怎么办?

root@centos8 mnt]# lvextend  -l +100%free /dev/vg_1/lv_1 
  Size of logical volume vg_1/lv_1 changed from 152.00 MiB (38 extents) to 488.00 MiB (122 extents).
  Logical volume vg_1/lv_1 successfully resized.
#把vg的所有剩余的pe全部扩展到逻辑卷里,这次在看一下空间
#在查看一下
[root@centos8 mnt]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               967M     0  967M   0% /dev
tmpfs                  983M     0  983M   0% /dev/shm
tmpfs                  983M   17M  966M   2% /run
tmpfs                  983M     0  983M   0% /sys/fs/cgroup
/dev/nvme0n1p2         100G  2.1G   98G   3% /
/dev/nvme0n1p3          50G  390M   50G   1% /data
/dev/nvme0n1p1         976M  112M  797M  13% /boot
tmpfs                  197M     0  197M   0% /run/user/0
/dev/mapper/vg_1-lv_1  147M  141M  6.2M  96% /mnt/lvm
#欸?怎么好像没有变化啊?
[root@centos8 mnt]# xfs_growfs /mnt/lvm/
meta-data=/dev/mapper/vg_1-lv_1  isize=512    agcount=4, agsize=9728 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=38912, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 38912 to 124928
[root@centos8 mnt]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               967M     0  967M   0% /dev
tmpfs                  983M     0  983M   0% /dev/shm
tmpfs                  983M   17M  966M   2% /run
tmpfs                  983M     0  983M   0% /sys/fs/cgroup
/dev/nvme0n1p2         100G  2.1G   98G   3% /
/dev/nvme0n1p3          50G  390M   50G   1% /data
/dev/nvme0n1p1         976M  112M  797M  13% /boot
tmpfs                  197M     0  197M   0% /run/user/0
/dev/mapper/vg_1-lv_1  483M  144M  340M  30% /mnt/lvm
#同步文件系统
  • 扩展完逻辑卷之后要同步文件系统(添加进来的vg空间没有文件系统) ext系列用resize2fs命令 xfs用xfs_growfs
    需要注意的是resize2fs后面跟的是逻辑卷的名字 而xfs_growfs跟的是挂载点的名字
    当然,也可以在扩展的时候用 -r 直接同步 lvextend -r

那如果空间有不够用了呢?

[root@centos8 mnt]# dd if=/dev/zero of=/mnt/lvm/234  bs=1024K  count=330
330+0 records in
330+0 records out
346030080 bytes (346 MB, 330 MiB) copied, 1.80218 s, 192 MB/s
[root@centos8 mnt]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               967M     0  967M   0% /dev
tmpfs                  983M     0  983M   0% /dev/shm
tmpfs                  983M   17M  966M   2% /run
tmpfs                  983M     0  983M   0% /sys/fs/cgroup
/dev/nvme0n1p2         100G  2.1G   98G   3% /
/dev/nvme0n1p3          50G  390M   50G   1% /data
/dev/nvme0n1p1         976M  112M  797M  13% /boot
tmpfs                  197M     0  197M   0% /run/user/0
/dev/mapper/vg_1-lv_1  483M  474M  8.9M  99% /mnt/lvm
#再次往磁盘写入,这次vg也没空间了
[root@centos8 mnt]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree 
  vg_1   3   1   0 wz--n- 488.00m     0 
  vg_2   1   0   0 wz--n-  96.00m 96.00m
#查看一下vg的空间
[root@centos8 mnt]# vgremove vg_2
  Volume group "vg_2" successfully removed
#把vg_2这个vg删除,也可以在添加别的pv,我这里只是把另一个没创建的vg卷组删除了
[root@centos8 mnt]# pvs
  PV             VG   Fmt  Attr PSize   PFree  
  /dev/nvme0n1p6 vg_1 lvm2 a--  196.00m      0 
  /dev/nvme0n1p7      lvm2 ---  100.00m 100.00m
  /dev/nvme0n2p1 vg_1 lvm2 a--  196.00m      0 
  /dev/nvme0n2p2 vg_1 lvm2 a--   96.00m      0 
#这时候就能看到 空闲出来一个pv
[root@centos8 mnt]#  vgextend  vg_1 /dev/nvme0n1p7
  Volume group "vg_1" successfully extended
[root@centos8 mnt]# vgs
  VG   #PV #LV #SN Attr   VSize   VFree 
  vg_1   4   1   0 wz--n- 584.00m 96.00m
#添加成功,如果空间还是不够,再接着添加新的分区到pv,再用vgextend 扩展到卷组

这时候想到个好玩的事情,如果我把文件系统删除会怎么样?
就是vg组里的分区删除了会怎么样?
试一下

[root@centos8 mnt]# fdisk /dev/nvme0n1

Welcome to fdisk (util-linux 2.32.1).
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/nvme0n1: 200 GiB, 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
Disklabel type: dos
Disk identifier: 0x0408fa67

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1 *         2048   2099199   2097152    1G 83 Linux
/dev/nvme0n1p2        2099200 211814399 209715200  100G 83 Linux
/dev/nvme0n1p3      211814400 316671999 104857600   50G 83 Linux
/dev/nvme0n1p4      316672000 419430399 102758400   49G  5 Extended
/dev/nvme0n1p5      316674048 325062655   8388608    4G 82 Linux swap / Solaris
/dev/nvme0n1p6      325064704 325474303    409600  200M 83 Linux
/dev/nvme0n1p7      325476352 325681151    204800  100M 83 Linux

Command (m for help): d
Partition number (1-7, default 7): 

Partition 7 has been deleted.

Command (m for help): p
Disk /dev/nvme0n1: 200 GiB, 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
Disklabel type: dos
Disk identifier: 0x0408fa67

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1 *         2048   2099199   2097152    1G 83 Linux
/dev/nvme0n1p2        2099200 211814399 209715200  100G 83 Linux
/dev/nvme0n1p3      211814400 316671999 104857600   50G 83 Linux
/dev/nvme0n1p4      316672000 419430399 102758400   49G  5 Extended
/dev/nvme0n1p5      316674048 325062655   8388608    4G 82 Linux swap / Solaris
/dev/nvme0n1p6      325064704 325474303    409600  200M 83 Linux

Command (m for help): d
Partition number (1-6, default 6): 

Partition 6 has been deleted.

Command (m for help): p
Disk /dev/nvme0n1: 200 GiB, 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
Disklabel type: dos
Disk identifier: 0x0408fa67

Device         Boot     Start       End   Sectors  Size Id Type
/dev/nvme0n1p1 *         2048   2099199   2097152    1G 83 Linux
/dev/nvme0n1p2        2099200 211814399 209715200  100G 83 Linux
/dev/nvme0n1p3      211814400 316671999 104857600   50G 83 Linux
/dev/nvme0n1p4      316672000 419430399 102758400   49G  5 Extended
/dev/nvme0n1p5      316674048 325062655   8388608    4G 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered.
Failed to remove partition 6 from system: Device or resource busy

The kernel still uses the old partitions. The new table will be used at the next reboot. 
Syncing disks.
#提示说内核任然用着就得分区,分区表会在下次重启同步

这时候在看看逻辑卷情况

[root@centos8 lvm]# lvs
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: VG vg_1 is missing PV IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_1 vg_1 -wi-ao---- 488.00m 
[root@centos8 lvm]# vgs
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: VG vg_1 is missing PV IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  VG   #PV #LV #SN Attr   VSize   VFree 
  vg_1   4   1   0 wz-pn- 584.00m 96.00m
[root@centos8 lvm]# lvextend -l +100%free /dev/vg_1/lv_1 
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: VG vg_1 is missing PV IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  Cannot change VG vg_1 while PVs are missing.
  See vgreduce --removemissing and vgextend --restoremissing.
  Cannot process volume group vg_1
#无法扩展逻辑卷
[root@centos8 lvm]# ls
123                      exports                   netconfig          security
234                      filesystems               NetworkManager     selinux
adjtime                  firewalld                 networks           services
aliases                  fstab                     nftables           sestatus.conf
alternatives             fuse.conf                 nsswitch.conf      shadow
anacrontab               gcrypt                    nsswitch.conf.bak  shadow-
audit                    gnupg                     openldap           shells
authselect               GREP_COLORS               opt                skel
bash_completion.d        groff                     os-release         ssh
bashrc                   group                     pam.d              ssl
bindresvport.blacklist   group-                    passwd             sssd
binfmt.d                 grub2.cfg                 passwd-            subgid
centos-release           grub.d                    pkcs11             subgid-
centos-release-upstream  gshadow                   pki                subuid
chkconfig.d              gshadow-                  plymouth           subuid-
chrony.conf              gss                       pm                 sudo.conf
chrony.keys              haha                      polkit-1           sudoers
cifs-utils               host.conf                 popt.d             sudoers.d
cron.d                   hostname                  prelink.conf.d     sudo-ldap.conf
cron.daily               hosts                     printcap           sysconfig
cron.deny                idmapd.conf               profile            sysctl.conf
cron.hourly              init.d                    profile.d          sysctl.d
cron.monthly             inittab                   protocols          systemd
crontab                  inputrc                   rc0.d              system-release
cron.weekly              iproute2                  rc1.d              system-release-cpe
crypto-policies          issue                     rc2.d              tcsd.conf
crypttab                 issue.net                 rc3.d              terminfo
csh.cshrc                kdump.conf                rc4.d              tmpfiles.d
csh.login                kernel                    rc5.d              tuned
dbus-1                   krb5.conf                 rc6.d              udev
default                  krb5.conf.d               rc.d               unbound
depmod.d                 machine-id                rc.local           vconsole.conf
dhcp                     magic                     redhat-release     virc
DIR_COLORS               makedumpfile.conf.sample  resolv.conf        vmware-tools
DIR_COLORS.256color      man_db.conf               rhsm               X11
DIR_COLORS.lightbgcolor  microcode_ctl             rpc                xattr.conf
dnf                      mke2fs.conf               rpm                xdg
dracut.conf              modprobe.d                rsyslog.conf       xinetd.d
dracut.conf.d            modules-load.d            rsyslog.d          yum
environment              motd                      rwtab.d            yum.conf
ethertypes               mtab                      sasl2              yum.repos.d
[root@centos8 lvm]# rm -rf [a-z]*
[root@centos8 lvm]# ls
123  234
#但仍能进行删除
[root@centos8 lvm]# echo hahah >qqq
[root@centos8 lvm]# ls
123  234  qqq
[root@centos8 lvm]# cat qqq
hahah
#也可以进行文件创建
reboot
#重启试试

不出所料开不开机器了...
启动界面
输入root口令后发现 df已经不显示逻辑卷分区了
不显示逻辑卷分区
不管怎么说,先让他能开机把,吧之前的fstab文件改回来
吧之前添加的最后一行删除即可重新启动

重启之后发现ll /dev/ 下也不见了逻辑卷的身影

[root@centos8 ~]# vgreduce --removemissing vg_1
  WARNING: Couldn't find device with uuid mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u.
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: VG vg_1 is missing PV mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u.
  WARNING: VG vg_1 is missing PV IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: Couldn't find device with uuid mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u.
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: Partial LV lv_1 needs to be repaired or removed. 
  There are still partial LVs in VG vg_1.
  To remove them unconditionally use: vgreduce --removemissing --force.
  WARNING: Proceeding to remove empty missing PVs.
  WARNING: Couldn't find device with uuid mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u.
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
[root@centos8 ~]# vgs
  WARNING: Couldn't find device with uuid mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u.
  WARNING: Couldn't find device with uuid IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  WARNING: VG vg_1 is missing PV mN12Yj-EgdS-e9Pk-34Vd-5O2v-pzKY-K7gs0u.
  WARNING: VG vg_1 is missing PV IrtVHE-Cuap-m7nt-dI74-FWI1-E3Oc-U1huMT.
  VG   #PV #LV #SN Attr   VSize   VFree 
  vg_1   4   1   0 wz-pn- 584.00m 96.00m
#移除没用的vg
  • 如果时像我这样操作,vg虽然不见了,但是/dev/nvme0n1p6这个名称被标记上了,即使在重新创建一个/nvme0n1p6分区,也无法添加PV,会提示,过滤器排除,这时候用dd命令把 新分的nvme0n1p6的前512个自己填成0之后便可以成功添加了

实际上逻辑卷还可以缩减,但自己实在是不知道自己在忙什么,没时间搞完了

  • 本来老师说在创建分区时候要把分区的系统改成 逻辑卷的系统 但是我在实验室没改也能正确显示

因为还不太熟悉MD格式,所以把图片上传上了pinterest上,所以图片可能需要正确上网姿势才能显示