使用逻辑卷管理器管理灵活存储
七.使用逻辑卷管理器管理灵活存储
硬盘或者分区-->pv-->vg-->lvm
1.LVM 定义
• 物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘
• 物理卷是 LVM 所使用的基础 “ 物理 ” 存储。这通常是块设备 ,例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 , 才能与 LVM 结合使用
• 卷组是存储池 , 由一个或多个物理卷组成
• 物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的后端
• 逻辑区块映射到物理区块 , 构成 LVM 存储的前端。默认情况下 , 每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块
• 逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用
2.使用逻辑卷的意义
• 逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 ,可以将其卷组的可用空间分配给逻辑卷 , 并且可以调整文件系统的大小。如果磁盘开始出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘
3.使用命令行工具实施 LVM 存储
• 准备物理卷
– disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 , 始终将“ 类型 ” 设置为 “ 0x8e Linux LVM”
– pvcreate /dev/vdaN 用于初始化分区 ( 或其他物理设备 ), 使其作为物理卷与 LVM 结合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头
• 创建卷组
– vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷 ( 以空格隔开 ), 也可以随后使用 vgextend 添加新物理卷
• 创建和使用新逻辑卷
– lvcreate -n lvname -L 2G vgname 从 vgname 上可用物理区块创建名为 lvname 、容量为 2GB 的新逻辑卷
– mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统
– mkdir /data 建立所需目录作为挂载点
– 向 /etc/fstab 文件中添加一下条目:
/dev/mapper/vgname-lvname /data ext4 defaults 1 2
– 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 , 包括您刚刚添加的条目
4.查看 LVM 状态信息
• pvdisplay /dev/vdaN 将显示有关特定物理卷的信息
• vgdisplay vgname 将显示有关特定卷组的信息
• lvdisplay /dev/vgname/lvname 将显示有关特定逻辑卷的信息
5.扩展逻辑卷和 xfs 文件系统
• 验证已挂载文件系统 /data 的当前大小
– df -h /data
• 验证 “ 可用物理区块 ” 是否够用
– vgdisplay vgname
• 使用部分或全部可用区块扩展逻辑卷
– lvextend -l 128 /dev/vgname/lvname
• 扩展在 /data 上挂载的关联文件系统
– xfs_growfs
/dev/vgname/lvname
• 验证已挂载文件系统 /data 的新的大小
– df -h /data
6.创建快照以便于数据备份
• 快照逻辑卷是 LVM 存储的另一项灵活功能。LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据
• 快照卷大小只需足以存储在它存在期间更改的数据即可
• 如果数据更改量大于快照存储容量 , 则快照将自动变为不可用。 ( 原始卷原封不动 , 仍然需要从卷组中手动解除挂载和删除不可用的快照。 )
7.创建和使用快照进行备份
• 创建 /dev/vgname/lvname 的名为 snaplvname 、大小为 20M 的新快照卷
– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname
• 如果备份软件要求 , 请挂载该快照 , 并使备份程序指向新挂载点
– mkdir /snapmount
– mount -o ro /dev/vgname/snaplv /snapmount
• 验证快照逻辑卷的状态
– lvs /dev/vgname/snaplv
• 不再使用快照时 , 请解除挂载并删除它
– umount /snapmount
– lvremove /dev/vgname/snaplv
1.LVM的建立
命令:
73 mkdir /weixindata
74 fdisk /dev/vdb
75 fdisk -l
76 partprobe
77 pvcreate /dev/vdb1
78 fdisk -l
80 df ##注意:一定要把上次实验做的停掉
83 mdadm -D /dev/md0
84 mdadm -S /dev/md0
85 mdadm -D /dev/md0
86 pvcreate /dev/vdb1
87 vgcreate vg0 /dev/vdb1
88 lvcreate -L 300M -n lv0 vg0
89 mkfs.xfs /dev/vg0/lv0
90 mount /dev/vg0/lv0 /weixindata/
监控命令:
[root@localhost ~]# watch -n 1 'echo =======pvmessage========; pvs;echo ==========vgmessages==============;vgs;echo ========lvmmessages===========;lvs;echo ==================;df -h /weixindata'
-------------------------------------------------------------------------------------
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 8e Linux LVM
/dev/vdb2 2099200 4196351 1048576 8e Linux LVM
/dev/vdb3 4196352 6293503 1048576 8e Linux LVM
Disk /dev/md0: 523 MB, 523960320 bytes, 1023360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
Can't open /dev/vdb1 exclusively. Mounted filesystem?
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809408 6664492 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17076 925584 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@localhost ~]# mdadm -I
mdadm: --incremental requires a device.
[root@localhost ~]# mdadm -D
mdadm: No devices given.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 02:44:00 2017
Raid Level : raid1
Array Size : 511680 (499.77 MiB 523.96 MB)
Used Dev Size : 511680 (499.77 MiB 523.96 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat Apr 22 03:38:38 2017
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost:0 (local to host localhost)
UUID : af9e3fe4:dfed6efc:02461f8e:af60c0c1
Events : 39
Number Major Minor RaidDevice State
0 253 17 0 active sync /dev/vdb1
2 253 19 1 active sync /dev/vdb3
3 253 18 - spare /dev/vdb2
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
WARNING: linux_raid_member signature detected on /dev/vdb1 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb1.
WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y
Wiping xfs signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created
[root@localhost ~]# vgcreate vg0 /dev/vdb1
Volume group "vg0" successfully created
[root@localhost ~]# lvcreate -L 300M -n lv0 vg0
Logical volume "lv0" created
[root@localhost ~]# mkfs.xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
------------------------------------------------------------------------------------
2.拉伸与缩减
拉伸
1 lvextend -L 900M /dev/vg0/lv0 ##-L是拉伸到多大
2 xfs_growfs /dev/vg0/lv0 ##使文件也增大,注意:文件不能格式化,否则内容会丢掉
3 lvextend -L 1500M /dev/vg0/lv0
4 pvcreate /dev/vdb2 ##再加一块硬盘
5 vgextend vg0 /dev/vdb2
6 lvextend -L 1500M /dev/vg0/lv0
7 xfs_growfs /dev/vg0/lv0
-------------------------------------------------------------------------------------
[root@localhost ~]# lvextend -L 900M /dev/vg0/lv0
Extending logical volume lv0 to 900.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 76800 to 230400
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Insufficient free space: 150 extents needed, but only 30 available
[root@localhost ~]# pvcreate /dev/vdb2
Physical volume /dev/vdb2 not found
WARNING: linux_raid_member signature detected on /dev/vdb2 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb2.
Physical volume "/dev/vdb2" successfully created
[root@localhost ~]# vgextend vg0 /dev/vdb2
Volume group "vg0" successfully extended
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=12, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=230400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 230400 to 384000
最后监控命令显示:
=======pvmessage========
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 0
/dev/vdb2 vg0 lvm2 a-- 1020.00m 540.00m
==========vgmessages==============
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 1.99g 540.00m
========lvmmessages===========
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv0 vg0 -wi-ao---- 1.46g
==================
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 1.5G 16M 1.5G 2% /weixindata
-------------------------------------------------------------------------------------
缩减:不能用xfs格式的文件,所以先取消挂载,把文件换一种格式
1 umount /weixindata/
2 mkfs.ext4 /dev/vg0/lv0
3 mount /dev/vg0/lv0 /weixindata/
4 df
1 umount /weixindata/ ##先把文件取消挂载
2 e2fsck -f /dev/vg0/lv0 ##做这一步是为了下一步如果缩的过小有提示
3 resize2fs /dev/vg0/lv0 20M ##过小,会有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也过小
6 mount /dev/vg0/lv0 /weixindata/ ##显示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809384 6664516 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17072 925588 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 1479088 4512 1381392 1% /weixindata
---------------------------------------------------------------------------------
########然后正式进行##########
1 umount /weixindata/ ##先把文件取消挂载
2 e2fsck -f /dev/vg0/lv0 ##做这一步是为了下一步如果缩的过小有提示
3 resize2fs /dev/vg0/lv0 20M ##过小,会有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也过小
6 mount /dev/vg0/lv0 /weixindata/ ##显示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
----------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# e2fsck -f /dev/vg0/lv0
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 11/96000 files (9.1% non-contiguous), 15356/384000 blocks
[root@localhost ~]# resize2fs /dev/vg0/lv0 20M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (17124)
[root@localhost ~]# resize2fs /dev/vg0/lv0 300M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 76800 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 76800 blocks long.
[root@localhost ~]# resize2fs /dev/vg0/lv0 10M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (16509)
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# lvreduce -L 300 /dev/vg0/lv0
WARNING: Reducing active and open logical volume to 300.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 300.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# pvmove /dev/vdb1 /dev/vdb2
/dev/vdb1: Moved: 20.0%
/dev/vdb1: Moved: 100.0%
[root@localhost ~]# vgreduce vg0 /dev/vdb1
Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1
Labels on physical volume "/dev/vdb1" successfully wiped
----------------------------------------------------------------------------------
########镜像######
12 touch /weixindata/file{1..5} ##实际上是建在了/dev/vg0/lv0里面了,通过/weixindata 来查看
13 ls /weixindata/
14 umount /weixindata/
15 cd /weixindata/
16 ls
17 cd
18 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##镜像给50M
19 mount /dev/vg0/lv0backup /weixindata/ ##查看关于监控命令镜像的大小,应该不是50M了,和源一致
20 cd /weixindata/
21 ls
22 rm -fr /weixindata/*
23 ls
24 cd
25 umount /weixindata/
26 lvremove /dev/vg0/lv0backup
27 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
28 mount /dev/vg0/lv0backup /weixindata/
29 cd /weixindata/
30 ls
-------------------------------------------------------------------------------
[root@localhost ~]# touch /weixindata/file{1..5}
[root@localhost ~]# ls /weixindata/
file1 file2 file3 file4 file5 lost+found
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
[root@localhost weixindata]# rm -fr /weixindata/*
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
---------------------------------------------------------------------------------
设备都不用了,全都卸载
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@localhost ~]# vgremove vg0
Volume group "vg0" successfully removed
[root@localhost ~]# pvremove /dev/vdb2
Labels on physical volume "/dev/vdb2" successfully wiped
硬盘或者分区-->pv-->vg-->lvm
1.LVM 定义
• 物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘
• 物理卷是 LVM 所使用的基础 “ 物理 ” 存储。这通常是块设备 ,例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 , 才能与 LVM 结合使用
• 卷组是存储池 , 由一个或多个物理卷组成
• 物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的后端
• 逻辑区块映射到物理区块 , 构成 LVM 存储的前端。默认情况下 , 每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块
• 逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用
2.使用逻辑卷的意义
• 逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 ,可以将其卷组的可用空间分配给逻辑卷 , 并且可以调整文件系统的大小。如果磁盘开始出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘
3.使用命令行工具实施 LVM 存储
• 准备物理卷
– disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 , 始终将“ 类型 ” 设置为 “ 0x8e Linux LVM”
– pvcreate /dev/vdaN 用于初始化分区 ( 或其他物理设备 ), 使其作为物理卷与 LVM 结合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头
• 创建卷组
– vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷 ( 以空格隔开 ), 也可以随后使用 vgextend 添加新物理卷
• 创建和使用新逻辑卷
– lvcreate -n lvname -L 2G vgname 从 vgname 上可用物理区块创建名为 lvname 、容量为 2GB 的新逻辑卷
– mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统
– mkdir /data 建立所需目录作为挂载点
– 向 /etc/fstab 文件中添加一下条目:
/dev/mapper/vgname-lvname /data ext4 defaults 1 2
– 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 , 包括您刚刚添加的条目
4.查看 LVM 状态信息
• pvdisplay /dev/vdaN 将显示有关特定物理卷的信息
• vgdisplay vgname 将显示有关特定卷组的信息
• lvdisplay /dev/vgname/lvname 将显示有关特定逻辑卷的信息
5.扩展逻辑卷和 xfs 文件系统
• 验证已挂载文件系统 /data 的当前大小
– df -h /data
• 验证 “ 可用物理区块 ” 是否够用
– vgdisplay vgname
• 使用部分或全部可用区块扩展逻辑卷
– lvextend -l 128 /dev/vgname/lvname
• 扩展在 /data 上挂载的关联文件系统
– xfs_growfs
/dev/vgname/lvname
• 验证已挂载文件系统 /data 的新的大小
– df -h /data
6.创建快照以便于数据备份
• 快照逻辑卷是 LVM 存储的另一项灵活功能。LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据
• 快照卷大小只需足以存储在它存在期间更改的数据即可
• 如果数据更改量大于快照存储容量 , 则快照将自动变为不可用。 ( 原始卷原封不动 , 仍然需要从卷组中手动解除挂载和删除不可用的快照。 )
7.创建和使用快照进行备份
• 创建 /dev/vgname/lvname 的名为 snaplvname 、大小为 20M 的新快照卷
– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname
• 如果备份软件要求 , 请挂载该快照 , 并使备份程序指向新挂载点
– mkdir /snapmount
– mount -o ro /dev/vgname/snaplv /snapmount
• 验证快照逻辑卷的状态
– lvs /dev/vgname/snaplv
• 不再使用快照时 , 请解除挂载并删除它
– umount /snapmount
– lvremove /dev/vgname/snaplv
1.LVM的建立
命令:
73 mkdir /weixindata
74 fdisk /dev/vdb
75 fdisk -l
76 partprobe
77 pvcreate /dev/vdb1
78 fdisk -l
80 df ##注意:一定要把上次实验做的停掉
83 mdadm -D /dev/md0
84 mdadm -S /dev/md0
85 mdadm -D /dev/md0
86 pvcreate /dev/vdb1
87 vgcreate vg0 /dev/vdb1
88 lvcreate -L 300M -n lv0 vg0
89 mkfs.xfs /dev/vg0/lv0
90 mount /dev/vg0/lv0 /weixindata/
监控命令:
[root@localhost ~]# watch -n 1 'echo =======pvmessage========; pvs;echo ==========vgmessages==============;vgs;echo ========lvmmessages===========;lvs;echo ==================;df -h /weixindata'
-------------------------------------------------------------------------------------
Device Boot Start End Blocks Id System
/dev/vdb1 2048 2099199 1048576 8e Linux LVM
/dev/vdb2 2099200 4196351 1048576 8e Linux LVM
/dev/vdb3 4196352 6293503 1048576 8e Linux LVM
Disk /dev/md0: 523 MB, 523960320 bytes, 1023360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
Can't open /dev/vdb1 exclusively. Mounted filesystem?
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809408 6664492 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17076 925584 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@localhost ~]# mdadm -I
mdadm: --incremental requires a device.
[root@localhost ~]# mdadm -D
mdadm: No devices given.
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 02:44:00 2017
Raid Level : raid1
Array Size : 511680 (499.77 MiB 523.96 MB)
Used Dev Size : 511680 (499.77 MiB 523.96 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat Apr 22 03:38:38 2017
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost:0 (local to host localhost)
UUID : af9e3fe4:dfed6efc:02461f8e:af60c0c1
Events : 39
Number Major Minor RaidDevice State
0 253 17 0 active sync /dev/vdb1
2 253 19 1 active sync /dev/vdb3
3 253 18 - spare /dev/vdb2
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume /dev/vdb1 not found
WARNING: linux_raid_member signature detected on /dev/vdb1 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb1.
WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y
Wiping xfs signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created
[root@localhost ~]# vgcreate vg0 /dev/vdb1
Volume group "vg0" successfully created
[root@localhost ~]# lvcreate -L 300M -n lv0 vg0
Logical volume "lv0" created
[root@localhost ~]# mkfs.xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
------------------------------------------------------------------------------------
2.拉伸与缩减
拉伸
1 lvextend -L 900M /dev/vg0/lv0 ##-L是拉伸到多大
2 xfs_growfs /dev/vg0/lv0 ##使文件也增大,注意:文件不能格式化,否则内容会丢掉
3 lvextend -L 1500M /dev/vg0/lv0
4 pvcreate /dev/vdb2 ##再加一块硬盘
5 vgextend vg0 /dev/vdb2
6 lvextend -L 1500M /dev/vg0/lv0
7 xfs_growfs /dev/vg0/lv0
-------------------------------------------------------------------------------------
[root@localhost ~]# lvextend -L 900M /dev/vg0/lv0
Extending logical volume lv0 to 900.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=4, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=76800, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 76800 to 230400
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Insufficient free space: 150 extents needed, but only 30 available
[root@localhost ~]# pvcreate /dev/vdb2
Physical volume /dev/vdb2 not found
WARNING: linux_raid_member signature detected on /dev/vdb2 at offset 4096. Wipe it? [y/n] y
Wiping linux_raid_member signature on /dev/vdb2.
Physical volume "/dev/vdb2" successfully created
[root@localhost ~]# vgextend vg0 /dev/vdb2
Volume group "vg0" successfully extended
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0
Extending logical volume lv0 to 1.46 GiB
Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0 isize=256 agcount=12, agsize=19200 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=230400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 230400 to 384000
最后监控命令显示:
=======pvmessage========
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 0
/dev/vdb2 vg0 lvm2 a-- 1020.00m 540.00m
==========vgmessages==============
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 1.99g 540.00m
========lvmmessages===========
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv0 vg0 -wi-ao---- 1.46g
==================
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-lv0 1.5G 16M 1.5G 2% /weixindata
-------------------------------------------------------------------------------------
缩减:不能用xfs格式的文件,所以先取消挂载,把文件换一种格式
1 umount /weixindata/
2 mkfs.ext4 /dev/vg0/lv0
3 mount /dev/vg0/lv0 /weixindata/
4 df
1 umount /weixindata/ ##先把文件取消挂载
2 e2fsck -f /dev/vg0/lv0 ##做这一步是为了下一步如果缩的过小有提示
3 resize2fs /dev/vg0/lv0 20M ##过小,会有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也过小
6 mount /dev/vg0/lv0 /weixindata/ ##显示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3809384 6664516 37% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17072 925588 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 1479088 4512 1381392 1% /weixindata
---------------------------------------------------------------------------------
########然后正式进行##########
1 umount /weixindata/ ##先把文件取消挂载
2 e2fsck -f /dev/vg0/lv0 ##做这一步是为了下一步如果缩的过小有提示
3 resize2fs /dev/vg0/lv0 20M ##过小,会有提示的
4 resize2fs /dev/vg0/lv0 300M
5 resize2fs /dev/vg0/lv0 10M ##也过小
6 mount /dev/vg0/lv0 /weixindata/ ##显示的文件大小是300M
7 lvreduce -L 300 /dev/vg0/lv0
8 pvmove /dev/vdb1 /dev/vdb2
9 vgreduce vg0 /dev/vdb1
10 pvremove /dev/vdb1
----------------------------------------------------------------------------------
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# e2fsck -f /dev/vg0/lv0
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 11/96000 files (9.1% non-contiguous), 15356/384000 blocks
[root@localhost ~]# resize2fs /dev/vg0/lv0 20M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (17124)
[root@localhost ~]# resize2fs /dev/vg0/lv0 300M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 76800 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 76800 blocks long.
[root@localhost ~]# resize2fs /dev/vg0/lv0 10M
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: New size smaller than minimum (16509)
[root@localhost ~]# mount /dev/vg0/lv0 /weixindata/
[root@localhost ~]# lvreduce -L 300 /dev/vg0/lv0
WARNING: Reducing active and open logical volume to 300.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 300.00 MiB
Logical volume lv0 successfully resized
[root@localhost ~]# pvmove /dev/vdb1 /dev/vdb2
/dev/vdb1: Moved: 20.0%
/dev/vdb1: Moved: 100.0%
[root@localhost ~]# vgreduce vg0 /dev/vdb1
Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1
Labels on physical volume "/dev/vdb1" successfully wiped
----------------------------------------------------------------------------------
########镜像######
12 touch /weixindata/file{1..5} ##实际上是建在了/dev/vg0/lv0里面了,通过/weixindata 来查看
13 ls /weixindata/
14 umount /weixindata/
15 cd /weixindata/
16 ls
17 cd
18 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ##镜像给50M
19 mount /dev/vg0/lv0backup /weixindata/ ##查看关于监控命令镜像的大小,应该不是50M了,和源一致
20 cd /weixindata/
21 ls
22 rm -fr /weixindata/*
23 ls
24 cd
25 umount /weixindata/
26 lvremove /dev/vg0/lv0backup
27 lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
28 mount /dev/vg0/lv0backup /weixindata/
29 cd /weixindata/
30 ls
-------------------------------------------------------------------------------
[root@localhost ~]# touch /weixindata/file{1..5}
[root@localhost ~]# ls /weixindata/
file1 file2 file3 file4 file5 lost+found
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
[root@localhost weixindata]# rm -fr /weixindata/*
[root@localhost weixindata]# ls
[root@localhost weixindata]# cd
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /weixindata/
[root@localhost ~]# cd /weixindata/
[root@localhost weixindata]# ls
file1 file2 file3 file4 file5 lost+found
---------------------------------------------------------------------------------
设备都不用了,全都卸载
[root@localhost ~]# umount /weixindata/
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@localhost ~]# vgremove vg0
Volume group "vg0" successfully removed
[root@localhost ~]# pvremove /dev/vdb2
Labels on physical volume "/dev/vdb2" successfully wiped
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.