Linux RAM磁盘:在RAM中创建文件系统

时间:2020-01-09 10:40:08  来源:igfitidea点击:

软件RAM磁盘使用主内存中的普通RAM,就像它是硬盘驱动器上的分区一样,而不是实际访问通常用于辅助存储(如硬盘)的数据总线。
如何在RAM磁盘上创建和存储Web缓存,以提高在Linux操作系统下加载页面的速度?
您可以按如下方式创建" ram磁盘"(8192 = 8M,无需将ramdisk格式化为日记文件系统):

# mkfs -q /dev/ram1 8192
# mkdir -p /ramcache
# mount /dev/ram1 /ramcache
# df -H | grep ramcache

输出示例:

/dev/ram1              8.2M   1.1M   6.7M  15% /ramcache

接下来,将镜像或缓存对象复制到/ramcache

# cp /var/www/html/images/*.jpg /ramcache

现在,您可以编辑Apache或squid反向代理以使用/ramcache映射到images.example.com:

<VirtualHost 1.2.3.4:80>
     ServerAdmin [email protected]
     ServerName images.example.com
     DocumentRoot /ramcache
     #ErrorLog /var/logs/httpd/images.example.com_error.log
     #CustomLog /var/logs/httpd/images.example.com_access.log combined
</VirtualHost>

重新加载httpd:

# service httpd reload

现在,所有对images.example.com的点击都将通过ram提供。
这样可以提高加载页面或镜像的速度。
但是,如果服务器重新启动,所有数据将丢失。
因此,您可能需要编写/etc/init.d/脚本将文件复制回/ramcache。
创建一个名为initramcache.sh的脚本:

#!/bin/sh
mkfs -t ext2 -q /dev/ram1 8192
[ ! -d /ramcache ] && mkdir -p /ramcache
mount /dev/ram1 /ramcache 
/bin/cp /var/www/html/images/*.jpg /ramcache

从/etc/rc.local调用它,或在/etc/rc3.d/中创建软链接

# chmod +x /path/to/initramcache.sh
# echo '/path/to/initramcache.sh' >> /etc/rc.local

关于tmpfs的注释

2.4或更高版本的Linux内核支持tmpfs。

tmpfs(也称为shmfs)与Linux ramdisk有点不同。
它动态分配内存,并允许将较少使用的页面移至交换空间。
相反,ramfs不使用交换,这在许多情况下可能是有利或不利的。
了解如何在Linux下使用tmpfs。