Centos7 利用LVM实现动态扩容的方法
<p>摘要:最近项目组里来了很多新人,对linux分区及各种应用使用的分区不了解,导致测试数据库时突然发现某一个分区被写满了,不得不重装os.实在看不下去了,特此分享我的一些利用lvm实现动态扩容的心得,希望对大家有帮助。</p>
<p>
<strong>知识储备:</strong></p>
<p>
lvm是逻辑盘卷管理(logical volumemanager)的简称,它是linux环境下对磁盘分区进行管理的一种机制,lvm是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过lvm系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过lvm可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配</p>
<p>
lvm模型如下图:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/4c24a68343b15a44bcbfb214bc281f67.jpg"></p>
<p>
1.安装os时,选择手动分区,device type选择lvm。mysql/mariadb数据存放在 /var,oracle数据存放在 /home,所以在手动分区时请根据实际磁盘大小,对这两个应用有针对性的将 /var、/home分的更大。下面分区情况仅作演示用:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/08870ef9c625064b9f89ad8512b18841.jpg"></p>
<p>
2.安装完os后进入系统,查看分区,可以看到装系统时采用lvm的三个分区:/、 /home、/var</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/973086ae18a2ab0c8b51d087ee846b16.jpg"></p>
<p>
3.安装os时忘记创建root账户了,不过没关系,执行‘sudosu root ',再输入目前登陆用户密码即可获取部分root权限</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/790c1ced0dec0aa5da02f93c76613cff.jpg"></p>
<p>
4.查看卷组名称及卷组使用情况 vgdisplay</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/b9faeda74ef08a5702913947d6abc394.jpg"></p>
<p>
5.查看当前逻辑卷的空间状态,如下图:/ 50g、/var 200g、/home 100g、swap 20g</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/049d9bd8dbcb100726e204ea625214b2.jpg"></p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/6d90d8c59471c1ab92bfd5035321a01e.jpg"></p>
<p>
6.现在感觉/home 100g不够用,想扩容至120g,新插入一块20g硬盘;用‘fdisk -l'查看</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/4f0d22e2746dd3376a7e46fc7a73bdd7.jpg"></p>
<p>
7.格式化分区操作‘fsdisk/dev/sdb'</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/a19d6a047c5755748a635ddfb2a27ab4.jpg"></p>
<p>
8.把新加的磁盘设置为lvm模式</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/55f665d517095bf50b300156c8cb0f0d.jpg"></p>
<p>
确认分区</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/8529f371dae1487dc75bba369a4a9387.jpg"></p>
<p>
9.将新加的分区/dev/sdb1创建为物理卷</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/0e358a681df86ed29a3ed8d43cbb28e9.jpg"></p>
<p>
10.给卷组‘cl'扩容,将物理卷/dev/sdb1扩展至‘cl'卷组</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/f2cdcb29be787ce96bba6a6a65ab613d.jpg"></p>
<p>
此时卷组‘cl'有20g空余空间,及/dev/sdb1,将其全部扩展至/home</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/ded04539d23cfcb3aea54d53c5aabc80.jpg"></p>
<p>
11.此时20g磁盘虽已扩展至 /home,但并没写入文件系统;进入/etc/fstab确认 /home文件系统--->ext4</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/1366a44c958699e25ea637c8bab04170.jpg"></p>
<p>
12.写入文件系统,使扩容生效</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/15fbb8d38a3b9a679bd61943f5c0b246.jpg"></p>
<p>
13.如果是xfs文件系统,则用‘xfs_growfs /dev/mapper/cl-home';查看/home,已实现扩容。大功告成!</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/b96679ef5a9cb18a7f19f606947b5c34.jpg"></p>
<p>
<strong>本次扩容指令汇总:</strong></p>
<p>
1.创建分区 #fdisk /dev/sdb</p>
<p>
2.创建物理卷 #pvcreat /dev/sdb1</p>
<p>
3.查看卷组名称及使用情况 #vgdisplay</p>
<p>
4.将物理卷扩展到卷组 #vgextend cl /dev/sdb1 (此处‘cl'是卷组名称)</p>
<p>
5.将卷组中空闲空间扩展到 /home #lvextend -l +100%free /dev/mapper/cl-home</p>
<p>
6.刷新文件系统是扩容生效 #resize2fs /dev/mapper/cl-home</p>
<p>
使用reiserfs 文件系统代替ext2/ext3 #resize_reiserfs /dev/mapper/cl-home</p>
<p>
centos7 默认文件系统是 ‘xfs',我分区时选的是‘ext4'</p>
<p>
<strong>项目实战:</strong></p>
<p>
mpx跑磁盘将 /写满,导致gui进不去,用此法给 /动态扩容,gui又回来了,哈哈哈</p>
<p>
扩容前</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/56fb9bbc639412d1659818e9453c3651.jpg"></p>
<p>
扩容后</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/6c69495c7719971012f0e274de2f34f2.jpg"></p>
<p>
gui又回来了</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="Centos7 利用LVM实现动态扩容的方法" alt="Centos7 利用LVM实现动态扩容的方法" src="https://zhuji.jb51.net/uploads/img/202305/2985e4c8b66ca15cb4ae522d3f2fdb69.jpg"></p>
<p>
<strong>另附个人对linux分区的一些认识:</strong></p>
<p>
在linux里一切皆文件,所有设备、磁盘都是以文件形式挂在 ‘ / '。本文中提到的 /var ,如果安装os时不手动对 /var 分区,系统默认会创建 /var ,但是系统创建的 /var ,最大可用存储空间为‘ / '的大小。另外,像 /boot 或 /boot/efi 里只存放linux os的引导文件,没必要分的太大。</p>
<p>
总结:安装os时选择lvm,当跑数据库发现分区不够用时,即可按此法实现动态扩容,而不破坏分区内原有文件,更不用重装系统,妈妈再也不用担心我分区大小够用了!</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
原文链接:http://blog.csdn.net/u012439646/article/details/73380197</p>
頁:
[1]