[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 옵션을 제외하면 됩니다.

  1. 먼저 시스템의 여유 메모리 용량을 확인합니다. 이를 위해 free 명령어를 사용할 수 있습니다.
    free -h
    
  2. 램디스크를 마운트할 디렉토리를 생성합니다. 예를 들어 `/mnt/ramdisk` 디렉토리를 생성합니다.
    mkdir /mnt/ramdisk
    
  3. `tmpfs`를 사용하여 1GB 크기의 램디스크를 마운트하려면 다음과 같이 -o size=1G 옵션을 추가합니다. 정상적으로 마운트되었는지 확인하려면 df 명령어를 사용합니다.
    mount -t tmpfs -o size=1G tmpfs /mnt/ramdisk
    df -h | grep /mnt/ramdisk
    
  4. 아래 내용을 /etc/fstab에 추가하여 시스템 부팅 시 자동으로 램디스크를 마운트하도록 설정합니다.
    tmpfs   /mnt/ramdisk   tmpfs   defaults,size=1G   0   0
    

이렇게 설정하면 시스템 부팅 시 자동으로 램디스크가 마운트됩니다. 램디스크는 매우 빠른 속도를 제공하지만, 휘발성 메모리이므로 전원이 꺼지면 데이터가 사라진다는 점을 유의해야 합니다¹².

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다