创建Swap提示swapon: /home/swap: swapon failed: 不允许的操作
OpenVZ架构的虚拟服务器不支持添加Swap虚拟内存,创建Swap提示:
swapon: /home/swap: swapon failed: 不允许的操作
遇到这种情况,只能联系主机商解决,需要在母机上操作:
vzctl set 33 --swappages 0:1024M --save
所以,如果购买OpenVZ架构的虚拟服务器,最好先问清楚是否支持Swap,当然,Swap并不是必须的。
另外,作为用户,没有母机的管理权限,可以通过以下方法添加好看却没啥用的Swap。
创建swap.sh脚本:
vi /home/swap.sh
写入内容:
#!/bin/bash
SWAP="${1:-512}"
NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"
umount /proc/meminfo 2> /dev/null
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo
给脚本添加可执行权限:
chmod +x /home/swap.sh
运行脚本:
/home/swap.sh
此时,通过以下命令可以看到Swap了:
free -m
重启主机后会消失,可以添加开机启动项,编辑以下脚本:
vi /etc/rc.d/rc.local
在这个文件的最后添加脚本路径:
/home/swap.sh
Centos7中/etc/rc.d/rc.local的权限被降低了,所以还需要添加执行权限:
chmod +x /etc/rc.d/rc.local