目录
1. LVM 简介
2. LVM基本术语
3. LVM的安装
4. LVM的使用
4.1 物理卷的管理
4.2 卷组的管理:
4.3 逻辑卷的管理:
5. 一个例子
5.1 练习:
5.2 开始部署
1. LVM 简介
LVM逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。
由四个磁盘分区可以组成一个很大的空间,然后在这些空间上划分一些逻辑分区,我们可以对这些逻辑分区进行大小调节, 也可以进行快照备份.
2. LVM基本术语
Physical volume(PV): 物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。典型的物理卷是硬盘分区,但也可以是整个硬盘或已创建的Software RAID 卷。
Volume Group(VG): 卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
Logical Volume(LV): 逻辑卷相当于非LVM系统中的分区,它在卷组上建立,是一个标准的块设备,可以在其上建立文件系统
Physical Extent (PE): 物理块, 物理卷按大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同。PE的大小是可配置的,默认为4MB。
3. LVM的安装
查看lvm2是否已经安装
1 [root@stu ~]# rpm -qa|grep lvm
mesa-private-llvm-3.3-0.3.rc3.el6.i686
lvm2-2.02.100-8.el6.i686
lvm2-libs-2.02.100-8.el6.i686
如果没有返回内容, 那么需要进行安装
1 [root@stu ~]# yum install lvm2
4. LVM的使用
如果要创建一个逻辑卷需要经过以下三个阶段:
4.1 物理卷的管理:
pvcreate /path/to/dev: 初始化一个磁盘或分区创建成为物理卷;
pvmove /path/to/dev: 移动该设备上的物理块到其他设备上.(在移除物理卷时可以使用,防止数据丢失)
pvscan: 搜索目前系统里面任何具有物理卷的磁盘或分区;
pvdisplay: 显示出目前系统上面的物理卷状态;
pvremove /path/to/pv_dev : 将物理卷移除,让该分区不具有物理卷属性。
4.2 卷组的管理:
vgcreate : 创建卷组命令 –s PE大小, 默认4M;
vgscan : 搜索系统上面是否有卷组存在
vgdisplay : 显示目前系统上面的卷组状态;
vgextend : 在卷组内添加额外的物理卷;
vgreduce : 在卷组内移除物理卷;
vgchange : 配置卷组是否启动 (active);
vgremove : 删除一个卷组
4.3 逻辑卷的管理:
lvcreate : 创建逻辑卷.
lvscan : 查询系统上面的逻辑卷.
lvdisplay : 显示系统上面的逻辑卷状态
lvextend : 在逻辑卷里面添加容量.
lvreduce : 在逻辑卷里面减少容量.
lvremove : 删除一个逻辑卷.
lvresize : 对 LV 进行容量大小的调整.
5. 一个例子
5.1 练习:
1. 创建一个由两个物理卷组成的大小为20G的卷组myvg, 要求PE大小16M.
2. 在该卷组上创建大小为7G的逻辑卷mylv1, 要求其文件系统为ext4, 块大小为2048,
3. 开机自动挂载到/users
4. 新建用户openstack, 其家目录为/users/openstack, 切换至openstack用户, 复制一些文件到家目录中
5. 缩减mylv1到5G大小, 切换到openstack用户, 确保没有数据丢失
6. 对mylv1创建快照卷snap-mylv1, 并通过其备份数据到/tmp/user.tar.bz2;
5.2 开始部署
- 准备了两个分区, sdb1(8G),sdc1(12G)来组成一个20G 的myvg卷组
格式化第一个sdb1
#使用fdisk格式化sdb
1 [root@stu ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
#创建一个新的分区
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +8G
#调整分区格式为LVM
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
#如果忘了代码,可以输入l查找LVM格式的代码
#查看分区状况
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8633d49d
Device Boot Start End Blocks Id System
/dev/sdb1 1 1045 8393931 8e Linux LVM
#保存退出
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#格式化并保存退出
准备第二个物理分区sdc1(12G) 步骤同上:
1 [root@stu ~]# fdisk /dev/sdc
#确认分区状况:
1 [root@stu ~]# lsblk
2. 创建物理卷
1 [root@stu ~]# pvcreate /dev/sdb1 /dev/sdc1
1 [root@stu ~]# pvs
#查看物理卷情况
1 [root@stu ~]# pvscan
3. 创建大小为20G的卷组myvg, 要求PE大小16M.
1 [root@stu ~]# vgcreate -s 16M myvg /dev/sdb1 /dev/sdc1
1 [root@stu ~]# vgs
#查看卷组情况
4. 在该卷组上创建大小为7G的逻辑卷mylv1, 要求其文件系统为ext4, 块大小为2048
1 [root@stu ~]# lvcreate myvg -n mylv1 -L 7G
#在卷组myvg上创建大小为7G的逻辑卷mylv1
1 [root@stu ~]# fdisk /dev/myvg/mylv1
#在逻辑卷上创建分区
1 [root@stu ~]# mke2fs -t ext4 -b 2048 /dev/myvg/mylv1
#格式化逻辑卷mylv1为ext4文件系统块大小2048K
5. 开机自动挂载到/users
1 [root@stu /]# mkdir /users 2 3 [root@stu /]# vim + /etc/fstab
#设置开机自动挂载逻辑卷到/users上
#添加/dev/myvg/mylv1 /users ext4 defaults 0 2到/dev/fstab 最后一行
1 [root@stu /]# mount –a
#自动挂载
6. 新建用户openstack, 其家目录为/users/openstack, 切换至openstack用户, 复制一些文件到家目录中
1 [root@stu users]# useradd openstack -d /users/openstack
#新建用户openstack, 其家目录为/users/openstack
1 [root@stu users]# su - openstack 2 [root@stu users]# cp -r /etc/* ~/
#切换至openstack用户, 复制一些/etc/下的文件到家目录中
7. 缩减mylv1到5G大小, 切换到openstack用户, 确保没有数据丢失
缩减逻辑卷大小思路:
7.1. 卸载卷, 并执行强制检测
# e2fsck -f /path/to/lv_device
7.2. 缩减逻辑边界:
# resize2fs /path/to/lv_device Size
7.3. 缩减物理边界:
# lvreduce -L [-]Size /path/to/vg_name/lvname
7.4. 验证是否正常
7.5. 开始实施:
1 [root@stu ~]# umount /dev/myvg/mylv1 #卸载卷 2 [root@stu ~]# e2fsck -f /dev/myvg/mylv1 #强行检测 3 [root@stu ~]# resize2fs /dev/myvg/mylv1 5G #缩减逻辑边界到5G 4 [root@stu ~]# lvreduce -L 5G /dev/myvg/mylv1 #缩减物理边界到 5G 5 [root@stu ~]# lsblk #验证数据
1 [root@stu ~]# mount –a #重新挂载逻辑卷 2 [root@stu ~]# cd /users/openstack/ #验证数据 3 [root@stu openstack]# ll
8. 对mylv1创建快照卷snap-mylv1, 并通过其备份数据到/tmp/user.tar.bz2;
1 [root@stu openstack]# lvcreate -s -L 50M -n snap_mylv1 -p r /dev/myvg/mylv1 #建立快照 2 [root@stu openstack]# mount /dev/myvg/snap_mylv1 /media/snap/ #挂载快照 3 [root@stu openstack]# tar -jcf /tmp/user.tar.bz2 /media/snap/openstack/* #建立归档