在 Linux 中建立記憶體硬碟

程式技術
sharkHead

記憶體硬碟 (RAM Disk) 相較於傳統機械硬碟或是固態硬碟,可以提供更快的讀寫速度。即使是已經過時很久的 DDR3 記憶體,也能提供 2000 MB/s 以上的讀寫速度

但擁有飛快讀寫速度的代價,就是資料無法永久保存,只要一重新開機,資料就會消失。乍聽之下是個很難接受的缺點,畢竟硬碟的目的就是要拿來存放永久性的資料,但是在某些情況下,這個缺點反而能成為優點,如果你有一些資料需要時常讀取但是不想要保存下來,可以考慮將其放在記憶體硬碟中,減少對原本硬碟的消耗。

最近在工作上遇到一個需求,我們需要在 AWS EC2 中放置一些敏感資料,但又想避免硬碟的自動備份去保留這些資料。在這種情形下,我們決定疆敏感資料放到記憶體硬碟中。

在 Linux 中,你有兩種方式可以新增一個記憶體硬碟:

  1. 使用 mount 指令
  2. 修改 /etc/fstab 檔案

使用 mount 指令

首先使用 mkdir 建立要掛載的資料夾:

sudo mkdir /mnt/ramdisk

接著使用 mount 指令掛載記憶體硬碟:

sudo mount -t tmpfs -o size=512M tmpfs /mnt/ramdisk

各項參數說明:

  • -t tmpfs:指定檔案系統為 tmpfs
  • -o size=512M:指定記憶體硬碟大小為 512MB
  • /mnt/ramdisk:指定掛載的目錄

修改 /etc/fstab 檔案

如果想再重開機之後自動設定 RAM Disk,可以修改 /etc/fstab 檔案。

首先使用 root 權限以 vim 開啟 /etc/fstab 檔案:

sudo vim /etc/fstab

在檔案最後加入以下內容:

LABEL=cloudimg-rootfs    /            ext4    discard,commit=30,errors=remount-ro    0 1
LABEL=BOOT               /boot        ext4    defaults                               0 2
LABEL=UEFI               /boot/efi    vfat    umask=0077                             0 1
tmpfs                    /ramdisk     tmpfs   rw,nodev,nosuid,size=10M               0 0

編輯完成之後,按下 Esc 鍵,輸入 :wq 並按下 Enter 儲存並離開。

最後使用 mount -a 指令重新掛載 /etc/fstab 中的檔案系統:

sudo systemctl daemon-reload
sudo mount -a

參考資料

sharkHead
written by
sharkHead

後端打工仔,在下班後喜歡研究各種不同的技術。稍微擅長 PHP,並偶爾涉獵前端開發。個性就像動態語言般隨興,但渴望做事能像囉嗦的靜態語言那樣嚴謹。

0 則留言