国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Ramdisk:在linux下如何使用 RAM 作為虛擬硬盤?

2024-07-26 00:31:02
字體:
供稿:網(wǎng)友
RamDisk簡介
--------------------------------------------------------------------------------

這是一個關(guān)于在RedHat 6.0系統(tǒng)上如何建立一個RamDisk的文章。對于其他的發(fā)行版本這個過程也應(yīng)該是相識的。 

什么是RamDisk? 一個A RamDisk 是你用作一個硬盤分區(qū)的一部分內(nèi)存空間。或者換句話說,你是把內(nèi)存假設(shè)為一個硬盤驅(qū)動器,并且你在它的上面存儲文件。為什么我們要使用 RamDisk? 好的,如果你知道通常將要使用的文件是被調(diào)入內(nèi)存以提高計算機的性能,因為內(nèi)存的存儲速度要快于硬盤。 這樣類似于web服務(wù)器上的數(shù)據(jù)就可以用這個方法提高訪問速度。或是有點愚蠢的,假如你有一臺PII550計算機并且有1G的內(nèi)存空間和500M的硬盤,你也可以用這種方法來增加你的你的硬盤空間。 或者,你也可以做一個無盤的機器,,沒有比這個更為瘋狂的了。 

以下是一些可以得到幫助的資源。 

http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html 
http://metalab.unc.edu/LDP/HOWTO/mini/LILO.html 
--------------------------------------------------------------------------------
如何使用RamDisk
--------------------------------------------------------------------------------

OK,使用ramdisk是一件很簡單的事。首先,RedHat6.0的默認(rèn)安裝就支持ramdisk。你所需要做的就是格式化一個ramdisk并且把他家在到一個目錄上。列出所有可用的ramdisk用“l(fā)s -al /dev/ram*”。這就會列出你現(xiàn)有可用的ramdisk。這些ramdisk并不搶奪內(nèi)存,除非進(jìn)行格式化的一類操作。這里有一個使用ramdisk的例子。

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

這三個命令將為ramdisk創(chuàng)建一個目錄,格式化ramdisk(創(chuàng)建文件系統(tǒng)),并且加載這個ramdisk到"/tmp/ramdisk0". 現(xiàn)在你可以將這個目錄看成一個虛擬的分區(qū)。使用它就象使用其它的目錄一樣。
如果對ramdisk的格式化失敗,那就是你的內(nèi)核不支持ramdisk。其內(nèi)核配置選項是 CONFIG_BLK_DEV_RAM . 

ramdisk的默認(rèn)大小是 4Mb=4096 blocks. 在你進(jìn)行mke2fs的時候你可以看到你的ramdisk的大小。mke2fs /dev/ram0 將產(chǎn)生類適于以下的信息: 

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

執(zhí)行df -k /dev/ram0 你實際用了多少空間:


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

那么麻煩是什么呢?在系統(tǒng)重新啟動的時候,將刷新這個區(qū)域。不要將任何沒有拷貝的數(shù)據(jù)放在這個區(qū)域。如果你對這個目錄進(jìn)行了修改,并且需要保留這些修改,采取一些辦法進(jìn)行備份。

--------------------------------------------------------------------------------  
改變 ramdisks 的大小
--------------------------------------------------------------------------------

要想使用ramdisk你必須或是得到內(nèi)核的支持或是以模塊的形式將他加載到系統(tǒng)中。其中內(nèi)核的配置選項是 CONFIG_BLK_DEV_RAM . 把ramdisk編譯成一個可加載的模塊的好處是你可以在加載是重新確定ramdisk的大小。


Okay, 第一個辦法。在lilo.conf文件中加入這一行:
   ramdisk_size=10000 (or ramdisk=10000 for old kernels) 
這樣在你使用lilo命令和重新啟動計算機之后,ramdisk的默認(rèn)大小將會是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多的空間,文件系統(tǒng)也將占用一定空間。

當(dāng)你以模塊的形式編譯ramdisk時,你可以在加載的時候決定ramdisk的大小。這也可以通過修改/etc/conf.modules 的選項設(shè)置來做到。 

options rd rd_size=10000

或是在命令行中指定參數(shù)給ismod:

insmod rd rd_size=10000

以下是介紹如何使用這樣的模塊的例子: 

卸載ramdisk,umount /tmp/ramdisk0 . 
卸載模塊(再上一節(jié)所提到的過程中自動加載), rmmod rd 
加載ramdisk模塊并且把它的大校設(shè)為20M,insmod rd rd_size=20000 
創(chuàng)建一個文件系統(tǒng), mke2fs /dev/ram0 
加載ramdisk, mount /dev/ram0 /tmp/ramdisk0 

--------------------------------------------------------------------------------  
使用 RamDisk 做 webserver例子.
--------------------------------------------------------------------------------

Okay, 這是一個用3個ramdisk做webserver的例子。讓我們設(shè)想你在 RedHat 6.0 上默認(rèn)安裝的 Apache 的cgi-scripts, html, 和 icons都不超過9M。這就是如何實現(xiàn)這一點。
首先,利用命令將webserver的跟目錄移到另外一個地方。并且加載ramdisk。

mv /home/httpd/ /home/httpd_real
mkdir /home/httpd
mkdir /home/httpd/cgi-bin
mkdir /home/httpd/html
mkdir /home/httpd/icons

接下來,將這些命令加到啟動進(jìn)程中/etc/rc.d/init.d/httpd.init (或者是系統(tǒng)啟動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.

--------------------------------------------------------------------------------  
注釋
--------------------------------------------------------------------------------
請記住一件事如果你改變了數(shù)據(jù)備份你的數(shù)據(jù)。在系統(tǒng)重新啟動時,所有的變化將失去。
應(yīng)該設(shè)置一個cron進(jìn)程。使它每十分鐘時檢查一下文件是否有變動,并且備份這些改動。另一種可能是你對真實的目錄進(jìn)行了改動,所以要拷貝這些變動到ramdisk。這樣做也許更安全。 
一個非常酷的做法是用一個有1G內(nèi)存的計算機并且將其中的256M作為"/tmp". 如果你有很多的進(jìn)程使用"/tmp",這樣做會提高你的系統(tǒng)速度。同時,/tmp目錄中的東西將在系統(tǒng)重新啟動的時候被刪除,這可是一件好事。 
Linux使用所有沒有被程序使用的內(nèi)存作為一個緩存,但我的經(jīng)歷告訴我ramdisk將會更多的提高速度。 

--------------------------------------------------------------------------------
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 江孜县| 旬阳县| 阳新县| 河北区| 三江| 五峰| 涿州市| 云龙县| 南华县| 仙桃市| 新泰市| 全南县| 东山县| 万荣县| 龙胜| 建德市| 望奎县| 融水| 晋城| 监利县| 策勒县| 石狮市| 德钦县| 韩城市| 二连浩特市| 乌鲁木齐县| 随州市| 东乡县| 葫芦岛市| 嘉鱼县| 长葛市| 竹溪县| 鞍山市| 观塘区| 全州县| 昌乐县| 阿坝| 大余县| 云浮市| 外汇| 宣威市|