Centos7 利用LVM实现动态扩容的方法

摘要:最近项目组里来了很多新人,对linux分区及各种应用使用的分区不了解,导致测试数据库时突然发现某一个分区被写满了,不得不重装OS.实在看不下去了,特此分享我的一些利用LVM实现动态扩容的心得,希望对大家有帮助。

知识储备:

LVM是逻辑盘卷管理(Logical VolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配

LVM模型如下图:

1.安装OS时,选择手动分区,Device Type选择LVM。Mysql/Mariadb数据存放在 /var,oracle数据存放在 /home,所以在手动分区时请根据实际磁盘大小,对这两个应用有针对性的将 /var、/home分的更大。下面分区情况仅作演示用:

2.安装完OS后进入系统,查看分区,可以看到装系统时采用LVM的三个分区:/、 /home、/var

3.安装os时忘记创建root账户了,不过没关系,执行‘sudosu root ',再输入目前登陆用户密码即可获取部分root权限

4.查看卷组名称及卷组使用情况  vgdisplay

5.查看当前逻辑卷的空间状态,如下图:/ 50G、/var 200G、/home 100G、swap 20G

6.现在感觉/home 100G不够用,想扩容至120G,新插入一块20G硬盘;用‘fdisk -l'查看

7.格式化分区操作‘fsdisk/dev/sdb'

8.把新加的磁盘设置为LVM模式

确认分区

9.将新加的分区/dev/sdb1创建为物理卷

10.给卷组‘cl'扩容,将物理卷/dev/sdb1扩展至‘cl'卷组

此时卷组‘cl'有20G空余空间,及/dev/sdb1,将其全部扩展至/home

11.此时20G磁盘虽已扩展至 /home,但并没写入文件系统;进入/etc/fstab确认 /home文件系统--->ext4

12.写入文件系统,使扩容生效

13.如果是xfs文件系统,则用‘xfs_growfs /dev/mapper/cl-home';查看/home,已实现扩容。大功告成!

本次扩容指令汇总:

1.创建分区                                                #fdisk /dev/sdb

2.创建物理卷                                             #pvcreat /dev/sdb1

3.查看卷组名称及使用情况                         #vgdisplay

4.将物理卷扩展到卷组                               #vgextend cl /dev/sdb1   (此处‘cl'是卷组名称)

5.将卷组中空闲空间扩展到 /home           #lvextend -l +100%FREE /dev/mapper/cl-home

6.刷新文件系统是扩容生效                     #resize2fs /dev/mapper/cl-home

使用reiserfs 文件系统代替ext2/ext3    #resize_reiserfs /dev/mapper/cl-home

Centos7 默认文件系统是 ‘xfs',我分区时选的是‘ext4'

项目实战:

MPX跑磁盘将 /写满,导致GUI进不去,用此法给 /动态扩容,GUI又回来了,哈哈哈

扩容前

扩容后

GUI又回来了

另附个人对Linux分区的一些认识:

在linux里一切皆文件,所有设备、磁盘都是以文件形式挂在 ‘  /  '。本文中提到的 /var ,如果安装os时不手动对 /var 分区,系统默认会创建 /var ,但是系统创建的 /var ,最大可用存储空间为‘ / '的大小。另外,像 /boot 或 /boot/efi 里只存放linux os的引导文件,没必要分的太大。

总结:安装os时选择LVM,当跑数据库发现分区不够用时,即可按此法实现动态扩容,而不破坏分区内原有文件,更不用重装系统,妈妈再也不用担心我分区大小够用了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • fedora 23 lvm2格式 根目录磁盘空间不足 扩容方法
  • XenServer 虚拟机扩容LVM磁盘分区的方法
  • linux中Centos7的LVM磁盘扩容问题
(0)

相关推荐

  • linux中Centos7的LVM磁盘扩容问题

    系统提示我容量不足 就利用LVM的方式进行扩容吧. 系统是RHEL7(centos7差不多一样) 先查看磁盘信息及根目录 fdisk -l 注意:sda为硬盘,需要扩容的是系统的根目录,这里RHEL的系统根目录为/dev/mapper/rhel-root(系统不一样,根目录也不一样) 关闭系统,在vmware->设置->硬盘->扩展->输入数字大于当前系统内存->点击扩展 开机再查看磁盘信息 fdisk -l 注意:可以看出sda磁盘增加了,但是根目录还没有,也就是说增加出来

  • fedora 23 lvm2格式 根目录磁盘空间不足 扩容方法

    成功将根目录从20G扩容到47G,记录一下步骤: 格式是lvm2 $ df -lh Filesystem               Size  Used Avail Use% Mounted on devtmpfs                 5.7G     0  5.7G   0% /dev tmpfs                    5.7G   26M  5.7G   1% /dev/shm tmpfs                    5.7G  1.5M  5.7G 

  • XenServer 虚拟机扩容LVM磁盘分区的方法

    说明:XenServer里面安装的虚拟机,分区的时候采用的是LVM磁盘分区 需求:现在需要扩容虚拟机根分区/ 具体操作: 一.使用XenCenter增大虚拟机磁盘容量,如下图所示 增大当前磁盘到50GB 注意:必须在虚拟机关机状态下进行 二.查看硬盘容量 df -h #可以看到此时根分区还是12G,没有变化 fdisk -l #已经可以看到整个磁盘容量变为53.6GB了 三.创建新的磁盘分区 fdisk /dev/xvda #对磁盘/dev/xvda进行操作 p #查看当前分区 n #创建新分区

  • Centos7 利用LVM实现动态扩容的方法

    摘要:最近项目组里来了很多新人,对linux分区及各种应用使用的分区不了解,导致测试数据库时突然发现某一个分区被写满了,不得不重装OS.实在看不下去了,特此分享我的一些利用LVM实现动态扩容的心得,希望对大家有帮助. 知识储备: LVM是逻辑盘卷管理(Logical VolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块

  • vue里面v-bind和Props 利用props绑定动态数据的方法

    如下所示: <add v-bind:子组件的值="父组件的属性"></add> <div id="app"> <add v-bind:btn="h"></add> </div> <script> var vm = new Vue({ el: '#app', data: { h: "hello" }, components: { "ad

  • Java使用数组实现ArrayList的动态扩容的方法

    提到数组大家肯定不会陌生,但我们也知道数组有个缺点就是在创建时就确定了长度,之后就不能更改长度.所以Java官方向我们提供了ArrayList这个可变长的容器.其实ArrayList底层也是用数组进行实现的,今天我们就自己使用数组实现ArrayList的功能. 一.整体框架 废话不多说,我们以存放int类型元素为例,看一下ArrayList需要的成员变量和需要实现的方法. public class ArrayList private int size;//用来记录实际存储元素个数 private

  • SpringCloud Gateway 利用 Mysql 实现动态路由的方法

    需求描述 标准网关动态路由功能是重要的一环,将路由.断言以及过滤器信息,持久化到 Mysql 中,通过配置后台页面实现路由.断言.以及过滤器等配置的增删改查. Spring Cloud Gateway 路由及黑白名单实现背景 Spring Cloud 路由API Spring Cloud Gateway 通过定义 RouteDefinitionRepository 来实现动态路由. //保存路由缓存 public interface RouteDefinitionWriter { Mono<Vo

  • Spring boot随机端口你都不会还怎么动态扩容

    一般情况下每个spring boot工程启动都有固定的端口,但是固定端口不利用服务的动态扩容,如果在一台服务器上需要对同一个服务进行多实例部署,很容易出现端口冲突,那么怎么解决这个问题呢? random随机端口 在spring boot中,可以通过${random}来生成随机数字,我们可以在配置文件中,这么设置端口: server.port=${random.int(2000,8000)} 通过random.int方法,指定生成2000~8000的随机端口.这样每次启动的端口都不一样. 多次启动

  • 利用jQuery来动态为属性添加或者删除属性的简单方法

    现在做的项目有这样一个需要: 先看图吧^^ 要求: 1.当点击导出Excel方式的时候,如果是"勾选导出"或"不分页导出"时,下面的文本框不能修改 2.当点击"分页导出"时,第一个文本框中的值可以被修改,但第二个文本框中的值不可以手动修改,但会随着第一个文本框中输入的值不断变化 实现: 这个页面我就不说怎么做的了,咱们看重点,如何来实现动态的增加属性值: function changeAttr(){ //onchange事件 添加和去除只读属性

  • Java中Arraylist动态扩容方法详解

    前言 本文主要给大家介绍了关于Java中Arraylist动态扩容的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. ArrayList 概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长.ArrayList不是线程安全的,只能用在单线程环境下.实现了Serializable接口,因此它支持序列化,能够通过序列化传输:实现了RandomAccess接口,支持快速随机访问,实际上就是通过下标序号进行快速访问:实现了Cloneable接口,能被克隆.

  • 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解

    本文的写作冲动来源于今晚看到的老赵的一则微博"大家知道System.Collections.Generic.List<T>是一种什么样的数据结构?内部的元素是怎么存放的?还有Dictionary<TKey,TValue>呢?-". 查了一下书,如果参考数据结构和算法里介绍的线性表合哈希表的特点,非常官方的答案就类似:List<T>是一种线性的内存连续分配的存储结构,元素是顺序存放的:它的优点是内存连续分配,相对节省空间,在设定长度范围内增加元素开销很

  • 关于ArrayList的动态扩容机制解读

    目录 1. 前言 2. ArrayList 的动态扩容机制 2.1. ArrayList 的主要属性 2.2. ArrayList 的构造器 2.3. ArrayList 的动态扩容 3. 小结 3.1. 初始容量 3.2. 动态扩容大小 3.3. 动态扩容大小测试 1. 前言 对于 ArrayList 的动态扩容机制想必大家都听说过,之前的文章中也谈到过,不过由于时间久远,早已忘却. 所以利用这篇文章做做笔记,加深理解记忆 2. ArrayList 的动态扩容机制 要了解其动态扩容机制就必须先

随机推荐