对,这是一个很有意义的问题,大家经常有这样的需求,有没有一种方法能够在不关机不影响在线业务的情况下拓展大家的磁盘分区甚至是根分区呢?答案是有!偶在IT领域工作接近20年,大家也经常这么做的,在这里,偶只希望把偶学到的一些东西分享给大家,希望能帮到一些人解决困扰,提高效率,最好能早些下班回家接孩子。
第一件事,从专业角度提醒,在进行下面的任何操作之前,一定要备份你的重要数据,以防万一。
进入正题,谈到一个系统的根分区,确实是很多时候会让人有一种畏惧心理,因为根分区一旦被损坏系统就宕机,在线业务就停,老板就会找过来,所以很多人不愿意动这个地方。可偏偏天不如人愿,在现今大数据时代,数据每天在飞速增长,磁盘分区总有满的时候,不得已也是要动它一动的。如何拓展,往下看,大家以国内使用比较多的CentOSLinux系统为例讲述这个技术。
前提条件,你的Linux系统使用了LVM(逻辑卷管理LogicalVolumeManager)技术,你的服务器硬件支持磁盘热插拔,好消息是,这两样都很容易满足,LVM这个技术在近几年发布的Linux系统中基本都是满足的,包括CentOS,Ubuntu等等,默认就安装并使用了这个管理包,无需另外添加,至于硬件方面基本上目前市场上主流的PCserver基本都能满足,不过谨慎起见,还是要翻看一下硬件供应商附带给你的硬件说明书,上面会有明确说明,并且会告诉你如何热插拔硬盘部件,一定要看说明不能盲目操作。如果你是家用PC,不支持热插拔,那就关机装上硬盘在重新启动系统,家用机一般没有在线业务,重启一下也无妨。
如何确定大家的Linux根分区是否使用了LVM技术?方法很简单,远程登录到你的系统,按照下面命令来查看即可。命令:mount
打下mout命令后,如果你看到了类似第一行的显示
/dev/mapper/vg_basesystem-lv_rooton/typeext4(rw)
证明你的系统使用了LVM技术,你可以继续往下操作了,这行的意思是说你的逻辑卷组名称叫做basesystem,你的逻辑卷的名称叫做lv-root,它正被挂载在“/”即跟分区上,记住这两个名称,后面会用到
下面大家就来拓展这个跟分区:
为了后面验证大家的拓展时候已经成功,大家先开一下目前这个跟分区是多大空间,然后在线拓展完了之后大家再看一次,确定它已经被扩大了。
步骤一,查看根分区大小(命令为df-h)
图上看到,大家目前根分区大小为40G,有效空间为37G,大家现在打算把这个分区在线拓展到60G以上,继续往下看
第二步,在服务器上安装新的硬盘,并且对它进行预处理以便加到LVM的管理中。
安装硬件的话,因为多数PCserver都支持硬盘热插拔,安装厂家的说明书操作在相应的槽位上把硬盘推进去就可以了,大约等待5-10分钟,新加进来的硬盘就能被发现了。接着回到操作系统进行下一步操作:
用fisk-l找系统目前挂载的硬盘:
大家发现(红线部分),大家这个系统目前只有一个硬盘/dev/sda其大小为48.3GB,它被分成了两个分区/dev/sda1和、/dev/sda2,其中sda1为linux的引导盘(Boot),而sda2正在被LinuxLVM管理下,就是上面大家看到的跟分区所在的地方。
大家现在把一个25GB的因硬盘加入到系统中(为了快速演示偶这里添加一个最小的),添加完了之后回到系统继续进行下面的步骤:
这个时候用fdisk-l查看,就发现多了一个硬盘,名称是/dev/sdb
接下来大家就把这个新硬盘/dev/sdb拓展到大家原来正在使用的根分区里面去。
首先要把该硬盘分区并且类型改为8e类型以便支持LVM拓展,实现方法如下:
命令提示符输入fdisk/dev/sdb(注意各位要输入正确的硬盘设备号,偶这里新加入的硬盘是sdb,但你要对照自己的系统输入,有的是sdc,sdd都有可能,如果不确定就用fdisk-l列出来看一下)
现在硬盘准备好了,开始拓展
创建一个PV,这样做(pv,vg,lv这几个名称的解析在文件末尾给出)
将刚刚创建的PV加入到VG中
拓展LV容量
将容量拓展到跟分区
至此,大家的拓展全部完成,验证一下现在这个根分区是不是已经从原来的40Gb拓展到65GB了呢?还是用df-h命令就可以验证了,如下图
对的,大家的根分区从原来的40GB成功拓展到65GB了。
你学到了吗?如果有疑问也可以在留言区留下您的问题,或者关注偶的账号,偶会陆陆续续把一些阅读量比较高的问题回答整理成文章放到偶的头条主页上,也会不定期更新一些视频上来,以便大家可以随时访问。
注释:PV–PhysicalVolume,VG–VolumeGroup,LV–LogicalVolume(不是LV包包哦)