看到马哥微信公众号中有这么一篇文章《巧用tmpfs加速你的linux服务器》,有点小启发,我用它来存放keystone pki签证,还有dashboard的secret key。


我的环境:

openstack版本:icehouse

os : centos6.5 x86_64


tmpfs简介

系统启动时会将tmpfs挂载到 /dev/shm下,看这里

[root@controller1 ~]# cat /etc/fstab
tmpfs                   /dev/shm                tmpfs   defaults        0 0


tmpfs和ramdisk的区别

相同点:都可以使用RAM

不同点:tmpfs是文件系统;ramdisk是块设备,使用块设备每次都得先格式化


具体应用

[root@controller3 ~]# mkdir -p /dev/shm/tmp   # 在/dev/shm目录创建一个tmp目录
[root@controller3 ~]# chmod 1777 /dev/shm/tmp
[root@controller3 ~]# mount --bind /dev/shm/tmp /tmp  #  与实际tmp目录绑定
1   /tmp目录是keystone默认为openstack各大组件签证的目录
[root@controller1 ~]# ll /tmp/      
total 0
drwx------ 2 neutron    neutron    100 Oct  6 15:52 keystone-signing-ISneL_
drwx------ 2 glance     glance     100 Oct  6 15:52 keystone-signing-L9P1nI
drwx------ 2 nova       nova       100 Oct  6 15:52 keystone-signing-UB328h
drwx------ 2 ceilometer ceilometer 100 Oct  6 15:53 keystone-signing-Y4YIPp
drwx------ 2 ceilometer ceilometer 100 Oct  6 15:48 keystone-signing-yVI_hQ
drwx------ 2 glance     glance     100 Oct  6 15:52 keystone-signing-ZH5adK
2    horizon的LOCAL_PATH是/tmp目录
[root@controller3 ~]# vim /etc/openstack-dashboard/local_settings  # 编辑dashboard配置文件
LOCAL_PATH = '/tmp'   
[root@controller3 ~]# vim /etc/rc.local   # 避免开机失去与/tmp目录的绑定,编辑rc.local,添加如下内容
/bin/mount --bind /dev/shm/tmp /tmp

还需注意的是tmpfs数据在系统重新启动后不会保留,因为虚拟内存本质上就是易失的,所以有些数据需要保留的,还需自己写一些脚本来实现。