#WITHYOU
Lum7671's Weblog
#WITHYOU
macOS, ZFS를 사용해서 RAM 디스크 만들기

ZFS로 RAM 디스크를 만들어서 앱을 조금이라도 빠르게 동작하도록 한다.

Change Logs

  • 2016-11-20 15:33 : $DEVDISK 변수를 이용해서 RAM 디스크 만듬.
  • 2016-11-15 20:35 : 최초 작성.

용도는 주로 $HOME/Library/Caches 디렉터리에서 브라우저용 캐시와 같은
속도를 높이고 싶은 파일들을 RAM Disk로 옮겨서 빨리 실행되도록 한다.
특히, 필자와 같이 HDD를 주 Disk로 사용하는 경우 RAM Disk가 보다 효과적일 것 같다.

관련 링크:

mkRamDisk.sh

RAM 디스크를 생성하고 Disk에 backup 된 내용을 복사한다.

% cat ~/bin/mkRamDisk.sh
#!/usr/bin/env sh
export PATH=$HOME/bin:/usr/local/bin:$PATH

# 1GB RAM 디스크 만들기, 1024*2048
# 
# stdout 으로 "/dev/disk1" 와 같이 만들어진 disk 정보가 출력된다.
# 이 정보를 $DEVDISK 변수로 받아 저장하고 쓴다.
DEVDISK="$(hdid -nomount ram://2097152 2>&1)"

# RamDisk => /Volumes/RamDisk 로 mount 됨.
sudo zpool create RamDisk $DEVDISK

# Permission
sudo chown -R $(whoami) /Volumes/RamDisk

# RamDisk 원복, 백업데이터 복원
cp -rf /Some/Path/RamDisk/ /Volumes/RamDisk/

※ “/Some/Path” 는 환경에 맞게 수정 필요.

ramsync.sh

RAM 디스크를 /Some/Path/RamDisk 로 backup 한다.

#!/usr/bin/env sh
rsync -av --delete /Volumes/RamDisk/ /Some/Path/RamDisk

※ “/Some/Path” 는 환경에 맞게 수정 필요.

launchd, mkRamDisk.plist

부팅 후 RAM 디스크를 만들고 Disk에 저장된 이전 데이터를 원복한다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.riin.mkRamDisk</string>
    <key>Program</key>
    <string>/Users/[User ID]/bin/mkRamDisk.sh</string>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

※ “[User ID]”는 본인 계정ID.

Desktop 의 RamDisk

RamDisk

= 끝 =