首页 > 其他分享 >LVM逻辑卷详解

LVM逻辑卷详解

时间:2023-02-01 18:00:11浏览次数:47  
标签:逻辑 vg dev blogdriverzhang lv 详解 LVM root data01

LVM逻辑详卷解

[toc]

一、LVM的组成

1、物理卷-pv

物理卷就是指硬盘分区或从逻辑分区具有同样功能的设备(如RAID),是lvm的基本存储逻辑块,它是LVM构建的实际硬件或存储系统。

2、卷组-vg

lvm卷组类似于非lvm系统中的物理硬盘。其由物理卷组成,可以在卷组上创建一个或多个lvm分区,由一个或者多个物理卷组成。设备文件系统中显示为/dev/name_vg。

3、逻辑卷-lv

逻辑卷是可供系统使用的最终元设备,他们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为/dev/name_vg/name_lv,通常再其上可以创建文件系统。

4、物理块-pe

一个卷组中最小的连续区域(默认为4MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

LE:逻辑卷也被划分为被称为LE的可被寻址的基本单位,在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

二、lvm的优缺点

1、优点

比起传统的硬盘分区管理方式,LVM更富于灵活性

  • 将多块硬盘看做一块大硬盘
  • 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区
  • 可以创建小的逻辑卷(LV),在空间不足的时候在动态调整它的大小
  • 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续的空间
  • 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建,删除,调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作
  • 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上
  • 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小
  • 支持各种设备映射目标,包括透明文件系统加密和缓存常用数据。这将允许你创建一个包含一个或多个磁盘,并用LUKS加密的系统,使用LVM on top可轻松的管理和调整这些独立的加密卷,并免去开机时多次输入密钥的麻烦

2、缺点

  • 在系统设置时需要更复杂的额外步骤
  • Windows系统不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区

三、创建和管理LVM

创建LV有两种方式,一种是基于磁盘的,另一种是基于分区的。如果是基于分区的需要通过fdisk或者parted方式划好分区,但不要继续格式化,然后使用pvcreate创建物理卷;如果基于磁盘的就不要创建分区,直接通过pvcreate来创建物理卷,只有创建好了物理卷之后才能添加到卷组,并且卷组里面创建逻辑卷后格式化才能存放数据

1、基于磁盘的方式创建lv

依次为:disk(磁盘)->PV(物理卷)->VG(卷组)->LV(逻辑卷)->fs

1)查看磁盘信息

[root@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
vdc 253:32 0 60G 0 disk
[root@blogdriverzhang ~]# lvmdiskscan
/dev/vda1 [ <50.00 GiB]
/dev/vdb [ 60.00 GiB]
/dev/vdc [ 60.00 GiB]
2 disks
1 partition
0 LVM physical volume whole disks
0 LVM physical volumes

从上面可以看到sda是系统分区,vdb和vdc是数据盘

2)使用数据盘创建磁盘的物理卷

#创建物理卷
[root@blogdriverzhang ~]# pvcreate -f /dev/vdb
Wiping dos signature on /dev/vdb.
Physical volume "/dev/vdb" successfully created.

#查看
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb lvm2 --- 60.00g 60.00g

3)创建卷组

#创建卷组
[root@blogdriverzhang ~]# vgcreate -f data01-vg /dev/vdb
Volume group "data01-vg" successfully created

#查看
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 1 0 0 wz--n- <60.00g <60.00g

注:

data01-vg是子集命令的便于识别的卷组标识名;

要划分多个目录数小于物理卷数,可以将具体的单个磁盘作为一个卷组早划分一个逻辑卷提供给一个集体目录使用;

如果要划分的目录数大于物理卷数。比如俩个物理卷要划分3个目录使用的情况,可以将俩个物理卷分给同一个卷组:vgcreate -f ocloud-vg /dev/nvme0n1 /dev/nvme0n2 (以此类推),再在卷组上划分多个逻辑卷给多个目录使用;

4)添加新的物理卷

#在前一个的基础上添加新的物理卷
[root@blogdriverzhang ~]# pvcreate -f /dev/vdc
Physical volume "/dev/vdc" successfully created.

#查看
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb data01-vg lvm2 a-- <60.00g <60.00g
/dev/vdc lvm2 --- 60.00g 60.00g

5)将新的物理卷添加到现有的卷组

[root@blogdriverzhang ~]# vgextend data01-vg /dev/vdc
Volume group "data01-vg" successfully extended

#查看
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 2 0 0 wz--n- 119.99g 119.99g

可以发现2个大小60G的物理卷组成了一个120G的卷组

6)从现有的卷组中删除一个物理卷

要从一个卷组中删除一个物理卷,首先确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命名查看一个该物理卷的信息,如果某个物理卷正在被逻辑卷所使用,就需要将改物理卷的数据备份到其他地方,然后在删除。移除卷组中物理卷的命令为:vgreduce

#未删除前物理卷的信息
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb data01-vg lvm2 a-- <60.00g <60.00g
/dev/vdc data01-vg lvm2 a-- <60.00g <60.00g

#未删除前卷组的信息
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 2 0 0 wz--n- 119.99g 119.99g

#删除卷组中的一个物理卷
[root@blogdriverzhang ~]# vgreduce data01-vg /dev/vdc
Removed "/dev/vdc" from volume group "data01-vg"

#再次查看发现卷组中只有一个物理卷大小由120G变为60G
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 1 0 0 wz--n- <60.00g <60.00g

#物理卷中vdc无卷组
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb data01-vg lvm2 a-- <60.00g <60.00g
/dev/vdc lvm2 --- 60.00g 60.00g

7)创建逻辑卷(第一种方式)

#指定大小的逻辑卷
[root@blogdriverzhang ~]# lvcreate -n data01-lv -L +10G data01-vg
Logical volume "data01-lv" created.

#查看
[root@blogdriverzhang ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data01-lv data01-vg -wi-a----- 10.00g

#扩张逻辑卷(逻辑卷只能扩展不能缩)
[root@blogdriverzhang ~]# lvextend -L +5G /dev/data01-vg/data01-lv
Size of logical volume data01-vg/data01-lv changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
Logical volume data01-vg/data01-lv successfully resized.


#查看
[root@blogdriverzhang ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data01-lv data01-vg -wi-a----- 15.00g

注意:

如果逻辑卷已经创建好文件系统后扩了逻辑卷,文件系统容量不能增加。需要执行如下命 令后文件系统容量才会显示正常:

xfs_growfs /dev/ocloud-vg/data1-lv

8)通过百分比的方式将卷组的空间分成相同大小的逻辑卷(第二种方式)

#添加之前查看
[root@blogdriverzhang ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data01-lv data01-vg -wi-a----- 15.00g

#添加
[root@blogdriverzhang ~]# lvcreate -l 50%Free -n data2-lv data01-vg
Logical volume "data2-lv" created.

#查看
[root@blogdriverzhang ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data01-lv data01-vg -wi-a----- 15.00g
data2-lv data01-vg -wi-a----- <22.50g

#再添加
[root@blogdriverzhang ~]# lvcreate -l 100%Free -n data3-lv data01-vg
Logical volume "data3-lv" created.

#查看将剩余的45个G平均分配两个逻辑卷
[root@blogdriverzhang ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data01-lv data01-vg -wi-a----- 15.00g
data2-lv data01-vg -wi-a----- <22.50g
data3-lv data01-vg -wi-a----- 22.50g

注:

剩余空间分成相同的2份,第一次lvcreate时候应该写50%Free,第2次lvcreate的时候写成100%Free

同理剩余空间分成相同的3份,第一次lvcreate时候写35%Free,第二次执行lvcreate的时候写50%Free。第三次执行lvcreate的时候写100%Free。

9)格式化文件系统

[root@blogdriverzhang ~]# mkfs.xfs /dev/data01-vg/data01-lv 
meta-data=/dev/data01-vg/data01-lv isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@blogdriverzhang ~]# mkfs.xfs /dev/data01-vg/data2-lv
meta-data=/dev/data01-vg/data2-lv isize=512 agcount=4, agsize=1474304 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5897216, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2879, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@blogdriverzhang ~]# mkfs.xfs /dev/data01-vg/data3-lv
meta-data=/dev/data01-vg/data3-lv isize=512 agcount=4, agsize=1474560 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5898240, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2880, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

10)挂载文件系统

#创建挂载目录
[root@blogdriverzhang ~]# mkdir -p /{data1,data2,data3}

#写入挂载文件
[root@blogdriverzhang ~]# cat >>/etc/fstab<< eof
> /dev/data01-vg/data01-lv /data1 xfs defaults 0 0
> /dev/data01-vg/data2-lv /data2 xfs defaults 0 0
> /dev/data01-vg/data3-lv /data3 xfs defaults 0 0
> eof

#挂载
[root@blogdriverzhang ~]# mount -a

#查看
[root@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
├─data01--vg-data01--lv 252:0 0 15G 0 lvm /data1
├─data01--vg-data2--lv 252:1 0 22.5G 0 lvm /data2
└─data01--vg-data3--lv 252:2 0 22.5G 0 lvm /data3
vdc 253:32 0 60G 0 disk
[root@blogdriverzhang ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 24K 3.8G 1% /dev/shm
tmpfs 3.8G 540K 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/vda1 50G 2.4G 45G 5% /
tmpfs 760M 0 760M 0% /run/user/0
/dev/mapper/data01--vg-data01--lv 15G 33M 15G 1% /data1
/dev/mapper/data01--vg-data2--lv 23G 33M 23G 1% /data2
/dev/mapper/data01--vg-data3--lv 23G 33M 23G 1% /data3

11)删除逻辑卷

#卸载挂载目录
[root@blogdriverzhang ~]# umount /data1 /data2 /data3

#注释/etc/fstab的信息
#/dev/data01-vg/data01-lv /data1 xfs defaults 0 0
#/dev/data01-vg/data2-lv /data2 xfs defaults 0 0
#/dev/data01-vg/data3-lv /data3 xfs defaults 0 0

#查看磁盘信息显示分区挂载已经卸载
[root@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
├─data01--vg-data01--lv 252:0 0 15G 0 lvm
├─data01--vg-data2--lv 252:1 0 22.5G 0 lvm
└─data01--vg-data3--lv 252:2 0 22.5G 0 lvm
vdc 253:32 0 60G 0 disk

#删除逻辑卷
[root@blogdriverzhang ~]# lvremove -f /dev/data01-vg/data01-lv
Logical volume "data01-lv" successfully removed
[root@blogdriverzhang ~]# lvremove -f /dev/data01-vg/data
[root@blogdriverzhang ~]# lvremove -f /dev/data01-vg/data2-lv
Logical volume "data2-lv" successfully removed
[root@blogdriverzhang ~]# lvremove -f /dev/data01-vg/data3-lv
Logical volume "data3-lv" successfully removed

#查看是否已删除
[root@blogdriverzhang ~]# lvs

12)删除卷组

#查看是否存在
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 1 0 0 wz--n- <60.00g <60.00g

#删除卷组
[root@blogdriverzhang ~]# vgremove -f data01-vg
Volume group "data01-vg" successfully removed

#在查看无卷组
[root@blogdriverzhang ~]# vgs

13)删除物理卷

#查看
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb lvm2 --- 60.00g 60.00g
/dev/vdc lvm2 --- 60.00g 60.00g

#删除
[root@blogdriverzhang ~]# pvremove -f /dev/vdb
Labels on physical volume "/dev/vdb" successfully wiped.
[root@blogdriverzhang ~]# pvremove -f /dev/vdc
Labels on physical volume "/dev/vdc" successfully wiped.

#查看
[root@blogdriverzhang ~]# pvs

14)把磁盘还原为裸盘方式

dd if=/dev/zero of=/dev/vdb bs=50M count=1024
dd if=/dev/zero of=/dev/vdc bs=50M count=1024

二、基于分区的方式创建逻辑卷

依次为disk(磁盘)->partition(分区)->PV(物理卷)->VG(卷组)->(逻辑卷)->文件系统

1)创建分区

使用fdisk或者parted工具进行,创建分区时注意分区类型的设置(类型为linux lvm)

  • 如果使用的MBR,设置分区类型要为8e
  • 如果使用的是GPT,设置分区类型要为E6D6D379-F507-44C2-A23C-238F2A3DF928
#查看
[root@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
vdc 253:32 0 60G 0 disk

#创建分区
[root@blogdriverzhang ~]# fdisk /dev/vdb
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 0x0564503c.

Command (m for help): h #帮助
h: unknown command
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

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): #回车
First sector (2048-125829119, default 2048): #回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-125829119, default 125829119): +10G #设置大小
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): t #更该系统分区的id
Selected partition 1
Hex code (type L to list all codes): L #列出id代码

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e #linux lvm类型
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): p #输出打印

Disk /dev/vdb: 64.4 GB, 64424509440 bytes, 125829120 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: 0x0564503c

Device Boot Start End Blocks Id System
/dev/vdb1 2048 20973567 10485760 8e Linux LVM

Command (m for help): w #保存退出 这一步完成才算成功
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

#查看
[root@blogdriverzhang ~]# fdisk -l

Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 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: 0x0009ac89

Device Boot Start End Blocks Id System
/dev/vda1 * 2048 104857566 52427759+ 83 Linux

Disk /dev/vdb: 64.4 GB, 64424509440 bytes, 125829120 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: 0x0564503c

Device Boot Start End Blocks Id System
/dev/vdb1 2048 20973567 10485760 8e Linux LVM

Disk /dev/vdc: 64.4 GB, 64424509440 bytes, 125829120 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@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
└─vdb1 253:17 0 10G 0 part
vdc 253:32 0 60G 0 disk

同时在创建一个大小为15G的linux lvm类型分区

过程略

注parted创建

#编辑/dev/vdb [root@blogdriverzhang ~]# parted /dev/vdb GNU Parted 3.1 Using /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mktable msdos #创建分区表选择格式 格式有mbr叫做msdos 和gpt Warning: The existing disk label on /dev/vdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? yes (parted) mkpart primary 0 10 #选择分区类型和大小 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? ignore (parted) p #查看 Model: Virtio Block Device (virtblk) Disk /dev/vdb: 64.4GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 512B 10.0MB 10000kB primary (parted) quit Information: You may need to update /etc/fstab. #查看 [root@blogdriverzhang ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 203.6M 0 rom vda 253:0 0 50G 0 disk └─vda1 253:1 0 50G 0 part / vdb 253:16 0 60G 0 disk └─vdb1 253:17 0 9.5M 0 part vdc 253:32 0 60G 0 disk

2)创建物理卷

[root@blogdriverzhang ~]# pvcreate -f /dev/vdb1 /dev/vdc1
Wiping xfs signature on /dev/vdb1.
Wiping xfs signature on /dev/vdc1.
Physical volume "/dev/vdb1" successfully created.
Physical volume "/dev/vdc1" successfully created.

#查看
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 lvm2 --- 10.00g 10.00g
/dev/vdc1 lvm2 --- 15.00g 15.00g

或者

[root@blogdriverzhang ~]# pvscan
PV /dev/vdc1 lvm2 [15.00 GiB]
PV /dev/vdb1 lvm2 [10.00 GiB]
Total: 2 [25.00 GiB] / in use: 0 [0 ] / in no VG: 2 [25.00 GiB]
[root@blogdriverzhang ~]# pvdisplay

3)创建卷组

[root@blogdriverzhang ~]# vgcreate data01-vg /dev/vdb1 /dev/vdc1
Volume group "data01-vg" successfully created
[root@blogdriverzhang ~]# vgs
VG #PV #LV #SN Attr VSize VFree
data01-vg 2 0 0 wz--n- 24.99g 24.99g

#通过pvs知道物理卷所在卷组
[root@blogdriverzhang ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 data01-vg lvm2 a-- <10.00g <10.00g
/dev/vdc1 data01-vg lvm2 a-- <15.00g <15.00g

4)创建逻辑卷

#创建的两种方式
[root@blogdriverzhang ~]# lvcreate -L +5G data01-vg -n data01-lv
Logical volume "data01-lv" created.
[root@blogdriverzhang ~]# lvcreate -l 100%Free data01-vg -n data02-lv
Logical volume "data02-lv" created.


#查看
[root@blogdriverzhang ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data01-lv data01-vg -wi-a----- 5.00g
data02-lv data01-vg -wi-a----- 19.99g

5)格式化

上面逻辑卷LV创建之后,通常是已经可以在/dev/ocloud/或者/dev/vg_name/下面找到该逻辑卷了,如果找不到的话,可以执行如下命令


# modprobe dm-mod
# vgscan
# vgchange -ay
#格式化
[root@blogdriverzhang ~]# mkfs.xfs /dev/data01-vg/data01-lv
[root@blogdriverzhang ~]# mkfs.xfs /dev/data01-vg/data02-lv


#挂载
[root@blogdriverzhang ~]# mount /dev/data01-vg/data01-lv /data1
[root@blogdriverzhang ~]# mount /dev/data01-vg/data02-lv /data2

#查看
[root@blogdriverzhang ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 24K 3.8G 1% /dev/shm
tmpfs 3.8G 544K 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/vda1 50G 2.4G 45G 5% /
tmpfs 760M 0 760M 0% /run/user/0
/dev/mapper/data01--vg-data01--lv 5.0G 33M 5.0G 1% /data1
/dev/mapper/data01--vg-data02--lv 20G 33M 20G 1% /data2

6)删除lv,vg,pv

#卸载
[root@blogdriverzhang ~]# umount /data1
[root@blogdriverzhang ~]# umount /data2


#删除逻辑卷
^[[D[root@blogdriverzhang ~]# lvremove -f /dev/data01-vg/data01-lv
Logical volume "data01-lv" successfully removed
[root@blogdriverzhang ~]# lvremove -f /dev/data01-vg/data02-lv
Logical volume "data02-lv" successfully removed
[root@blogdriverzhang ~]# lvs


#删除卷组
[root@blogdriverzhang ~]# vgremove -f data01-vg
Volume group "data01-vg" successfully removed
[root@blogdriverzhang ~]# vgs


#删除物理卷
[root@blogdriverzhang ~]# pvremove -f /dev/vdb1
Labels on physical volume "/dev/vdb1" successfully wiped.
[root@blogdriverzhang ~]# pvremove -f /dev/vdc1
Labels on physical volume "/dev/vdc1" successfully wiped.
[root@blogdriverzhang ~]# pvs

7)删除磁盘分区

[root@blogdriverzhang ~]# fdisk /dev/vdb
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): d #删除分区
Selected partition 1
Partition 1 is deleted

Command (m for help): w #保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


#查看分区信息
[root@blogdriverzhang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 203.6M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 60G 0 disk
vdc 253:32 0 60G 0 disk

标签:逻辑,vg,dev,blogdriverzhang,lv,详解,LVM,root,data01
From: https://blog.51cto.com/u_15721050/6031759

相关文章

  • springboot~WebMvcConfigurer详解
    1.前言WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor......
  • “前腐后继”的茅台 ,与日渐垮塌的生存逻辑
    导读癸卯年春节,“报复性消费”一词成为热搜榜上常客。烟花爆竹与白酒,作为春节的传统面孔,都达到一个小高潮。在央视2023年春晚上,五粮液、洋河股份、舍得酒业等组成的“白酒军......
  • pytest.main()参数详解
      importpytestpytest.main(["-n3"])#3个进程并发执行,需要装pytest-xdist库pytest.main(["--collect-only"])#仅仅展......
  • Java并发编程——CompletableFuture详解
    一、简介JDK5引入了Future模式。Future接口是Java多线程Future模式的实现,在java.util.concurrent包中,可以来进行异步计算。 Future模式是多线程设计常用的一种设计模式......
  • Java并发编程——ExecutorCompletionService原理详解
    一、简介在JDK并发包中有这么一个类ExecutorCompletionService,提交任务后,可以按任务返回结果的先后顺序来获取各任务执行后的结果。 该类实现了接口CompletionService:p......
  • 认识和使用LVM,过一遍!
    LVM是什么?逻辑卷管理器(LVM,LogicalVolumeManager)是一种把硬盘空间分配成逻辑卷的方法。看到定义可能还比较懵,不妨结合场景:有一块系统盘空间随着时间推移容量需要扩......
  • vmstat详解
    vmstat详解 一、解读内存              Linux系统的内存分为物理内存和虚拟内存两种。物理内存是真实的,也就是物理内存条上的内存。而虚拟内......
  • mysql-mysqldump命令详解
    注意:备份加入--databases备份文件中会有创建数据库的语句,否则没有建议:导出库加入、导出表不加此参数一、mysqldump命令备份Mysql数据库的参数说明在用mysqldump备份使用......
  • mysql explain详解
    本文转载自 https://www.cnblogs.com/LoveBB/p/15181075.htmlExplain关键字是Mysql中sql优化的常用「关键字」,通常都会使用Explain来「查看sql的执行计划,而不用执行sql」......
  • PyCharm2023年安装教程:步骤详解
    PyCharm2023年安装教程:步骤详解首先,让我们介绍PyCharm,它是一款功能强大的Python集成开发环境(IDE),支持代码编写、调试、语法高亮、智能代码补全、版本控制等一系列功......