背景
-bash-4.2$?df?-ThFilesystem?????Type??????Size??Used?Avail?Use%?Mounted?on/dev/vda1??????ext4???????30G????30G?0?????????100%?/devtmpfs???????devtmpfs??489M?????0??489M???0%?/devtmpfs??????????tmpfs?????497M?????0??497M???0%?/dev/shmtmpfs??????????tmpfs?????497M???50M??447M??11%?/runtmpfs??????????tmpfs?????497M?????0??497M???0%?/sys/fs/cgroup
2.執(zhí)行 du 命令查看各個目錄的磁盤占用情況,把各個目錄文件的大小相加,發(fā)現并沒有占滿磁盤,有10多G空間莫名失蹤。
-bash-4.2$?du?-h?--max-depth=1?/home16M????/home/logs11G????/home/serverdog11G????/home
-bash-4.2#?lsof?|?grep?deletemysqld?????2470?????????mysql????4u??????REG??????????????253,1???????????0?????523577?/var/tmp/ibfTeQFn?(deleted)mysqld?????2470?????????mysql????5u??????REG??????????????253,1???????????0?????523579?/var/tmp/ibaHcIdW?(deleted)mysqld?????2470?????????mysql????6u??????REG??????????????253,1???????????0?????523581?/var/tmp/ibLjiALu?(deleted)mysqld?????2470?????????mysql????7u??????REG??????????????253,1???????????0?????523585?/var/tmp/ibCFnzTB?(deleted)mysqld?????2470?????????mysql???11u??????REG??????????????253,1???????????0?????523587?/var/tmp/ibCjuqva?(deleted)
-
什么是虛擬文件系統(VFS:virtual filesystem)?
-
什么是通用文件模型?
-
超級塊對象(superblock object)
-
索引節(jié)點對象(inode object)
-
文件對象(file object)
-
目錄項對象(dentry object)
-
文件的概念
-
文件的表達
-
內存表達
-
磁盤表達
-
目錄樹的構建
-
軟鏈接 vs 硬鏈接
-
文件 & 磁盤管理
-
索引節(jié)點狀態(tài)
-
文件 & 進程管理
-
操作:
打開&刪除
虛擬文件系統(virtual filesystem)
通用文件模型
超級塊對象(superblock object)
內存:文件系統安裝時創(chuàng)建,存放文件系統的有關信息
磁盤:對應于存放在磁盤上的文件系統控制塊(filesystem control block)
索引節(jié)點對象(inode object)
內存:訪問時創(chuàng)建,存放關于具體文件的一般信息(inode 結構)
磁盤:對應于存放在磁盤上的文件控制塊(file control block)
每個索引節(jié)點對象都有一個索引節(jié)點號,唯一地標識文件系統的文件
文件對象(file object)
內存:打開文件時創(chuàng)建,存放 打開文件 與進程之間進行交互的有關信息(file 結構)
打開文件信息,僅當進程訪問文件期間存在于內核內存中。
目錄項對象(dentry object)
內存:目錄項一旦被讀入內存,VFS就會將其轉換成dentry 結構的目錄項對象
磁盤:特定文件系統以特定的方式存儲在磁盤上
存放目錄項(即,文件名稱)與對應文件進行鏈接的有關信息
目錄樹
綜合來說,Linux 的 根文件系統(system’s root filessystem) 是內核啟動mount的第一個文件系統。內核代碼映像文件保存在根文件系統中,而系統引導啟動程序會在根文件系統掛載之后,從中把一些基本的初始化腳本和服務等加載到內存中去運行(文件系統和內核是完全獨立的兩個部分)。其他文件系統,則后續(xù)通過腳本或命令作為子文件系統安裝在已安裝文件系統的目錄上,最終形成整個目錄樹。
start_kernel? vfs_caches_init? mnt_init? init_rootfs?????//?注冊rootfs文件系統 init_mount_tree?//?掛載rootfs文件系統? …? rest_init? kernel_thread(kernel_init,?NULL,?CLONE_FS);
軟鏈接 vs 硬鏈接
文件 & 進程管理
*??"in_use"?-?valid?inode,?i_count?>?0,?i_nlink?>?0*??"dirty"??-?as?"in_use"?but?also?dirty*??"unused"?-?valid?inode,?i_count?=?0
文件 & 磁盤管理
文件與磁盤管理聯系最緊密的操作,莫過于touch和rm操作,而尤以后者最為關鍵。通過strace(或 dtruss),查看 rm 的實際的系統調用
#?dtruss?rm?tmp...geteuid(0x0,?0x0,?0x0)?????????=?0?0ioctl(0x0,?0x4004667A,?0x7FFEE06F09C4)?????????=?0?0lstat64("tmp 国产精品久久影院| 久久久久亚洲AV成人网人人网站 | 久久久久亚洲爆乳少妇无| 日本久久久久久中文字幕| 久久国产成人亚洲精品影院| 人人狠狠综合久久88成人| 久久精品国产69国产精品亚洲| 亚洲国产精品热久久| | 久久噜噜久久久精品66| 99久久这里只精品国产免费| 久久精品国产亚洲AV无码麻豆 | 久久www免费人成看国产片| 久久久久亚洲AV无码专区首JN | 狠狠久久亚洲欧美专区| 精品伊人久久久| 国内精品久久久久久麻豆| 香蕉久久一区二区不卡无毒影院| 国产精品九九久久免费视频 | av午夜福利一片免费看久久| 国内精品久久久久久久影视麻豆| 99久久夜色精品国产网站| 久久se精品一区二区| 亚洲精品无码久久久久久| 久久久久人妻精品一区三寸蜜桃 | 国产69精品久久久久9999| 久久婷婷五月综合国产尤物app | 久久精品国产亚洲AV不卡| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久成人国产精品一区二区| 久久91精品久久91综合| 久久精品国产亚洲av日韩| 久久精品综合网| 亚洲?V乱码久久精品蜜桃| 精品久久人人做人人爽综合| 99热热久久这里只有精品68| 久久精品国产99国产精品澳门| 国产精品18久久久久久vr| 欧美777精品久久久久网| 色综合久久综精品| 久久国产免费直播|