�����linux��ʹ�� Ramdisk

ArticleCategory: [Choose a category for your article]

Applications

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Mark Nielsen

en to chinese wang zhuohao 

AboutTheAuthor:[A small biography about the author]

����(home page)��Ϊ800linux.com��ְԱ��רҵ���ʹ�����The Computer Underground, Inc. �ڹ���֮��, �μ�־Ը����֯,дһЩ�����ڴ����µ��ĵ������ĵ����� Nedit �� ispell�༭�ġ�

Abstract:[Here you write a little summary]

��ƪ���½�չʾ���ʹ�� RAM ��Ϊ����Ӳ�̡�

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

RamDisk���

����һ��������RedHat 6.0ϵͳ����ν���һ��RamDisk�����¡����������ķ��а汾�������ҲӦ������ʶ�ġ�

ʲô��RamDisk? һ��A RamDisk ��������һ��Ӳ�̷�����һ�����ڴ�ռ䡣���߻��仰˵�����ǰ��ڴ����Ϊһ��Ӳ��������������������������洢�ļ���Ϊʲô����Ҫʹ�� RamDisk? �õģ������֪��ͨ����Ҫʹ�õ��ļ��DZ������ڴ�����߼���������ܣ���Ϊ�ڴ�Ĵ洢�ٶ�Ҫ����Ӳ�̡� ����������web�������ϵ����ݾͿ��������������߷����ٶȡ������е��޴��ģ���������һ̨PII550�����������1G���ڴ�ռ��500M��Ӳ�̣���Ҳ���������ַ���������������Ӳ�̿ռ䡣 ���ߣ���Ҳ������һ�����̵Ļ�������û�б������Ϊ�����ˡ�

������һЩ���Եõ���������Դ��

  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

���ʹ��RamDisk

OK��ʹ��ramdisk��һ���ܼ򵥵��¡����ȣ�RedHat6.0��Ĭ�ϰ�װ��֧��ramdisk��������Ҫ���ľ��Ǹ�ʽ��һ��ramdisk���Ұ������ڵ�һ��Ŀ¼�ϡ��г����п��õ�ramdisk�á�ls -al /dev/ram*������ͻ��г������п��õ�ramdisk����Щramdisk���������ڴ棬���ǽ��и�ʽ����һ�������������һ��ʹ��ramdisk�����ӡ�

# create a mount point:
mkdir /tmp/ramdisk0
# create a filesystem:
mke2fs /dev/ram0
# mount the ramdisk:
mount /dev/ram0 /tmp/ramdisk0

���������Ϊramdisk����һ��Ŀ¼����ʽ��ramdisk�������ļ�ϵͳ�������Ҽ������ramdisk��"/tmp/ramdisk0". ��������Խ����Ŀ¼����һ������ķ�����ʹ��������ʹ��������Ŀ¼һ����
�����ramdisk�ĸ�ʽ��ʧ�ܣ��Ǿ�������ں˲�֧��ramdisk�����ں�����ѡ���� CONFIG_BLK_DEV_RAM .

ramdisk��Ĭ�ϴ�С�� 4Mb=4096 blocks. �������mke2fs��ʱ������Կ������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

ִ��df -k /dev/ram0 ��ʵ�����˶��ٿռ䣺

>df -k /dev/ram0
Filesystem  1k-blocks  Used Available Use% Mounted on
/dev/ram0        3963    13      3746   0% /tmp/ramdisk0

��ô�鷳��ʲô�أ���ϵͳ����������ʱ�򣬽�ˢ��������򡣲�Ҫ���κ�û�п��������ݷ�������������������Ŀ¼�������޸ģ�������Ҫ������Щ�޸ģ���ȡһЩ�취���б��ݡ�

�ı� ramdisks �Ĵ�С

Ҫ��ʹ��ramdisk�������ǵõ��ں˵�֧�ֻ�����ģ�����ʽ�������ص�ϵͳ�С������ں˵�����ѡ���� CONFIG_BLK_DEV_RAM . ��ramdisk�����һ���ɼ��ص�ģ��ĺô���������ڼ���������ȷ��ramdisk�Ĵ�С��

Okay, ��һ���취����lilo.conf�ļ��м�����һ�У�
   ramdisk_size=10000 (or ramdisk=10000 for old kernels)
��������ʹ��lilo������������������֮��ramdisk��Ĭ�ϴ�С������10M������һ��/etc/lilo.conf�ļ������ӣ�

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

ȷ�е�˵����ֻ��ʹ����9M��Ŀռ䣬�ļ�ϵͳҲ��ռ��һ���ռ䡣

������ģ�����ʽ����ramdiskʱ��������ڼ��ص�ʱ�����ramdisk�Ĵ�С����Ҳ����ͨ���޸�/etc/conf.modules ��ѡ��������������

options rd rd_size=10000

��������������ָ��������ismod��

insmod rd rd_size=10000

�����ǽ������ʹ��������ģ������ӣ�

  1. �ramdisk��umount /tmp/ramdisk0 .
  2. ж��ģ��(����һ�����ᵽ�Ĺ������Զ�����), rmmod rd
  3. ����ramdiskģ�鲢�Ұ����Ĵ�У��Ϊ20M��insmod rd rd_size=20000
  4. ����һ���ļ�ϵͳ, mke2fs /dev/ram0
  5. ����ramdisk, mount /dev/ram0 /tmp/ramdisk0

ʹ�� RamDisk �� webserver����.

Okay, ����һ����3��ramdisk��webserver�����ӡ��������������� RedHat 6.0 ��Ĭ�ϰ�װ�� Apache ��cgi-scripts, html, �� icons��������9M����������ʵ����һ�㡣
���ȣ��������webserver�ĸ�Ŀ¼�Ƶ�����һ���ط������Ҽ���ramdisk��

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/init.d/httpd.init (������ϵͳ����httpd�ĵط�):


	### Make the ramdisk partitions
/sbin/mkfs -t ext2 /dev/ram0
/sbin/mkfs -t ext2 /dev/ram1
/sbin/mkfs -t ext2 /dev/ram2

	### Mount the ramdisks to their appropriate places

mount /dev/ram0 /home/httpd/cgi-bin
mount /dev/ram1 /home/httpd/icons
mount /dev/ram2 /home/httpd/html

	### Copying real directory to ramdisks (the
  ### data on the ramdisks is lost after a reboot)
tar -C /home/httpd_real -c . | tar -C /home/httpd -x
  
  ### After this you can start the web-server.

ע��

  1. ���סһ���������ı������ݱ���������ݡ���ϵͳ��������ʱ�����еı仯��ʧȥ��
    Ӧ������һ��cron���̡�ʹ��ÿʮ����ʱ���һ���ļ��Ƿ��б䶯�����ұ�����Щ�Ķ�����һ�ֿ����������ʵ��Ŀ¼�����˸Ķ�������Ҫ������Щ�䶯��ramdisk��������Ҳ������ȫ��
  2. һ���dz������������һ����1G�ڴ�ļ�������ҽ����е�256M��Ϊ"/tmp". ������кܶ�Ľ���ʹ��"/tmp"����������������ϵͳ�ٶȡ�ͬʱ��/tmpĿ¼�еĶ�������ϵͳ����������ʱ��ɾ���������һ�����¡�
  3. Linuxʹ������û�б�����ʹ�õ��ڴ���Ϊһ�����棬���ҵľ���������ramdisk������������ٶȡ�