[Linux] 在 CentOS 7 上建立 RAM disk

[Linux] 在 CentOS 7 上建立 RAM disk

最近因為專案的需求,要在 CentOS 裡面建立 RAM disk~

查了一下,發現蠻簡單的,

Create a RAM disk in Linux 這邊就有完整的說明可以參考,就來照做一次吧~

(可以另外參考 THE DIFFERENCE BETWEEN A TMPFS AND RAMFS RAM DISK 這篇)

 

1. 建立要掛載 RAM disk 的目錄

我這邊也是照著教學文章上的,在 /mnt 下面建立了一個 ramdisk 的目錄:

sudo mkdir /mnt/ramdisk

 

2. 用 free 指令查看可用的記憶體

用 free -g 可以看到剩下的 GB 數,或是用 free -m 可以看到 MB 數:

testuser@localhost ~ $ free -g
total       used       free     shared    buffers     cached
Mem:             7          1          6          0          0          4
-/+ buffers/cache:          0          7
Swap:            3          0          3

 

像我現在還有 6GB 的剩餘記憶體,可以拿其中的 4GB 來作 RAM disk~

 

3. 用 mount 指令暫時性的掛載 RAM disk

可以先用 mount 指令測試一下掛載 RAM disk 能否成功:

sudo mount -t tmpfs -o size=4G tmpfs /mnt/ramdisk

 

掛載成功後,用 mount 指令就可以看到被掛載上去的 RAM disk 目錄了:

testuser@localhost ~ $ mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /mnt/ramdisk type tmpfs (rw,relatime,seclabel,size=4194304k)

 

用 df -h 也可以看到這個 RAM disk 目前剩餘的空間:

testuser@localhost ~ $ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   18G   33G  36% /
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    3.9G   17M  3.9G   1% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-home   96G   21G   76G  22% /home
/dev/sda1                497M  124M  373M  25% /boot
tmpfs                    4.0G     0  4.0G   0% /mnt/ramdisk

 

4. 修改 /etc/fstab 永久性的掛載 RAM disk

上面的 mount 指令可以暫時性的掛載 RAM disk,

不過如果要永久有效的話,還是得改 /etc/fstab 這個檔案…

在最下面加入 tmpfs 那一行:

#
# /etc/fstab
# Created by anaconda on Wed Oct  8 07:56:21 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /               xfs     defaults            1 1
/dev/mapper/centos-home /home           xfs     defaults            1 2
/dev/mapper/centos-swap swap            swap    defaults            0 0
tmpfs                   /mnt/ramdisk    tmpfs   rw,relatime,size=4G 0 0

 

修改好後,執行 sudo mount -a 就可以把 /etc/fstab 裡面列的磁碟都掛載上去,

自然也包含 RAM disk 了~(重開機也可以)

sudo mount -a

 

這邊要注意的是 tmpfs “有可能”會用到 SWAP 的空間,因此不保證一定都在記憶體裡面…

用 ramfs 的話雖然確保都在記憶體,但會用記憶體用完爆掉的問題…

因此使用上還是要小心囉~

 

(本頁面已被瀏覽過 980 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料