Linux 磁碟掛載和swap空間管理

掛載:把指定的設備和根下面的某個文件夾建立關聯

卸載:解除兩者關係的過程

掛載文件系統:mount

格式:mount device mountpoint --- mount 設備名 掛載點

mountpoint:掛載點目錄必須事先存在,建議使用空目錄

選項:

  • -t fstype:指定文件系統類型,比如ext4

  • -r readonly,只讀掛載

  • -w read and write, 讀寫掛載,此為默認設置,可省略

  • -n 不更新/etc/mtab,mount不可見

  • -a 自動掛載所有支援自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)

  • -o options:(掛載文件系統的選項),多個選項使用逗號分隔

# async   非同步模式,記憶體更改時,寫入快取區buffer,過一段時間再寫到磁碟中,效率高,但不安全
# sync    同步模式,記憶體更改時,同時寫磁碟,安全,但效率低下
# remount 重新掛載(相當於umount後再mount)
# ro/rw   只讀、讀寫
# defaults(默認掛載) 相當於rw, suid, dev, exec, auto, nouser, async

掛載規則:

  • 一個掛載點同一時間只能掛載一個設備,如果掛載了多個設備就只顯示最後一個設備

  • 一個設備可以掛載到多個掛載點

  • 掛載點通常是空的目錄文件

查看掛載的設備:

#通過查看/etc/mtab文件顯示當前已掛載的所有設備
mount
#查看內核追蹤到的已掛載的所有設備
cat /proc/mounts

查看掛載點情況

findmnt   MOUNT_POINT|device
#可以用來判斷某個文件夾是不是掛載點,如果是會顯示對應的數據資訊

查看正在訪問指定文件系統的進程

lsof MOUNT_POINT ---也可以用來查看某個掛載點是否被別人使用
fuser -v MOUNT_POINT -- 查看是誰在使用

終止所有在正訪問指定的文件系統的進程

fuser -km MOUNT_POINT

持久掛載(重啟電腦還存在)

將掛載保存到 /etc/fstab 中可以下次開機時,自動啟用掛載
使用man 5 fstab 查看/etc/fstab配置文件格式

配置文件格式:

要掛載的文件系統 掛載點 文件系統類型 掛載屬性 備份頻率 sck檢查的文件系統的順序

  • 要掛載的文件系統:可以用設備名、uuid、卷標
    查看uuid: blkid

  • 掛載點:必須是事先存在的目錄

  • 掛載屬性:defaults ,acl,bind

  • 備份頻率(一般用不上):0:不做備份 1:每天轉儲 2:每隔一天轉儲

  • 文件系統檢查的次序:開機檢測文件系統的過程。其中允許的數字是0 1 2
    0:不自檢 ,1:首先自檢;一般只有rootfs才用 2:非rootfs使用

卸載文件系統:umount

umount 設備名或掛載點

處理交換文件和分區

swap:是一種特殊的文件系統,叫交換文件系統。作用是緩解記憶體不足的情況。拿硬碟的分區來模擬記憶體,把記憶體中暫時不用的數據導入swap硬碟分區中,給記憶體騰出空間。利用硬碟來模擬記憶體.
副作用:硬碟速度沒有記憶體的速度快,所以會降低速度。

swap空間分配原則:

記憶體 swap
<=2G swap就是記憶體的兩倍(4G)
2-8G swap等於記憶體大小(2-8G)
8-64G swap是記憶體的0.5倍(4-32G)
>64G swap選擇4G左右

交換空間swap實現過程:

1. 創建交換分區或者文件 -- fdisk

2. 使用mkswap寫入特殊簽名 -- maswap 分區

3. 在/etc/fstab文件中添加適當的條目 --- xxx
# 文件系統沒有掛掛載點就寫none 因為swap是用來模擬記憶體的
4. 使用swapon -a 激活交換空間

啟用swap分區:

swapon  [OPTION]... [DEVICE]

選項:

-a: 啟用所有的交換分區
-s: 顯示交換區的使用狀況

禁用swap分區:

swapoff  [OPTION]... [DEVICE]

SWAP的優先順序

有多個二swap分區的時候,指定優先使用誰。

swapon -s 可以查看swap的優先順序

可以指定swap分區0到32767的優先順序,值越大優先順序越高

#修改swap的優先順序:
例如:UUID=xxxxswap   swap    pri=100      0 0
#更改完成以後禁用再重新啟用就生效了

用一個文件來作為swap

#創建一個指定大小的文件
dd if=/dev/null of=filename bs=大小 count=1 

#因為這個文件後面要用來放記憶體中的資訊,所以為了安全要更改許可權
chmod a= filename #除了root誰也看不到

#創建文件系統
mkswap filename

#掛載  /etc/fstab
file_name(不能寫uuid,uuid是針對設備來說的)  none swap defaults 0  0

#啟用swap
swapon file_name

swap的使用策略

/proc/sys/vm/swappiness 的值決定了當記憶體佔用達到一定的百分比時,會啟用swap分區的空間

例如/proc/sys/vm/swappiness這個值是30,則記憶體在使用到100-30=70%的時候,就開始出現有交換分區的使用

/proc/sys/vm/swappiness值為0不會禁止交換分區的使用,是最大限度地降低了使用swap的可能性

Tags: