一、创建LVM逻辑卷并挂载来自百度百科-LVM
- 物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。- 物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。- 卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。- 逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。- 物理块(Physical Extent,PE)
PE是物理卷PV的基本划分单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。- 逻辑块(Logical Extent,LE)
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
# 安装lvm2 apt install lvm2 # 查看scsi总线 ls /sys/class/scsi_host # 查看结果 host0 host1 host2 # 扫描host0 echo '- - -' > /sys/class/scsi_host/host0/scan # 扫描host1 echo '- - -' > /sys/class/scsi_host/host1/scan # 扫描host2 echo '- - -' > /sys/class/scsi_host/host2/scan # 查看磁盘 发现新硬盘/dev/sdb fdisk --list # 使用cfdisk初始化磁盘 # 使用GPT分区 创建Linux LVM类型的分区 cfdisk /dev/sdb # 查看磁盘 发现新分区/dev/sdb1 fdisk --list # 创建pv(物理卷) # 参数1 设备路径 pvcreate /dev/sdb1 # 查看pv列表 pvs # 查看pv详情 pvdisplay # 创建vg(卷组) # 参数1 -s PE大小(一个vg最多65534个PE 256M的vg最大容量为16T) # 参数2 vg名称 # 参数3 pv名称 vgcreate -s 128M vg0 /dev/sdb1 # 查看vg列表 vgs # 查看vg详情 vgdisplay # 创建lv(逻辑卷) # 参数1 -L 逻辑卷大小(实际容量 10G 500G等) # 参数1 -l 逻辑卷大小(80%Free 100%VG等) # 参数2 -n 逻辑卷名称 # 参数3 vg0为使用的vg组 lvcreate -l 100%Free -n vdisk0 vg0 # 查看lv列表 lvs # 查看lv详情 lvdisplay # 查看硬盘 发现/dev/mapper/vg0-vdisk0逻辑卷 fdisk --list # 格式化逻辑卷 mkfs.ext4 /dev/mapper/vg0-vdisk0 # 创建挂载点 mkdir -p /opt/vdisk0 # 挂载逻辑卷 mount /dev/mapper/vg0-vdisk0 /opt/vdisk0 # 查看文件系统 df -h # 开机自动挂载 # 增加一行/dev/mapper/vg0-vdisk0 /opt/vdisk0 ext4 defaults 0 0 # <文件系统> <挂载点> <分区类型> <选项>二、LVM命令<检验扇区> nano /etc/fstab
| 命令 | 用途 |
|---|---|
| pvchange | 更改物理卷的属性 |
| pvck | 检查物理卷元数据 |
| pvcreate | 初始化磁盘或分区以供 LVM 使用 |
| pvdisplay | 显示物理卷的属性 |
| pvmove | 移动物理卷 |
| pvremove | 删除物理卷 |
| pvresize | 调整 LVM2 使用的磁盘或分区的大小 |
| pvs | 查看物理卷列表 |
| pvscan | 扫描物理卷的所有磁盘 |
| vgcfgbackup | 备份卷组配置 |
| vgcfgrestore | 恢复卷组配置 |
| vgchange | 更改卷组的属性 |
| vgck | 检查卷组元数据 |
| vgconvert | 转换卷组元数据格式 |
| vgcreate | 创建卷组 |
| vgdisplay | 显示卷组的属性 |
| vgexport | 导出卷组 |
| vgextend | 将物理卷追加到卷组 |
| vgimport | 导入卷组 |
| vgimportclone | 导入并重命名重复的卷组(例如硬件快照) |
| vgmerge | 合并两个卷组 |
| vgmknodes | 重新创建卷组目录和逻辑卷特殊文件 |
| vgreduce | 通过删除一个或多个物理卷来减少卷组 |
| vgremove | 删除卷组 |
| vgrename | 重命名卷组 |
| vgs | 卷组列表 |
| vgscan | 扫描卷组的所有磁盘 |
| vgsplit | 将卷组一分为二,通过移动整个物理卷将任何逻辑卷从一个卷组移动到另一个卷组 |
| lvchange | 更改逻辑卷的属性 |
| lvconvert | 将逻辑卷从线性转换为镜像或快照 |
| lvcreate | 在现有卷组中创建逻辑卷 |
| lvdisplay | 显示逻辑卷的属性 |
| lvextend | 扩展逻辑卷的大小 |
| lvreduce | 减小逻辑卷的大小 |
| lvremove | 删除逻辑卷 |
| lvrename | 重命名逻辑卷 |
| lvresize | 调整逻辑卷的大小 |
| lvs | 逻辑卷列表 |
| lvscan | 扫描(所有磁盘)的逻辑卷 |
| lvmconfig | 显示lvm配置信息 |
| lvmdiskscan | 扫描对 LVM2 可见的所有设备 |
| lvmdump | 为诊断目的创建 lvm2 信息转储 |
# 查看scsi总线 ls /sys/class/scsi_host # 查看结果 host0 host1 host2 # 扫描host0 echo '- - -' > /sys/class/scsi_host/host0/scan # 扫描host1 echo '- - -' > /sys/class/scsi_host/host1/scan # 扫描host2 echo '- - -' > /sys/class/scsi_host/host2/scan # 查看磁盘 发现新硬盘/dev/sdc fdisk --list # 使用cfdisk初始化磁盘 # 使用GPT分区 创建Linux LVM类型的分区 cfdisk /dev/sdc # 查看磁盘 发现新分区/dev/sdc1 fdisk --list # 创建pv(物理卷) # 参数1 设备路径 pvcreate /dev/sdc1 # 查看VG vgdisplay # 使用vgextend把pv扩充至vg0 # 参数1 vg卷组 # 参数2 pv物理卷 vgextend vg0 /dev/sdc1 # 查看VG 发现有可用空间:Free PE/Size 239/<29.88 GiB vgdisplay # lv扩容 /dev/vg0/vdisk0 # 参数1 -l 按百分比调整 # 参数2 lv逻辑卷 lvextend -l +100%FREE /dev/vg0/vdisk0 # 调整分区大小 默认扩充所有空间 resize2fs -p /dev/vg0/vdisk0 # 查看调整后的分区 df -h三、LVM减容
# 查看分区挂载 df -h # 卸载挂载 umount /opt/vdisk0 # 检查分区 e2fsck -f /dev/vg0/vdisk0 # 调整分区大小为20G resize2fs -p /dev/vg0/vdisk0 20G # 挂载逻辑卷 mount /dev/mapper/vg0-vdisk0 /opt/vdisk0 # lv逻辑卷容量调整为20G(注意:可能会损坏数据) lvreduce -L 20G /dev/mapper/vg0-vdisk0 # 查看分区挂载 df -h # 查看vg可用空间 vgdisplay



