램 디스크

1 개요

RAM disk. 램 드라이브(RAM drive)라고도 불린다.

RAM의 일부 주 기억 공간이 아니라 보조 저장 공간으로 끌어오는 소프트웨어/장치. 반대 개념으로는 페이징 파일 혹은 스왑 영역[1]이 있다. 이들은 메인 메모리가 부족할 때 디스크의 일부 공간을 메모리 용도로 쓰는 것이다.

2 용도

크게 두 가지가 있다. 32비트 운영체제는 4GB 이상의 램을 사용할 수 없는데, 4GB 이상의 램을 장착한 32비트 시스템에서 남는 램을 사용할 수 있도록 하는 것이 가능하다. 또한 안전한 임시 저장소의 역할을 할 수 있다. 램의 특성상 전원이 날아가 버리면 저장해둔 내용도 몽땅 날아가므로, 캐시 데이터나 남들이 나중에 훔쳐보면 안 되는 데이터를 저장하는데 사용한다.

32비트 운영체제에서 4기가 이상의 램을 정상적인 램처럼 추가로 쓸 수 있게 해 주는 것만이 용도가 아니다. 램 디스크는 남는 램을 기억 장치로 돌려 쓰는 것이며, 즉 탐색기나 다른 프로그램을 이용해 파일을 쓰고 지울 수 있는 공간이 되는 것이다. 램은 어떤 보조 기억 장치보다도 빠른 기억 장치[2]이므로 이것을 이용해 읽기/쓰기 속도에 걸리는 지연을 최소화 할 수 있게 해 주는 것이 주된 목적이며, 32비트 운영체제에서 활용할 수 있다는 것은 시스템 상 불가능한 부분을 꼼수를 이용해서 써 보는 것일 뿐이다.

2.1 소프트웨어 램 디스크

보통 메인 메모리로 장착되어 있는 DRAM 메모리를 가상 드라이브로 사용한다. 이런 램 디스크를 만들어주는 프로그램은 과거부터 꽤 많이 나와있다. 당연하지만, 이걸 쓰려면 메인 메모리에 램을 빵빵하게 갖춰두어야 한다. 메인 메모리도 부족한데 이걸 쓰는 건 헛짓거리.

32비트 운영체제를 사용하는 컴퓨터에서 기본적으로 지원되는 3GiB ~ 3.5GiB 공간 밖의 주소 영역을 다른 방식으로나마 활용하는 방법으로 쓰인다. 백방을 노력해도 정상적인 환경에서는 사용할 수 없는 부분이니까. [3]

반면 64비트 운영체제에선 16EiB까지 쓸 수 있기 때문에 저런 상황은 없다고 봐도 된다. 메모리 용량이 거기까지 커지려면 이론상 32년은 기다려야 한다.(……) 계산은 어떻게 한거지[4] 그러니 64비트 운영체제에서 램 디스크를 위와 같은 이유로 쓰는 것은 헛짓이라고 보면 된다.

램 디스크는 보통 1. 윈도우즈 시스템과 사용자 TMP, TEMP 영역 / 2. OS에서 관리하는 페이징 파일(혹은 다른 이름으로 스왑 영역, 속칭 디스크 캐시[5]) / 3. Adobe사 소프트웨어 등의 업무용, 웹 브라우저등의 주 사용 소프트웨어, 기타 소프트웨어등의 자체적 캐시 경로를 램 디스크에 할당하는 방식 등으로 활용된다.

1번은 시스템에서 항시 사용하는 부분이므로 이 부분을 램 디스크에 할당할수록 평소의 시스템 퍼포먼스는 기하급수적으로 올라간다, 단 이 부분은 페이징 파일보다는적게 요구하긴 하지만 일반적으로 HDDSSD같이 넉넉한 공간임을 가정하고 시스템에서 사용하기에 대부분의 작업에서는 공간이 부족하지 않더라도 몇몇 임시파일을 작성하는 작업(고성능 모드로 실시간 감시를 하는 안티바이러스 소프트웨어, 아래에 설명된 동영상 스트리밍 임시 저장)등에서는 공간이 부족할 수도 있다.

사용 패턴에 따라 적절히 점진적으로 램 디스크 크기를 늘려보고, 그래도 안되면 하단에 설명된 동적 공간으로 설정해보거나 그냥 SSD 등에 할당하자.

요즘에는 웹 브라우저들이 대체로 메모리 캐시 Only 모드를 자체적으로 지원하기에 활용도가 떨어지긴 하지만,
이를 지원하지 않거나 초보가 세팅하기 어려운 웹브 라우저의 디스크 캐시의 호환 용도로 사용하는 경우는 1기가 정도면 넉넉하고 좀 과하게 쓰더라도 2기가면 떡을 친다.
그러나 이 경우 고화질 스트리밍 동영상을 보는 경우 캐시 용량이 모자라서 뻗어버리는 일이 발생하는 점에 유의를 요한다.[6]

몇몇 램디스크 소프트웨어의 경우는 동적메모리디스크 기능으로 메모리를 필요할 때만 OS 상에서 더 끌어오고 필요가 없어지면 다시 반환하는 식의 운용으로 위의 문제를 극복 가능하다.

2번의 경우, 32비트 환경에서 이 방식으로 꼼수를 이용해서 4GB 이상의 램을 확장하는 것이 가능하다. 4GB를 넘어서는 남는 용량을 램 디스크로 돌린 다음, 이 공간에 페이징 파일을 올리는 것. 다만 OS는 페이징 파일보다 "실제" 메모리를 우선적으로 사용하기 때문에 64비트 환경 만큼의 효율은 나오지 않는다.

이런 경우와 관계 없이 단순히 속도를 향상시키는 방법이라며 이런 팁이 나도는 경우가 있는데, 위와 같은 경우가 아닌, 64비트 환경이거나 32비트 환경에서 메모리가 4GB가 넘지 않는 시스템에서는 이것은 그저 뻘짓에 지나지 않다. 이 문서의 개요 부분을 유심히 읽어보았다면 그 이유를 쉽게 알 수 있을 것이다. 애초에 페이징 파일이란 놈의 주 목적이 램 디스크의 반대 개념인 '실제 메모리가 부족할 때 디스크에서 끌어 쓰는 영역'으로, 램 디스크를 써도 될 정도로 메모리가 충분하다면 딱히 페이징 파일을 신경써서 관리할 이유가 없는 것. 억지로 이 짓을 하면 램이 부족해서 페이징 파일을 끌어 쓰는데 정작 페이징 파일은 램 디스크 위에 있는 인셉션 사태가 벌어진다. 더욱이 애초에 램 디스크를 할당하지 않았다면 페이징 파일을 꺼낼 필요가 없었을 수도 있으니(...)

램의 용량이 충분하지 않던 시절에 만들어진 프로그램의 경우 좀 크게 쓸 듯한 데이터를 메모리에 할당할 때 페이지 파일에 먼저 접근하는 경우가 있었지만 최근 프로그램들은 램이 충분하면 무조건 램을 먼저 사용하거나, 정 크다 싶으면(1번이나 3번과 같은 경우) 하드디스크 상에 별도의 임시 파일 폴더를 만들어 사용한다. 굳이 성능 페널티가 발생하는 점을 찾아보자면, 일단 페이징 파일이 할당돼 있으면 운영체제는 이를 캐시 등의 용도로 활용하려 들지만 메모리에 비해서는 보조 기억 장치가 느릴 수 밖에 없으므로 여기서 속도 패널티가 발생하는 경우가 생긴다. 이를 막고 싶다면 페이지 파일을 램디스크에 올리는 것 보다는 차라리 페이지 파일을 최소화하거나 안 쓰는 것이 바람직하다.[7]

3번은 작업용으로 사용할 때 아주 유용한데, 고용량 메모리를 요구하는 소프트웨어는 램디스크 보급 이전의 기존의 시스템 구성을 전제로 1번의 임시 파일 경로 공간을 사용하는데, 이를 아예 소프트웨어 자체에서 재공하는 캐시 경로 설정을 이용해 램디스크의 일반 공간을 사용하는 방법이다.

WinRAR나 IE와 같이 작업 전후로 시스템의 임시 파일 공간이나 디스크에 쓴 후 지정 경로에 복사를 하는 보수적인방식으로 동작하는 소프트웨어, 포토샵이나 동영상 인코딩 등의 스토리지 입출력 병목이 적을수록 유리한 작업에서 각 소프트웨어의 설정에서 램디스크를 골라주거나, 램디스크 하위의 임시 파일용 폴더로 경로를 지정해주면 된다.

램디스크의 데이터를 종료 및 재부팅시 날리지 않고 일반 스토리지에 저장 및 읽어 다시 쓰는 옵션을 사용하는 경우, 용량이 너무 커지면 내용 자체를 이미지를 떠서 부팅 시마다 읽어와 다시 저장하는 구조상 시스템 성능에 따라 부팅 속도가 느려질 수도 있기 때문에 램디스크를 사용하는 용도에 따라 적당한 할당량을 부여하는 것이 바람직하다.

2.1.1 목록

무료

  • ImDisk - 버전 1.9.2 (2014-12-17) (무료/오픈소스) 부팅시 ramdisk 자동 생성 기능이 없음
  • Radeon RAMDISK DATARAM ramdisk의 OEM이며, 무료 공개 버전 존재
  • Softperfect ramdisk
  • ASRock XFast RAM(ASRock사 메인보드의 번들 소프트웨어) - 버젼 3.0.3 (2014-08-15) 미러EU US CN
  • Ultra RAMDisk Lite버전은 개인&비상업적 용도에 무료. 이응소프트 제품. ODD 쓰기 프로그램인 이응과 같은 제작사다.

상용

기타 추가바람

2.2 하드웨어 램 디스크

소프트웨어 램 디스크와 같은 기능을 하드웨어로 지원하는 제품이다.

파일:Attachment/gigabye i ram.jpg
사진은 GIGABYTE사의 GC-RAMDISK i-RAM이다. 상품 설명 페이지 아마존(US) 판매 페이지

보조기억장치 인터페이스를 거쳐야 하므로 CPU와 버스로 직접 연결된 소프트웨어 램 디스크와 비교하면 속도가 좀 느리다. 일반 사용자용으로 나온 제품은 SATA 인터페이스의 속도가 한계 속도가 될 수 밖에 없었다. 그렇다고 해도 초기에는 경쟁 상대가 HDD였으므로, 속도 면에서 상당히 강점을 보였다. 당시 HDD는 겨우 20~30 MB/s 정도의 전송 속도를 가졌지만, 초기의 램 디스크 제품은 SATA 1의 한계 속도인 150MB/s 에 근접한 속도가 나왔다. 하지만 DRAM의 특성 상 전원이 끊기면 데이터가 사라진다는 단점이 있었고, 그래서 배터리를 붙여서 이를 대비했다. 그렇지만, 배터리 용량 문제로 길어 봐야 반나절 정도를 겨우 버티는 정도였기에 사용에 아주 심한 제약을 가지고 있었다. 또한, 배터리 자체가 리튬 이온 전지를 이용하였기 때문에 오래 사용할 시 배터리 수명이 급격히 짧아지는 등의 치명적인 문제가 있었다.

SATA2 인터페이스의 등장으로 더 빠른 대역폭을 확보할 수 있게 되었고, 램 슬롯도 늘려서 용량도 더 확장 가능한 후속제품이 출시될 즈음에, SSD 라는 무시무시한 경쟁자가 등장해 버렸다. SSD 역시 SATA2 한계 속도인 300MB/s 에 근접한 성능이 나왔는데, SSD는 배터리도 필요 없고 가격도 램 디스크에 비해서 훨씬 저렴했기 때문에 경쟁이 되질 않았다. 결국 하드웨어 기반 램디스크는 SSD에 의해 시장에서 매장되었다. 필요가치가 없었기 때문이다.

그래도 플래시를 이용한 SSD에 비해서, DRAM 을 이용한 제품은 접근 속도(Latency)면에서 장점을 가지기에, 산업용으로는 아직 생산되고 있긴 하다. Texas Memory Systems 라는 회사에서 만드는 RAMSAN 이라는 램디스크 제품군 중에서 RAMSAN-440 이란 제품이 DRAM 을 사용한다. [8] 이 제품은 산업용이기에, 인터페이스가 Fiber Channel이기 때문에 일반 PC에서 연결하려면 FC 카드가 필요하며, 가격도 상상을 초월한다. 512GB짜리 제품이 무려 1억원을 넘어 간다.

2.2.1 제품

  • 야노 전기 YR833 : PCI 슬롯을 사용하는 제품.
  • GIGABYTE i-RAM : SATA 연결에 DDR 1세대를 사용하는 제품[9]. 2005년 발매. 현재 발매중지.
  • GIGABYTE i-RAM BOX : 5인치 베이에 연결하는 제품. 2008년 발매.
  • ACARD ANS-9010 : 2008년 발매. 5인치 베이에 연결하는 제품. 32기가까지 지원한다.
  • TMS RAMSAN-440 : 산업용 DRAM 저장장치.
  1. 둘은 비슷한 개념으로 주로 운영체제에 따라 이름이 달라진다
  2. 다만 주 기억 장치 중에서는 느린 편이다. 그대신 용량도 크다.
  3. 아주 없는 건 아니고 PAE라고 32비트에서 메모리를 확장시키는 규격이 있기는 하다. 다만 우리의 MS 윈도우에서는 2015년 6월 현재 윈도우 최신버전인 윈도우 8버전까지, 서버용 버전을 빼고는 이 기능을 지원하더라도 4GB 이상의 메모리를 쓸 수 있는 버전이 없다(...)참고. 서드파티 드라이버 관련 문제라고 한다.
  4. 간단하다. 2^64=18446744073709551616=16*1024^6. 32년은 그 유명한 무어의 법칙...혹은 그 파생인 황의 법칙. 하지만 무어의 법칙은 공식적으로 깨졌다고 발표했다... 안 될 거야 아마 현재도 미세공정이 극한에 가깝기 때문에 저 정도로 줄이기도 어렵다.
  5. 디스크 캐시라는 말은 엄밀히 말하면 틀린 것이다. 정확한 정의는 디스크에 파일이 실질적으로 기록되기 전 임시로 머무는 장소 혹은 자주 사용되는 파일을 로드해 두는 장소로, 사용자가 직접 건드릴 수 없는 영역이다
  6. 그래서 옛날 유튜브에서는 문제가 되었으나 DASH 방식으로 필요한 부분만 동적으로 스트리밍을 하는 지금은 문제가 없다, 단 그런 유튜브같이 세련된 방식이 아닌 고전적인 방식을 사용하는 고용량 동영상 스트리밍의 경우는 여전히 캐시 크기 부족 문제가 생기므로 유의할것
  7. 참고로 리눅스에서는 스왑 영역은 할당하고 싶지만 자주 사용되지는 않기를 바라는 사람들을 위해 swappiness라는 설정 변수가 존재하여 스왑 사용 빈도를 설정할 수 있다. 무작정 스왑 영역을 없앨 수는 없는 것이, 리눅스에서는 최대 절전 모드로 들어갈 때 스왑 영역에 시스템 이미지를 저장한다. 윈도우에서는 hiberfil.sys라는 별도의 파일에 저장.
  8. 다른 제품군은 모두 플래시 메모리를 사용한다. 참고로 TMS사는 2012년에 IBM에 인수합병됐다.
  9. 덕분에 최대 용량이 1GiB * 4가 끝이다. 윈도우 XP만 깔더라도 세심하게 용량 관리를 해줘야 집어넣을 수 있는 수준