zoukankan      html  css  js  c++  java
  • 从yum提示空间不足到根分区扩容

    记录一次安装软件的报错

                                                                      ——1261065212@qq.com        

    1.系统版本(VMware 虚拟机)

    [root@ansible-admin ~]# cat /etc/redhat-release

    CentOS Linux release 7.3.1611 (Core)

    2.当执行yum安装软件时报如下错

    Error: Error writing to file /var/cache/yum/x86_64/7/epel/gen/filelists_db.sqlite: [Errno 28] No space left on device

    是由于磁盘空间不够,清除了部分无用日志之后再次安装

    #yum install gitlab-ce -y

    ………………………………

    Transaction Summary

    =====================================================================================================================

    Install  1 Package

    Total download size: 378 M

    Installed size: 378 M

    Is this ok [y/d/N]: y

    Downloading packages:

    Error downloading packages:

      gitlab-ce-9.5.2-ce.0.el7.x86_64: Insufficient space in download directory /var/cache/yum/x86_64/7/gitlab-ce/packages

        * free   312 M

        * needed 378 M

     

    3.提示空间不足,剩余空间只有312M,查看磁盘使用空间发现根分区确实只剩313M了

    [root@ansible-admin ~]# df -h

    Filesystem           Size  Used Avail Use% Mounted on

    /dev/mapper/cl-root  6.2G  5.9G  313M  96% /  #扩容的对象

    devtmpfs             482M     0  482M   0% /dev

    tmpfs                493M     0  493M   0% /dev/shm

    tmpfs                493M   50M  443M  11% /run

    tmpfs                493M     0  493M   0% /sys/fs/cgroup

    /dev/sda1           1014M  139M  876M  14% /boot

    tmpfs                 99M     0   99M   0% /run/user/0

    /dev/sr0             680M  680M     0 100% /mnt

    [root@ansible-admin boot]# df -h /var /var目录确实为312M

    Filesystem           Size  Used Avail Use% Mounted on

    /dev/mapper/cl-root  6.2G  5.9G  312M  96% /

    4.于是开始扩容根分区

     1)添加磁盘

       虚拟机——设置——添加——硬盘——下一步——选择磁盘类型——下一步——填写磁盘大小——完成

     2)查看磁盘

    [root@ansible-admin boot]# fdisk -l

    Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk label type: dos

    Disk identifier: 0x000b9a5e

     

       Device Boot      Start         End      Blocks   Id  System

    /dev/sda1   *        2048     2099199     1048576   83  Linux

    /dev/sda2         2099200    16777215     7339008   8e  Linux LVM

     

    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors #添加的新磁盘

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

    Disk label type: dos

    Disk identifier: 0x4fddc909

     

       Device Boot      Start         End      Blocks   Id  System

     

    Disk /dev/mapper/cl-root: 6652 MB, 6652166144 bytes, 12992512 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

     

    Disk /dev/mapper/cl-swap: 859 MB, 859832320 bytes, 1679360 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Sector size (logical/physical): 512 bytes / 512 bytes

    I/O size (minimum/optimal): 512 bytes / 512 bytes

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

      

     

    (3)为新磁盘创建分区

    创建分区:

    [root@ansible-admin boot]# fdisk /dev/sdb

    Welcome to fdisk (util-linux 2.23.2).

     

    Changes will remain in memory only, until you decide to write them.

    Be careful before using the write command.

     

    Command (m for help): n        #新建分区

    Partition type:

       p   primary (0 primary, 0 extended, 4 free)

       e   extended

    Select (default p): p           #选择分区类型

    Partition number (1-4, default 1):  #默认为1(因为是新磁盘第一次创建分区)

    First sector (2048-41943039, default 2048):

    Using default value 2048

    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): #这里我只创建一个分区所以默认是使用所有空间

    Using default value 41943039

    Partition 1 of type Linux and of size 20 GiB is set

     

    Command (m for help): w  #保存分区结果

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    Syncing disks.

    让系统重新读取分区表:

    [root@ansible-admin boot]# partprobe

    Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    (4)扩容

    由于sda已经为LVM所以可以直接为其扩容,无需再创建新的LVM

    创建物理卷(PV):

    使用pvcreate命令创建物理卷,pvdisplay查看物理卷信息

    创建物理卷:

    [root@ansible-admin boot]# pvcreate /dev/sdb1

      Physical volume "/dev/sdb1" successfully created.

    查看物理卷信息:

    [root@ansible-admin boot]# pvdisplay

      --- Physical volume ---

      PV Name               /dev/sda2

      VG Name               cl   #原有盘上的PV

      PV Size               7.00 GiB / not usable 3.00 MiB

      Allocatable           yes (but full)

      PE Size               4.00 MiB

      Total PE              1791

      Free PE               0

      Allocated PE          1791

      PV UUID               beyPTU-i2Ny-ltMw-0tfr-Me0b-Sz0Z-ybS4cy

       

      "/dev/sdb1" is a new physical volume of "20.00 GiB"

      --- NEW Physical volume ---

      PV Name               /dev/sdb1

      VG Name        #新建的PVVG name是空的,下一步就是把PV加入VG       

      PV Size               20.00 GiB

      Allocatable           NO

      PE Size               0   

      Total PE              0

      Free PE               0

      Allocated PE          0

      PV UUID               5N1q14-vf7Y-U1dm-1tkf-ZxAQ-16lE-pW2M5F

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    查看原VG的情况

    [root@ansible-admin boot]# vgdisplay

      --- Volume group ---

      VG Name               cl  #注意记录此名字,扩容时将新的pv加入指定的名字

      System ID             

      Format                lvm2

      Metadata Areas        1

      Metadata Sequence No  3

      VG Access             read/write

      VG Status             resizable

      MAX LV                0

      Cur LV                2

      Open LV               2

      Max PV                0

      Cur PV                1

      Act PV                1

      VG Size               7.00 GiB

      PE Size               4.00 MiB

      Total PE              1791

      Alloc PE / Size       1791 / 7.00 GiB

      Free  PE / Size       0 / 0   #发现空闲空间为0(以G计算)

      VG UUID               l4mGeJ-090j-NZ1U-UOhI-c56R-0mtM-xiBm9h

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    扩展卷组,/dev/sdb物理卷添加到cl卷组中

     

    再查看VG情况,可以看到VG大小变化,空余空间

     

    将新的VG空间划入LV(扩容lv_root

    直接扩展10G/root分区,不用umount,也不需要重启扩张多大可根据添加的磁盘大小自由支配

    [root@ansible-admin boot]# lvextend -L +10G  /dev/mapper/cl-root

      Size of logical volume cl/root changed from 6.20 GiB (1586 extents) to 16.20 GiB (4146 extents).

      Logical volume cl/root successfully resized.

     

     

     

     

     

    也可以使用命令

    # lvextend -l +50%FREE /dev/mapper/cl-root表示将剩余空间的50%划入LV

    使用xfs_growfs命令在线调整xfs格式文件系统大小(CentOS6使用resize2fs

    #xfs_growfs /dev/cl/root (因为CentOS7默认文件系统类型为xfs

     

    最后我们看到逻辑卷分区已经动态扩容到了11G

     

    至此一次CentOS7 根分区扩容顺利完成

    若为非商业用途,转发请注明出处。

  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/lwf-blog/p/7464477.html
Copyright © 2011-2022 走看看