1、查看硬盘分区信息
# fdisk -l
查看未格式化的分区
# parted -l 可以查看未挂载的文件系统类型,以及哪些分区尚未格式化
# lsblk -f 可以查看未挂载的文件系统类型
2、格式化分区
# parted /dev/vdb
# mklabel gpt
# mkpart primary xfs 0% 100%
# set 1 lvm on //set:添加标志;1:为分区编号;lvm:标志;on:开启
# print //查看分区表
# quit
如硬盘小于2T则使用如下命令:
# fdisk /dev/vdb
Command (m for help): m
Command (m for help): n
Select (default p): p
Command (m for help): w
3、创建逻辑卷组
(1)初始化分区vdb1为物理卷pv
# pvcreate /dev/vdb1 //初始化
# pvdisplay //显示物理卷信息
--- Physical volume ---
PV Name /dev/vdb1
VG Name VolGroup00
PV Size <4.00 TiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1048575
Free PE 0
Allocated PE 1048575
PV UUID OsEekg-IwBU-zAjv-sl4D-5p4V-2kTp-82Loqn
(2)创建逻辑卷组vg,将/dev/vdb1物理卷加入到这个卷组里(VolGroup00为自定义的名字)
# vgcreate VolGroup00 /dev/vdb1 //创建逻辑卷组
# vgdisplay VolGroup00 -v //显示卷组信息
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <4.00 TiB
PE Size 4.00 MiB
Total PE 1048575
Alloc PE / Size 1048575 / <4.00 TiB
Free PE / Size 0 / 0
VG UUID KhVEIT-UAnm-Mowf-Cz7e-AQ8h-7Q1P-V5cIIr
注:使用vgdisplay显示有关逻辑卷的信息,如上所示,看到卷组可用的空间为4T,为什么提示空间不够呢?其实正在的原因:可用的PE数量是1048575,而每个PE大小是4.00MiB,所以其实这个卷组实际的可用空间其实不是4T,而是1048575*4/1024 = 4095.99609375G
(3)创建逻辑卷LV,名称LogVol00,由卷组VolGroup00提供空间,并给他指定拥有4095.996G的LogVol00为自定义的名字)
# lvcreate -L +4095.996G -n LogVol00 VolGroup00
# lvdisplay //显示逻辑卷信息
4、格式化逻辑分区,格式 xfs
# mkfs.xfs /dev/VolGroup00/LogVol00
如要格式化为ext4格式使用如下命令
# mkfs.ext4 /dev/VolGroup00/LogVol00
5、挂载逻辑卷分区
(1)将/dev/mapper/VolGroup00-LogVol00这个逻辑卷挂在到/data文件下
# mount -t xfs /dev/mapper/VolGroup00-LogVol00 /data
如是ext4文件格式使用如下命令:
# mount -t /dev/mapper/VolGroup00-LogVol00 /data
(2)设置开机自动挂载
# blkid //得到新建lvm分区信息
/dev/mapper/VolGroup00-LogVol00: UUID="defa1975-5186-4c34-9200-615f258b8e7e" TYPE="xfs"
# vi /etc/fstab
UUID=defa1975-5186-4c34-9200-615f258b8e7e /data xfs defaults 0 0
# df -Th
6、动态扩容分区
# fdisk -l
# parted /dev/vdc
# mklabel gpt
# mkpart primary xfs 0% 100%
# set 1 lvm on
# print //查看分区表
# quit
# pvcreate /dev/vdc1 //初始化分区
# vgextend VolGroup00 /dev/vdc1 //将初始化过的分区加入VolGroup00虚拟卷组
# vgdisplay VolGroup00 -v //查看逻辑组信息
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <8.00 TiB
PE Size 4.00 MiB
Total PE 2097150
Alloc PE / Size 2097150 / <8.00 TiB
Free PE / Size 0 / 0
VG UUID KhVEIT-UAnm-Mowf-Cz7e-AQ8h-7Q1P-V5cIIr
# lvextend -L +4095.996G /dev/mapper/vg_storage-lv_data //扩展已有卷的容量
# pvdisplay //查看卷容量
--- Physical volume ---
PV Name /dev/vdb1
VG Name VolGroup00
PV Size <4.00 TiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1048575
Free PE 0
Allocated PE 1048575
PV UUID OsEekg-IwBU-zAjv-sl4D-5p4V-2kTp-82Loqn
--- Physical volume ---
PV Name /dev/vdc1
VG Name VolGroup00
PV Size <4.00 TiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1048575
Free PE 0
Allocated PE 1048575
PV UUID 7Kn3JV-bgzp-CshD-EBkP-0cro-xiP2-lY1w4x
# xfs_growfs /dev/mapper/VolGroup00-LogVol00 //扩容文件系统
注:如分区格式为ext4此处使用 resize2fs /dev/mapper/VolGroup00-LogVol00
# df -Th
LVM其他操作
(1)删除一个vg
# vgchange -a n VolGroup00
# vgremove VolGroup00
(2)从vg中删除pv
# pvdisplay //查看确保pv不被lv使用
如果pv已经被使用,需要使用pvmove命令把pv的数据迁移到另外空闲的pv
# pvmove /dev/sda /dev/sdb
# vgreduce VolGroup00 /dev/sda //删除pv
(3)删除一个LV
# umount /dev/VolGroup00/LogVol00
# lvremove /dev/VolGroup00/LogVol00
lvremove -- do you really want to remove "/dev/VolGroup00/LogVol00"? [y/n]: y
lvremove -- doing automatic backup of volume group "VolGroup00"
lvremove -- logical volume "/dev/myvg/homevol" successfully removed