linux (centos) 系统配置 逻辑盘卷管理 Logical Volume Manager
每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某 个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重 新对硬盘分区,然后恢复数据到新分区。
lvm在真实的物理设备与用户可用的磁盘空间中做了一个中间适配层用户不需要关心底层到底有几个分区, 或者几个硬盘他看到的就只有一个分区. 借此来突破单个硬盘的存储上限. 这才是lvm的优势所在,
什么是 PV, PE, VG, LV 的意义
PV(physical volume): 物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group): 卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume): 逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
PE(physical extent): 物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extent): 逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。
www.zhishiwu.com
一,创建步骤:
1,通过fdisk工具将磁盘转换为linux的分区
2,通过pvcreate命令将linux分区转换为物理卷(pv)
3,通过vgcreate命令将建好的物理卷处理成组卷(vg)
4,通过lvcreate命令将卷组分成若干个逻辑卷(lv)
5,对逻辑卷进行格式化,挂载,动态调整逻辑卷的大小,不会影响逻辑卷的数据
PV 阶段
要创建 PV 其实很简单,只要直接使用 pvcreate 即可!我们来谈一谈与 PV 有关的命令吧!
pvcreate : 将实体 partition 创建成为 PV ;
pvscan : 搜寻目前系统里面任何具有 PV 的磁碟;
pvdisplay : 显示出目前系统上面的 PV 状态;
pvremove : 将 PV 属性移除,让该 partition 不具有 PV 属性。
VG 阶段
创建 VG 及 VG 相关的命令也不少,我们来看看:
vgcreate : 就是主要创建 VG 的命令啦!他的参数比较多,等一下介绍。
vgscan : 搜寻系统上面是否有 VG 存在?
vgdisplay : 显示目前系统上面的 VG 状态;
vgextend : 在 VG 内添加额外的 PV ;
vgreduce : 在 VG 内移除 PV;
vgchange : 配置 VG 是否启动 (active);
vgremove : 删除一个 VG 啊!
www.zhishiwu.com
LV 阶段 LVM的逻辑卷
lvcreate : 创建 LV 啦!
lvscan : 查询系统上面的 LV ;
lvdisplay : 显示系统上面的 LV 状态啊!
lvextend : 在 LV 里面添加容量!
lvreduce : 在 LV 里面减少容量;
lvremove : 删除一个 LV !
lvresize : 对 LV 进行容量大小的调整!
fdisk 分区 重复5次创建5个分区 硬盘为sdb 扩展分区时
[root@bogon ~]# 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): c
DOS Compatibility flag is not set
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p 创建一个主分区 多个逻辑分区()
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1000M
将新的分区表读入内存,并格式化新划出的分区
[root@bogon ~]# partprobe 执行划好的分区写到内存中
-bash: partprobe: command not found
[root@bogon ~]# yum -y install parted
[root@bogon ~]# partprobe 执行划好的分区写到内存中
[root@bogon ~]# fdisk -l 查看分区信息
Device Boot Start End Blocks Id System
/dev/sdb1 1 128 1028128+ 83 Linux LVM
/dev/sdb2 129 256 1028160 83 Linux LVM
/dev/sdb3 257 894 5124735 5 Extended
/dev/sdb5 257 384 1028128+ 83 Linux LVM
/dev/sdb6 385 512 1028128+ 83 Linux LVM
/dev/sdb7 513 640 1028128+ 83 Linux LVM
创建和管理LVM www.zhishiwu.com
pv 阶段
[root@bogon ~]# pvcreate /dev/sdb{1,2,5,6}
-bash: partprobe: command not found
[root@bogon ~]# yum install lvm2 安装lvm支持
[root@bogon ~]# pvcreate /dev/sdb{1,2,5,6} 创建pv sdb(1.2.5.6)分区必须存在
[root@bogon ~]# pvscan 显示pv详细信息
PV /dev/sdb1 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb2 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb5 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb6 VG VolGroup lvm2 [992.00 MiB / 0 free]
Total: 5 [4.84 GiB] / in use: 5 [3.84 GiB] / in no VG: 0 [0 ]
vg 阶段
[root@bogon ~]# vgcreate -s 16M VolGroup /dev/sdb{1,2,5,6} 创建vg
[root@bogon ~]# vgdisplay 显示vg详细信息
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 4
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 4
Act PV 4
VG Size 3.84 GiB
PE Size 16.00 MiB
Total PE 248
Alloc PE / Size 0 / 0
Free PE / Size 248 / 3.88 GiB
VG UUID yGy2H6-dNUv-aVZS-R5si-OvN3-qN7n-CQpfSA
lv 阶段
[root@bogon ~]# lvcreate -l 248 -n alinelv VolGroup 将vg分给alinelv 上面显示总共248个PE
[root@bogon ~]# ls /dev/VolGroup/ 查看生成的alinelv
alinelv
[root@bogon ~]# mkfs.ext4 /dev/VolGroup/alinelv 格式化alinelv
[root@bogon ~]# mkdir /mnt/lvm1 创建目录 准备挂载
[root@bogon ~]# mount /dev/VolGroup/alinelv /mnt/lvm1 挂载目录可以存放东西了
www.zhishiwu.com
/dev/sdb{1,2,5,6}硬盘有大多 lvm目录就可以存放相对应大小的数据
[root@bogon ~]# lvscan 显示lv详细信息
ACTIVE '/dev/VolGroup/alinelv' [3.84 GiB] inherit
[root@bogon ~]# cp -r /boot /mnt/lvm1 测试copy数据进去
[root@bogon ~]# df -hT 显示系统挂载信息
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 3.9G 590M 3.1G 16% /
tmpfs tmpfs 514M 0 514M 0% /dev/shm
/dev/sda1 ext4 194M 22M 163M 12% /boot
/dev/sda3 ext4 2.0G 35M 1.8G 2% /home
/dev/mapper/VolGroup-alinelv
ext4 3.84G 143M 3.8G 5% /mnt/lvm1
放大lvm容量
[root@bogon ~]# pvcreate /dev/sdb7 pv添加fdisk 已经划分好的分区
[root@bogon ~]# pvscan 显示pv详细信息
PV /dev/sdb1 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb2 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb5 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb6 VG VolGroup lvm2 [992.00 MiB / 0 free]
PV /dev/sdb7 VG VolGroup lvm2 [992.00 MiB / 0 free] 多了个sdb7的信息
Total: 5 [4.84 GiB] / in use: 5 [4.84 GiB] / in no VG: 0 [0 ]
www.zhishiwu.com
[root@bogon ~]# vgextend VolGroup /dev/sdb7 vg加入新的pv
[root@bogon ~]# vgdisplay 显示vg详细信息
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 5
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 5
Act PV 5
VG Size 4.84 GiB
PE Size 16.00 MiB
Total PE 310
Alloc PE / Size 248 / 3.88 GiB
Free PE / Size 62 / 992.00 MiB 重点看这个信息 这个刚新加还没有使用的PE
VG UUID yGy2H6-dNUv-aVZS-R5si-OvN3-qN7n-CQpfSA
[root@bogon ~]# lvresize -l +62 /dev/VolGroup/alinelv 添加lv
[root@bogon ~]# dumpe2fs /dev/VolGroup/alinelv 查看文件状态
[root@bogon ~]# resize2fs /dev/VolGroup/alinelv 把新加的用到lv上
e2fsck -f /dev/VolGroup/alinelv 提示要
[root@bogon ~]# e2fsck -f /dev/VolGroup/alinelv 执行
[root@bogon ~]# lvscan 显示lv详细信息
ACTIVE '/dev/VolGroup/alinelv' [4.84 GiB] inherit
www.zhishiwu.com
卸载LVM
[root@bogon ~]# umount /mnt/lvm1 取消挂载
[root@bogon ~]# lvremove /dev/VolGroup/alinelv lv移除
[root@bogon ~]# vgremove VolGroup vg也移除
[root@bogon ~]# pvremove /dev/sdb1 /dev/sdb2 /dev/sdb5 /dev/sdb6 /dev/sdb7 pv移除
[root@bogon ~]# pvdisplay 查看是否已经删除
根据上面的使用可以看到,LVM具有很好的可伸缩性,使用起来非常方便。可以方便地对卷组、逻辑卷的大小进行调整,更进一步调整文件系统的大小
作者 zhouxingfu520