·¥µð½ºÅ©(Ramdisk) »ç¿ë¹ý

¹ø¿ª / °íÇö¾Æ : hanbi@linuxlab.co.kr

 

 

    ÁÖ> ÀÌ ¹®¼­ÀÇ ¼öÁ¤µÈ ³»¿ëÀº http://www.tcu-inc.com/mark/articles/Ramdisk.html¿¡ ¿Ã·ÁÁú °ÍÀÌ´Ù.

     

    ÀÌ ±ÛÀº RedHat 6.0 ¿¡¼­ ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ´Ù¸¥ ¹èÆ÷º»µµ °ÅÀÇ ´ëµ¿¼ÒÀÌÇÏ´Ù.

    ·¥µð½ºÅ©(RamDisk)¶õ ÆÄƼ¼ÇÀ¸·Î »ç¿ëÇÏ´Â ¸Þ¸ð¸®ÀÇ ÀϺκÐÀÌ´Ù. ´Ù¸¥ ¸»·Î ¸»ÇÏ¸é ´ç½ÅÀº ¸Þ¸ð¸®¸¦ »©³»¾î Çϵåµð½ºÅ©ÀÎ ¾ç Ç༼ÇÏ¿© ±× ¾È¿¡ ÆÄÀÏÀ» ÀúÀåÇϴ°ÍÀÌ´Ù.

     

1. ¿Ö ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ·ÁÇϴ°¡?

    ¿Ö ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´À³Ä°í¿ä? ¾î¶² ÆÄÀÏÀÌ °è¼ÓÇؼ­ »ç¿ëµÇ°í ÀÖ´Ù¸é ±× ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡ ³Ö´Â°Ô ÄÄÇ»ÅÍÀÇ ¼Óµµ¸¦ »¡¸® ÇØÁÙ °ÍÀÌ´Ù. ¸Þ¸ð¸®´Â Çϵåµð½ºÅ©º¸´Ù ¼Óµµ°¡ ºü¸£±â ¶§¹®ÀÌ´Ù.

    ¸¹Àº µ¥ÀÌÅ͸¦ °®°í ÀÖ´Â À¥¼­¹ö °æ¿ì¿¡ ÀÌ ¹æ¹ýÀ¸·Î ¼Óµµ¸¦ ³ôÀϼö ÀÖ´Ù. ¸¸¾à ´ç½ÅÀÌ Á¶±Ý ÀÌ»óÇÑ »ç¶÷À̾ ÆæƼ¾ö-II 550Mhz Çǽÿ¡ 1±â°¡ÀÇ ¸Þ¸ð¸®¿Í 500¸Þ°¡ÀÇ ±¸Çü Çϵ带 ÀåÂøÇÏ°í ÀÖ´Ù¸é ´ç½ÅÀº ¸Þ¸ð¸®¸¦ Çϵåµð½ºÅ© ¿ë·®À» ¿Ã¸®´Âµ¥ ¾µ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  È¤Àº °ÅÀÇ  µð½ºÅ© ¾ø´Â ½Ã½ºÅÛÀ» ¸¸µé°Ú´Ù¸é ±×·¸°Ô Ʋ¸° »ý°¢µµ ¾Æ´Ï´Ù.

    ¿©±â ´Ù¸¥ Âü°í ÀÚ·áÀÌ´Ù.

    1. http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html  
    2.
    http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html  
    3. /usr/src/linux/Documentation/ramdisk.txt

     

2. ·¥µð½ºÅ© »ç¿ë¹ý(How to use RamDisk)

    ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´Â°Ç ½±´Ù. ·¹µåÇÞÀÇ ±âº» ¼³Ä¡¿¡´Â ·¥µð½ºÅ© Áö¿øÀÌ µé¾îÀÖ´Ù. ÇؾßÇÒ ÀÏÀº ¿ÀÁ÷ ·¥µð½ºÅ©¸¦ Æ÷¸ËÇؼ­ ¾î´À µð·ºÅ丮¿¡ ¸¶¿îÆ®ÇØÁÖ´Â °ÍÀÌ´Ù.

    ¢º ¿ªÀÚ ÁÖ
    ·¹µåÇÞÀ» ¼³Ä¡ÇÏ´Â °æ¿ì¿¡ ·¥µð½ºÅ©°¡ »ç¿ëµÈ´Ù. ·¹µåÇÞ 6.0 CD¿¡ µé¾îÀÖ´Â Ä¿³Î¿¡´Â  ·¥µð½ºÅ© Áö¿øÀÌ µé¾î ÀÖ´Ù. ±×·¯³ª Ä¿³Î ¼Ò½º¸¦ »õ·Î ´Ù¿î ¹Þ¾Æ ÄÄÆÄÀÏÇÏ´Â °æ¿ì ·¥µð½ºÅ© Áö¿øÀº ±âº» ¼±Åà »çÇ׿¡ µé¾îÀÖÁö ¾Ê´Ù.

    ´ç½ÅÀÌ »ç¿ë °¡´ÉÇÑ ·¥µð½ºÅ©¸¦ ãÀ¸·Á¸é  ¡°ls -al /dev/ram*¡± ¸í·ÉÀ» ÁÖ¶ó. ÀÌ ¸í·ÉÀº ±â¼³Ä¡µÈ »ç¿ë °¡´É ·¥µð½ºÅ©¸¦ ¾Ë·ÁÁØ´Ù. ÀÌ ·¥µð½ºÅ©µéÀº ±×·¯³ª ´ç½ÅÀÌ ¾î¶² ÇüÅÂ·Îµç »ç¿ëÇϱâ Àü¿¡´Â(¿¹¸¦ µé¸é Æ÷¸Ë) ¸Þ¸ð¸®¸¦ Àâ¾Æ ¸ÔÁö ¾Ê´Â´Ù. ¿©±â¿¡ ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¹æ¹ýÀÌ ÀÖ´Ù.

    mkdir -p /tmp/ramdisk0
    mkfs -t ext2 /dev/ram0
    mount /dev/ram0 /tmp/ramdisk0

    À§ÀÇ ¼¼ ¸í·ÉÀº ·¥µð½ºÅ©°¡ À§Ä¡ÇÒ µð·ºÅ丮¸¦ ¸¸µé°í, ·¥µð½ºÅ©¸¦ Æ÷¸ËÇÏ°í(¾à 4¸Þ°¡) , ·¥µð½ºÅ©¸¦ ¡°/tmp/ramdisk
    0¡±¿¡ ¸¶¿îÆ®ÇÑ´Ù.

    ÀÌÁ¦ ´ç½ÅÀº ±× µð·ºÅ丮¸¦ ÆÄƼ¼ÇÀÎ °Íó·³ ¾µ ¼ö ÀÖ´Ù. ±×°ÍÀ» ´Ù¸¥ µð·ºÅ丮³ª ÆÄƼ¼Ç ó·³ »ç¿ëÇ϶ó.

     

3. ÁÖÀÇÇÒ Á¡ÀÌ ¹«¾ùÀΰ¡?

    ÄÄÇ»ÅÍ°¡ ¸®ºÎÆÃÇÏ¸é ±× ³»¿ëÀº »ç¶óÁø´Ù. Áß¿äÇÑ µ¥ÀÌÅͶó¸é ´Ù¸¥ °÷¿¡ º¹»çµÇ¾î ÀÖÁö ¾ÊÀº µ¥ÀÌÅ͸¦ ±×°÷¿¡ ³ÖÁö ¸¶¶ó.

    ´ç½ÅÀÌ ±× µð·ºÅ丮¸¦ º¯°æÇÏ°í ±× º¯°æÀ» Áö¼Ó½Ãų ÇÊ¿ä°¡ ÀÖ´Ù¸é ±×°ÍÀ» ¹é¾÷ÇÏ´Â ¹æµµ¸¦ °­±¸Ç϶ó.

     

4. ·¥µð½ºÅ© Å©±â º¯°æ

    ¾î¶»°Ô ·¥µð½ºÅ©ÀÇ Å©±â¸¦ ¹Ù²Ü ¼ö Àִ°¡?

    °³ÀÎÀûÀ¸·Î ³ª´Â ¿ÀÁ÷ µÎ °¡Áö º¯°æ ¹æ¹ý¸¸À» ¾È´Ù. µÑ Áß ¾î´À°Íµµ ÄÄÇ»ÅÍ°¡ ºÎÆà ÈÄ¿¡´Â ·¥µð½ºÅ©ÀÇ Å©±â¸¦ ¹Ù²ÙÁö ¸øÇÑ´Ù.

    ¾Æ·¡´Â  Ã¹¹ø°ÀÇ  ¾î·Á¿î ¹æ¹ýÀÌ´Ù. ¾Æ·¡ ÆÄÀÏÀ» º¸¶ó.

    /usr/src/linux/drivers/block/rd.c

    ÀÌ ÆÄÀÏÀ» ÆíÁýÇؼ­ ¾Æ·¡ÀÇ ¶óÀÎÀ» ¹Ù²Ù¶ó.

    int rd_size = 4096; /*Size of the ramdisks */

    À§ÀÇ size¸¦ ¿øÇÏ´Â Å©±â·Î ¹Ù²Ù¾î(kbyte ´ÜÀ§) Ä¿³ÎÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ ÈÄ¿¡ ¸®ºÎÆÃÇ϶ó.

    ¢º ¿ªÀÚ ÁÖ
    Ä¿³Î ¿É¼Ç Áß Block devices  --->  RAM disk support¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù.

    ´ÙÀ½Àº ½¬¿î ¹æ¹ýÀÌ´Ù.

    lilo.conf ÆÄÀÏ¿¡ ¾Æ·¡ ¶óÀÎÀ» Ãß°¡Ç϶ó.
    ramdisk=10000

    ÀÌÁ¦ lilo ¸í·ÉÀ» ÁÖ°í ¸®ºÎÆÃÇϸé 10¸Þ°¡ÀÇ ·¥µð½ºÅ©¸¦ »ç¿ë °¡´ÉÇÏ´Ù.

    ¾Æ·¡´Â ³ªÀÇ lilo.donfÀÌ´Ù.

    boot=/dev/hda
    map=/boot/map
    install=/boot/boot.b
    prompt
    timeout=50
    image=/boot/vmlinuz-2.2.5-15
    label=linux
            root=/dev/hda2
            read-only
            ramdisk=10000

    ½ÇÁ¦ »ç¿ë °¡´É ¿ë·®Àº 9¸Þ°¡°¡ ¾à°£ ³Ñ´Â´Ù.

     

5. À¥¼­¹ö¿¡ ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´Â ¿¹

    ¿©±â À¥¼­¹ö¿¡ 3°³ÀÇ ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´Â ¿¹ÀÌ´Ù. ´Ü ´ç½ÅÀÇ ·¹µåÇÞ 6.0 ¾ÆÆÄÄ¡ À¥¼­¹ö°¡ cgi-scripts, html, ±×¸®°í ¾ÆÀÌÄÜ(icons)¿¡ 9¸Þ°¡ ÀÌ»óÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â È®½ÅÀÌ ¼­¾ßÇÑ´Ù.

    ¿ì¼± À¥¼­¹ö Ȩµð·ºÅ丮(/home/httpd) ³»¿ëÀ» ´Ù¸¥ °÷À¸·Î ¿Å°Ü¶ó. ±×¸®°í¼­ ±× µð·ºÅ丮¿¡ ·¥ µð½ºÅ© µéÀ» ¿Ã·Á¶ó.

    mv /home/httpd/ /home/httpd_real
    mkdir /home/httpd
    mkdir /home/httpd/cgi-bin
    mkdir /home/httpd/html
    mkdir /home/httpd/icons

    ´ÙÀ½¿¡ /etc/rc.d/rc.local ÆÄÀÏ¿¡ ¾Æ·¡  ¶óÀÎÀ» Ãß°¡Ç϶ó.

    # ·¥µð½ºÅ© ÆÄƼ¼Ç ¸¸µê
    /sbin/mkfs -t ext2 /dev/ram0
    /sbin/mkfs -t ext2 /dev/ram1
    /sbin/mkfs -t ext2 /dev/ram2

    # ·¥µð½ºÅ© ¸¶¿îÆ®
    mount /dev/ram0 /home/httpd/cgi-bin
    mount /dev/ram1 /home/httpd/icons
    mount /dev/ram2 /home/httpd/html

    # ¿ø·¡ÀÇ µ¥ÀÌÅ͸¦ ·¥µð½ºÅ©¿¡ ¿Å±è
    tar -C /home/httpd_real -c . | tar -C /home/httpd -x

    #  À¥¼­¹ö Àç °¡µ¿
    /etc/rc.d/init.d/httpd restart  
    ÀÌÁ¦ rc.local ÆÄÀÏÀÇ ¼öÁ¤ È¿·ÂÀÌ ³ªÅ¸³ªµµ·Ï ÄÄÇ»Å͸¦ ¸®ºÎÆÃÇ϶ó.

    ¢º ÁÖ
    1. ÇÑ °¡Áö¸¦ ¸í½ÉÇ϶ó. ¸¸¾à ´ç½ÅÀÌ ·¥µð½ºÅ©ÀÇ ÆÄÀÏÀ» º¯°æÇÏ¿´°í, ±× ÆÄÀÏÀÌ ÇÊ¿äÇÏ´Ù¸é ¹Ýµå½Ã ¹é¾÷Ç϶ó. ±×·¸Áö ¾ÊÀ¸¸é ÄÄÇ»ÅÍ°¡ ¸®ºÎÆÃÇÏ¸é ±× ÆÄÀÏÀº »ç¶óÁø´Ù. cronÀ» »ç¿ëÇؼ­ ÇÒ ¼ö ÀÖ´Ù. ¸Å 5ºÐ¸¶´Ù üũÇÏ°Ô Çؼ­ ÆÄÀÏÀÌ º¯ÇßÀ¸¸é º¯ÇÑ ÆÄÀÏÀ» ¹é¾÷Ç϶ó. ´õ ÁÁÀº ¹æ¹ýµµ ÀÖÀ¸³ª ´õ ÀÌ»ó µé¾î°¡Áö´Â ¾Ê°Ú´Ù.

    ´Ù¸¥ ¶Ç ÇϳªÀÇ ¹æ¹ýÀº ½ÇÁ¦ÀÇ µð·ºÅ丮(·¥µð½ºÅ©°¡ ¾Æ´Ñ Çϵåµð½ºÅ©ÀÇ µð·ºÅ丮)ÀÇ ÆÄÀÏÀ» º¯°æÇÏ°í À̸¦ ·¥µð½ºÅ©¿¡ º¹»çÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌ°ÍÀÌ º¸´Ù ¾ÈÀüÇÏ´Ù.

    2. ÇÑ°¡Áö À¯³äÇÒ Á¡Àº ÇǽÃÀÇ ¸î¸î ¸¶´õº¸µå´Â 256¸Þ°¡³ª 128¸Þ°¡ ÀÌÇÏÀÇ ¸Þ¸ð¸®¸¸ ij½ÌÇÑ´Ù´Â °ÍÀÌ´Ù. ¸¹Àº ·¥À» »ç¿ëÇÑ´Ù¸é Á¶½ÉÇؾßÇÑ´Ù.

    3. ·¥µð½ºÅ©¸¦ »ç¿ëÇÏ´Â ±¦ÂúÀº ¹æ¹ý ÁßÀÇ Çϳª´Â  1±â°¡ÀÇ ¸Þ¸ð¸®¸¦ °®´Â ÄÄǪÅÍ¿¡¼­ 256¸Þ°¡¸¦ /tmp µð·ºÅ丮¿¡ ÇÒ´çÇϴ°ÍÀÌ´Ù.
    ¸¸¾à ¸¹Àº ÇÁ·Î¼¼½º°¡ /tmp ¸¦ »ç¿ëÇÑ´Ù¸é ÀÌ´Â ½Ã½ºÅÛ ¼Óµµ¸¦ Çâ»ó½ÃÄÑ ÁØ´Ù. ¶ÇÇÑ /tmpÀÇ ¸ðµç ÆÄÀÏÀº ¸®ºÎÆýà »ç¶óÁö¹Ç·Î Àû´çÇÏ´Ù.

    4.  Ã³À½¿¡´Â ³ª´Â ·¥µð½ºÅ© µéÀÇ Å©±â¸¦  lilo.conf¿¡¼­ ÁöÁ¤ÇÏ·Á°í Çß¾ú´Ù. ±×·¯³ª ¿©ÀÇÄ¡ ¾Ê¾Ò´Ù. Rob Funk°¡ ³»°Ô ¿Ö ¾î·Á¿î ¹æ¹ý(Ä¿³Î Àç ÄÄÆÄÀÏ µî)À¸·Î ÇÏ´À³Ä°í ÁöÀûÇßÀ» ¶§ ´Ù½Ã ½ÃµµÇØ º¸¾Ò´Âµ¥ ¼º°øÇß´Ù. ¿Ö óÀ½¿¡´Â ¾ÈµÇ¾ú´ÂÁö ¾Ë ¼ö°¡ ¾ø´Ù.

    Rob¿¡°Ô °¨»çµå¸°´Ù.

    Copyright (c) 1999, Mark Nielsen
    Published in Issue 44 of Linux Gazette, August 1999




¡ã top

homeÀ¸·Î...