您的位置:首页 > 运维架构 > Linux

LVM磁盘管理

2016-10-17 22:30 120 查看
动态扩容
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:
物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
简单来说就是:
PV:是物理的磁盘分区
VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。
LV:也就是从VG中划分的逻辑分区
如下图所示PV、VG、LV三者关系:





扩容原理:用新磁盘创建PV,然后合并到现有的VG中,然后再扩容某个LV。
貌似全程都不用格式化新建分区

安装LVM
首先确定系统中是否安装了lvm工具:
yum install lvm2 apt-get install lvm2

df -h 和 fdisk -l
查看分区情况
开始分区:
fdisk /dev/sdb
n
新建
p
设定为主分区
回车
设定起始扇区
回车
设定结束扇区(直接回车默认用全部空间创建,也可以输入+500M设定为500M)

t
此时输入L能看到所有格式的代码,指定分区格式,8e为LVM
Partition number(1-4):1
指定分区 ,即为之后创建的sdb1-4(主分区只能4个)
8e
设定为LVM
p
查看当前分区情况
w
写入硬盘

partprobe
重读分区表,可能会提示无法只读。。。。不用理会

查看当前PV
pvdisplay 或 pvscan

创建PV(物理卷)
pvcreate /dev/sdb1
使用之前创建的sdb1的全部空间创建PV,不想使用全部空间,之前分区时就要注意了。

查看当前VG(卷组)
vgdisplay 或 vgscan

用/dev/sdb1创建VG并加到已存在的vg_bogon中
vgextend vg_bogon /dev/sdb1
[vg_bogon是本机正在使用的vg_name]

查看当前VG
vgdisplay



发现有9.99G的空间

扩容/分区所在的LV(逻辑卷)
【/dev/vg_bogon/LogVol01为正在使用的/分区】
lvextend -l +100%FREE /dev/vg_bogon/LogVol01
【路径用/dev/vg_bogon/LogVol01或 /dev/mapper/vg_bogon-LogVol01都是可以的df -h就能查看】
或 lvextend -L +10G  /dev/vg_bogon/LogVol01
来增加10G空间。

查看当前VG
vgdisplay
已经扩容了,但df -h 显示没有扩容

重设逻辑卷大小,对于当前正在使用的LogVol01有效
resize2fs /dev/vg_bogon/LogVol01

***************************************************************************************************************************************************

缩小其他分区扩容根分区
1.首先查看磁盘使用情况

df -h

文件系统 容量  已用 可用  已用% 挂载点

Filesystem              Size  Used Avail Use% Mounted on  

/dev/mapper/VolGroup-lv_root
154G  7.9G  139G   6% /

tmpfs                  1.9G  100K  1.9G   1% /dev/shm

/dev/sda1              485M   69M  391M  15% /boot

/dev/mapper/VolGroup-lv_home
299G  984M  283G   1% /home
2、卸载/home【这里缩小home,把扩容/分区】

umount /home

umount /home 如果提示无法卸载,则是有进程占用/home,使用如下命令来终止占用进程:

fuser -m /home
3、调整分区大小

resize2fs -p
/dev/mapper/VolGroup-lv_home 20G
【此处缩小home分区到20G】

如果提示运行“e2fsck -f /dev/mapper/VolGroup-lv_home”,则执行相关命令: 

[root@localhost ~]#
e2fsck -f
/dev/mapper/VolGroup-lv_home 然后重新执行命令:

[root@localhost ~]#
resize2fs -p
/dev/mapper/VolGroup-lv_home 20G

注:resize2fs 为重新设定磁盘大小,只是重新指定一下大小,并不对结果有影响,需要下面lvreduce的配合
4、挂载上/home,查看磁盘使用情况

mount /home

df -h

 此时看/home分区只有20G了。

5、设置空闲空间

使用lvreduce指令用于减少LVM逻辑卷占用的空间大小。可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。记得输入 “y”

lvreduce -L 20G
/dev/mapper/VolGroup-lv_home
【刚才只是把/home多余的空间标记为不使用,这一步开始真正分割lv,把/home的lv分割为刚刚设定的大小,只能比20G大,比20G小,多分割出来的地方数据会丢失(上面已经设定了为20G了)】

注:lvreduce -L 20G的意思为设置当前文件系统为20G,如果lvreduce -l 20G是指从当前文件系统上减少20G
【-L设定为指定大小,-l减小指定大小】

使用lvreduce减小逻辑卷的大小。注意:减小后的大小不能小于文件的大小,否则会丢失数据。 

 

可以使用vgdisplay命令等查看一下可以操作的大小。也可以是用fdisk
-l命令查看详细信息。

[root@localhost ~]# vgdisplay

注:vgdisplay为显示LVM卷组的元数据信息 此时可以看到有free空间。

6

6.把闲置空间挂在到根目录下

lvextend -l +100%FREE
/dev/mapper/VolGroup-lv_root
【把free空间全部分给/分区】

注:如果使用lvextend -L +283G则为在文件系统上增加283G

resize2fs -p
/dev/mapper/VolGroup-lv_root 【重设磁盘大小】

7

7、检查调整结果

df -h

OK扩容完成

***************************************************************************************************************************************************
其他命令:
移除lv逻辑卷:
lvdisplay
lvremove -f /dev/vg_bogon/LogVol02 移除该lv逻辑卷

lv逻辑卷重命名:
lvrename
/dev/vg_bogon/LogVol02 /dev/vg_bogon/lv_root

如果无法修改可能是因为激活原因,激活VG就可以修改LV名了
lvchange -an /dev/vg_bogon/LogVol02

VG重命名
vgrename
vg_bogon vg_new

若不是用于扩容,只是用来做磁盘存储文件,则要挂载分区,开机自动挂载修改/etc/fastab文件。



如果改名的lv卷是启动分区的话,再修改/etc/grub.conf文件



个人学习笔记,不当之处还请指正。

----------不定期更新------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux LVM 动态扩容