centos7下做内存盘的方法
在找這個(gè)資料的時(shí)候,基本沒幾個(gè)能用的或者過時(shí)了的,或者是換了概念,做的不是需要的那種盤,只有少數(shù)文章有提到關(guān)鍵部分應(yīng)該怎么去操作,現(xiàn)在還是自己總結(jié)一下
內(nèi)存盤tmpfs和ramdisk的區(qū)別
這個(gè)在網(wǎng)上的很多資料里面都有提到,很多文章去寫怎么做ramdisk的時(shí)候,都是去做的tmpfs,兩者雖然都是使用的內(nèi)存來存儲(chǔ)東西,但是是完全有區(qū)別的
tmpfs這個(gè)只需要mount掛載就可以分配一個(gè)目錄使用內(nèi)存了,只是一個(gè)目錄
ramdisk這個(gè)是真的分配一個(gè)空間,這個(gè)分區(qū)是可以格式化的(這個(gè)格式化是關(guān)鍵)
tmpfs卸載再掛載數(shù)據(jù)會(huì)消失,ramdisk卸載再掛載數(shù)據(jù)還在
二者共同點(diǎn)是,系統(tǒng)重啟后,里面的東西會(huì)消失
本文章主要是講怎么去做ramdisk
ramdisk是依賴于內(nèi)核模塊brd的,首先可以查看下這個(gè)模塊的信息
[root@lab8106 src]# modinfo brd
filename: /lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/brd.ko
alias: rd
alias: block-major-1-*
license: GPL
rhelversion: 7.1
srcversion: F38BA5B60FC8B94786C7907
depends:
intree: Y
vermagic: 3.10.0 SMP mod_unload modversions
parm: rd_nr:Maximum number of brd devices (int)
parm: rd_size:Size of each RAM disk in kbytes. (int)
parm: max_part:Maximum number of partitions per RAM disk (int)
默認(rèn)是不加載的,需要加載這個(gè)模塊
[root@lab8106 src]# modprobe brd
加載模塊后就會(huì)生成下面的的盤符路徑,這個(gè)就是內(nèi)存盤
[root@lab8106 src]# ll /dev/ram*
brw-rw---- 1 root disk 1, 0 Jan 14 00:43 /dev/ram0
brw-rw---- 1 root disk 1, 1 Jan 14 00:43 /dev/ram1
brw-rw---- 1 root disk 1, 2 Jan 14 00:42 /dev/ram2
brw-rw---- 1 root disk 1, 3 Jan 14 00:42 /dev/ram3
這個(gè)的默認(rèn)大小是16M,設(shè)備的數(shù)目是16個(gè),這個(gè)顯然是不符合我們的需求的
這個(gè)個(gè)數(shù)信息和大小信息是寫在內(nèi)核模塊里面的,這個(gè)目前還找到辦法在外面修改的地方(已經(jīng)找到了見本文補(bǔ)充),現(xiàn)在通過修改內(nèi)核模塊的方式來達(dá)到修改的目的
獲取內(nèi)核源碼
CentOS-7-x86_64-1503-01版本的內(nèi)核是3.10.0-229.el7.x86_64,這個(gè)最好是使用的對(duì)應(yīng)版本的內(nèi)核代碼,這樣不會(huì)出現(xiàn)其他的問題,下載該distribution版本的內(nèi)核源碼,拷貝到根目錄:
http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2.el7.src.rpm
安裝該源碼包
[root@lab8106 ~]# rpm -i kernel-3.10.0-229.1.2.el7.src.rpm
安裝完了以后,這個(gè)rpm包里面的源碼會(huì)被放在 ~/rpmbuild/SOURCES/ 這個(gè)目錄內(nèi),源碼文件是linux-3.10.0-229.1.2.el7.tar.xz
編譯內(nèi)核源碼
將linux-3.10.0-229.1.2.el7.tar.xz 文件拷貝到目錄 /usr/src/zp 下
這個(gè)是你自己定義一個(gè)編譯的目錄
解壓內(nèi)核源碼
[root@lab8106 zp]# tar -xvf linux-3.10.0-229.1.2.el7.tar.xz
[root@lab8106 zp]# cd linux-3.10.0-229.1.2.el7/
清理編譯環(huán)境的狀態(tài),如果你是下載的內(nèi)核源碼,而且是第一次編譯,就沒有必要執(zhí)行這一步操作
[root@lab8106 ~]# make mrproper
將已存在的./.config文件內(nèi)容,作為新版本內(nèi)核的默認(rèn)值
[root@lab8106 ~]# make oldconfig
配置內(nèi)核的參數(shù),修改ramdisk的相關(guān)屬性
在內(nèi)核配置菜單中配置ramdisk塊驅(qū)動(dòng)模塊的個(gè)數(shù)和大小,并保存退出
Device Drivers
|-->Block devices
|--> [M]RAM block device support
(xx) Default number of RAM disks
(xx) Default RAM disk size(kbytes)
如果內(nèi)存夠大,可以修改大點(diǎn),注意這個(gè)地方是每個(gè)內(nèi)存盤的大小
編譯內(nèi)核模塊
[root@lab8106 zp]# make modules -j8
編譯后的Ramdisk模塊的存放位置
/usr/src/zp/linux-3.10.0-229.1.2.el7/drivers/block/brd.ko
安裝新的brd.ko模塊
將舊的brd.ko模塊從內(nèi)核中移除。
[root@lab8106 zp]# rmmod brd
將新的brd.ko模塊拷貝到Centos7系統(tǒng)的 如下目錄/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/,
覆蓋原來的ramDisk模塊brd.ko
更新內(nèi)核模塊依賴
[root@lab8106 zp]# depmod -a
8、重新掛載內(nèi)核模塊。 如果加載的時(shí)候報(bào)錯(cuò)就強(qiáng)制加載 modprobe -f brd
[root@lab8106 zp]# modprobe brd
檢查是否生成了
[root@lab8106 zp]# ls /dev/ram*
然后就可以使用/dev/ram*這個(gè)設(shè)備了,當(dāng)磁盤一樣使用
我的為測(cè)試環(huán)境,內(nèi)存不是那么大,就是5G內(nèi)存盤,4個(gè),做對(duì)比測(cè)試,ceph默認(rèn)的5G的journal,這個(gè)內(nèi)存就稍微給大那么一點(diǎn)點(diǎn)6G,防止單位換算的原因造成空間不夠,需要重來
補(bǔ)充
在線添加內(nèi)存盤操作
modprobe brd rd_nr=2 rd_size=2048000 max_part=0
說明:
rd_nr:ramdisk的個(gè)數(shù)
rd_size:ramdisk的大小
max_part:ramdisk單個(gè)分區(qū)的最大個(gè)數(shù)
在線卸載內(nèi)存盤的操作
modprobe -r brd
如果需要開機(jī)自啟動(dòng):
vim /etc/modules-load.d/memdisk.conf
添加需要加載的模塊
brd
vim /etc/modprobe.d/memdisk.conf
添加給定相關(guān)參數(shù)
options brd rd_nr=2 rd_size=2048000 max_part=0
變更記錄
| Why | Who | When |
|---|---|---|
| 創(chuàng)建 | 武漢-運(yùn)維-磨渣 | 2016-01-14 |
| 修改添加方案 | 武漢-運(yùn)維-磨渣 | 2016-09-22 |
這篇文章基本都是參考了:
http://my.oschina.net/u/658505/blog/544547?fromerr=wWO13oYJ
總結(jié)
以上是生活随笔為你收集整理的centos7下做内存盘的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 央视:主流国产机已切换Type-C 我国
- 下一篇: 史玉柱时隔3年再露面:游戏是长青行业 喜