LVM,逻辑卷管理工具,它的作用是提供一种灵活的磁盘管理办法。通常我们的某个分区用完了,想要扩容,很麻烦。但是用lvm就可以很方便的扩容,收缩。
看它的原理图:
它的原理大致是:首先将磁盘做成物理卷,然后物理卷再组成卷组,卷组下面再划分逻辑卷。
步骤:
首先看看我们的磁盘/dev/sdb的分区情况:
- [root@ruanwenwu02 ~]# fdisk -l /dev/sdb
- 磁盘 /dev/sdb:4294 MB, 4294967296 字节,8388608 个扇区
- Units = 扇区 of 1 * 512 = 512 bytes
- 扇区大小(逻辑/物理):512 字节 / 512 字节
- I/O 大小(最小/最佳):512 字节 / 512 字节
- 磁盘标签类型:dos
- 磁盘标识符:0x2f45f776
- 设备 Boot Start End Blocks Id System
- /dev/sdb1 2048 2099199 1048576 83 Linux
- /dev/sdb2 6293504 7931903 819200 83 Linux
- /dev/sdb3 2099200 6293503 2097152 5 Extended
- /dev/sdb5 2101248 4198399 1048576 83 Linux
- /dev/sdb6 4200448 5838847 819200 83 Linux
接下来,我们把sdb1,sdb2,sdb5的分区id修改为8e:
- [root@ruanwenwu02 ~]# fdisk /dev/sdb
- 欢迎使用 fdisk (util-linux 2.23.2)。
- 更改将停留在内存中,直到您决定将更改写入磁盘。
- 使用写入命令前请三思。
- 命令(输入 m 获取帮助):t
- 分区号 (1-3,5,6,默认 6):1
- Hex 代码(输入 L 列出所有代码):8e
- 已将分区“Linux”的类型更改为“Linux LVM”
- 命令(输入 m 获取帮助):t
- 分区号 (1-3,5,6,默认 6):2
- Hex 代码(输入 L 列出所有代码):8e
- 已将分区“Linux”的类型更改为“Linux LVM”
- 命令(输入 m 获取帮助):t
- 分区号 (1-3,5,6,默认 6):5
- Hex 代码(输入 L 列出所有代码):8e
- 已将分区“Linux”的类型更改为“Linux LVM”
- 命令(输入 m 获取帮助):p
- 磁盘 /dev/sdb:4294 MB, 4294967296 字节,8388608 个扇区
- Units = 扇区 of 1 * 512 = 512 bytes
- 扇区大小(逻辑/物理):512 字节 / 512 字节
- I/O 大小(最小/最佳):512 字节 / 512 字节
- 磁盘标签类型:dos
- 磁盘标识符:0x2f45f776
- 设备 Boot Start End Blocks Id System
- /dev/sdb1 2048 2099199 1048576 8e Linux LVM
- /dev/sdb2 6293504 7931903 819200 8e Linux LVM
- /dev/sdb3 2099200 6293503 2097152 5 Extended
- /dev/sdb5 2101248 4198399 1048576 8e Linux LVM
- /dev/sdb6 4200448 5838847 819200 83 Linux
- Partition table entries are not in disk order
如果是新创建的分区,找不到的话,使用partprobe命令刷新一下。
运行pvcreate命令,创建物理卷(physical volum)
- [root@ruanwenwu02 ~]# pvs
- -bash: pvs: 未找到命令
- [root@ruanwenwu02 ~]# pvdisplay
- -bash: pvdisplay: 未找到命令
发现这些命令都没有的话,那么就需要安装lvm2:
- [root@ruanwenwu02 ~]# yum install lvm2
- 已加载插件:fastestmirror
- base | 3.6 kB 00:00:00
- extras | 3.4 kB 00:00:00
- updates | 3.4 kB 00:00:00
- (1/2): extras/7/x86_64/primary_db | 129 kB 00:00:00
- (2/2): updates/7/x86_64/primary_db
安装好之后,就可以使用pvcreate命令了:
- [root@ruanwenwu02 ~]# pvcreate /dev/sdb1
- WARNING: ext2 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
- Wiping ext2 signature on /dev/sdb1.
- Physical volume "/dev/sdb1" successfully created.
- [root@ruanwenwu02 ~]# pvcreate /dev/sdb2
- Physical volume "/dev/sdb2" successfully created.
- [root@ruanwenwu02 ~]# pvcreate /dev/sdb5
- Physical volume "/dev/sdb5" successfully created.
运行pvs或者pvdisplay命令能查看当前的物理卷:
- [root@ruanwenwu02 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb1 lvm2 --- 1.00g 1.00g
- /dev/sdb2 lvm2 --- 800.00m 800.00m
- /dev/sdb5 lvm2 --- 1.00g 1.00g
- [root@ruanwenwu02 ~]# pvdisplay
- "/dev/sdb2" is a new physical volume of "800.00 MiB"
- --- NEW Physical volume ---
- PV Name /dev/sdb2
- VG Name
- PV Size 800.00 MiB
- Allocatable NO
- PE Size 0
- Total PE 0
- Free PE 0
- Allocated PE 0
- PV UUID FS2sy9-BTxn-XzCz-6ZBH-fL04-r1mB-p2EH91
- "/dev/sdb5" is a new physical volume of "1.00 GiB"
- --- NEW Physical volume ---
- PV Name /dev/sdb5
- VG Name
- PV Size 1.00 GiB
- Allocatable NO
- PE Size 0
- Total PE 0
- Free PE 0
- Allocated PE 0
- PV UUID 6iKVQF-W01Z-1aMF-m1af-jmhX-Ff7c-r5QHcD
- "/dev/sdb1" is a new physical volume of "1.00 GiB"
- --- NEW Physical volume ---
- PV Name /dev/sdb1
- VG Name
- PV Size 1.00 GiB
- Allocatable NO
- PE Size 0
- Total PE 0
- Free PE 0
- Allocated PE 0
- PV UUID lttH1f-3tce-mEpF-2ULq-nqmL-15SI-2ImIxc
- [root@ruanwenwu02 ~]# vgcreate vg1 /dev/sdb
- sdb sdb1 sdb2 sdb3 sdb5 sdb6
- [root@ruanwenwu02 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
- Volume group "vg1" successfully created
- [root@ruanwenwu02 ~]# vgcreate vg2 /dev/sdb5
- Volume group "vg2" successfully created
- [root@ruanwenwu02 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- vg1 2 0 0 wz--n- 1.77g 1.77g
- vg2 1 0 0 wz--n- 1020.00m 1020.00m
- [root@ruanwenwu02 ~]# vgdisplay
- --- Volume group ---
- VG Name vg2
- System ID
- Format lvm2
- Metadata Areas 1
- Metadata Sequence No 1
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 0
- Open LV 0
- Max PV 0
- Cur PV 1
- Act PV 1
- VG Size 1020.00 MiB
- PE Size 4.00 MiB
- Total PE 255
- Alloc PE / Size 0 / 0
- Free PE / Size 255 / 1020.00 MiB
- VG UUID aDXygA-rltJ-JWCQ-Nbvb-JML9-W3Hf-cVjG63
- --- Volume group ---
- VG Name vg1
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 1
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 0
- Open LV 0
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 1.77 GiB
- PE Size 4.00 MiB
- Total PE 454
- Alloc PE / Size 0 / 0
- Free PE / Size 454 / 1.77 GiB
- VG UUID qxqwsD-oNGT-8ltJ-1Itj-IZfO-0rui-Yxvhh7
使用vgs或者vgdisplay可以看到卷组。
现在我们创建了两个卷组,一个是vg1的1.7G,一个是vg2的1G。接下来我们创建逻辑卷:
- [root@ruanwenwu02 ~]# lvcreate -L 200M -n lv1 vg1
- Logical volume "lv1" created.
创建的逻辑需要被格式化之后才可以使用:
- [root@ruanwenwu02 ~]# mke2fs -t ext4 /dev/vg1/lv1
- mke2fs 1.42.9 (28-Dec-2013)
- 文件系统标签=
- OS type: Linux
- 块大小=1024 (log=0)
- 分块大小=1024 (log=0)
- Stride=0 blocks, Stripe width=0 blocks
- 51200 inodes, 204800 blocks
- 10240 blocks (5.00%) reserved for the super user
- 第一个数据块=1
- Maximum filesystem blocks=33816576
- 25 block groups
- 8192 blocks per group, 8192 fragments per group
- 2048 inodes per group
- Superblock backups stored on blocks:
- 8193, 24577, 40961, 57345, 73729
- Allocating group tables: 完成
- 正在写入inode表: 完成
- Creating journal (4096 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
我们采用的ext4的文件系统格式化的,使用xfs的文件系统格式化也是可以的。
我们把格式化完成之后/dev/vg1/lv1挂载到/mnt目录下
- [root@ruanwenwu02 ~]# mkdir /mnt/vg1
- [root@ruanwenwu02 ~]# mount /dev/vg1/lv1 /mnt/vg1/
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt/vg1
- [root@ruanwenwu02 ~]# cat /etc/passwd >> /mnt/vg1/passwd
- [root@ruanwenwu02 ~]# cat !$
- cat /mnt/vg1/passwd
- root:x:0:0:root:/root:/bin/bash
- bin:x:1:1:bin:/bin:/sbin/nologin
- daemon:x:2:2:daemon:/sbin:/sbin/nologin
- adm:x:3:4:adm:/var/adm:/sbin/nologin
- lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
- sync:x:5:0:sync:/sbin:/bin/sync
- shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
- halt:x:7:0:halt:/sbin:/sbin/halt
- mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
- operator:x:11:0:operator:/root:/sbin/nologin
- games:x:12:100:games:/usr/games:/sbin/nologin
- ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
- nobody:x:99:99:Nobody:/:/sbin/nologin
- systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
- systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
- dbus:x:81:81:System message bus:/:/sbin/nologin
- polkitd:x:998:996:User for polkitd:/:/sbin/nologin
- tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
- postfix:x:89:89::/var/spool/postfix:/sbin/nologin
- sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
- ruanwenwu:x:1000:1000::/home/ruanwenwu:/bin/bash
到这里,我们的逻辑卷创建也结束了。
如果,我们要删除一个物理卷怎么操作呢?
- [root@ruanwenwu02 ~]# pvremove /dev/sdb2
- PV /dev/sdb2 is used by VG vg1 so please use vgreduce first.
- (If you are certain you need pvremove, then confirm by using --force twice.)
- /dev/sdb2: physical volume label not removed.
- [root@ruanwenwu02 ~]# man vdreduce
- 没有 vdreduce 的手册页条目
- [root@ruanwenwu02 ~]# man vgreduce
- [root@ruanwenwu02 ~]# man vgreduce
- [root@ruanwenwu02 ~]# vgreduce vg1 /dev/sdb2
- Removed "/dev/sdb2" from volume group "vg1"
- [root@ruanwenwu02 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- vg1 1 1 0 wz--n- 1020.00m 820.00m
- vg2 1 0 0 wz--n- 1020.00m 1020.00m
- [root@ruanwenwu02 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb1 vg1 lvm2 a-- 1020.00m 820.00m
- /dev/sdb2 lvm2 --- 800.00m 800.00m
- /dev/sdb5 vg2 lvm2 a-- 1020.00m 1020.00m
- [root@ruanwenwu02 ~]# pvremove /dev/sdb2
- Labels on physical volume "/dev/sdb2" successfully wiped.
- [root@ruanwenwu02 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb1 vg1 lvm2 a-- 1020.00m 820.00m
- /dev/sdb5 vg2 lvm2 a-- 1020.00m 1020.00m
代码里碰到一个问题。如果一个物理卷已经被加入一个卷组里,需要使用vgreduce命令把这个物理卷从卷组里删除,然后再运行pvremove命令。
除了删除物理卷之外,逻辑卷也是可以删除的,使用命令lvremove /dev/vg1/lv1。
- [root@ruanwenwu02 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- lv1 vg1 -wi-ao---- 200.00m
- [root@ruanwenwu02 ~]# lvremove /dev/vg1/lv1
- Logical volume vg1/lv1 contains a filesystem in use.
- [root@ruanwenwu02 ~]# pwd
- /root
- [root@ruanwenwu02 ~]# rm -rf /dev/vg1/lv1/*
- [root@ruanwenwu02 ~]# !lv
- lvremove /dev/vg1/lv1
- Logical volume vg1/lv1 contains a filesystem in use.
- [root@ruanwenwu02 ~]# umount /dev/vg1/lv1
- [root@ruanwenwu02 ~]# !lv
- lvremove /dev/vg1/lv1
- Do you really want to remove active logical volume vg1/lv1? [y/n]: y
- Logical volume "lv1" successfully removed
- [root@ruanwenwu02 ~]# lvs
- [root@ruanwenwu02 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb1 vg1 lvm2 a-- 1020.00m 1020.00m
- /dev/sdb5 vg2 lvm2 a-- 1020.00m 1020.00m
现在我们再次将逻辑卷加回来:
- [root@ruanwenwu02 ~]# history|grep lvcreate
- 235 lvcreate -L 200M -n lv1 vg1
- 273 history|lvcreate
- 274 history|grep lvcreate
- [root@ruanwenwu02 ~]# lvcreate -L 200M -n lv1 vg1
- WARNING: ext4 signature detected on /dev/vg1/lv1 at offset 1080. Wipe it? [y/n]: y
- Wiping ext4 signature on /dev/vg1/lv1.
- Logical volume "lv1" created.
- [root@ruanwenwu02 ~]# mke2fs -t ext4 /dev/vg1/lv1
- mke2fs 1.42.9 (28-Dec-2013)
- 文件系统标签=
- OS type: Linux
- 块大小=1024 (log=0)
- 分块大小=1024 (log=0)
- Stride=0 blocks, Stripe width=0 blocks
- 51200 inodes, 204800 blocks
- 10240 blocks (5.00%) reserved for the super user
- 第一个数据块=1
- Maximum filesystem blocks=33816576
- 25 block groups
- 8192 blocks per group, 8192 fragments per group
- 2048 inodes per group
- Superblock backups stored on blocks:
- 8193, 24577, 40961, 57345, 73729
- Allocating group tables: 完成
- 正在写入inode表: 完成
- Creating journal (4096 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
- [root@ruanwenwu02 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- lv1 vg1 -wi-a----- 200.00m
- [root@ruanwenwu02 ~]# mount /dev/vg1/lv1 /mnt/vg1/
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt/vg1
到这里,我们的LVM基本上做完了。我们来梳理一下我们现有有了那些东西:
物理卷:
- [root@ruanwenwu02 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb1 vg1 lvm2 a-- 1020.00m 820.00m
- /dev/sdb5 vg2 lvm2 a-- 1020.00m 1020.00m
卷组:
- [root@ruanwenwu02 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- vg1 1 1 0 wz--n- 1020.00m 820.00m
- vg2 1 0 0 wz--n- 1020.00m 1020.00m
物理卷:
- [root@ruanwenwu02 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- lv1 vg1 -wi-ao---- 200.00m
三、接下来讲如何扩容。
(先以ext4文件系统举例)
- [root@ruanwenwu02 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- lv1 vg1 -wi-ao---- 200.00m
- [root@ruanwenwu02 ~]# lvresize -L 300M /dev/vg1/lv1
- Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).
- Logical volume vg1/lv1 successfully resized.
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt/vg1
- [root@ruanwenwu02 ~]# e2fsck -f /dev/vg1/lv1
- e2fsck 1.42.9 (28-Dec-2013)
- /dev/vg1/lv1 is mounted.
- e2fsck: 无法继续, 中止.
这说明ext4文件系统扩容的话需要先umount:
- [root@ruanwenwu02 ~]# lvresize -L 300M /dev/vg1/lv1
- Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75 extents).
- Logical volume vg1/lv1 successfully resized.
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt/vg1
- [root@ruanwenwu02 ~]# e2fsck -f /dev/vg1/lv1
- e2fsck 1.42.9 (28-Dec-2013)
- /dev/vg1/lv1 is mounted.
- e2fsck: 无法继续, 中止.
- [root@ruanwenwu02 ~]# umount /dev/vg1/lv1
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- [root@ruanwenwu02 ~]# lvresize -L 300M /dev/vg1/lv1
- New size (75 extents) matches existing size (75 extents).
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- [root@ruanwenwu02 ~]# mount /dev/vg1/lv1
- mount: 在 /etc/fstab 中找不到 /dev/vg1/lv1
- [root@ruanwenwu02 ~]# e2fsck /dev/vg1/lv1
- e2fsck 1.42.9 (28-Dec-2013)
- /dev/vg1/lv1: clean, 11/51200 files, 12115/204800 blocks
- [root@ruanwenwu02 ~]# resize2fs /dev/vg1/lv1
- resize2fs 1.42.9 (28-Dec-2013)
- 请先运行 'e2fsck -f /dev/vg1/lv1'.
- [root@ruanwenwu02 ~]# resize2fs -f /dev/vg1/lv1
- resize2fs 1.42.9 (28-Dec-2013)
- Resizing the filesystem on /dev/vg1/lv1 to 307200 (1k) blocks.
- The filesystem on /dev/vg1/lv1 is now 307200 blocks long.
- [root@ruanwenwu02 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- lv1 vg1 -wi-a----- 300.00m
- [root@ruanwenwu02 ~]# mount /dev/vg1/lv1
- mount: 在 /etc/fstab 中找不到 /dev/vg1/lv1
- [root@ruanwenwu02 ~]# e2fsck -f /dev/vg1/lv1
- e2fsck 1.42.9 (28-Dec-2013)
- 第一步: 检查inode,块,和大小
- 第二步: 检查目录结构
- 第3步: 检查目录连接性
- Pass 4: Checking reference counts
- 第5步: 检查簇概要信息
- /dev/vg1/lv1: 11/77824 files (0.0% non-contiguous), 15987/307200 blocks
- [root@ruanwenwu02 ~]# lvresize /dev/vg1/lv1
- No command with matching syntax recognised. Run 'lvresize --help' for more information.
- [root@ruanwenwu02 ~]# resize2fs /dev/vg1/lv1
- resize2fs 1.42.9 (28-Dec-2013)
- The filesystem is already 307200 blocks long. Nothing to do!
- [root@ruanwenwu02 ~]# ls -ld /dev/vg1/lv1
- lrwxrwxrwx. 1 root root 7 11月 4 12:42 /dev/vg1/lv1 -> ../dm-0
- [root@ruanwenwu02 ~]# mount /dev/vg1/lv1 /mnt/vg1/
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/mapper/vg1-lv1 287M 2.1M 266M 1% /mnt/vg1
总结一下步骤:
- lvresize - L 300M / dev / vg1 / lv1重新设置卷大小
- e2fsck - f / dev / vg1 / lv1检查磁盘错误 (ext4执行)
- resize2fs / dev / vg1 / lv1更新逻辑卷信息 (ext4执行)
- xfs_growfs / dev / vg1 / lv1 xfs文件系统需要执行
到这里扩容就成功了。
四、缩容
步骤:
- 缩减逻辑卷(xfs不支持)
- 先umount
- e2fsck -f /dev/vg1/lv1 检查磁盘错误(ext)
- resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息(ext)
- lvresize -L 100M /dev/vg1/lv1 重新设置卷大小
实验:
- [root@ruanwenwu02 ~]# umount /dev/vg1/lv1
- [root@ruanwenwu02 ~]# lvs
- LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
- lv1 vg1 -wi-a----- 100.00m
- [root@ruanwenwu02 ~]# e2fsck -f /dev/vg1/lv1
- e2fsck 1.42.9 (28-Dec-2013)
- 第一步: 检查inode,块,和大小
- 第二步: 检查目录结构
- 第3步: 检查目录连接性
- Pass 4: Checking reference counts
- 第5步: 检查簇概要信息
- /dev/vg1/lv1: 11/25688 files (9.1% non-contiguous), 8896/102400 blocks
- [root@ruanwenwu02 ~]# resize2fs /dev/vg1/lv1 100M
- resize2fs 1.42.9 (28-Dec-2013)
- The filesystem is already 102400 blocks long. Nothing to do!
- [root@ruanwenwu02 ~]# resize2fs /dev/vg1/lv1 50M
- resize2fs 1.42.9 (28-Dec-2013)
- Resizing the filesystem on /dev/vg1/lv1 to 51200 (1k) blocks.
- The filesystem on /dev/vg1/lv1 is now 51200 blocks long.
- [root@ruanwenwu02 ~]# lvresize -L 50M /dev/vg1/lv1
- Rounding size to boundary between physical extents: 52.00 MiB.
- WARNING: Reducing active logical volume to 52.00 MiB.
- THIS MAY DESTROY YOUR DATA (filesystem etc.)
- Do you really want to reduce vg1/lv1? [y/n]: y
- Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 52.00 MiB (13 extents).
- Logical volume vg1/lv1 successfully resized.
- [root@ruanwenwu02 ~]# mount /dev/vg1/lv1 /mnt/vg1/
- [root@ruanwenwu02 ~]# df -h
- 文件系统 容量 已用 可用 已用% 挂载点
- /dev/sda3 18G 1.4G 17G 8% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 482M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 197M 109M 88M 56% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/mapper/vg1-lv1 45M 1.1M 40M 3% /mnt/vg1
步骤:
- fdisk / dev / sdb新增 / dev / sdb5(逻辑分区8e) 2G
- pvcreate / dev / sdb5
- vgextend vg1 / dev / sdb5
- lvresize - L 100M / dev / vg1 / lv1重新设置卷大小
先创建一个分区,创建物理分区,将物理分区添加到卷组,然后重新分配卷大小。
- [root@ruanwenwu02 ~]# fdisk /dev/sdb
- 欢迎使用 fdisk (util-linux 2.23.2)。
- 更改将停留在内存中,直到您决定将更改写入磁盘。
- 使用写入命令前请三思。
- 命令(输入 m 获取帮助):t
- 分区号 (1-3,5,6,默认 6):6
- Hex 代码(输入 L 列出所有代码):8e
- 已将分区“Linux”的类型更改为“Linux LVM”
- 命令(输入 m 获取帮助):q
- [root@ruanwenwu02 ~]# pvcreate /dev/sdb6
- WARNING: ext4 signature detected on /dev/sdb6 at offset 1080. Wipe it? [y/n]: y
- Wiping ext4 signature on /dev/sdb6.
- Physical volume "/dev/sdb6" successfully created.
- [root@ruanwenwu02 ~]# vgex
- vgexport vgextend
- [root@ruanwenwu02 ~]# vgex
- vgexport vgextend
- [root@ruanwenwu02 ~]# vgextend vg1 /dev/sdb6
- Volume group "vg1" successfully extended
- [root@ruanwenwu02 ~]# vgdisplay -v
- --- Volume group ---
- VG Name vg2
- System ID
- Format lvm2
- Metadata Areas 1
- Metadata Sequence No 1
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 0
- Open LV 0
- Max PV 0
- Cur PV 1
- Act PV 1
- VG Size 1020.00 MiB
- PE Size 4.00 MiB
- Total PE 255
- Alloc PE / Size 0 / 0
- Free PE / Size 255 / 1020.00 MiB
- VG UUID aDXygA-rltJ-JWCQ-Nbvb-JML9-W3Hf-cVjG63
- --- Physical volumes ---
- PV Name /dev/sdb5
- PV UUID 6iKVQF-W01Z-1aMF-m1af-jmhX-Ff7c-r5QHcD
- PV Status allocatable
- Total PE / Free PE 255 / 255
- --- Volume group ---
- VG Name vg1
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 9
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 1
- Open LV 1
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 1.77 GiB
- PE Size 4.00 MiB
- Total PE 454
- Alloc PE / Size 13 / 52.00 MiB
- Free PE / Size 441 / 1.72 GiB
- VG UUID qxqwsD-oNGT-8ltJ-1Itj-IZfO-0rui-Yxvhh7
- --- Logical volume ---
- LV Path /dev/vg1/lv1
- LV Name lv1
- VG Name vg1
- LV UUID x6wfyb-ZMDC-eGmK-8TRH-cVX5-JZB2-u0ZYID
- LV Write Access read/write
- LV Creation host, time ruanwenwu02, 2017-11-04 11:52:34 +0800
- LV Status available
- # open 1
- LV Size 52.00 MiB
- Current LE 13
- Segments 1
- Allocation inherit
- Read ahead sectors auto
- - currently set to 8192
- Block device 253:0
- --- Physical volumes ---
- PV Name /dev/sdb1
- PV UUID lttH1f-3tce-mEpF-2ULq-nqmL-15SI-2ImIxc
- PV Status allocatable
- Total PE / Free PE 255 / 242
- PV Name /dev/sdb6
- PV UUID QsRgrb-3vmW-Jte1-o5Qv-JvgZ-oNnO-MJkOoG
- PV Status allocatable
- Total PE / Free PE 199 / 199
6.1 fdisk diskname -> t ->8e
修改磁盘分区为lvm类型。
6.2 pvcreate partionname
创建物理分区
6.4 pvremove
删除物理分区
6.3 vgcreate vg1 /dev/sdb1 /dev/sdb2
创建卷组
6.4 vgremove
移除卷组
6.5 lvcreate -L 200M -n lv1 vg1
创建逻辑卷
6.6 lvresize -L 300M /dev/vg1/lv1
扩容逻辑卷大小
6.7 扩容之后的操作
- e2fsck - f / dev / vg1 / lv1检查磁盘错误 (ext4执行)
- resize2fs / dev / vg1 / lv1更新逻辑卷信息 (ext4执行)
- xfs_growfs / dev / vg1 / lv1 xfs文件系统需要执行
6.8 缩容操作
- 先umount
- e2fsck - f / dev / vg1 / lv1检查磁盘错误(ext)
- resize2fs / dev / vg1 / lv1 100M更新逻辑卷信息(ext)
- lvresize - L 100M / dev / vg1 / lv1重新设置卷大小
6.9 列出卷组的详细信息
- [root@ruanwenwu02 ~]# vgdisplay -v
- --- Volume group ---
- VG Name vg2
- System ID
- Format lvm2
- Metadata Areas 1
- Metadata Sequence No 1
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 0
- Open LV 0
- Max PV 0
- Cur PV 1
- Act PV 1
- VG Size 1020.00 MiB
- PE Size 4.00 MiB
- Total PE 255
- Alloc PE / Size 0 / 0
- Free PE / Size 255 / 1020.00 MiB
- VG UUID aDXygA-rltJ-JWCQ-Nbvb-JML9-W3Hf-cVjG63
- --- Physical volumes ---
- PV Name /dev/sdb5
- PV UUID 6iKVQF-W01Z-1aMF-m1af-jmhX-Ff7c-r5QHcD
- PV Status allocatable
- Total PE / Free PE 255 / 255
- --- Volume group ---
- VG Name vg1
- System ID
- Format lvm2
- Metadata Areas 2
- Metadata Sequence No 9
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 1
- Open LV 1
- Max PV 0
- Cur PV 2
- Act PV 2
- VG Size 1.77 GiB
- PE Size 4.00 MiB
- Total PE 454
- Alloc PE / Size 13 / 52.00 MiB
- Free PE / Size 441 / 1.72 GiB
- VG UUID qxqwsD-oNGT-8ltJ-1Itj-IZfO-0rui-Yxvhh7
- --- Logical volume ---
- LV Path /dev/vg1/lv1
- LV Name lv1
- VG Name vg1
- LV UUID x6wfyb-ZMDC-eGmK-8TRH-cVX5-JZB2-u0ZYID
- LV Write Access read/write
- LV Creation host, time ruanwenwu02, 2017-11-04 11:52:34 +0800
- LV Status available
- # open 1
- LV Size 52.00 MiB
- Current LE 13
- Segments 1
- Allocation inherit
- Read ahead sectors auto
- - currently set to 8192
- Block device 253:0
- --- Physical volumes ---
- PV Name /dev/sdb1
- PV UUID lttH1f-3tce-mEpF-2ULq-nqmL-15SI-2ImIxc
- PV Status allocatable
- Total PE / Free PE 255 / 242
- PV Name /dev/sdb6
- PV UUID QsRgrb-3vmW-Jte1-o5Qv-JvgZ-oNnO-MJkOoG
- PV Status allocatable
- Total PE / Free PE 199 / 199
七、总结
LVM的命令还是比较多的,有机会多看看多练练吧。
来源: http://www.cnblogs.com/doubilaile/p/7783123.html