[Linux] 리눅스 램디스크(RAM Disk)에 관하여
램디스크(RAM Disk)는 시스템의 메모리(RAM)를 저장 장치처럼 사용하여 임시 디스크 공간을 생성하는 기술입니다. 램디스크는 물리적 디스크 대신 메모리를 사용하므로 데이터 읽기/쓰기가 매우 빠릅니다. 이 디스크는 시스템이 재부팅되거나 메모리가 초기화되면 데이터가 사라지는 휘발성을 가지고 있습니다. 즉 램디스크는 매우 빠른 속도를 제공하지만, 휘발성 메모리이기 때문에 전원이 꺼지면 모든 데이터가 사라집니다. 램디스크를 사용하는 사례 및 장점은 아래와 같습니다.
- 램디스크는 SSD보다도 빠른 읽기/쓰기 속도를 제공하므로 I/O 성능이 중요한 작업에 사용됩니다.
- 캐시, 로그 파일, 빌드 파일과 같은 임시 데이터를 저장하여 성능을 개선하고 하드 디스크의 쓰기 수명을 연장할 수 있습니다.
- RAM에 저장된 데이터는 시스템 재부팅 시 사라지므로 민감한 데이터를 임시로 저장하기에 적합합니다.
램디스크는 ramfs와 tmpfs 파일 시스템으로 구현할 수 있으며, ramfs는 매우 단순한 구조로 인해 메모리 초과 사용을 방지할 수 없습니다. 메모리가 가득 차면 시스템이 정지할 수 있으므로, 일반적으로 tmpfs를 더 안전한 대안으로 추천합니다. 차이점은 아래와 같습니다.
특징 | ramfs | tmpfs |
---|---|---|
크기 제한 | 불가능(전체 가용 RAM 메모리 사용) | 가능(size 옵션으로 설정 가능) |
스왑 메로리 지원 | 지원하지 않음 | 지원(메모리 full이 발생하면 스왑 메모리 사용) |
주요 용도 | 단순하고 빠른 파일 시스템 구현 | 크기 제한이 필요한 임시 파일 시스템 구현 |
리눅스에서 램디스크를 생성하는 방법은 다음과 같습니다. 여기서는 tmpfs를 사용한 예제를 설명드리겠습니다. ramfs를 사용하려면 tmpfs 대신에 ramfs으로 변경하고 -o size=1G 옵션을 제외하면 됩니다.
- 먼저 시스템의 여유 메모리 용량을 확인합니다. 이를 위해
free
명령어를 사용할 수 있습니다.free -h
- 램디스크를 마운트할 디렉토리를 생성합니다. 예를 들어 `/mnt/ramdisk` 디렉토리를 생성합니다.
mkdir /mnt/ramdisk
- `tmpfs`를 사용하여 1GB 크기의 램디스크를 마운트하려면 다음과 같이
-o size=1G
옵션을 추가합니다. 정상적으로 마운트되었는지 확인하려면df
명령어를 사용합니다.mount -t tmpfs -o size=1G tmpfs /mnt/ramdisk df -h | grep /mnt/ramdisk
- 아래 내용을
/etc/fstab
에 추가하여 시스템 부팅 시 자동으로 램디스크를 마운트하도록 설정합니다.tmpfs /mnt/ramdisk tmpfs defaults,size=1G 0 0
이렇게 설정하면 시스템 부팅 시 자동으로 램디스크가 마운트됩니다. 램디스크는 매우 빠른 속도를 제공하지만, 휘발성 메모리이므로 전원이 꺼지면 데이터가 사라진다는 점을 유의해야 합니다¹².