centos7 - tmpfs文件系統


疑問: 

系統安裝完成后,查看分區情況,發現多了很多tmpfs文件系統掛載的目錄,並占用了"/" 的分配空間

-- 由於之前用習慣了阿里雲的ECS服務器,簡單明了的把所有空間都分配給了" / " , 所以特別在意。



tmpfs的基本認識:

  • 什么是tmpfs
    • tmpfs是ramfs衍生品
    • ramfs是基於RAM的文件系統,不能使用swap空間;tmpfs可以動態釋放空間、可以使用swap空間
    • ramfs不能控制使用內存的大小容易使內存爆掉;而tmpfs可以在mount的時候指定size來控制使用內存的大小,不會導致系統崩潰
    • tmpfs是存儲在VM的文件系統,VM是linux的虛擬內存,由RM(物理內存)和swap組成
    • RM的讀寫性能優於swap,swap是物理磁盤虛擬出來的內存空間
    • 具體tmpfs使用的是RM還是swap是不可控的,這是由linux內核的vm子系統管理的
  • 內核支持
    •  編譯內核時,啟用“Virtual memory file system support”就可以使用tmpfs,linux kernel從2.4以后都開始支持tmpfs。目前主流的linux系統默認已啟用tmpfs,如Redhat。
  • tmpfs的優點 
    • 使用方便:因為tmpfs是建立在VM上的,而不是物理磁盤上,所以不需要格式化就可以使用,所以不用嘗試mkfs.tmpfs了:沒有這條命令
    • 動態調節大小:tmpfs的大小是動態的,用多少才分配多少,刪除文件則會釋放相應的VM空間
    • 快:tmpfs大部分時間是駐留在物理內存中,這使得其讀寫速度超快
  • tmpfs的缺點
    • 不可持久保存:tmpfs的先天優勢變成了他的先天劣勢:內存的特性導致位於tmpfs上的數據斷電會丟失
    • 成本高:相比較硬盤的價格來說,內存無疑還是很昂貴的,所以用tmpfs的目錄不要放太大的東西
  • tmpfs的應用場景
    • 天生就是為臨時目錄而生的
    • 適合存儲socket、session等,對於高io的臨時數據也可以選擇進行存儲,
    • 對於高io並且還需要持久化到磁盤的,需要通過其他手段,tmpfs可以提高linux系統的性能。

針對linux為什么默認將這些目錄掛載tmpfs進行分析:

  • /dev
    /dev這個目錄對所有的用戶都十分重要。
    因為在這個目錄中包含了所有Linux系統中使用的外部設備。但是這里並不是放的外部設備的驅動程序。
    它實際上是一個訪問這些外部設備的端口。我們可以非常方便地去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。
  • /dev/shm
    /dev/shm/是一個設備文件,它使用就是tmpfs文件系統
    (注意:在CentOS和RedHat下,/dev/shm目錄是一個鏈接,指向/run/shm目錄,在Ubuntu系統下tmpfs文件系統對應的是/run/shm目錄,可以使用df命令查看)
    
    但后期的centos版本中 /dev/shm 就是一個被掛載的目錄
  • /run
    它被識別為 “tmpfs”(臨時文件系統),因此我們知道 /run 中的文件和目錄沒有存儲在磁盤上,而只存儲在內存中。
    它們表示保存在內存(或基於磁盤的交換空間)中的數據,它看起來像是一個已掛載的文件系統,這個可以使其更易於訪問和管理。
  • /sys/fs/cgroup
    Cgroup是將任意進程進行分組化管理的Linux內核功能
    cgroup本身提供將進程進行分組化管理的功能和接口的基礎結構
  • /run/user/0
    我們看到的/run/user/下的每個目錄與當前登錄的用戶或顯示管理器 gdm 相關。數字代表他們的 UID。
    /run/user/0 表示root用戶
    /run/user/1000 表示某個普通用戶

實戰 tmpfs 掛載:

1、掛載某個已存在的目錄,例如 /tmp
設想:如果直接掛載,會將/tmp目錄下原有的文件覆蓋掉。
mount -t tmpfs -o size=20m tmpfs /tmp
測試:在/ets/fstab 文件內直接進行配置掛載,重啟后生效
測試:如何卸載 umount 已經掛載的/tmp
方法一: 
如果沒有在/etc/fstab內配置,則直接 umount /tmp  即可。

方法二:
如果在/etc/fstab內配置,則刪除配置,然后mount -a (--測試/etc/fstab無錯誤),最后重啟系統  即可。








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM