我有一个在 Microsoft Azure 上运行的虚拟 Linux 服务器。该机器有一个/dev/sdb1
安装到的磁盘/mnt
。此文件夹包含一个文件DATALOSS_WARNING_README.txt
,其内容如下:
警告:这是一个临时磁盘。
该驱动器上存储的任何数据都可能丢失,并且无法恢复。
请不要使用此磁盘存储任何个人或应用程序数据。
有关更多详细信息,请参阅 MSDN 文档: http://msdn.microsoft.com/en-us/library/windowsazure/jj672979.aspx
我想知道将 Linux 服务器的交换文件存储在这个磁盘上是否安全?或者这会导致问题吗?
答案1
在 Windows 虚拟机上,这是默认完成的。
在 Linux VM 上这也应该是安全的,除非系统预计交换文件在启动时已经存在:然后它可能会抱怨找不到它,从而无法挂载它。
在这种情况下,需要一些脚本在启动时检查交换文件是否实际存在,如果不存在则创建它;当然,所有这些都是在安装之前完成的。
Azure 可能提供了一些方法来自动管理这一点。
答案2
此磁盘上有交换文件没有问题,但请确保使用 Linux 代理来创建它。它将在资源磁盘中自动创建和管理它。
启用方法如下:
- 编辑“/etc/waagent.conf”
添加或取消注释以下行:
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.EnableSwap=y
ResourceDisk.SwapSizeMB=2048
通常只有 EnableSwap 和 SwapSizeMB 不会默认配置。保存并重新启动代理以应用。
答案3
实际上,建议添加交换空间,尤其是对于 RAM 较低的虚拟机
除了提到的其他答案之外,如果您使用 CoreOS,用于管理交换空间(和其他选项)的 waagent.conf 位于
/usr/share/oem/waagent.conf
并不是
/etc/waagent.conf
其余步骤保持不变。即修改文件中的这些选项
# Create and use swapfile on resource disk.
ResourceDisk.EnableSwap=y
# Size of the swapfile.
ResourceDisk.SwapSizeMB=4096
并使用重新启动代理
sudo systemctl restart waagent
如果你正在使用其他 Linux 发行版,你可能需要查看有关 waagent repo 的附加自述文档