linux下 lvm 磁盘扩容
打算给系统装一个oracle,发现磁盘空间不足。在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区。为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这样做。
参于LVM基本介绍与常用命令请参考:http://www.cnblogs.com/jackruicao/p/6258812.html

LVM结构图
扩容之前的磁盘状况
[root@localhost ~]# df -h
文件系统 容量 已用 可用已用%%挂载点
/dev/mapper/VolGroup-lv_root 5.3G 2.5G 2.6G 50% /
tmpfs 538M 0 538M 0% /dev/shm
/dev/sda1 485M 30M 430M 7% /boot
[root@localhost ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
...............
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1045 7875584 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 5779 MB, 5779750912 bytes
........
Disk /dev/mapper/VolGroup-lv_swap: 2281 MB, 2281701376 bytes
.........
此次扩容的方案为:
1、加1个5G的空间给/
2、加1个10G的空间给/oracle
(一) 在VM中加一个15G的磁盘

重启后#fdisk –l可以看到新的磁盘已经认出来了。
Disk /dev/sdb: 16.1 GB, 16106127360 bytes
............................
Disk /dev/sdb doesn't contain a valid partition table
(二)创建物理卷(PV)
#pvcreate /dev/sdb
查看系统PV的情况:
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2 //原有硬盘上的PV
VG Name VolGroup
PV Size 7.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1922
Free PE 0
Allocated PE 1922
PV UUID SGH1dY-4tp2-Nr1a-w93Z-V4LA-pQBh-VGzzTH
"/dev/sdb" is a new physical volume of "15.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name //新建的PV的VG name是空的,下一步就是把PV加入VG
PV Size 15.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 8TZUlz-YyUp-RBvf-lSzm-7MgG-DSZS-qNqX1Z
查看原VG的情况
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name VolGroup //注意记录此名字,扩容时将新的pv加入指定的名字
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.51 GiB
PE Size 4.00 MiB
Total PE 1922
AllocPE / Size 1922 / 7.51 GiB
Free PE / Size 0 / 0
VG UUID FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1
(三)#扩展卷组,将/dev/sdb物理卷添加到VolGroup卷组中
[root@localhost ~]# vgextend VolGroup /dev/sdb
Volume group "VolGroup" successfully extended
再查看VG情况,可以看到VG大小变化,空余空间。
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 22.50 GiB
PE Size 4.00 MiB
Total PE 5761
AllocPE / Size 1922 / 7.51 GiB
Free PE / Size 3839 / 15.00 GiB
VG UUID FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1
(四)将新的VG空间划入LV(扩容lv_root)
#直接扩展5G给/root分区,不用umount,也不需要重启
# lvextend -L +5G /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 10.38 GiB
Logical volume lv_root successfully resized
也可以使用命令
# lvextend -l +30%FREE /dev/mapper/VolGroup-lv_root
此时,如果有df命令查看的话,会发现root空间并没有增加的.还需要执行以下两步操作才可以.
#检查/root逻辑卷
#e2fsck -f /dev/mapper/VolGroup-lv_root
#重新定义分区大小
#resize2fs /dev/mapper/VolGroup-lv_root

查看/目录大小

可以看到/目录已经从原来的5.3G扩容到了11G。
(五)LV卷空间分配(新增lv_oracle)
在VG中还有新增的10G没有用,可以将VG中的空余空间划分为LV,并将新的LV挂载在目录下。
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 2 2 0 wz--n- 22.50g10.00g
//可以通过#vgs命令查看vg信息统计,可以看到VFree还有10G。
将VG空余的空间化分为LV
#lvcreate -L 10G -n lv_oracle VolGroup

图四
//少了一点点空间…
//可以用-l 分,它是按pv块数来分的。一个pv默认是4M,可是从vgdisplay中去查vg中还剩多少pv以及总数是多少。

图五
//查到剩余2559个PE,于是执行
# lvcreate -l 2559 -n lv_oracle VolGroup
Logical volume "lv_oracle" created
提示创建成功后,用vgs和lvs命令分别查看。

图六
(五)挂载LV到目录下
接下来就是要把lv_oracle挂到/oracle,目录下
#cd /
#mkdir oracle
#chmod 777 /oracle
创建/oracle目录并修改权限
# vi /etc/fstab
可以看到目前挂载分区的情况

图七
//我们可以参照/的分区把oracle的加上去。加入这行:
/dev/mapper/VolGroup-lv_oracle /oracle ext4 defaults 0 0
然后把lv_oracle格式化成ext4
#mkfs.ext4 /dev/mapper/VolGroup-lv_oracle

图八
将lv_oracle mount到目录/oracle上
# mount /dev/mapper/VolGroup-lv_oracle /oracle之后查看一下分区情况

图九
可以重启系统检查一下是否正常。

图十
#df –h
挂载正常,可以收工了。
linux下 lvm 磁盘扩容的更多相关文章
- CentOS 下lvm 磁盘扩容
打算给系统装一个oracle,发现磁盘空间不足.在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区.为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这 ...
- Linux下lvm在线扩容步骤
转 :https://jingyan.baidu.com/article/25648fc18f22b29191fd0011.html 图片看不清可以看原文 LVM是逻辑盘卷管理(Logical Vol ...
- 【转载】CentOS LVM磁盘扩容
转自:http://blog.sina.com.cn/s/blog_8882a6260101cpfs.html EXSI5.1主机有一个linux虚拟机,系统是centos运行httpd服务,因为是多 ...
- Linux下的磁盘分割和文件系统
一.各硬件装置在Linux下的文件名 1.IDE硬盘机 在Linux内的文件名: /dev/hd[a-d] (a-d 刚好是四个这个是有原因的具体如下) 解释:以 IDE 接口来说,由于一个 IDE ...
- linux下测试磁盘的读写IO速度-简易方法
linux下测试磁盘的读写IO速度-简易方法 参考资料:https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是用 ...
- Linux下查看磁盘挂载的几种方法
Linux下查看磁盘挂载的几种方法 第一种方法:df命令 # df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtm ...
- Linux下查看磁盘挂载的三种方法
Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...
- Linux:lvm磁盘分区,动态扩容
一.lvm磁盘分区: 1,查看新增的磁盘,需要使用root权限 fdisk -l 看到有一个新增的100G磁盘 2,对磁盘进行分区 fdisk /dev/xvdb 1,输入:n 表示创建一个新的分区( ...
- lvm 磁盘扩容
LVM磁盘管理 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘 ...
随机推荐
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- .NET 串口通信
这段时间做了一个和硬件设备通信的小项目,涉及到扫描头.输送线.称重机.贴标机等硬件.和各设备之间通信使用的是串口或网络(Socket)的方式.扫描头和贴标机使用的网络通信,输送线和称重机使用的是串口通 ...
- Android Studio —— 重装 HAXM
Android Studio -- 重装 HAXM 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. Android SDK 自带模拟器一直以慢.卡 ...
- 一个表缺失索引发的CPU资源瓶颈案例
背景 近几日,公司的应用团队反应业务系统突然变慢了,之前是一直比较正常.后与业务部门沟通了解详情,得知最近生意比较好,同时也在做大的促销活动,使得业务数据处理的量出现较大的增长,最终系统在处理时出现瓶 ...
- Linux常用指令指南,终端装逼利器
最近搞了台Macbook Pro,就学习了一下Linux命令,在网上查了些资料,看了本书叫<快乐的 Linux 命令行>,里面涉及到了各个方面的命令. 在此将常用的整理出来,以备将来使用. ...
- Entity Framework 手动使用migration里面的up 和down方法。
add-migration -IgnoreChanges 201606100717405_201606100645298_InitialCreate 执行这一句后 ,清空使用map生成的代码,个人不太 ...
- [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化
KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...
- CSS三个定位——常规、浮动、绝对定位
.dage { width: 868px; background: #5B8C75; border: 10px solid #A08C5A; margin-top: -125px; margin-le ...
- hibernate5.2需要的最少jar文件
hibernate5.2需要的最少jar文件: required文件夹中的所有jar文件 + mysql-connector-java-bin.jar.
- 初学DirectX11, 留个纪恋。
以前学的是openGL, 最近才开始学DirectX11,写了个很垃圾的代码,怀念以前的glPushMatrix(), glPopMatrix(), glBegin(), glEnd(), 多简单啊, ...