pv : 物理卷,与磁盘分区是逻辑对应关系 vg : 卷组,单个或多个物理卷组合 pe : 逻辑意义上磁盘的最小存储单位,默认 4MB lv : 逻辑意义上的分区,从 vg 中提取容量来创建逻辑卷。最后对逻辑卷格式化并挂载使用
总结 新加 pvcreate + vgcreate + lvcreate
1 2 3 4 5 6 sudo pvcreate /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 sudo vgcreate bigdata-vg /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 sudo lvcreate -l 100%FREE -n bigdata-lv bigdata-vg sudo mkfs.ext4 /dev/bigdata-vg/bigdata-lv sudo mkdir -p /data/home/user0/bigdata sudo mount /dev/bigdata-vg/bigdata-lv /data/home/user0/bigdata
扩容 pvcreate + vgextend + lvextend
1 2 3 4 5 6 sudo pvcreate /dev/nvme4n1 sudo vgextend bigdata-vg /dev/nvme4n1 sudo lvextend -l +100%FREE /dev/bigdata-vg/bigdata-lv sudo resize2fs /dev/bigdata-vg/bigdata-lv # 如果 ext4 # sudo xfs_growfs /data/home/user0/bigdata # 如果 xfs df -h /data/home/user0/bigdata
添加 LVM
pvcreate /dev/sdc1 /dev/sdj # pvdisplay
vgcreate docker /dev/sdc1 /dev/sdj # vgdisplay
lvcreate -l 100%FREE -n testpool docker # lvdisplay
mkfs.xfs /dev/docker/testpool
mount /dev/docker/testpool /var/lib/docker
删除 LVM
umount /var/lib/docker
lvremove /dev/docker/testpool
vgremove docker
pvremove /dev/sdc1 /dev/sdj
fdisk /dev/sdc # t 改为 83 # fdisk /dev/sdj
ls /dev/mapper/docker-testpool | xargs -I% – dmsetup remove %
partprobe
LVM 扩缩容 新添加硬盘 /dev/sdf 1 2 3 4 5 6 7 8 9 10 11 12 13 fdisk -l fdisk /dev/sdf # 过程省略 fdisk -l mkfs -t ext4 -c /dev/sdf1 mount /dev/sdf1 /new_data blkid # 查看 UUID echo "UUID=5297705a-0889-434e-abc0-b47a6c180645 /new_data ext4 defaults 0 0" >> /etc/fstab # 写入文件,重启后自动挂载 ## /etc/mtab # 当前挂载信息 ## 减少 / 目录存储空间 mkdir -p /new_data/data ln -s /new_data/data /data
扩展硬盘 vmware 硬盘设置 里面 扩展
新建分区 1 2 3 4 5 6 7 8 9 10 11 12 13 14 fdisk -l fdisk /dev/sda m n p 3 default default t 3 8e (linux LVM) p w partprobe
扩容
1 2 3 4 5 6 7 8 9 10 11 12 lsblk # 多一个 sda4 pvcreate /dev/sda4 # 创建物理卷 pvdisplay vgextend centos /dev/sda4 # 扩充逻辑卷, centos 是 VG name vgdisplay # 可以看到 Free PE / Size lvresize -l +100%FREE /dev/mapper/centos-root xfs_growfs /dev/mapper/centos-root # resize2fs -p /dev/mapper/centos-root ## 使用 ext 时可以使用这个命令替换
调整硬盘大小 1 2 3 4 5 6 7 8 9 10 11 12 Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors Disk model: VMware Virtual S 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: B8602372-BEA9-4285-A079-D5DC179F9F6B Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 3149823 3145728 1.5G Linux filesystem /dev/sda3 3149824 83884031 80734208 38.5G Linux filesystem
将剩余空间全给 sda3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 root@imwl:~# parted /dev/sda GNU Parted 3.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit GB (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 107GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00GB 0.00GB 0.00GB bios_grub 2 0.00GB 1.61GB 1.61GB ext4 3 1.61GB 42.9GB 41.3GB (parted) resizepart 3 100% (parted) quit Information: You may need to update /etc/fstab. root@imwl:~# partprobe
调整文件系统
1 2 3 4 5 pvresize /dev/sda3 lvresize -l +100%FREE /dev/mapper/centos-root xfs_growfs /dev/mapper/centos-root # resize2fs -p /dev/mapper/centos-root ## 使用 ext 时可以使用这个命令替换
缩减 /home 容量 扩充到 根目录 建议先备份 /home
1 2 3 4 5 6 7 8 9 10 11 12 cp -a /home /opt # 用 -a 而不是 -r,保留属主、属组、权限位和时间戳;也可以用 rsync -aHAX /home/ /opt/home/ umount /home lvresize -L 10G /dev/mapper/centos-home mkfs.xfs -f /dev/mapper/centos-home # 格式化 mount /dev/mapper/centos-home pvdisplay vgdisplay lvresize -L +190G /dev/mapper/centos-root xfs_growfs /dev/mapper/centos-root cp -a /opt/home/. /home/ # 恢复同样用 -a,这样就不需要事后再 chown
这里两步都必须用 -a(或 rsync -aHAX)。cp -r 不保留属主、属组、权限位和时间戳(xattr/ACL、硬链接、稀疏文件也一并丢掉),备份多用户的 /home 时,恢复出来的文件会全部变成 root:root 加默认 umask,然后就得靠 chown -R imwl:imwl /home/imwl 这样一个个补 —— 而手工补很容易漏掉 .ssh(权限不对 sshd 会直接拒绝登录)和 .gnupg。
手动备份 也可以使用工具备份
1 2 3 4 5 6 7 8 yum install -y xfsdump xfsdump -f /opt/home.dump /home ## 扩容完后 xfsrestore -f /opt/home.dump /home