在前一篇文章 Windows Azure 上 Linux VM 中的交換空間第 1 部分中,我介紹了在預設情況下, Azure IaaS鏡像庫中配置的 Linux VM 為何未配置交換空間。 該文還提供了在資源磁片 (/mnt/resource) 上配置基於檔的交換空間的一系列簡單步驟。 但是需要注意的是,當時介紹的步驟適用于已配置且正在運行的 VM。 理想情況下,人們希望在 VM 配置時自動設定交換空間,而非等到以後再手動運行一堆命令。
在配置 VM 時自動設定交換空間的訣竅是使用 Windows Azure Linux 代理 (waagent)。 大多數人隱約知道 Linux VM 中運行了一個代理,但同時又覺得它有些過於冷僻,因此會將其忽視,儘管 Azure 門戶上有關于 waagent 的詳盡文檔。 請參閱 Windows Azure Linux 代理使用者指南。 在深入討論 waagent 的詳細資訊以及如何將其用於手邊的任務之前,需要先弄明白另一點,即如果您有一個自己的自訂 Linux VM,並將其匯出作為未來用於配置 Linux VM 的可複用鏡像,這種方法效果很好。 在使用 Azure 庫中的 Linux 原始庫鏡像時,無法更改預設的waagent 功能。 這不見得是限制,因為在我認為最有用的用例方案中,我最初使用利用庫鏡像進行配置的 VM,然後針對我需要的功能進行自訂,例如,我想要標準 JAVA,而非開放 jdk JAVA;或者我可能要在 VM 上安裝編譯好的Hadoop, 以便鏡像以後可以用於多節點群集。 在這種情況下,同樣也很容易配置 waagent 以執行一些我希望通過配置過程自動完成的其他操作。
如 Windows Azure Linux 代理使用者指南中所述,可以配置代理以執行很多操作,其中包括:
資源磁片管理
格式化和安裝磁片資源
配置交換空間
通過庫鏡像配置的 VM 中已安裝了 waagent,您只需編輯其位於「/etc/waagent.conf」的設定檔,其中配置如下所示: