在 CentOS 挂载 (U 盘 NTFS 格式, 新硬盘, 增加交换分区, 扩展根分区等) https://www.cnblogs.com/asker009/p/10269620.html 中扩展根分区部分用的就是 LVM 逻辑卷管理来进行扩展的.
1, 为什么会有逻辑卷管理
传统磁盘管理是直接对硬盘分区进行访问, 你如果磁盘不够了, 再加一块硬盘, 然后分区格式化, 系统和应用直接对分区后的硬盘直接访问.
这个访问是独立, 脱离原有目录系统的, 比如在 Windows 系统里经常出现 C 盘不够了, 当时分区没想到 Windows 会如此臃肿, 要解决这个问题,
只能重新挂硬盘, 借助第三方软件来动态的, 非在线式的调整, 而且, 非常慢.
而 LVM 逻辑卷管理, 可以动态的, 实时的实现这个过程, 非常快. LVM 能做到这点, 是 LVM 在磁盘上抽象了一层管理系统, 系统和应用已经不
直接访问磁盘, 而是访问这个抽象层, 也就是 LVM 里的逻辑卷.
2, 常用的 LVM 命令
物理卷 | 卷组 | 逻辑卷 | |
扫描 | pvscan(pvs) | vgscan(vgs) | lvscan(lvs) |
创建 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩减 | vgreduce | lvreduce |
3, 逻辑卷示例
3.1, 创建物理卷
查看目前物理卷
- [root@bigdata-senior01 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sda2 CentOS lvm2 a-- <19.00g 0
- /dev/sdb3 CentOS lvm2 a-- <15.00g 0
查看目前磁盘情况, 这个命令比较多, 这里用 lsblk 直观一些
- [root@bigdata-senior01 ~]# lsblk
- NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
- sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─CentOS-root 253:0 0 32G 0 lvm /
└─CentOS-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part /backup
├─sdb2 8:18 0 3G 0 part [SWAP]
└─sdb3 8:19 0 15G 0 part
└─CentOS-root 253:0 0 32G 0 lvm /
- sdc 8:32 0 1G 0 disk
- sdd 8:48 0 1G 0 disk
- sde 8:64 0 1G 0 disk
- sdf 8:80 0 1G 0 disk
- sdg 8:96 0 1G 0 disk
- sr0 11:0 1 4.2G 0 rom
把 sdc,sdd,sde 三个磁盘都创建成物理卷
- [root@bigdata-senior01 ~]# pvcreate /dev/sdc /dev/sdd /dev/sde
- Physical volume "/dev/sdc" successfully created.
- Physical volume "/dev/sdd" successfully created.
- Physical volume "/dev/sde" successfully created.
- [root@bigdata-senior01 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sda2 CentOS lvm2 a-- <19.00g 0
- /dev/sdb3 CentOS lvm2 a-- <15.00g 0
- /dev/sdc lvm2 --- 1.00g 1.00g
- /dev/sdd lvm2 --- 1.00g 1.00g
- /dev/sde lvm2 --- 1.00g 1.00g
3.2, 创建新卷组 esdata
查看目前卷组情况
- [root@bigdata-senior01 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- CentOS 2 2 0 wz--n- 33.99g 0
创建 esdata 卷组
- [root@bigdata-senior01 ~]# vgcreate esdata /dev/sdc /dev/sdd /dev/sde
- Volume group "esdata" successfully created
再次查看
- [root@bigdata-senior01 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- CentOS 2 2 0 wz--n- 33.99g 0
- esdata 3 0 0 wz--n- <2.99g <2.99g
3.3, 创建逻辑卷, 800M 大小
- [root@bigdata-senior01 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root CentOS -wi-ao---- 31.99g
- swap CentOS -wi-ao---- 2.00g
从 esdata 上创建名字为 vo_esData 的逻辑卷, 800M
- [root@bigdata-senior01 ~]# lvcreate -n vo_esData -L 800M esdata
- Logical volume "vo_esData" created.
- [root@bigdata-senior01 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root CentOS -wi-ao---- 31.99g
- swap CentOS -wi-ao---- 2.00g
- vo_esData esdata -wi-a----- 800.00m
3.4, 格式化逻辑卷 vo_esData
查看逻辑卷路径
- [root@bigdata-senior01 ~]# lvdisplay
- --- Logical volume ---
- LV Path /dev/esdata/vo_esData
- LV Name vo_esData
- VG Name esdata
- LV UUID tMu3LD-Xxyy-10b4-Nbvn-SFe9-hn9W-kdFlDV
- LV Write Access read/write
- LV Creation host, time bigdata-senior01.home.com, 2019-01-17 15:39:59 +0800
- LV Status available
- # open 0
- LV Size 800.00 MiB
- Current LE 200
- Segments 1
- Allocation inherit
- Read ahead sectors auto
- - currently set to 8192
- Block device 253:2
格式化成 ext4 格式, 为啥不是 xfs 格式? 因为 xfs 缩减不方便
- [root@bigdata-senior01 ~]# mkfs.ext4 /dev/esdata/vo_esData
- mke2fs 1.42.9 (28-Dec-2013)
文件系统标签 =
OS type: Linux
块大小 = 4096 (log=2)
分块大小 = 4096 (log=2)
- Stride=0 blocks, Stripe width=0 blocks
- 51296 inodes, 204800 blocks
- 10240 blocks (5.00%) reserved for the super user
第一个数据块 = 0
- Maximum filesystem blocks=209715200
- 7 block groups
- 32768 blocks per group, 32768 fragments per group
- 7328 inodes per group
- Superblock backups stored on blocks:
- 32768, 98304, 163840
Allocating group tables: 完成
正在写入 inode 表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
3.5, 挂载
- [root@bigdata-senior01 /]# mount /dev/esdata/vo_esData /mnt/esdata
- [root@bigdata-senior01 /]# ls /mnt/esdata
- lost+found
- [root@bigdata-senior01 /]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
- /dev/mapper/CentOS-root 32G 4.2G 28G 13% /
- devtmpfs 901M 0 901M 0% /dev
- tmpfs 912M 0 912M 0% /dev/shm
- tmpfs 912M 8.6M 904M 1% /run
- tmpfs 912M 0 912M 0% /sys/fs/cgroup
- /dev/sda1 1014M 143M 872M 15% /boot
- /dev/sdb1 2.0G 67M 2.0G 4% /backup
- tmpfs 183M 0 183M 0% /run/user/1004
- /dev/mapper/esdata-vo_esData 772M 1.6M 714M 1% /mnt/esdata
3.6, 扩展逻辑卷, 把刚才创建的 800M 的逻辑卷扩展到 1.5G, 只要卷组里还有足够的资源, 就可以扩展逻辑卷.
如果卷组的空间不够, 还可以再加硬盘创建物理卷, 然后, 把物理卷加入到对应的卷组里, 保证卷组的资源.
- [root@bigdata-senior01 /]# vgs
- VG #PV #LV #SN Attr VSize VFree
- CentOS 2 2 0 wz--n- 33.99g 0
- esdata 3 1 0 wz--n- <2.99g <2.21g #卷组还有 2.21GB 的空间可用
- [root@bigdata-senior01 /]# vgdisplay
- --- Volume group ---
- VG Name esdata
- System ID
- Format lvm2
- Metadata Areas 3
- 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 3
- Act PV 3
- VG Size <2.99 GiB
- PE Size 4.00 MiB
- Total PE 765
- Alloc PE / Size 200 / 800.00 MiB
- Free PE / Size 565 / <2.21 GiB #卷组还有 2.21GB 的空间可用
- VG UUID HhfZYk-xAbw-oYGP-S2bc-r53K-CxUO-ds2NUi
- [root@bigdata-senior01 /]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root CentOS -wi-ao---- 31.99g
- swap CentOS -wi-ao---- 2.00g
- vo_esData esdata -wi-ao---- 800.00m
- [root@bigdata-senior01 /]# lvextend -L 1.5G /dev/esdata/vo_esData
- Size of logical volume esdata/vo_esData changed from 800.00 MiB (200 extents) to 1.50 GiB (384 extents).
- Logical volume esdata/vo_esData successfully resized.
- [root@bigdata-senior01 /]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- root CentOS -wi-ao---- 31.99g
- swap CentOS -wi-ao---- 2.00g
- vo_esData esdata -wi-ao---- 1.50g
- [root@bigdata-senior01 /]# vgs
- VG #PV #LV #SN Attr VSize VFree
- CentOS 2 2 0 wz--n- 33.99g 0
- esdata 3 1 0 wz--n- <2.99g <1.49g
卸载设备, 然后才能拉伸文件系统容量
- [root@bigdata-senior01 /]# umount /dev/esdata/vo_esData
- [root@bigdata-senior01 /]# e2fsck /dev/esdata/vo_esData
- e2fsck 1.42.9 (28-Dec-2013)
- /dev/esdata/vo_esData: clean, 11/51296 files, 7726/204800 blocks
- [root@bigdata-senior01 /]# resize2fs /dev/esdata/vo_esData
- resize2fs 1.42.9 (28-Dec-2013)
请先运行'e2fsck -f /dev/esdata/vo_esData'.
- [root@bigdata-senior01 /]# e2fsck -f /dev/esdata/vo_esData
- e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查 inode, 块, 和大小
第二步: 检查目录结构
第 3 步: 检查目录连接性
Pass 4: Checking reference counts
第 5 步: 检查簇概要信息
- /dev/esdata/vo_esData: 11/51296 files (0.0% non-contiguous), 7726/204800 blocks
- [root@bigdata-senior01 /]# resize2fs /dev/esdata/vo_esData
- resize2fs 1.42.9 (28-Dec-2013)
- Resizing the filesystem on /dev/esdata/vo_esData to 393216 (4k) blocks.
- The filesystem on /dev/esdata/vo_esData is now 393216 blocks long.
- [root@bigdata-senior01 /]# mount /dev/esdata/vo_esData /mnt/esdata
- [root@bigdata-senior01 /]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
- /dev/mapper/CentOS-root 32G 4.2G 28G 13% /
- devtmpfs 901M 0 901M 0% /dev
- tmpfs 912M 0 912M 0% /dev/shm
- tmpfs 912M 8.6M 904M 1% /run
- tmpfs 912M 0 912M 0% /sys/fs/cgroup
- /dev/sda1 1014M 143M 872M 15% /boot
- /dev/sdb1 2.0G 67M 2.0G 4% /backup
- tmpfs 183M 0 183M 0% /run/user/1004
- /dev/mapper/esdata-vo_esData 1.5G 2.4M 1.4G 1% /mnt/esdata
3.7, 缩小逻辑卷容量
来源: http://www.bubuko.com/infodetail-2924028.html