Hướng dẫn tạo RAM Disk trên Linux (CentOS – Ubuntu)

RAM Disk là một phần dung lượng vật lý của RAM được format dưới dạng file system (tập tin hệ thống). Từ file sytsem này bạn có thể mount nó vào 1 thư mục và sử dụng như 1 phân vùng ổ cứng. Do RAM có tốc độ cao hơn ổ cứng HDD/SSD rất rất nhiều, vì vậy RAM Disk sau khi mount lên server thường được dùng để lưu Cache cho các ứng dụng ví dụ như Nginx Web Server…

tao ram disk tren linux 1

Có 2 loại RAM Disk trên Linux:

    • ramfs
    • tmpfs

Trong bài viết này, ta sẽ nói chi tiết về tmpfs do được sử dụng phổ biến hơn. tmpfs là từ viết tắt của temporary filesystem, tương đương với temporary storage (vùng lưu trữ tạm), tmpfs sở hữu khả năng truy cập đọc và ghi rất nhanh trên vùng lưu trữ đó. Tuy nhiên, bạn cần lưu ý rằng các dữ liệu trên vùng lưu trữ tmpfs sẽ bị mất khi hệ thống bị reboot. Thông thường bạn sẽ thấy phân vùng tmpfs trên OS Linux dưới hình thức các tên gọi sau đây: /run/var/run/dev/shm/var/lock….

Ưu điểm:
– Tốc độ đọc/ghi rất nhanh (dữ liệu lưu trên RAM).
– Phù hợp để lưu trữ cache như Web Server Caching page.

Khuyết điểm:
– Dữ liệu lưu trên phân vùng file system tmpfs sẽ bị mất khi reboot hệ thống.
– Nếu tính toán không kĩ sẽ gây hết RAM sử dụng cần thiết.

Do tmpfs chứa dữ liệu trên RAM ảo cũng như là RAM thật, nên nếu ta không tính toán cẩn thận mà chứa quá nhiều dữ liệu lên phân vùng tmpfs sẽ dễ khiến hệ thống bị thiếu bộ nhớ RAM để hoạt động. Để giải quyết vấn đề này, bạn có thể fixed mức dung lượng cho 1 file system tmpfs. Hệ thống sẽ không cho phép bạn ghi dữ liệu hay chứa dữ liệu vượt quá mức đã quy định đã fixed.

Hướng dẫn tạo RAM Disk trên Server Linux

Tạo Mount Point

Tạo một Folder làm mount point cho Ram Disk, bạn có thể tạo folder ở mất kỳ đâu trong hệ thống:

mkdir -p /var/ramdisk

Nếu bạn muốn các user đều có quyền sử dụng thư mục RAM Disk trên thì phân quyền 777:

chmod 777 /var/ramdisk

tao ram disk tren linux 2

Tiếp theo, như đã nới ở trên, để tránh việc sử dụng Ram disk không kiểm soát dẫn đễn chiếm dụng dung lượng RAM quá nhiều của hệ thống bạn nên xác định mình sẽ sử dụng bao nhiêu GB RAM trên hệ thống dành cho thư mục RAM disk.

Ví dụ ở đây Zhost sử dụng một server có dung lượng RAM là 2GB, vậy ta sẽ để dung dượng RAM disk khoảng 256MB.

Mount RAM disk

Thực hiện lệnh sau để Mount RAM disk:

mount -t tmpfs -o size=256m tmpfs /var/ramdisk
Trong đó:
  • mount -t tmpfs: là lệnh gọi lệnh mount với loại file system là tmfps.
  • site=265m: là để giới hạn dung lượng cho Ram disk.
  • tmpfs: là device sử dụng để mount.
  • /var/ramdisk: là thư mục mount point đã tạo ở trên.

Để kiểm tra xem RAM disk đã được mount thành công hay chưa bạn sử dụng lệnh:

df -h

Ta thấy RAM disk đã được mount thành công với dung lượng giới hạn là 256MB.

tao ram disk tren linux 3

Khi không cần sử dụng nữa, ra dùng lệnh sau để bỏ mount:

umount /var/ramdisk

Với lệnh mount trên, khi server khởi động lại thì sẽ mất tác dụng.

Vì vậy, để hệ thống tự động mount RAM Disk lên server khi khởi động, bạn mở file /etc/fstab và thêm nội dung sau vào cuối file:

tmpfs /var/ramdisk tmpfs nodev,nosuid,noexec,nodiratime,size=256M 0 0

Kiểm tra tốc độ đọc/ghi trên RAM Disk

Test tốc độ ghi:

dd if=/dev/zero of=/var/ramdisk/zero bs=4k count=10000
10000+0 records in
10000+0 records out
40960000 bytes (41 MB) copied, 0.0511471 s, 801 MB/s

Test tốc độ đọc:

dd if=/var/ramdisk/zero of=/dev/null bs=4k count=10000
10000+0 records in
10000+0 records out
40960000 bytes (41 MB) copied, 0.0227248 s, 1.8 GB/s

Zhost chúc các bạn thành công!