知识大全 使用 RAM 作为虚拟硬盘

Posted 目录

篇首语:君不见长松卧壑困风霜,时来屹立扶明堂。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用 RAM 作为虚拟硬盘相关的知识,希望对你有一定的参考价值。

使用 RAM 作为虚拟硬盘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  RamDisk简介  这是一个关于在RedHat 系统上如何建立一个RamDisk的文章 对于其他的发行版本这个过程也应该是相识的     什么是RamDisk? 一个A RamDisk 是你用作一个硬盘分区的一部分内存空间 或者换句话说 你是把内存假设为一个硬盘驱动器 并且你在它的上面存储文件 为什么我们要使用 RamDisk? 好的 如果你知道通常将要使用的文件是被调入内存以提高计算机的性能 因为内存的存储速度要快于硬盘 这样类似于web服务器上的数据就可以用这个方法提高访问速度 或是有点愚蠢的 假如你有一台PII 计算机并且有 G的内存空间和 M的硬盘 你也可以用这种方法来增加你的你的硬盘空间 或者 你也可以做一个无盘的机器 没有比这个更为疯狂的了     以下是一些可以得到帮助的资源         /usr/src/linux/Documentation/ramdisk txt     如何使用RamDisk  OK 使用ramdisk是一件很简单的事 首先 RedHat 的默认安装就支持ramdisk 你所需要做的就是格式化一个ramdisk并且把他家在到一个目录上 列出所有可用的ramdisk用 ls al /dev/ram* 这就会列出你现有可用的ramdisk 这些ramdisk并不抢夺内存 除非进行格式化的一类操作 这里有一个使用ramdisk的例子     # create a mount point:  mkdir /tmp/ramdisk   # create a filesystem:  mke fs /dev/ram   # mount the ramdisk:  mount /dev/ram /tmp/ramdisk     这三个命令将为ramdisk创建一个目录 格式化ramdisk(创建文件系统) 并且加载这个ramdisk到 /tmp/ramdisk 现在你可以将这个目录看成一个虚拟的分区 使用它就象使用其它的目录一样   如果对ramdisk的格式化失败 那就是你的内核不支持ramdisk 其内核配置选项是 CONFIG_BLK_DEV_RAM     ramdisk的默认大小是 Mb= blocks 在你进行mke fs的时候你可以看到你的ramdisk的大小 mke fs /dev/ram 将产生类适于以下的信息     mke fs Jan for EXT FS b / /   Linux ext filesystem format  Filesystem label=   inodes blocks   blocks ( %) reserved for the super user  First data block=   Block size= (log= )  Fragment size= (log= )   block group   blocks per group fragments per group   inodes per group    执行df k /dev/ram 你实际用了多少空间     >df k /dev/ram   Filesystem k blocks Used Available Use% Mounted on  /dev/ram % /tmp/ramdisk     那么麻烦是什么呢?在系统重新启动的时候 将刷新这个区域 不要将任何没有拷贝的数据放在这个区域 如果你对这个目录进行了修改 并且需要保留这些修改 采取一些办法进行备份     改变 ramdisks 的大小  要想使用ramdisk你必须或是得到内核的支持或是以模块的形式将他加载到系统中 其中内核的配置选项是 CONFIG_BLK_DEV_RAM 把ramdisk编译成一个可加载的模块的好处是你可以在加载是重新确定ramdisk的大小     Okay 第一个办法 在nf文件中加入这一行   ramdisk_size= (or ramdisk= for old kernels)   这样在你使用lilo命令和重新启动计算机之后 ramdisk的默认大小将会是 M 这是一个/etc/nf文件的例子     boot=/dev/hda  map=/boot/map  install=/boot/boot b  prompt  timeout=   image=/boot/vmlinuz  label=linux  root=/dev/hda   read only  ramdisk_size=     确切的说 我只是使用了 M多的空间 文件系统也将占用一定空间     当你以模块的形式编译ramdisk时 你可以在加载的时候决定ramdisk的大小 这也可以通过修改/etc/conf modules 的选项设置来做到     options rd rd_size=     或是在命令行中指定参数给ismod     insmod rd rd_size=     以下是介绍如何使用这样的模块的例子     卸载ramdisk umount /tmp/ramdisk   卸载模块(再上一节所提到的过程中自动加载) rmmod rd   加载ramdisk模块并且把它的大校设为 M insmod rd rd_size=   创建一个文件系统 mke fs /dev/ram   加载ramdisk mount /dev/ram /tmp/ramdisk     使用 RamDisk 做 webserver例子   Okay 这是一个用 个ramdisk做webserver的例子 让我们设想你在 RedHat 上默认安装的 Apache 的cgi scripts 和 icons都不超过 M 这就是如何实现这一点   首先 利用命令将webserver的跟目录移到另外一个地方 并且加载ramdisk     mv /home/d/ /home/d_real  mkdir /home/d  mkdir /home/d/cgi bin  mkdir /home/d/  mkdir /home/d/icons    接下来 将这些命令加到启动进程中/etc/rc d/init d/(或者是系统启动d的地方):     ### Make the ramdisk partitions  /sbin/mkfs t ext /dev/ram   /sbin/mkfs t ext /dev/ram   /sbin/mkfs t ext /dev/ram     ### Mount the ramdisks to their appropriate places    mount /dev/ram /home/d/cgi bin  mount /dev/ram /home/d/icons  mount /dev/ram /home/d/    ### Copying real directory to ramdisks (the  ### data on the ramdisks is lost after a reboot)  tar C /home/| tar C /home/d x    ### After this you can start the web server     注释  请记住一件事如果你改变了数据备份你的数据 在系统重新启动时 所有的变化将失去   应该设置一个cron进程 使它每十分钟时检查一下文件是否有变动 并且备份这些改动 另一种可能是你对真实的目录进行了改动 所以要拷贝这些变动到ramdisk 这样做也许更安全   一个非常酷的做法是用一个有 G内存的计算机并且将其中的 M作为 /tmp 如果你有很多的进程使用 /tmp 这样做会提高你的系统速度 同时 /tmp目录中的东西将在系统重新启动的时候被删除 这可是一件好事   Linux使用所有没有被程序使用的内存作为一个缓存 但我的经历告诉我ramdisk将会更多的提高速度    cha138/Article/program/Oracle/201311/18666

相关参考