用同一个磁盘,服务器lvm在线磁盘扩容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用同一个磁盘,服务器lvm在线磁盘扩容相关的知识,希望对你有一定的参考价值。

某云的主机【具体哪个云不说了,免得说我黑人家】,系统是centos-6.5 64位的, 生产数据库从库,100G空间,现在空间不足了


本来打算买个200G的云盘挂上去的,服务器所在的区没有云盘,不能挂其他区的云盘(不支持)


某云的售后技术支持在后台给服务器加了空间,还是在原来是磁盘/dev/vdb加的 ,直接在这个盘加了200G空间,现在要把这200G的空间用上


开始以为是给我们加个新的硬盘的,没想到是这样加,加到同一个磁盘,现在好了,找到的博客都是写通过另一个磁盘给现有的lvm扩容的,我就呵呵了~~这是生产的服务器啊,万一把现有的东西全干掉,那收拾东西滚蛋都解决不了~~~几年前在虚拟机做过lvm在线扩容(那时还在学校呢)。。。。


硬着头皮上啊,不然呢?!服务器就剩5G空间了,昨晚凌晨12点到现在用了5G


这个盘原来分了一个区/dev/vdb1 , 并且做了lvm 


下面是操作前磁盘和卷组的信息:

[[email protected]_132_242_centos bin]# ls /dev/vd*

/dev/vda  /dev/vda1  /dev/vdb  /dev/vdb1 

[[email protected]_132_242_centos bin]# fdisk  -l

Device     Boot   Start     End    Blocks  Id  System

/dev/vda1   *     1      1045    8387584   83  Linux  

 Device Boot     Start       End      Blocks   Id  System

/dev/vdb1           1      208050   104857168+      8e  Linux LVM

【vda1 是系统盘】

【vdb1 是数据盘】

【省略了fdisk 输出的很多其他信息】


查看原来的vg和lvm信息:

[[email protected]_132_242_centos bin]# vgdisplay 

  --- Volume group ---

  VG Name               vol01

。。。。。

[[email protected]_132_242_centos bin]# lvdisplay 

  --- Logical volume ---

  LV Path                /dev/vol01/lv01

。。。

--- Logical volume ---

  LV Path                /dev/vol01/lv02

【这里也省略了vg和lvm的很多信息】


======================================下面开始磁盘扩容===========================


开始看到很多博客都是写的用不同的分区来扩容,自己这次是先在原来的数据盘追加了空间,有点不知如何下手,

主要是因为生产环境的数据库,怕误操作把数据全部干掉!!其实也就是那几条命令,所以,别紧张!!!



扩容主要步骤:

1) fdisk分区,mkfs 格式化磁盘

2) pvcreate 创建物理卷

3) vgextend 扩容卷组

4) lvextend扩容逻辑卷

5) resize2fs使扩容生效


一,新追加的200G空间是要重新分区才可以用的,磁盘分区:

fdisk /dev/sdb 

输入 p 命令查看原来就有的分区信息 

Device Boot    Start         End      Blocks   Id  System

/dev/vdb1           1      208050   104857168+     8e  Linux LVM

【只有一个分区】

输入n 命令新建一个分区

Command action

   e   extended

   p   primary partition (1-4)

输入p ,新建一个主分区(e是扩展分区,具体区别自己查)

输入2 (因为前面有一个主分区/dev/vdb1了,这里只能输入2或者3、4)


然后两个回车,默认把剩余的全部空间都分到了新的分区/dev/vdb2

最后 p命令打印分区信息看下,确认没问题 , w命令保存【不输入w保存,刚才的操作无效】


[[email protected]_132_242_centos bin]# ls /dev/vd*

/dev/vda  /dev/vda1  /dev/vdb  /dev/vdb1 

还是没有vdb2  ???  要重启服务器 !!!

reboot命令重启服务器,再次用上面的 ls 就可以看到/dev/vdb2 了

然后格式化磁盘:

mkfs.ext4 /dev/vdb2


二,磁盘创建卷组

pvcreate /dev/vdb2


三,把卷组添加到原来的卷组【上面vgdisplay 出来那个VG Name】

 vgextend vol01 /dev/vdb2 


四,把卷组的空间添加到 lvm去

lvextend -L +203G /dev/vol01/lv01


lvdisplay 好开心,添加错了!!!添加到系统盘去了, 呵呵~~

【上面lvdisplay出来有两个逻辑卷,第二个才是数据盘!!】


删减lvm空间空间:

lvreduce -L -200G /dev/vol01/lv01

【上面把空间错加到系统分区去了,这里也是拿系统分区来删减,如果你用了lv02,那就呵呵了】


把添加错误的卷组移除:

vgreduce vol01 /dev/vdb2

添加到新的逻辑卷【注意不是卷组】

 lvextend lv02 /dev/vdb2 

 失败,因为上面移除了已经把/dev/vdb2从vol01组中移除了

 重新把vdb2分区添加到vol01卷组:

 vgextend vol01 /dev/vdb2

逻辑卷扩容

 lvextend -L +200G /dev/vol01/lv02


五,使扩容生效:

resize2fs -p /dev/vol01/lv02

【为什么五跑到这里了?!因为中间的是犯错多出来的步骤,正常是不需要的】


[[email protected]_132_242_centos bin]# lvdisplay 

  --- Logical volume ---

  LV Path                /dev/vol01/lv01

  LV Name                lv01

  VG Name                vol01

  LV UUID                mK8c38-7rFE-kyyk-chm6-0yW1-1jrE-Uodc9I

  LV Write Access        read/write

  LV Creation host, time VM_132_242_centos, 2015-07-03 15:26:28 +0800

  LV Status              available

  # open                 1

  LV Size                9.00 GiB

  Current LE             2304

  Segments               2

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0

  --- Logical volume ---

  LV Path                /dev/vol01/lv02

  LV Name                lv02

  VG Name                vol01

  LV UUID                34FnTT-2ZcT-vRxf-5ZoF-9NQX-M180-K6gmme

  LV Write Access        read/write

  LV Creation host, time VM_132_242_centos, 2015-07-03 15:26:34 +0800

  LV Status              available

  # open                 1

  LV Size                290.00 GiB

  Current LE             74240

  Segments               3

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:1


这回没错了,呵呵。


其实中途用了很多次vgdisplay  , lvdisplay 命令来查看的,如果不不确定的,每做一步都可以看一下。


service mysqld start

启动mysql 服务, show slave status ,全部都是YES的状态,我还要以为要手动开启slave 呢


记录一下,以后忘了可以看看。 


本文出自 “BYWIND” 博客,请务必保留此出处http://bywind.blog.51cto.com/7598847/1792255

以上是关于用同一个磁盘,服务器lvm在线磁盘扩容的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘LVM在线扩容

关于linux中的磁盘扩容和LVM的疑问

云主机磁盘存储动态扩容(LVM)方案

Linux下调整磁盘大小后的基于LVM的磁盘扩容

超大磁盘在线扩容

如何在线将逻辑卷扩容并且设置磁盘配额