測試組裡一個同學負責MapR的搭建,MapR文檔中建議每個節點上至少有24GB的swap分區,不知道MapR為啥會有這種反人類的建議……swap無非就是一塊順序讀寫的磁盤空間,莫非省著內存不用,用swap能提高效率?也許它用swap來存map-reduce的臨時文件?
可是既然這麼建議了,只好照辦,畢竟我們對MapR也不熟悉。
要讓OpenStack的實例中有swap分區,可以在鏡像中加,但是很麻煩,而且也不好弄個幾十GB的swap,那樣鏡像會很大。
另外一種方法如下:
1. 安裝必要的軟件
我們的精簡的CentOS中沒有mkfs.ext4和parted,所以要安裝e4fsprogs和parted,一般的centos中都已經安裝了。設置好軟件源:
# yum update
# yum install parted
# yum install e4fsprogs
2. 創建分區和文件系統
實例中的vda是openstack提供的root文件系統,裝著系統,所以只能對vdb,也就是ephemeral storage 進行分區並創建文件系統:
# parted /dev/vdb --script "mktable gpt"
# parted /dev/vdb --script "mkpart primary 1024KB 48GB"
# parted /dev/vdb --script "mkpart primary 48GB -1"
# ls /dev | grep vdb
# mkswap /dev/vdb1
# mkfs.ext4 /dev/vdb2
這裡ephemeral disk(vdb)在flavor中設的是500GB,給swap分了 48GB.,剩下的給了vdb2.
3. 修改fstab
將/etc/fstab改為如下內容:
/dev/vda / ext4 defaults 0 0
/dev/vdb1 swap swap defaults 0 0
/dev/vdb2 /opt ext4 defaults 0 0
重啟實例或者mountall一下,就可以了。
用free查看一下swap是否為48GB