歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 在Linux下使用RamDisk

在Linux下使用RamDisk

日期:2017/2/27 14:19:39   编辑:更多Linux
  一、什麼是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將會在系統重新啟動時被刪除,多麼惬意呀。



Copyright © Linux教程網 All Rights Reserved