Linux系统Linux 根目录爆满 解决方法,/dev/mapper目录浅谈

Linux系统Linux 根目录爆满 解决方法,/dev/mapper目录浅谈,

Linux系统的一般的文件系统名称类似于/dev/sda1或/dev/hda1,但是今天在进行系统维护的时候,利用df -h 命令敲出了/dev/mapper/VolGroup-lv_root和/dev/mapper/Volume-lv_home两个文件系统名,不解,在网上查找资料后,在此浅谈/dev/mapper目录。

一、理解Linux系统的Device mapper机制

Device mapper是Linux2.6内核中提供的一种从逻辑设备到物理设备的映射机制,在该机制下,用户能够很方便的根据自己的需要实现对存储资源的管理。在具体管理时需要用到Linux下的逻辑卷管理器,当前比较流行的逻辑卷管理器有 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等。

想要详细了解Device mapper机制,可参考博文 http://blog.sina.com.cn/s/blog_6237dcca0100hnwb.html ,此处不再赘述。

二、/dev/mapper目录的解释

为了方便叙述,假设一台服务器有三块硬盘分别为a,b,c,每块硬盘的容量为1T。在安装Linux的时候,先根据系统及自身的需要建立基本的分区,假设对硬盘a进行了分区,分出去了0.1T的空间挂载在/boot目录下,其他硬盘未进行分区。系统利用Device mapper机制建立了一个卷组(volume group,VG),你可以把VG当做一个资源池来看待,最后在VG上面再创建逻辑卷(logical volume,LV)。若要将硬盘a的剩余空间、硬盘b和硬盘c都加入到VG中,则硬盘a的剩余空间首先会被系统建立为一个物理卷(physical volume,PV),并且这个物理卷的大小就是0.9T,之后硬盘a的剩余的空间、硬盘b和硬盘c以PV的身份加入到VG这个资源池中,然后你需要多大的空间,就可以从VG中划出多大的空间(当然最大不能超过VG的容量)。比如此时池中的空间就是2.9T,此时你就可以建立一个1T以上的空间出来,而不像以前最大的容量空间只能为1T。

/dev/mapper/Volume-lv_root的意思是说你有一个VG (volume group卷组)叫作Volume, 这个Volume里面有一个LV叫作lv_root。其实这个/dev/mapper/Volume-lv_root文件是一个连接文件,是连接到/dev/dm-0的,你可以用命令ll /dev/mapper/Volume-lv_root进行查看。

其实在系统里/dev/Volume/lv_root 和 /dev/mapper/Volume-lv_root以及/dev/dm-0都是一个东西,都可当作一个分区来对待。

若要了解硬盘的具体情况,可通过fdisk或者pvdisplay命令进行查看。

若你想要重装系统到/dev/sda下,且安装时有些东西不想被格式化想转移到/dev/sdb下,但此时/dev/sda和/dev/sdb被放到VG中了,那该如何解决该问题呢?这种情况下,由于此时根本没办法确定数据在哪一个硬盘上,因为这两个硬盘就如同加到池里,被Device mapper管理,所以解决方案就是再建个逻辑卷出来,把数据移到新的卷里,这样你就可以重装系统时只删掉之前分区里的东西,而新的卷里的东西不动,就不会丢失了。

Linux系统Linux 根目录爆满 解决方法

 

一、使用df -h命令查看,发现/根目录的剩余空间为0。总共系统盘容量才20G。

 

文件系统                   容量  已用  可用 已用% 挂载点

/dev/mapper/centos-root    20G   20G  20k   100% /

devtmpfs                   7.7G     0 7.7G    0% /dev

tmpfs                      7.7G  168K 7.7G    1% /dev/shm

tmpfs                      7.7G  1.4M 7.7G    1% /run

tmpfs                      7.7G     0 7.7G    0% /sys/fs/cgroup

/dev/sdb1                  1.8T 1.4T  398G   78% /u01

/dev/sda1                  494M  208M 287M   42% /boot

tmpfs                      1.6G  8.0K 1.6G    1% /run/user/42

tmpfs                      1.6G     0 1.6G    0% /run/user/1001

tmpfs                      1.6G     0  1.6G    0% /run/user/1007

tmpfs                      1.6G   28K 1.6G    1% /run/user/0

tmpfs                      1.6G     0 1.6G    0% /run/user/1006

tmpfs                      1.6G     0 1.6G    0% /run/user/1012

/dev/mapper/centos-home  200G 1.4G  199G    1% /home

 

二、使用du -h -x --max-depth=1  查看哪个目录占用过高,对于过高目录中的内容适当删减腾出一些空间

0       ./proc

132K         ./root

2.2G ./usr

12K  ./mnt

16K  ./lost+found

4.0K ./media

4.0K ./srv

27M ./lib64

763M        ./var

16.6G       ./opt

317M        ./lib

2.0K ./boot

0       ./sys

0       ./net

56M ./tmp

33M ./etc

0       ./selinux

0       ./misc

7.7M         ./bin

64K  ./home

17M ./sbin

0       ./dev

20G  .

 

可以看出opt目录占用过大,可以在opt中清理一些文件释放一些空间。

 

三、CentOS 7 调整 home分区扩大 root分区

总体过程:

把/home内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/root文件系统,新建/home ,恢复/home内容

 

1.查看分区

df -h

2.备份home分区文件

tar cvf /tmp/home.tar/home

3.卸载/home,如果无法卸载,先终止使用/home文件系统的进程

 

fuser -km /home/

umount /home

4.删除/home所在的lv

lvremove/dev/mapper/centos-home

5.扩展/root所在的lv,增加800G

lvextend -L +800G/dev/mapper/centos-root

6.扩展/root文件系统

xfs_growfs/dev/mapper/centos-root

7.重新创建home lv

lvcreate -L 73G -n/dev/mapper/centos-home

8. 创建文件系统

mkfs.xfs  /dev/mapper/centos-home

9.挂载home

mount/dev/mapper/centos-home

10.home文件恢复

tar xvf /tmp/home.tar -C/home/

cd /home/home/

mv * ../

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容