/dev/mapper/VolGroup-lv_root爆满两种可能与及root和home分区扩容

2024-03-11 10:08

本文主要是介绍/dev/mapper/VolGroup-lv_root爆满两种可能与及root和home分区扩容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(1)root爆满分析和根分区扩容

/dev/mapper/VolGroup-lv_root是一个逻辑卷,通过df –h命令你可以发现它与“/”根分区相关联,你也可以理解为它就是根分区。

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root18G  1.2G   16G   7% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot

分区爆满的情况有两种可能:inode满了和block满了。
第一,inode满了
比如:如果你的定时任务cron中没有做标准输出与标准错误输出重定向,恰好又没有启动邮件服务,那么邮件队列目录/var/spool/clientmquene,就会出现大量的日志文件(小文件),消耗磁盘分区的inode,导致磁盘爆满。clientmquene目录只有安装了sendmail服务,才会有,是sendmail邮件的临时队列。centos5.8默认就会安装sendmail,centos6.6默认没有sendmail,但是又postfix.

[root@localhost ~]# df –i 查看分区inode使用情况
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root1152816   38319 1114497    4% /
tmpfs                 126568       1  126567    1% /dev/shm
/dev/sda1             128016      38  127978    1% /boot

处理方法:
首先就是清理/var/spool/clientmquene目录,把它清空;但这仅是治标不治本,想要一劳永逸,还得在定时任务cron中做标准重定向,并且建议增加定期清理服务器日志文件的定时任务。

vim /var/spool/cron/root    
00 00 * * * /bin/sh /server/scripts/tar_rsync_del.sh >/dev/null 2>&1

第二,block满了
inode主要用来存放文件的属性,而block存放的则是数据内容;就是我们实质要保存的东西。block满了,一般都是大文件多导致,很容易解决,找出来,确认是否是重要文件,不是就删除,不然就得给分区扩容。
可以用df和du来定位,是哪个分区的哪个目录占用磁盘容量大。df –h定位分区,du –sh 查看分区下,每个目录所占容量大小。

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root18G  1.2G   16G   7% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot
/dev/sdb1             8.9G  149M  8.3G   2% /home
[root@localhost ~]# du -sh /*
6.1M    /bin
22M     /boot
232K    /dev
24M     /etc
20K     /home
134M    /lib
21M     /lib64

当然,也可以直接find找出大于100M以上的文件,具体多大,自己决定。
find / -type f -size +100M –exec ls –lh \;
如果确认是垃圾文件或者不重要的文件,已有备份,可以考虑删除

find / -type f -size +100M –exec rm {} \;
或find / -type f –size +100M |xargs rm –f

对于find命令的使用,后面再专门写一篇详解,这个命令在工作中的作用非常大,很有用的一个工具。
根分区扩容
如果使用默认安装的分区,可能给VolGroup-lv_home,即/home分区分配大量的空间,而home分区更多时候并不会使用很大的空间,所以浪费了很多磁盘资源,因此可以把home分区的容量割给根分区;另一中扩容方法就是直接增加磁盘,然把新增的磁盘空间分配给VolGroup-lv_root。
安全起见,在扩容前,建议对数据进行备份。
目标:将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root

1.首先查看磁盘使用情况

[[root@localhost ~]# df -h
文件系统 容量  已用 可用  已用% 挂载点
Filesystem             Size  Used Avail Use% Mounted on  
/dev/mapper/VolGroup-lv_root 154G  7.9G  139G   6% /
tmpfs                 1.9G  100K  1.9G   1% /dev/shm
/dev/sda1             485M   69M  391M  15% /boot
/dev/mapper/VolGroup-lv_home 299G  984M  283G   1% /home

2、卸载/home

[root@localhost ~]# umount /home
umount /home 如果提示无法卸载[root@localhost ~]# umount –lf /home 强制卸载
-f:强制卸载
-l:清除与文件系统相关的引用

3、调整分区大小

[root@localhost ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 20G
如果提示运行“e2fsck -f /dev/mapper/VolGroup-lv_home”,则执行相关命令: 
[root@localhost ~]# e2fsck -f /dev/mapper/VolGroup-lv_home 然后重新执行命令:
[root@localhost ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 20G

注:resize2fs 为重新设定磁盘大小,只是重新指定一下大小,并不对结果有影响,需要下面lvreduce的配合

4、挂载上/home,查看磁盘使用情况

[root@localhost ~]# mount /home
[root@localhost ~]# df -h

5、设置空闲空间
使用lvreduce指令用于减少LVM逻辑卷占用的空间大小。可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。记得输入 “y”
[root@localhost ~]# lvreduce -L 20G /dev/mapper/VolGroup-lv_home
注:lvreduce -L 20G的意思为设置当前文件系统为20G,如果lvreduce -l 20G是指从当前文件系统上减少20G
使用lvreduce减小逻辑卷的大小。注意:减小后的大小不能小于文件的大小,否则会丢失数据。

可以使用vgdisplay命令等查看一下可以操作的大小。也可以是用fdisk -l命令查看详细信息。
[root@localhost ~]# vgdisplay
注:vgdisplay为显示LVM卷组的元数据信息

6.把闲置空间挂在到根目录下

[root@localhost ~]# lvextend -L +283G /dev/mapper/VolGroup-lv_root
注:lvextend -L +283G为在文件系统上增加283G
[root@localhost ~]# resize2fs -p /dev/mapper/VolGroup-lv_root

7、检查调整结果
[root@localhost ~]# df -h

增加新磁盘对VolGroup-lv_root进行扩容
前面提到过/dev/mapper/VolGroup-lv_root是一个逻辑卷,既然是逻辑卷那么就可以给它的卷组(资源池)进行扩容。

[root@localhost ~]# df -h
文件系统              容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root18G  1.2G   16G   7% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot
/dev/sdb1             8.9G  149M  8.3G   2% /home

增加一块10G的磁盘,并对磁盘进行分区格式化,但不要挂载。

fdisk /dev/sdb 分区
yum -y install parted 安装part工具
partprobe /dev/sdb 告知内核分区表的更新
mkfs.ext4 /dev/sdb1 格式化分区

创建物理卷

[root@localhost ~]# pvcreate /dev/sdb1 如果分区挂载了则不可以Can't open /dev/sdb1 exclusively.  Mounted filesystem?
[root@localhost ~]# umount /home
[root@localhost ~]# pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created
查看卷组名
[root@localhost ~]# vgscan   Reading all physical volumes.  This may take a while...Found volume group "VolGroup" using metadata type lvm2
把新增的物理卷加入卷组
[root@localhost ~]# vgextend VolGroup /dev/sdb1Volume group "VolGroup" successfully extended

扩展VolGroup-lv_root逻辑卷 ,增加8G

[root@localhost ~]# lvextend -L +8G /dev/mapper/VolGroup-lv_root   Extending logical volume lv_root to 25.57 GiBLogical volume lv_root successfully resized
[root@localhost ~]# df -h
文件系统              容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root18G  1.2G   16G   7% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot

接着用 dh –f,发现实际容量并没有变化,因为我们的系统还不认识刚刚添加进来的磁盘的文件系统,所以还需要对文件系统进行扩容。

[root@localhost ~]# resize2fs -f /dev/mapper/VolGroup-lv_root 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 6703104 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 6703104 blocks long.
[root@localhost ~]# df -h
文件系统              容量  已用  可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root26G  1.2G   23G   5% /
tmpfs                 495M     0  495M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot

根分区扩容思想:利用LVM管理,使用卷组(资源池)、物理卷、逻辑卷之间的关系进行扩容;创建物理卷,加入卷组,通过卷组给逻辑卷进行扩容,逻辑卷扩容后对文件系统扩容。

(2)对虚拟机中/dev/mapper/VolGroup-lv_home进行磁盘扩容

 发现/dev/mapper/VolGroup-lv_home磁盘快占用完了

关闭虚拟机,添加磁盘250GB,开机

fdisk -l  #查看所有添加的磁盘

发现了刚添加的磁盘sdb

fdisk /dev/sdb    #对sdb进行分区

n   #新建分区

p   #主分区

1   #第一个主分区

回车   #不填写数值默认1柱面开始分区,大小全部分配

t    #修改系统类型

8e   #系统类型lvm

partprobe   #刷新分区

w #保存

fdisk -l

查看到sdb1

mkfs -t ext4 /dev/sdb1  #格式化

pvcreate /dev/sdb1   #创建pv卷  查看pvdisplay

vgextend VolGroup /dev/sdb1     #vg扩容  查看vgdisplay

lvextend -L +100G /dev/mapper/VolGroup-lv_home   #   给/dev/mapper/VolGroup-lv_home进行扩容100GB    查看lvdisplay

resize2fs  /dev/mapper/VolGroup-lv_home   #生效

 

查看lvdisplay可以看到还剩余多少可分配,如果继续给/dev/mapper/VolGroup-lv_home分配磁盘执行上两步操作,遇到报错再查看lvdisplay  Free  PE / Size 有一个可分配的数值,按提示的数值分配即可。

这篇关于/dev/mapper/VolGroup-lv_root爆满两种可能与及root和home分区扩容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/797500

相关文章

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

为什么要做Redis分区和分片

Redis分区(Partitioning)和分片(Sharding)是将数据分布在多个Redis实例或多个节点上的做法。这种技术用于提高性能、可扩展性和可用性。以下是执行Redis分区和分片的主要原因: 1. **提高吞吐量**:    - 通过将数据分散到多个节点,可以并行处理更多的操作,从而提高整体吞吐量。 2. **内存限制**:    - 单个Redis实例的内存是有限的。分区允许数据

BD错误集锦8——在集成Spring MVC + MyBtis编写mapper文件时需要注意格式 You have an error in your SQL syntax

报错的文件 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yuan.dao.YuanUserDao"><!

spring boot 使用profile来分区配置

很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置 spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在ap

Offending ECDSA key in /home/lierjun/.ssh/known_hosts:1

问题描述: 使用终端进行远程连接linux 连接格式:ssh root@ip 结果发出警告信息,信息提示: Offending ECDSA key in /home/user/.ssh/known_hosts:1 解决办法: cd /home/user/.ssh cat known_hosts sed -i '1d' known_hosts 然后再次进行链接可以了

Android中屏蔽 电源键长按、Home键、Home长按

“电源键长按”(globalscreen) “Home键”(homekey) “Home长按”(recentapps) 我们可以使用广播来实现,如: [java]  view plain copy print ? package com.jumpinus.test; import android.app.Activity; import android.content.Broadc

三十八篇:架构大师之路:探索软件设计的无限可能

架构大师之路:探索软件设计的无限可能 1. 引言:架构的艺术与科学 在软件工程的广阔天地中,系统架构不仅是设计的骨架,更是灵魂所在。它如同建筑师手中的蓝图,决定了系统的结构、性能、可维护性以及未来的扩展性。本节将深入探讨软件架构的定义、其在系统设计中的核心作用,以及不同架构风格对系统特性的影响。 软件架构的定义及其在系统设计中的核心作用 软件架构,简而言之,是指软件系统的基本组织结构,

CHKDSK 无法供 RAW 驱动器使用----分区变成RAW格式

方法一: 花了一天时间后终于找到可恢复文件的工具: 用DiskGenius恢复分区及文件的方法 http://www.diskgenius.cn/function/recovery.asp 方法一对应vsdn

Java环境变量配置中有关JAVA_HOME,path,Classpath含义的讲解

一:Path变量 Path变量是操作系统的,用以找寻相关命令的。例如ping这个命令,你能在控制行里打ping 127.0.0.1而有程序执行并正确返回结果,是因为Path变量包含C:\Windows\System32。你可以在Path中把C:\Windows\System32去掉,再使用ping命令,就会提示找不到ping命令。 这就像你在你的办公桌上工作,需要用到各种工具,如钢笔,

利用一个正则表达式的一个例子来讲解Java中的两种for循环。

package 正则表达式;public class Rudolph {public static void main(String[] args) {// TODO Auto-generated method stubString[] str = new String[]{"Rudolph","[rR]udolph","[rR][aeiou][a-z]ol.*","R.*"};for(Strin