问题描述
我已经阅读了很多关于此的文章,但是我仍然不确定正确的方法,假设:
-
我有一个默认的Ubuntu 14.04 LTS VM,它由Azure创建并在Azure上运行,并且没有交换
-
我想使用现有的VM存储创建交换,而不是使用其他存储创建新磁盘
我读过的帖子:
-
https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-how-to-inject-custom-data/
-
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1374166
讨论了许多解决方案,但我似乎找不到能在服务器重新启动后持续存在的解决方案(可能是由于cloud-init具有有关映像分区的独立想法),有人可以建议我采取最佳做法吗?
最佳办法
假设您已安装Linux代理。您要做的就是在/etc/waagent.conf下启用交换。这些是相关的行:
ResourceDisk.Format=y # Format if unformatted. If 'n', resour$
ResourceDisk.Filesystem=ext4 # Typically ext3 or ext4. FreeBSD image$
ResourceDisk.MountPoint=/mnt/resource #
ResourceDisk.EnableSwap=y # Create and use swapfile on resource d$
ResourceDisk.SwapSizeMB=2048 # Size of the swapfile.
它将自动使用资源磁盘(每个VM随附)来创建交换。无需为其创建磁盘。
更新:您还需要执行以下步骤以创建交换文件:
umount /mnt
service walinuxagent restart