커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 > 메모리, 스왑(swap), 램디스크(ramdisk) 도움말
검색 : 사이트 WHOIS 웹서버 종류


  FreeBSD에서 ramdisk 사용 작성일 : 2007/04/02 23:28
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 9269
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : FreeBSD에서 ramdisk 사용
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2007.3.19(월)

    FreeBSD에서 리눅스의 tmpfs 파일시스템, ramdisk처럼 메모리를 파일시스템으로 사용하는 방법을 설명한다. ramdisk는 메모리를 사용하므로 서버가 부팅시 깨끗하게 지워지며, 디스크 액세스가 빈번하게 일어나는 경우에 효과를 볼 수 있다. FreeBSD 5.x, 6.x 기준 ramdisk 사용하는 방법을 설명한다.

    1. mdconfig 명령 이용

     # mdconfig -a -t swap -s 512M -u 1
    # newfs -U /dev/md1
    # mount /dev/md1 /var/tmp
     


    mdconfig은 메모리 디스크(md)를 설정하고 enable하는 명령이다.

    -a : 메모리 디스크를 attach한다. -d는 반대로 detach한다.
    -t : 메모리 디스크의 유형을 선택한다.
    -s : 메모리 디스크의 크기를 설정한다. 숫자뒤에 b(Byte), k(KByte), m(MByte), g(GByte), t(terabyte) 단위 설정 가능
    -u : md(memory disk) device의 unit 번호를 지정한다. 지정하지 않으면 자동으로 할당한다.

    메모리 디스크 유형에는 swap과 malloc 2가지가 있다. 보통 swap 유형을 사용하며, 여기서 swap은 메모리가 부족한 경우에 disk로 swap될 수 있는 메모리 영역을 할당한다는 것을 의미하는 것이지, 기본적으로 disk로 swap됨을 의미하는 것이 아니다. malloc 유형은 malloc() function 으로 할당하는 경우로, 메모리가 부족할 때 시스템 패닉이 생길 수 있다.

    newfs의 -U는 soft-updates를 enable하는 옵션으로 디스크의 쓰기 속도를 향상시킨다. 메모리 디스크를 attach했다면 md device 목록을 확인해보자. (mount여부와 무관하게 attach했다면 목록에서 볼 수 있음)

     # mdconfig -l
    md1
     


    메모리는 실제 사용을 할 시점에 할당이 된다. mount를 했지만 메모리 디스크에 파일이 없을 때의 메모리 상태이다.


    100MBytes 파일을 하나 만들어보자.

     # dd if=/dev/zero of=foobar.img bs=1024k count=100 


    free 메모리가 줄어들었음을 확인할 수 있다. 파일을 삭제하면 다시 메모리는 반환된다.


    메모리 디스크가 더 이상 필요가 없다면 detach를 한다.

     # umount /var/tmp
    # mdconfig -d -u 1
     


    2. mdmfs 명령을 사용하여 한방에

    mdmfs는 mdconfig, newfs, mount 명령을 한방에 처리해주는 명령이다. 기본으로 soft-updates가 enable된 상태의 swap기반(swap-based) 디스크를 사용한다. swap backing대신 malloc backing 디스크를 원하면 -M 옵션을 사용하면 된다.

     # /sbin/mdmfs -s 512M md1 /var/tmp
    # mount
    ... 생략 ...
    /dev/md1 on /var/tmp (ufs, local, soft-updates)
     


    3. /etc/fstab 설정

     
    /dev/md1   /var/tmp                mfs   rw,-s512M   2   0
     


    4. 참고자료

    * RAMdisks, creating under FreeBSD 5.x
      http://freebsdwiki.net/index.php/RAMdisks,_creating_under_FreeBSD_5.x
    * FreeBSD Handbook (Chapter 17 Storage)
      http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-virtual.html
      커피닉스 카페 최근 글
    [06/16] [질문]SAN 스위치 브로드케이드 dcx8510-4 장비관련입니다.
    [04/22] Re: 영화속에 컴퓨터 이야기 ~스워드피쉬(2001)
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~