RedHat7 LVM分区方案部署和扩容方法

原创 2017年09月12日 16:26:13

LVM格式的分区方案可以在初次分区之后自由的增加和删减分区的大小。一个服务器的磁盘用量渐渐增长逐渐接近分区大小时,可以在服务器上安装另一块硬盘并将新硬盘的容量充入到原来的逻辑分区中去,过程非常快速,服务器不需终端,各项进程也无需停止。是一种非常方便的磁盘管理方式。

一般在安装RedHat服务器的时候就设置使用LVM分区方案,降低以后配置的麻烦。


首先我们在使用光盘安装RedHat7的时候,选择【安装位置】


然后一定要选择【我要配置分区】才能手动配置挂载点并且设置分区格式


选上之后点击【完成】,然后就会让你选择分区方案,要选择LVM,并且点击加号设置挂载点。



对不同的挂载点设置一个初始容量大小,不需要把磁盘全部划分干净,因为后面还可以使用LVM工具向挂载点添加未分配空间


添加挂载点之后,还要选择设备类型为【LVM】并设置文件系统格式化格式。这里有一个默认卷组 rhel。

注:一个卷组可以理解成一个虚拟硬盘,这个虚拟硬盘是可伸缩的,可以自由的加减容量,可以很多块物理硬盘(或者物理硬盘里面的物理分区)共同组成一个卷组,卷组一般用VG表示。有了VG以后,就可以在VG中划分逻辑分区——LV,逻辑分区一般就是我们选择的各个挂载点,比如/home,/tmp,/var,swat等等,如果你选择了挂载点那么他们就变成了逻辑分区。假设一开始我们给/home 10GB,后来数据量超过了9GB眼看就不够了,可以马上加上一块新硬盘或者把源硬盘中未分配的容量分配给/home。


配置好挂载点之后点击左上角【完成】,完成服务器操作系统的配置。



当某天服务器某个挂载点快要满了,我们就把一块新硬盘或者原来硬盘上未分配的容量添加到卷组rhel中去,然后分配给某个挂载点,就完成了逻辑分区的扩容。

假设现在磁盘就已经快要满了,然而原来的硬盘还有一些未分配的空间,下面来把源硬盘的空间加入到逻辑分区中。

首先可以使用df -h查看当前各挂载点的情况:

[root@localhost ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root   50G  4.5G   43G   10% /
devtmpfs               7.8G     0  7.8G    0% /dev
tmpfs                  7.8G  228K  7.8G    1% /dev/shm
tmpfs                  7.8G   18M  7.8G    1% /run
tmpfs                  7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sda1              190M  133M   44M   76% /boot
/dev/mapper/rhel-tmp   9.8G   37M  9.2G    1% /tmp
/dev/sr0               3.8G  3.8G     0  100% /run/media/alex/RHEL-7.2 Server.x86_64
tmpfs                  1.6G   88K  1.6G    1% /run/user/0
tmpfs                  1.6G   16K  1.6G    1% /run/user/42
/dev/mapper/rhel-home  4.8G   37M  4.6G    1% /home


注意df -h命令只能看到已经挂载的分区和容量,对于没有挂载的硬盘和现有硬盘没有分配的容量是看不到的,可以使用fdisk -l来查看物理硬盘的情况


[root@localhost ~]# fdisk -l


磁盘 /dev/sda:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0001b91a


   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648   180774911    90181632   8e  Linux LVM


磁盘 /dev/mapper/rhel-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节




磁盘 /dev/mapper/rhel-swap:17.2 GB, 17179869184 字节,33554432 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节




磁盘 /dev/mapper/rhel-tmp:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节




磁盘 /dev/mapper/rhel-home:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


从这里,我们看出/dev/sda 这是一块硬盘,这块硬盘的总大小是214.7 GB,/dev/sda1,sda2,sda3是从这块磁盘上划出来的物理分区(PV),其中sda2上面挂载着/ ;/home;swat;/tmp等等挂载点。一共分配了50G左右的容量。sda1是boot分区,200m。

去掉sda1,sda2之后,还剩122G空间,下面就要把这100多G添加到现有逻辑分区当中去

首先看一下现在的硬盘结构


下面从122G剩余空间中划出一个新的物理分区,使用fdisk

fdisk /dev/sda

输入m获得帮助

命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)


输入n新建一个分区,一般使用默认起始位置,然后输入一个大小,最后输入w保存并写入分区表

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (180774912-419430399,默认为 180774912):
将使用默认值 180774912
Last 扇区, +扇区 or +size{K,M,G} (180774912-419430399,默认为 419430399):+10GB
分区 3 已设置为 Linux 类型,大小设为 9.3 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

然后运行

partprobe /dev/sda
更新分区表,然后再观察磁盘的分配情况,新的10GB分区就已经分出来了


注意此时的分区类型还不是LVM(运行fdisk发现id不是8e),需要改成LVM。(注意这一步也可以在上面fdisk划分新分区时使用t命令输入8e完成)

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0001b91a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648   180774911    90181632   8e  Linux LVM
/dev/sda3       180774912   200306687     9765888   83  Linux



然后物理分区就只做好了,下面我们只需把这个新的物理分区加入到rhel这个VG中,就可以划分给虚拟分区了。

为了方便起见使用图形化界面system-config-lvm来完成,这个rpm包在redhat6光盘中中可以找到,但是redhat7已经去掉了,不过可以把6光盘中的rpm包拿出来装到redhat7上。system-config-lvm-1.1.12-17.el6.noarch下载地址:http://download.csdn.net/download/lvshaorong/9975218

首先看看没有添加新物理卷之前的虚拟卷情况


可以看到物理卷的一部分被映射到了逻辑卷上,现在我们要把新加的物理卷放到rhel这个逻辑卷组中


然后很容易就添加进去了,不需要重启不需要中断,不到一秒钟就完成了


现在我们的rhel逻辑卷组中已经有容量了,我们就可以把这一块容量加到/home这个挂载点上,也就是说/home这个挂载点挂载的不只是/dev/sda2,也挂载了/dev/sda3。方法如下


点击确定就扩容成功,不需要重启,不需要杀死进程。

然后可以使用df -h看看剩余空间有没有增多

扩容比较容易,/home这个挂载点也可以缩减,但是缩减就比较麻烦了,首先要umount挂载点/home,umount之前要把所有读写/home的进程都杀死,还得把所有硬盘监控软件停止。才能够缩减。所以执行缩减操作一般会中断当前的服务。缩减之后原来逻辑分区所占的物理位置会分割成两块物理区间,给多个逻辑分区缩减那么物理硬盘就会变的稀碎稀碎的,所以一般不推荐缩减。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

j2me经验总结之事件处理

(源自:http://www.j2medev.com/Article/Class1/Class12/200802/5176.html)基于事件触发模型进行编程可以在有限程度内增加程序的灵活性以及可扩展...
  • njcit
  • njcit
  • 2010-09-15 16:59
  • 238

编程人生之思绪

曾几何时,听说了编程。曾几何时,知道了英文单词的他用。曾几何时,开始了编程。。。。几度春秋,几度起伏。偶然拾取,顿识点悟。------------自己的无知,自己的不足,自己的。。。时至今日,自己在编...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

warning C4150: 删除指向不完整“CBasexxx”类型的指针;没有调用析构函数

warning C4150 删除指向不完整“”类型的指针;没有调用析构函数,内存泄露
  • zzw315
  • zzw315
  • 2010-11-22 13:35
  • 3564

IT精英,必须掌握的命令

一,ping      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都...
  • phphot
  • phphot
  • 2009-06-30 20:18
  • 1176

让程序在崩溃时体面的退出之Unhandled Exception

《让程序在崩溃时体面的退出》系列文章的第一篇:怎样处理Unhandled Exception。

Java编程那些事儿12——第一个HelloWorld程序

2.1.4 第一个HelloWorld程序         对于初学者来说,第一个HelloWorld程序太神秘,也太难了,因为需要在第一个程序中学到很多的操作,而且在操作的过程中,即使是一个很小的错...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)