ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÔÚLinuxÏÂʹÓÃRamDisk

·¢²¼Ê±¼ä:2005-11-27 22:24:09À´Ô´:ºìÁª×÷Õß:golshing
Ò»¡¢Ê²Ã´ÊÇRamDisk
¹ËÃû˼Ò壬Ram£ºÄڴ棬Disk£º´ÅÅÌ£¬RamDisk¾ÍÊÇָʹÓÃÄãµÄÒ»²¿·ÖÄÚ´æ¿Õ¼äÀ´Ä£Äâ³öÒ»¸öÓ²ÅÌ·ÖÇø¡£²»¹ýÕâÔÚÓ²ÅÌÔ½À´Ô½±ãÒ˵ĽñÌìºÃÏó²¢²»ÊǺÜÓÐÓ㬵«ÏÖÔÚÄÚ´æÒ²Ô½À´Ô½±ãÒËѽ£¬¶ÔÓÚһЩÎÒÃÇÏëÈÃÆä·ÃÎÊËٶȺܸߵÄÇé¿öÏ£¬»¹ÊÇ¿ÉÒÔÊÔÒ»ÊԵġ£

¶þ¡¢´´½¨Ò»¸öRamDisk
Æäʵ´´½¨Ò»¸öRamDiskÊÇÒ»¼þºÜ¼òµ¥µÄÊ£¬ÓÉÓÚRedHat Linux 6.0ÔÚĬÈÏ°²×°Ï¾ÍÖ§³ÖÁËRamDisk£¬ÄãÖ»ÐèÒª¸ñʽ»¯Ò»¸öRamDisk£¬²¢½«Æämountµ½Ä³Ò»¸öĿ¼ÉϾͿÉÒÔÁË¡£
1¡¢ ²éÒ»ÏÂËùÓпÉÓõÄramdisk£º
ls -al /dev/ram*
Õâ¾Í»áÁгöÄãÏÖÔÚ¿ÉÓõÄramdisk£¬ÕâЩramdiskÏÖÔÚ»¹²»Õ¼ÓÃÄڴ棬³ý·ÇÄã¶ÔËü½øÐиñʽ»¯¡£
2¡¢ ´´½¨Ò»¸öRamDisk£º
mke2fs /dev/ram0
Ö´ÐиÃÃüÁ³öÏÖÒÔÏÂÌáʾ
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Èç¹û¸Ã²Ù×÷Ö´ÐÐʧ°Ü£¬ÄÇôÓпÉÄÜÊÇÒòΪÄãµÄÄں˲»Ö§³Öramdisk£¬ÕâʱÄãÖ»ÓÐÖØÐÂÅäÖᢱàÒëÄںˡ£ÔÚÅäÖÃʱ½«CONFIG_BLK_DEV_RAMÉèÖÃΪEnable¡£
3¡¢ ½«ÆämountÉÏÀ´Ê¹Óãº
mkdir /tmp/ramdisk0 н¨Ò»¸öĿ¼
mount /dev/ram0 /tmp/ramdisk0 ½«Æämountµ½¸Õ²Åн¨µÄĿ¼ÉÏ
ÕâÑù£¬ÎÒÃǾͿÉÒÔʹÓÃÕâ¸öн¨µÄRamDisk--/tmp/ramdisk0

ÁíÍ⣬ÎÒÃÇ¿ÉÒÔÖ´ÐÐdfÃüÁîÀ´²é¿´Ò»Ï¸ÃRamDiskµÄ´óС£º
>df -k /dev/ram0
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 3963 13 3746 0% /tmp/ramdisk0
ҪעÒâµÄÒ»µãÊÇ£ºÓÉÓÚÕâ¸ö²¿·ÖÊÇÄڴ棬Òò´ËÔÚϵͳÖØÐÂÆô¶¯µÄʱºò£¬½«Ë¢ÐÂÕâ¸öÇøÓò¡£ËùÒÔ²»Òª½«ÈκÎûÓп½±´µÄÊý¾Ý·ÅÔÚÕâ¸öÇøÓò¡£Èç¹ûÄã¶ÔÕâ¸öĿ¼½øÐÐÁËÐ޸ģ¬²¢ÇÒÐèÒª±£ÁôÕâЩÐ޸ģ¬²ÉȡһЩ°ì·¨½øÐб¸·Ý¡£Ò²¾ÍÊÇ˵£¬Õâ¸öĿ¼ֻÄÜÓÃÓÚΪÁËÌá¸ß·ÃÎÊËٶȶøÔÝʱ´æ´¢Êý¾ÝµÄµØ·½¡£

Èý¡¢´´½¨´óСºÏÊʵÄRamDisk
ÉÏÃæÎÒÃÇ´´½¨ÁËÒ»¸öRamDisk£¬µ«ÊÇÎÞ·¨Ö¸¶¨´óС£¬ÏÖÔÚÎÒÃÇÀ´Ñ§Ï°ÈçºÎ´´½¨´óСºÏÊʵÄRamDisk¡£

1¡¢ ʹÓÃLILOÅäÖãº
ÎÒÃÇÔÚlilo.confÎļþÖмÓÈëÒ»ÐУº
ramdisk_size=10000 (Èç¹ûÊÇÀÏ°æÄںˣ¬Ôòдramdisk=10000)
È»ºóÔËÐÐ /sbin/lilo Éú³ÉеÄLILO¡£
ÕâÑùµ±ÄãÖØÐÂÆô¶¯¼ÆËã»úÖ®ºó£¬ramdiskµÄĬÈÏ´óС½«»áÊÇ10M¡£

2¡¢Ê¹ÓÃ/etc/conf.modulesÅäÖãº
Èç¹ûÄãµÄÄÚºËÊÇÒÔÄ£¿éµÄÐÎʽ±àÒëramdiskµÄ»°£¬ÄÇô¾Í¿ÉÒÔÔÚ¼ÓÔصÄʱºò¾ö¶¨ramdiskµÄ´óС¡£Ò²¾ÍÊÇ¿ÉÒÔͨ¹ýÐÞ¸Ä/etc/conf.modules µÄÑ¡ÏîÉèÖÃÀ´×öµ½£¬¼ÓÈ룺
options rd rd_size=10000
µ±È»Ò²¿ÉÒÔÔÚÃüÁîÐÐÖÐÖ¸¶¨²ÎÊý¸øismodÀ´ÊµÏÖ£º
insmod rd rd_size=10000

µ±Ê¹ÓÃÒÔÉÏÁ½ÖÖ·½·¨´´½¨Á˺ÏÊÊ´óСµÄramdiskʱ£¬ÎÒÃÇ»¹ÐèÒªÖ´ÐÐÒÔÏÂÃüÁîÀ´Ê¹ÓÃËü£º
mke2fs /dev/ram0
mkdir /tmp/ramdisk0
mount /dev/ram0 /tmp/ramdisk0
¶øµ±²»Ê¹ÓÃʱ£¬Ó¦Ö´ÐУº
umount /tmp/ramdisk0
ÈôÊÇʹÓÃinsmodÀ´¼ÓÔØÄ£¿éµÄ£¬Ó¦¸ÃÔÙÖ´ÐУº
rmmod rd

ËÄ¡¢Ê¹ÓÃRamDiskµÄÒ»¸öʵÀý
ÏÂÃ棬ÎÒÃÇͨ¹ýÒ»¸öʹÓÃRamdisk×öWEB·þÎñÆ÷µÄʵÀýÀ´ËµÃ÷ÆäÓ¦Óá£
1¡¢ Ê×ÏȽ«WEB·þÎñÆ÷ÒƵ½ÁíÍâÒ»¸öµØ·½
mv /home/httpd/ /home/httpd_real
mkdir /home/httpd
mkdir /home/httpd/cgi-bin
mkdir /home/httpd/html
mkdir /home/httpd/icons
2¡¢ ½«ÒÔÏÂÃüÁî¼ÓÈëµ½/etc/rc.d/init.d/httpd.initÖÐÈ¥£º
/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

ÕâÑù¾Í¿ÉÒÔÁË£¬µ«ÊÇÇë¼Çס£¬Äã¸üÐÂÊý¾Ýʱ£¬Ó¦¸üÐÂhttpd_realĿ¼£¬¶ø²»Òª¸üÐÂhttpdĿ¼£¬·ñÔòÔÚϵͳÖØÐÂÆô¶¯Ê±£¬ËùÓеĸüж¼½«¶ªÊ§¡£Äã×îºÃÉèÖÃÒ»¸öcron½ø³Ì£¬ÈÃÆä¼àÊÓhttpd_realÊÇ·ñÓиı䣬һÓиıä¾Í½«Æ临ÖƵ½ramdiskÖÐÈ¥¡£

Î塢ʹÓÃRamDisk×ö/tmpĿ¼
ÎÒ»¹ÏëÍƼöÒ»¸ö¸ü¿áµÄ·½·¨£¬Èç¹ûÄãµÄÄÚ´æÌ«¶à£¬ÄÇô¿ÉÒÔ½«ÆäÖÐÒ»²¿·Ö×öΪ/tmpĿ¼£¬ÕâÑù½«´ó´óÌá¸ßÄãµÄϵͳִÐÐËٶȡ£¶øÇÒ£¬/tmp½«»áÔÚϵͳÖØÐÂÆô¶¯Ê±±»É¾³ý£¬¶àôã«Òâѽ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ