补充说明
1.
在增大lv时,同步文件系统,ext4的文件系统采用resize2fs命令,而xfs文件系统采用xfs_growfs命令同步。
2. 逻辑卷的快照技术
写时复制技术 COW
主要是用解决备份时数据一致性的问题。 也可以用在虚拟机快照。
演示过程:
为已存在的逻辑卷/dev/vg02/lv02创建大小为1G的快照。
[root@geust02 ~]# lvcreate -s -L 1G -n lv02s /dev/vg02/lv02
xfs文件系统不允许两个相同的UUID设备同时挂载,所以挂载时,要采用-o nouuid的选项。(而ext4文件系统则无此问题。)
[root@geust02 ~]# blkid /dev/vg02/lv02*
/dev/vg02/lv02: UUID="88e8def7-1ea2-4cb8-87d3-9cf608c84ef7" TYPE="xfs"
/dev/vg02/lv02s: UUID="88e8def7-1ea2-4cb8-87d3-9cf608c84ef7" TYPE="xfs"
[root@geust02 ~]# mount /dev/vg02/lv02 /dd/
[root@geust02 ~]# mount -o nouuid /dev/vg02/lv02s /ee/
[root@geust02 ~]# df -hT |grep vg02
/dev/mapper/vg02-lv02 xfs 10G 33M 10G 1% /dd
/dev/mapper/vg02-lv02s xfs 10G 33M 10G 1% /ee
3. 关于缩小LVM
对于ext4文件系统,可以进行缩小。
umount /dev/vg02/lv03
e2fsck -f /dev/vg02/lv03 5G
resize2fs /dev/vg02/lv03 5G
lvreduce -L 5G /dev/vg02/lv03
对于xfs文件系统,不支持缩小。
4. 删除LVM
删除lv
umount /dev/vg02/lv02
lvchange -a n /dev/vg02/lv02
lvremove /dev/vg02/lv02 (不做)
删除vg
vgchange -a n vg02
vgremove vg02
删除pv
pvremove /dev/sdb1
5. 迁移逻辑卷
vgchange -a y vg02
-----------------
基础练习1答案
[root@server01 ~]# fdisk -l |grep vd
磁盘 /dev/vda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
磁盘 /dev/vdb:2147 MB, 2147483648 字节,4194304 个扇区
磁盘 /dev/vdc:5368 MB, 5368709120 字节,10485760 个扇区
[root@server01 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x8dc79bed 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server01 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
[root@server01 ~]# fdisk -l |grep vd
磁盘 /dev/vda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
磁盘 /dev/vdb:2147 MB, 2147483648 字节,4194304 个扇区
磁盘 /dev/vdc:5368 MB, 5368709120 字节,10485760 个扇区
[root@server01 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x8dc79bed 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server01 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server01 ~]# fdisk /dev/vdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xf81497d7 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
将使用默认值 10485759
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server01 ~]#
[root@server01 ~]# fdisk -l |grep vd
磁盘 /dev/vda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
磁盘 /dev/vdb:2147 MB, 2147483648 字节,4194304 个扇区
/dev/vdb1 2048 4194303 2096128 8e Linux LVM
磁盘 /dev/vdc:5368 MB, 5368709120 字节,10485760 个扇区
/dev/vdc1 2048 10485759 5241856 8e Linux LVM
[root@server01 ~]# cat /proc/partitions |grep vd
252 0 20971520 vda
252 1 512000 vda1
252 2 20458496 vda2
252 16 2097152 vdb
252 17 2096128 vdb1
252 32 5242880 vdc
252 33 5241856 vdc1
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server01 ~]# fdisk /dev/vdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xf81497d7 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
将使用默认值 10485759
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server01 ~]#
[root@server01 ~]# fdisk -l |grep vd
磁盘 /dev/vda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/vda1 * 2048 1026047 512000 83 Linux
/dev/vda2 1026048 41943039 20458496 8e Linux LVM
磁盘 /dev/vdb:2147 MB, 2147483648 字节,4194304 个扇区
/dev/vdb1 2048 4194303 2096128 8e Linux LVM
磁盘 /dev/vdc:5368 MB, 5368709120 字节,10485760 个扇区
/dev/vdc1 2048 10485759 5241856 8e Linux LVM
[root@server01 ~]# cat /proc/partitions |grep vd
252 0 20971520 vda
252 1 512000 vda1
252 2 20458496 vda2
252 16 2097152 vdb
252 17 2096128 vdb1
252 32 5242880 vdc
252 33 5241856 vdc1
[root@server01 ~]# pvcreate /dev/vdb1 /dev/vdc1
Physical volume "/dev/vdb1" successfully created
Physical volume "/dev/vdc1" successfully created
[root@server01 ~]# vgcreate vg_test /dev/vdb1 /dev/vdc1
Volume group "vg_test" successfully created
[root@server01 ~]# lvcreate -n lv_test -L 4G vg_test
Logical volume "lv_test" created.
[root@server01 ~]# mkfs.ext4 /dev/vg_test/lv_test
[root@server01 test]# dd if=/dev/zero of=test.db bs=3M count=1000
[root@server01 test]# df -h |grep lv_test
/dev/mapper/vg_test-lv_test 3.9G 3.0G 667M 82% /test
基础练习2答案:
[root@server01 test]# vgdisplay vg_test
--- Volume group ---
VG Name vg_test
System ID
Format lvm2
Metadata Areas 2
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 [root@server01 test]# vgdisplay vg_test
--- Volume group ---
VG Name vg_test
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 6.99 GiB
PE Size 4.00 MiB
Total PE 1790
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 766 / 2.99 GiB
VG UUID mp0SsX-ptTk-Pljw-CClb-z3hi-60NT-YaJ1pv
2
Act PV 2
VG Size 6.99 GiB
PE Size 4.00 MiB
Total PE 1790
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 766 / 2.99 GiB
VG UUID mp0SsX-ptTk-Pljw-CClb-z3hi-60NT-YaJ1pv
[root@server01 test]# lvextend -L +2G /dev/vg_test/lv_test
Size of logical volume vg_test/lv_test changed from 4.00 GiB (1024 extents) to 6.00 GiB (1536 extents).
Logical volume lv_test successfully resized.
[root@server01 test]# resize2fs /dev/vg_test/lv_test
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg_test/lv_test is mounted on /test; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg_test/lv_test is now 1572864 blocks long.
[root@server01 test]# df -h |grep lv_test
/dev/mapper/vg_test-lv_test 5.8G 3.0G 2.6G 54% /test
vg_test只有7G
加1G硬盘
[root@server01 test]# fdisk -l |grep vdd
磁盘 /dev/vdd:1073 MB, 1073741824 字节,2097152 个扇区
/dev/vdd1 2048 2097151 1047552 8e Linux LVM
[root@server01 test]# pvcreate /dev/vdd1
Physical volume "/dev/vdd1" successfully created
[root@server01 test]# vgextend vg_test /dev/vdd1
Volume group "vg_test" successfully extended
[root@server01 test]# vgdisplay vg_test
--- Volume group ---
VG Name vg_test
System ID
Format lvm2
Metadata Areas 3
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 3
Act PV 3
VG Size 7.99 GiB
PE Size 4.00 MiB
Total PE 2045
Alloc PE / Size 1536 / 6.00 GiB
Free PE / Size 509 / 1.99 GiB
VG UUID mp0SsX-ptTk-Pljw-CClb-z3hi-60NT-YaJ1pv
[root@server01 test]# lvextend -l +100%FREE /dev/vg_test/lv_test
Size of logical volume vg_test/lv_test changed from 6.00 GiB (1536 extents) to 7.99 GiB (2045 extents).
Logical volume lv_test successfully resized.
[root@server01 test]# resize2fs /dev/vg_test/lv_test
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg_test/lv_test is mounted on /test; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg_test/lv_test is now 2094080 blocks long.
[root@server01 test]# df -h |grep lv_test
/dev/mapper/vg_test-lv_test 7.8G 3.0G 4.5G 41% /test