zoukankan      html  css  js  c++  java
  • Linux操作篇之分区/磁盘扩容(二)

    一、swap分区扩容  

    Linux中,free 命令可以查看内存和swap分区的使用情况。

    swap分区是用于当内存不够用时,可以暂时的使用swap分区代替内存使用(相当于Windows中的虚拟内存)。swap分区也是可以进行扩容的。

    关闭新增的swap分区(swapoff   /dev/sdb1)

    设置完成后,可以写入配置文件,使之永久生效。

    上面设备名可以写UUID,UUID上面格式化的时候系统有显示。

     二、LVM逻辑卷

      前面记录了新添加硬盘进行分区以实现扩容的目的。但是比如一个目录在sda1分区中,数据量大且sda1剩余空间不足,这时候新添加的硬盘但却无法对sda1分区进行扩容(就相当于电脑上连接U盘,但是缺无法给电脑C盘进行扩容)。针对这种情况,就出现LVM。

      1、概念:LVM(Logical volume Manager)是逻辑卷管理的简称。

      2、步骤:首先将一整个硬盘或者分区建立成为物理卷(PV),之后可以将一个或者多个物理卷合并成为一个或者多个卷组(VG),然后再将卷组划分出逻辑卷(相当于分区,可直接设置挂载)。物理扩展(PE)在LVM中,是保存数据的最小单位(4MB)。硬盘上保存数据的最小单位是块(默认4KB)两者是区别的。

      3、优点:可随时按需求改变逻辑卷大小,充分利用硬盘空间。实现对磁盘空间的高度管理能力。

      4、现在Linux安装时,若选择默认的安装方式,系统会自动选择LVM模式。(/boot 分区必须选择普通的分区中,若放在LVM中,系统不会正常启动)

       

    举例测试: 

      

       如上图,我的根目录已经使用率超过99%,需扩容。但是按照常规的做法就是换硬盘(非虚拟机)。这样是非常麻烦的。现在我可以在添加一硬盘,分两个分区,一个分区加入根所在的逻辑卷进行扩容,一个分区新建逻辑卷,然后对根所在的逻辑卷扩容。

     1、分区并改变成为LVM模式。

      首先,使用fdisk 命令,对新加硬盘(/dev/sdb)进行分区(我这里分出两个10GB)。

      

       之后,查看分区情况,可以看到新建的分区是83(标准分区),使用 t 命令,将83改为 8e(Linux LVM)。

      

      保存退出后,可以使用fdisk 命令查看确保一下准确性。

      

      有时候划分分区,使用 fdisk -l  是可以看到sdb2 的 但是/dev下却没有这个设备名,重启就可以了。

     2、建立物理卷。

      pvcreate  设备名 (如 /dev/sdb 或 /dev/sdb1)。

      

       可以使用pvscan命令查看物理卷

      

     3、将sdb1物理卷加入到sda2(也就是根所在)的卷组中

      vgextend centos /dev/sdb1  (其中,centos 是卷组名,上面可以看到卷组名)

      

      

     4、新建一卷组centos1,将sdb2加入。

      

     5、提取卷组centos中的容量扩展到根。

      使用lvdisplay 可以看到根的逻辑卷组路径

      

      又由于实际容量是小于10GB,所有添加9.9GB。

      

      上面这一步也可以使用 lvresize 命令来增加容量。  -L 指定大小,单位是(KB、GB、TB等),“+”代表增加的大小;“-”代表减小的大小;直接写容量代表为指定大小。

      

      

      由于是xfs的文件系统,所以使用xfs_growfs命令,使其自动扩展到最大。

     6、提取centos1卷组中的容量,新建一个test1的逻辑卷。

      命令: lvcreate -L 9.9G -n  test1   centos1
         -L  指定逻辑卷的大小(实际容量小于10GB,我这里选择9.9GB)

         -n  指定逻辑卷的名称

      

     7、补充:

      a、也可将物理卷从卷组中删除(缩减容量),使用命令(vgreduce 卷组名  设备名);(vgreduce  -a  可以删除所有未使用的物理卷)。

      b、删除卷组  (vgremove  卷组名)

      

      c、上面试验中,centos1的卷组中的容量不能加到根。(因为根的逻辑卷是属于centos卷组中的)。

      d、在线扩展逻辑卷大小使用 lvextend 命令;新建逻辑卷并指定大小是使用 lvcreate 命令。

    三、磁盘配额(只能限制普通用户)

      概念:可以限制用户(组)的可使用容量大小(组配额不是平均分配,所以极少使用);可以限制用户的文件个数;可以设置软限制(例如80GB),硬限制(例如100GB),用户可以使用超过80GB,但不能超过100GB;还存在一个时间限制,当用户使用超过80GB未超过100GB时,默认7天

      在 centos 7 以前的版本中

      条件:

      1、系统内核必须支持磁盘配额。

        grep CONFIG_QUOTA /boot/config-3.10.0-862.el7.x86_64

        

       2、系统安装了quota工具。

        

       3、建立分区、挂载、写入配置文件(/etc/fstab)、重启生效。

        在centos7以前的版本中,可以通过 mount -o remount,usrquota,grpquota /dev/sdb1 来进行临时开启磁盘配额功能。

        

         查看挂载情况

        

      4、建立磁盘配额配置文件

        使用(quotacheck  选项  分区)命令

        选项:-a  扫描/etc/mtab文件中的所有启用磁盘配额功能的分区。加入此参数,后面就不需要再写分区了。

           -c  重新扫描并建立新的配置文件(覆盖原有的配置文件)

           -u  建立用户配额的配置文件(aquota.user)

           -g  建立组配额的配置文件(aquota.group)

           -v  显示扫描过程

           -m  若扫描的是根分区,添加此选项,以强制扫描

        一般使用:quotacheck -augv 即可。命令执行完成后,会生成两个配置文件(aquota.user与aquota.group)

      5、配置磁盘配额配置文件

        生成的文件可以使用(edquota  选项  用户或组名)命令,来打开上面的两个配置文件(打开之后,与vi编辑器使用方式一致)。

        选项:-u 用户名    为用户配额

           -g 组名     为组配额

           -t         设置宽限时间  

           -p       可以复制已设置好的配额用于其他用户或组

        文件打开之后参数:

        

      6、启动配置好的配置文件:

        quotaon 选项  分区名

        选项:-a  依据/etc/mtab文件中的配额分区,启动所有的配额分区。(这时候不需要加分区名)

           -u  启动用户配额

           -g  启动组配额

           -v  显示启动过程信息

        可直接使用 (quotaon  -augv);(quotaoff  选项  分区)关闭所有配额分区(quotaoff -a)。

      7、查询磁盘配额信息

        quota与repquota

        quota  选项  用户名或组    查询用户或组的配额信息

        选项:-u  查询用户配额

           -g  查询组配额

           -v  显示详信息

           -s  以换算成习惯单位(GB、MB)

        repquota  选项  分区名    查询整个分区的磁盘配额信息

        选项:与上面一致,多了一个  -a  选项,是自动根据 /etc/mtab 中的信息查询配额。

      在centos7之后的版本中

        由于使用的是xfs文件系统,所以需要使用(xfs_quota 选项  分区)

        选项:-x  使用专家模式

           -c  可以使命令交互运行,按照所写代码顺序运行。

           -V  显示版本

        在xfs文件系统中,不存在配额配置文件,需要进入专家模式进行配置。

        

         专家模式中,有以下几个选项:

        path:显示路径及开启的quota功能。

        report:报告文件系统配额信息。

        state:显示全部的文件系统配额信息。

        limit:进行限制。参数包括([-g | -p | -u] bsoft=N | bhard=N | isoft=N | ihard=N | rtbsoft=N | rtbhard=N -d | id | name)设置配额块限制(bhard/bsoft)、inode计数限制(ihard/isoft)和/或实时块限制(rtbhard/rtbsoft)。

        timer:宽限时间。

      举例:

        配置配额

        

        测试(test目录权限777,lisi用户拥有写权限。)

         

         (使用lisi用户,执行dd命令,模拟写入文件)

        

         上面图所示,写入的文件大小48MB。已超过软限制但还未超过硬限制。再次写入一个文件。

        

         上面写入的文件大小为10MB,但只写入了2MB的文件。此时已达到硬限制。

        

         当再次尝试写入时,提示磁盘配额超出,已无法在次写入。

  • 相关阅读:
    Java获取EXE文件图标的方法
    项目组:ouc海票票 第七周Scrum meeting会议记录
    NBear使用的注意点
    几个错误
    DataGrid列中如何去掉小数后的零
    自己看着视频的理解:设计模式之abstractfactory模式(2)
    SQL SERVER 与ACCESS、EXCEL之间的数据转换(转载)
    .NET 将文本转换成语音 (转)
    InstallShield 打包需要的几段脚本代码
    SQL2005性能分析一些细节功能你是否有用到? (转)
  • 原文地址:https://www.cnblogs.com/641055499-mozai/p/13024431.html
Copyright © 2011-2022 走看看