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 * ../
暂无评论内容