linux 盘符 dm-0是什么意思

linux 盘符 dm-0是什么意思,第1张

dm是device mapper(设备映射)的意思

最常见的一种情况,就是如果设备用LUKS加密,那么解密之后的映射设备就是

dm-X,比如dm-0、dm-1什么的

今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了。把日志文件都删掉了,可硬盘空间依旧满。于是df -h查看了下各个挂载点的状况(如下图)。/dev/sda3占用了100%,那么我们du -s -h ./*看下目录的占用情况(如下图)。 linux磁盘挂载点目录占用情况(图) 挂载点下的目录之和远小于4.5G,那么是什么占用了硬盘呢? 以下为该问题的解答: 在apache/tomcat服务在运行状态下,清空了运行服务的日志,从而导致了/dev/sda3 满了的问题。一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的。 原理分析: 1. 当前access.log日志正在被apache进程占用。 2. 通过rm命令删除access.log,实际只删除了文件名(该日志文件应用记数不为0,因此空间不会被释放)。 3. 通过rm命令删除了access.log后,apache依然写日志到access.log中,当开启apache进程时,已经通过access.log定位到该文件的inode了,就是说再写日志是不通过access.log,因此即使删除了access.log,apache依然写日志到access.log所在的inode节点,所以导致硬盘空间增加。 4. 因为删除了access.log,所以我们就找不到该文件了,du也查不到,就会出现硬盘满了但看不到究竟是哪些文件占用的。 (写的不甚详细,不明白的大家再google下。) 解决方法: 重启该日志文件的相关服务或程序,如:为apache日志文件则重启apache(如下图,重启后才硬盘空间占用正常)。

1:一个分区可以挂载到多个目录,但一个目录只能挂载一个分区

2:当一个分区挂载到一个已经存在的目录上,这个目录原先的文件将不可见,但是如果卸载掉挂载,那么这个目录原先的文件又变为可用(注意这个)

3:当一个分区挂载到一个目录,在这个目录下的文件,物理存储在这个分区,但是访问路径是这个目录路径,和分区没有逻辑上的关系。你访问文件是通过目录,不是通过分区,目录是逻辑概念,分区是物理概念。

4:每个文件在系统内部都有一个file nodes结构体,也叫文件节点,里面有这个文件的访问路径。linux的文件系统节点数量是有上限的。

举个例子简单的说,dm0挂载到/home,挂载到/data这2个目录下,在/home下有个a文件,/data下有个b文件,a和b只是都存在dm0设备上。你在/data下访问b文件,其实你访问的是/data/b这个文件节点。那为什么在/home/下看不到b文件呢,因为根本没有/home/b这个文件节点,除非你做个映射。

你的理解错误的认为dm0也是一种目录,里面的文件都是共享可见的,这是不对的,那变成映射了,不是挂载。dm0是设备文件,不是逻辑目录。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8509025.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存