LVM逻辑卷详解
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。
目录
一、lvm的组成
1、物理卷-pv
物理卷就是指硬盘分区或从逻辑分区上与硬盘分区具有同样功能的设备(如RAID),是lvm的基本存储逻辑块,它是 LVM 构建的实际硬件或存储系统。
2、卷组-vg
lvm卷组类似于非lvm系统中的物理硬盘。其由物理卷组成,可以在卷组上创建一个或多个"lvm分区",由一个或者多个物理卷组成。设备文件系统中显示为 /dev/VG_NAME。
3、逻辑卷-lv
逻辑卷是可供系统使用的最终元设备,它们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为 /dev/VG_NAME/LV_NAME,通常在其上可以创建文件系统。
4、物理块-pe
一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。
注:
LE:逻辑卷也被划分为被称为LE的可被寻址的基本单位,在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
二、lvm的优缺点
1、优点
比起传统的硬盘分区管理方式,LVM更富于灵活性:
-
将多块硬盘看作一块大硬盘
-
使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区。
-
可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小。
-
在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
-
可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作。不过LVM上的文件系统也需要重新调整大小,好在某些文件系统(例如ext4)也支持在线操作。
-
无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
-
允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。
-
支持各种设备映射目标(device-mapper targets),包括透明文件系统加密和缓存常用数据(caching of frequently used data)。这将允许你创建一个包含一个或多个磁盘、并用LUKS加密的系统,使用LVM on top 可轻松地管理和调整这些独立的加密卷 (例如. /, /home, /backup等) 并免去开机时多次输入密钥的麻烦。
2、缺点
-
在系统设置时需要更复杂的额外步骤。
-
Windows系统并不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。
三、创建和管理lvm
创建LV有俩种方式,一种是基于磁盘的,另一种是基于分区的。如果是基于分区的需要通过fdisk或者parted方式划分好分区,但不要格式化来。然后使用pvcreate创建物理卷;如果基于磁盘的就不需要创建分区,直接通过pvcreate来创建物理卷,只有创建好了物理卷之后才能添加到卷组,并且卷组里面创建逻辑卷,后格式化才能存放数据。
1、基于磁盘的方式创建LV
依次为:disk ->-PV -> VG -> LV -> fs,也即磁盘->物理卷->卷组->逻辑卷->文件系统。
1)查看磁盘信息
[root@lvm ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─centos-root 253:0 0 97.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
nvme0n1 259:0 0 50G 0 disk
nvme0n2 259:1 0 50G 0 disk
或者
[root@lvm ~]# lvmdiskscan
/dev/nvme0n1 [ 50.00 GiB]
/dev/centos/root [ <97.51 GiB]
/dev/nvme0n2 [ 50.00 GiB]
/dev/sda1 [ 500.00 MiB]
/dev/centos/swap [ 2.00 GiB]
/dev/sda2 [ 99.51 GiB] LVM physical volume
2 disks
3 partitions
0 LVM physical volume whole disks
1 LVM physical volume
从上面可以看到sda是系统分区,nvme0n1和nvme0n2是数据盘
2)使用数据盘创建磁盘的物理卷
[root@lvm ~]# pvcreate -f /dev/nvme0n1
Physical volume "/dev/nvme0n1" successfully created.
3)创建创建的物理卷
[root@lvm ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1 lvm2 --- 50.00g 50.00g
/dev/sda2 centos lvm2 a-- <99.51g 0
/dev/sda2是安装系统是创建 的物理卷,50G的/dev/nvme0n1是通过lvm管理新创建的物理卷
4)创建卷组
[root@lvm ~]# vgcreate -f ocloud-vg /dev/nvme0n1
Volume group "ocloud-vg" successfully created
注意:
ocloud-vg是自己命令的便于识别的卷组标识名
要划分多个目录数小于物理卷数,可以将具体的单个磁盘作为一个卷组早划分一个逻辑卷提供给一个集体目录使用;
如果要划分的目录数大于物理卷数。比如俩个物理卷要划分3个目录使用的情况,可以将俩个物理卷分给同一个卷组:vgcreate -f ocloud-vg /dev/nvme0n1 /dev/nvme0n2 (以此类推),再在卷组上划分多个逻辑卷给多个目录使用
5)查看卷组信息
[root@lvm ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.51g 0
ocloud-vg 1 0 0 wz--n- <50.00g <50.00g
6)添加新的物理卷
[root@lvm ~]# pvcreate -f /dev/nvme0n2
Physical volume "/dev/nvme0n2" successfully created.
7)将新的物理卷添加到现有的卷组
[root@lvm ~]# vgextend ocloud-vg /dev/nvme0n2
Volume group "ocloud-vg" successfully extended
8)再次查看卷组的信息
[root@lvm ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.51g 0
ocloud-vg 2 0 0 wz--n- 99.99g 99.99g
可以发现2个大小50G的物理卷组成了一个大小100G的卷组
9)从现有的卷组中删除一个物理卷
要从一个卷组中删除一个物理卷,首先确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命名查看一个该物理卷的信息,如果某个物理卷正在被逻辑卷所使用,就需要将改物理卷的数据备份到其他地方,然后在删除。移除卷组中物理卷的命令为:vgreduce
# 首先需要查看vg中有哪些pv组成
[root@lvm ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1 ocloud-vg lvm2 a-- <50.00g <50.00g
/dev/nvme0n2 ocloud-vg lvm2 a-- <50.00g <50.00g
/dev/sda2 centos lvm2 a-- <99.51g 0
## 可以发现ocloud-vg中有2个物理卷/dev/nvme0n1和/dev/nvme0n2
# 从ocloud-vg中移除/dev/nvme0n2
[root@lvm ~]# vgreduce ocloud-vg /dev/nvme0n2
Removed "/dev/nvme0n2" from volume group "ocloud-vg"
# 查看卷组ocloud-vg的信息
[root@lvm ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.51g 0
ocloud-vg 1 0 0 wz--n- <50.00g <50.00g
## 可以看到磁盘已经从卷组中移除,空间也由100G变为了50G
10)创建逻辑卷
# 创建指定大小的逻辑卷
[root@lvm ~]# lvcreate -L 10G -n data1-lv ocloud-vg
Logical volume "data1-lv" created.
## data1-lv是自己命令的便于识别的逻辑卷标识名,大小是10G
# 查看逻辑卷信息
[root@lvm ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <97.51g
swap centos -wi-ao---- 2.00g
data1-lv ocloud-vg -wi-a----- 10.00g
# 扩展逻辑卷(逻辑卷只能扩展不能缩)
[root@lvm ~]# lvextend -L +5G /dev/ocloud-vg/data1-lv
Size of logical volume ocloud-vg/data1-lv changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
Logical volume ocloud-vg/data1-lv successfully resized.
# 查看逻辑信息
[root@lvm ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <97.51g
swap centos -wi-ao---- 2.00g
data1-lv ocloud-vg -wi-a----- 15.00g
注意:
如果逻辑卷已经创建好文件系统后扩了逻辑卷,文件系统容量不能增加。需要执行如下命 令后文件系统容量才会显示正常:
xfs_growfs /dev/ocloud-vg/data1-lv
11)通过百分比的方式将卷组的空间分成想同大小的逻辑卷
[root@lvm ~]# lvcreate -l 50%Free -n data2-lv ocloud-vg
Logical volume "data2-lv" created.
[root@lvm ~]# lvcreate -l 100%Free -n data3-lv ocloud-vg
Logical volume "data3-lv" created.
说明:
剩余空间分成相同的2份,第一次lvcreate时候应该写50%Free,第2次lvcreate的时候写成100%Free
同理剩余空间分成相同的3份,第一次lvcreate时候写33%Free,第二次执行lvcreate的时候写50%Free。第三次执行lvcreate的时候写100%Free。
# 查看创建的逻辑卷信息
[root@lvm ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <97.51g
swap centos -wi-ao---- 2.00g
data1-lv ocloud-vg -wi-a----- 15.00g
data2-lv ocloud-vg -wi-a----- <17.50g
data3-lv ocloud-vg -wi-a----- 17.50g
可以看出data1-lv是指定大小创建的逻辑卷,data2-lv和data3-lv是通过百分比的方式创建的逻辑卷。
12)常见文件系统
# data1-lv
[root@lvm ~]# mkfs.xfs -n ftype=1 /dev/ocloud-vg/data1-lv
meta-data=/dev/ocloud-vg/data1-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
#data2-lv
[root@lvm ~]# mkfs.xfs -n ftype=1 /dev/ocloud-vg/data2-lv
meta-data=/dev/ocloud-vg/data2-lv isize=512 agcount=4, agsize=1146624 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4586496, 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
#data3-lv
[root@lvm ~]# mkfs.xfs -n ftype=1 /dev/ocloud-vg/data3-lv
meta-data=/dev/ocloud-vg/data3-lv isize=512 agcount=4, agsize=1146880 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4587520, 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
13)挂载文件系统
# 创建挂载目录
mkdir -p /{data1,data2,data3}
# 挂载
[root@lvm ~]# echo -e "/dev/ocloud-vg/data1-lv\t/data1\t\t\txfs\tdefaults\t0 0" >> /etc/fstab
[root@lvm ~]# echo -e "/dev/ocloud-vg/data2-lv\t/data2\t\t\txfs\tdefaults\t0 0" >> /etc/fstab
[root@lvm ~]# echo -e "/dev/ocloud-vg/data3-lv\t/data3\t\t\txfs\tdefaults\t0 0" >> /etc/fstab
# 生效
[root@lvm ~]# mount -a
# 查看磁盘信息
[root@lvm ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─centos-root 253:0 0 97.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
nvme0n1 259:0 0 50G 0 disk
├─ocloud--vg-data1--lv 253:2 0 15G 0 lvm /data1
├─ocloud--vg-data2--lv 253:3 0 17.5G 0 lvm /data2
└─ocloud--vg-data3--lv 253:4 0 17.5G 0 lvm /data3
或者
[root@lvm ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 98G 1.1G 97G 2% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt/cdrom
/dev/sda1 xfs 497M 123M 375M 25% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/ocloud--vg-data1--lv xfs 15G 33M 15G 1% /data1
/dev/mapper/ocloud--vg-data2--lv xfs 18G 33M 18G 1% /data2
/dev/mapper/ocloud--vg-data3--lv xfs 18G 33M 18G 1% /data3
## 可以看到所有创建的逻辑卷均已经挂载成功
14)删除逻辑卷
# 先卸载挂载目录
[root@lvm ~]# umount /data1/
[root@lvm ~]# umount /data2/
[root@lvm ~]# umount /data3/
# 注释掉/etc/fatab中的/data1,data2.data3部分保存并退出
#/dev/ocloud-vg/data1-lv /data1 xfs defaults 0 0
#/dev/ocloud-vg/data2-lv /data2 xfs defaults 0 0
#/dev/ocloud-vg/data3-lv /data3 xfs defaults 0 0
## 查看磁盘信息
[root@lvm ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─centos-root 253:0 0 97.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
nvme0n1 259:0 0 50G 0 disk
├─ocloud--vg-data1--lv 253:2 0 15G 0 lvm
├─ocloud--vg-data2--lv 253:3 0 17.5G 0 lvm
└─ocloud--vg-data3--lv 253:4 0 17.5G 0 lvm
nvme0n2 259:1 0 50G 0 disk
## 分区挂载已经卸载
# 删除逻辑卷
[root@lvm ~]# lvremove -f /dev/ocloud-vg/data1-lv
Logical volume "data1-lv" successfully removed
[root@lvm ~]# lvremove -f /dev/ocloud-vg/data2-lv
Logical volume "data2-lv" successfully removed
[root@lvm ~]# lvremove -f /dev/ocloud-vg/data3-lv
Logical volume "data3-lv" successfully removed
# 确认逻辑卷信息是否已经删除
[root@lvm ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <97.51g
swap centos -wi-ao---- 2.00g
15)删除卷组
# 查看卷组的信息
[root@lvm ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.51g 0
ocloud-vg 1 0 0 wz--n- <50.00g <50.00g
# 删除卷组
[root@lvm ~]# vgremove -f /dev/ocloud-vg
Volume group "ocloud-vg" successfully removed
# 查看信息
[root@lvm ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.51g 0
16)删除物理卷
# 查看pv
[root@lvm ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1 lvm2 --- 50.00g 50.00g
/dev/nvme0n2 lvm2 --- 50.00g 50.00g
/dev/sda2 centos lvm2 a-- <99.51g 0
# 删除pv
[root@lvm ~]# pvremove -f /dev/nvme0n1
Labels on physical volume "/dev/nvme0n1" successfully wiped.
[root@lvm ~]# pvremove -f /dev/nvme0n2
Labels on physical volume "/dev/nvme0n2" successfully wiped.
# 查看pv
[root@lvm ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.51g 0
17)把磁盘还原为裸盘方式
dd if=/dev/zero of=/dev/nvme0n1 bs=50M count=1024
dd if=/dev/zero of=/dev/nvme0n2 bs=50M count=1024
2、基于分区的方式创建逻辑卷
依次为:disk -> partition -> PV -> VG -> LV -> fs,也即磁盘->分区->物理卷->卷组->逻辑卷->文件系统。
1)创建分区
使用fdisk或者parted工具进行,创建分区时注意分区类型的设置(类型为linux lvm):
-
如果使用的是MBR,设置分区类型要为8e。
-
如果使用的是GPT,设置分区类型要为E6D6D379-F507-44C2-A23C-238F2A3DF928
[root@lvm ~]# fdisk /dev/nvme0n1
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 0xdd5ab741.
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-104857599, default 2048): #默认回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +8G #大小8G
Partition 1 of type Linux and of size 8 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/nvme0n1: 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: 0xdd5ab741
Device Boot Start End Blocks Id System
/dev/nvme0n1p1 2048 16779263 8388608 8e Linux LVM
Command (m for help): w # 保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
查看分区信息
root@lvm ~]# fdisk -l
...
Device Boot Start End Blocks Id System
/dev/nvme0n1p1 2048 16779263 8388608 8e Linux LVM
Disk /dev/nvme0n2: 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
或者
[root@lvm ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─centos-root 253:0 0 97.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
nvme0n1 259:0 0 50G 0 disk
└─nvme0n1p1 259:2 0 8G 0 part
nvme0n2 259:1 0 50G 0 disk
再创建一个大小为10G的linux lvm类型分区
过程略
2)创建物理卷
[root@lvm ~]# pvcreate -f /dev/nvme0n1p1 /dev/nvme0n1p2
Physical volume "/dev/nvme0n1p1" successfully created.
Physical volume "/dev/nvme0n1p2" successfully created.
# 查看所有pv的信息
[root@lvm ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p1 lvm2 --- 8.00g 8.00g
/dev/nvme0n1p2 lvm2 --- 10.00g 10.00g
/dev/sda2 centos lvm2 a-- <99.51g 0
或者
[root@lvm ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<99.51 GiB / 0 free]
PV /dev/nvme0n1p2 lvm2 [10.00 GiB]
PV /dev/nvme0n1p1 lvm2 [8.00 GiB]
Total: 3 [<117.51 GiB] / in use: 1 [<99.51 GiB] / in no VG: 2 [18.00 GiB]
或者
[root@lvm ~]# pvdisplay
3)创建卷组
[root@lvm ~]# vgcreate ocloud-vg /dev/nvme0n1p1 /dev/nvme0n1p2
Volume group "ocloud-vg" successfully created
# 查看卷组信息
[root@lvm ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <99.51g 0
ocloud-vg 2 0 0 wz--n- 17.99g 17.99g
# 注:通过pvs查看物理卷所在卷组
4)创建逻辑卷
[root@lvm ~]# lvcreate -L 10G ocloud-vg -n data1-lv
Logical volume "data1-lv" created.
[root@lvm ~]# lvcreate -l 100%Free ocloud-vg -n data2-lv
Logical volume "data2-lv" created.
# 查看lv
[root@lvm ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <97.51g
swap centos -wi-ao---- 2.00g
data1-lv ocloud-vg -wi-a----- 10.00g
data2-lv ocloud-vg -wi-a----- 7.99g
5)格式化并挂载逻辑卷
上面逻辑卷LV创建之后,通常是已经可以在/dev/ocloud/或者/dev/vg_name/下面找到该逻辑卷了,如果找不到的话,可以执行如下命令:
# modprobe dm-mod
# vgscan
# vgchange -ay
格式化
# 格式化为xfs格式
[root@lvm ~]# mkfs.xfs /dev/ocloud-vg/data1-lv
[root@lvm ~]# mkfs.xfs /dev/ocloud-vg/data2-lv
# 挂载
[root@lvm ~]# mount /dev/ocloud-vg/data1-lv /data1
[root@lvm ~]# mount /dev/ocloud-vg/data2-lv /data2
# 查看磁盘信息
[root@lvm ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 98G 1.1G 97G 2% /
devtmpfs devtmpfs 476M 0 476M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 7.7M 480M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt/cdrom
/dev/sda1 xfs 497M 123M 375M 25% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/ocloud--vg-data2--lv xfs 8.0G 33M 8.0G 1% /data2
/dev/mapper/ocloud--vg-data1--lv xfs 10G 33M 10G 1% /data1
6)删除lv,vg,pv
# 取消挂载
[root@lvm ~]# umount /data1
[root@lvm ~]# umount /data2
# 删除lv
[root@lvm ~]# lvremove -f /dev/ocloud-vg/data2-lv
Logical volume "data2-lv" successfully removed
[root@lvm ~]# lvremove -f /dev/ocloud-vg/data1-lv
Logical volume "data1-lv" successfully removed
# 删除vg
[root@lvm ~]# vgremove -f ocloud-vg
Volume group "ocloud-vg" successfully removed
# 删除pv
[root@lvm ~]# pvremove -f /dev/nvme0n1p2
Labels on physical volume "/dev/nvme0n1p2" successfully wiped.
[root@lvm ~]# pvremove -f /dev/nvme0n1p1
Labels on physical volume "/dev/nvme0n1p1" successfully wiped.
7)删除磁盘分区
[root@lvm ~]# fdisk /dev/nvme0n1 # 选择操作的磁盘
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 # 删除分区
Partition number (1,2, default 2): 1 # 删除的分区
Partition 1 is deleted
Command (m for help): d # 删除分区
Selected partition 2
Command (m for help): w # 保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
查看分区信息
# 查看磁盘信息
[root@lvm ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─centos-root 253:0 0 97.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /mnt/cdrom
nvme0n1 259:0 0 50G 0 disk
nvme0n2 259:3 0 50G 0 disk
如果对你有用,麻烦点赞支持一下,发帖新人。谢谢大家!
更多推荐
所有评论(0)