本人之前安装CentOS 7学习Oracle的时候,发现初始安装配置的swap小了(因为懒,全部选择的默认安装 T。T),为了不浪费时间重装一次,就去找了下如何修改swap配置。
根据度娘出来的帖子内容,fallocate 创建新swap文件之后,mkswap 也很正常,然而,swapon 出现了问题
[root@oracle ~]# swapon /swapfile
swapon: /swapfile: swapon failed: Invalid argument
这个错误是fallocate造成的,如果使用dd 来创建新swap文件,mkswap之后就没有这个问题
[root@oracle ~]# dd if=/dev/zero of=/swapfile bs=1024 count=4194304 [root@oracle ~]# mkswap /swapfile [root@oracle ~]# swapon /swapfile [root@oracle ~]# free -m total used free shared buff/cache available Mem: 3933 1524 124 48 2285 2038 Swap: 8191 16 8175
在GitHub上找到了关于这个问题的一个帖子,其中,作为fallocate的contributor,Andrew Gross也参与了讨论。https://github.com/sous-chefs/swap/issues/5
这是fallocate对于xfs支持的问题,根据Andrew Gross自己的测试,fallocate对于ext4各版本的支持都没什么问题,但是对于老版本xfs的支持则不那么好了。
然而在原帖里可以发现,实际上现在对于高版本的xfs也已经支持不那么好了,我的xfs版本如下。
[root@oracle ~]# yum list installed | grep xfs xfsdump.x86_64 3.1.7-1.el7 @anaconda xfsprogs.x86_64 4.5.0-15.el7 @anaconda
总结:
综上所述,遇到这种问题的时候,用dd吧,虽然时间是比fallocate要长一点。最好的解决办法,就是在安装和部署任何应用之前,还是把sizing提前做好吧。