本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写。

在前一篇文章 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”的配置文件,其中配置如下所示:

通过如下设置,将配置文件中如上图所示的两行更改为启用交换:

设置 ResourceDisk.EnableSwap=y

设置 ResourceDisk.SwapSizeMB=5120

因此,整个过程如下:

使用库中的一个镜像照常配置 IaaS 中的 Linux VM。

通过安装或删除需要的软件组件,根据自己的喜好自定义 VM。

编辑“/etc/waagent.conf”文件以设置交换相关行,如上图所示。调整交换文件的大小(上面是将其设置为 5 GB)。

使用此处介绍的说明捕获 VM 的可复用镜像。

使用刚导出的镜像配置新的 Linux VM。这些 VM 将自动启用交换空间。

谈及Windows Azure Linux 代理,不得不说它提供的另一个有趣的功能,即通过相同配置文件“/etc/waagent.conf”中的 Role.StateConsumer 属性执行用户指定的任意脚本。例如,可以按如下所示创建一个 shell 脚本“do-cfg.sh”:

然后,在配置文件中设置 Role.StateConsumer=/home/scripts/do-cfg.sh,或将其设置为脚本路径。waagent 再在配置VM时将”Ready”信号发送给 Azure Fabric 前一刻执行脚本。它将命令行参数“Ready”传递到可以在脚本内进行测试的自定义脚本,如上图所示执行一些自定义初始化。同样,waagent 在 VM 关机时执行相同的脚本,并将命令行参数“Shutdown”传递给可以进行测试的脚本,一些自定义清理任务可以在
VM 中运行。

本文翻译自:

http://blogs.msdn.com/b/windowsazure/archive/2013/08/09/swap-space-in-linux-vm-s-on-windows-azure-part-2.aspx

Windows Azure 上 Linux VM 中的交换空间 – 第 2 部分的更多相关文章

  1. 在Windows Azure上配置VM主备切换(1)——Linux篇

    对任何一个上线系统来说,高可用设计是不可或缺的一个环节,这样才可以确保应用可以持续.稳定的运行,而不是频繁的掉线.停机.高可用设计的核心思路很简单,就是消除一切单点故障,将单点链路或者节点升级为多点. ...

  2. Windows Azure 上传 VM

    One of the great features of Windows Azure is VHD mobility. Simply put it means you can upload and d ...

  3. Azure上Linux VM误配防火墙的恢复方法

    在实际运维中,防火墙把自己挡在机器外面的情况会时有发生.如何快速的恢复对运维人员是很重要的. 本文将介绍如何用Azure Extension实现不通过ssh对VM进行操作的方法. 之前写过一遍Blog ...

  4. Azure上Linux VM防DDOS攻击:使用Apache mod_evasive

    部署在云端的虚拟机和web服务,很容易受到DoS护着DDoS的服务攻击,让一些新上线的业务苦不堪言,当然各个云服务提供商也有不同层面DDOS的防护,然而由于防护粒度,攻击复杂度的关系,未必可以满足你的 ...

  5. Azure上Linux VM DDOS攻击预防: 慢速攻击

    在上篇博客(http://www.cnblogs.com/cloudapps/p/4996046.html)中,介绍了如何使用Apache的模块mod_evasive进行反DDOS攻击的设置,在这种模 ...

  6. 运行预构建 Linux 映像的 Windows Azure 虚拟机中的交换空间 – 第 1 部分

    本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 随着基础结构服务(虚拟机和虚拟网络)近期在 Windows Azure 上正式发布,越来越多的企业工作负荷正在向 ...

  7. 在 Windows Azure 上部署预配置 Oracle VM

    Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...

  8. 在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像

     发布于 2014-12-11 作者 陈阳 FreeBSD 基础镜像现已登陆中国的 VM Depot! 对于青睐 BSD 而非 Linux 的开源爱好者来说,这无疑是个好消息.同时,随着该基础镜像 ...

  9. 如何将SQL Server运行到Windows Azure上

    从2012年6月6日开始,Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM).其中有关Windows Azure虚拟机最强大的一件事是他们利用 ...

随机推荐

  1. Android R.layout. 找不到已存在的布局文件

    今天写新页面的时候,突然发现R.layout.  无法找到我已经写好的页面,于是顿时就不淡定了. 把R文件翻了一遍  发现也没有.... 然后我就看到了这个. android.R 原来是我错把Andr ...

  2. 3.21 采购订单导入MDS

    3.21.1   业务方案描述 同一企业集团内部的不同法人之间,双方间内部往来业务频繁.受集团财务各自独立核算的要求,买方和卖方间采用买卖方式进行业务运作和财务结算. 对于买方,按照内部商定的协议价格 ...

  3. 自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的

    已经好几次了,没有这个函数还是感觉很不方便,所以自己写了一个: function LastPos(strFind :string; ch: Char): integer; var i, n: inte ...

  4. Delphi判断一个文件是不是JPG图片

    判断头几个字节: function IsJpegFile(FileName: string): Boolean; const RightBuf : ..] of Byte = ($FF,$D8,$FF ...

  5. Android LocalActivityManager的用法

    在开发中会碰到在一个activity中的局部(或者是activity的Fragment中)显示其他的activity 的内容,这时就用到了LocalActivityManager类. 假设这个容器是一 ...

  6. centos6 qt ENV

    打算做嵌入式图像处理,计划方案嵌入式Linux+OpenCV+QT,昨天简单入门OpenCV今天看看QT,QT就先弄Linux下面的,回家之前争取把基本的摸通,然后能在板子上跑起来 关于QT安装 QT ...

  7. 值得赞扬的尝试与进步——CSDN开源夏令营第一印象

    注:写这篇文章时我并未參加CSDN开源夏令营,也不确定是否会參加以及是否能參加上. 欣闻CSDN举办了"CSDN开源夏令营"活动.第一感觉是CSDN作为活动的组织者是很值得称赞的. ...

  8. 第十七周oj刷题——Problem B: 分数类的四则运算【C++】

    Description 编写分数类Fraction,实现两个分数的加.减.乘和除四则运算.主函数已给定. Input 每行四个数,分别表示两个分数的分子和分母,以0 0 0 0 表示结束. Outpu ...

  9. Pro Android学习笔记(十一):了解Intent(中)

    Intent的构成 Intent能够带有action,data(由URI表达),extra data(key/value map,键值对),指定的类名(成为component name).一个inte ...

  10. sql获取表字段名、描述和类型

    SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Description = ex.value, ColumnTyp ...