微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 高效运行Linux虚拟机的六大技巧

高效运行Linux虚拟机的六大技巧

时间:10-02 整理:3721RD 点击:
  如何更高效地运行Linux虚拟机,下面推荐一些技巧和实用方法。
  Linux在企业数据中心已经盛行多年。LAMP服务、Web服务器、代理服务器、防火墙和负载平衡器,只是Linux为基本操作系统提供的几个用例。在过去十年,随着易用性的提高和文档的完善,许多Linux发行版使用量明显增加。在增长阶段,我们还将虚拟化技术引入数据中心。与此同时,在运行Linux虚拟机时要留意一些注意事项。
  逻辑卷管理
  最近许多Linux的发行版都包含逻辑卷管理(LVM)这一技术,因为它属于磁盘和分区管理,允许管理员执行大量的任务。一些分段特性——扩展或跨多个磁盘分段数据——在虚拟化的世界里可能不太普遍,用户通常是将数据存储在同一存储区域网络或数据存储区。除了这些,LVM还提供其他有趣的功能。通过启用LVM,管理员可以扩展网络文件系统,在工作中扩展不同的分区和文件系统,同时保持文件系统在线和可访问。根据严格的合规要求,LVM允许我们在没有调用vSphere所带功能的情况下执行基于卷的快照用于备份和恢复。
  我的建议是,如果在工作负载你有严格的可用性策略并利用在线调整功能,就要将LVM与虚拟机分区。如果你不需要大量的正常运行时间或不打算安装Linux在单独的分区运行,LVM的复杂性将远远大于好处,最终禁用LVM。(想学习更多可以关注公众号:华清远见)
  分区选项
  默认安装的Linux通常提示用户仅仅使用一个分区的所有文件。在某些情况下这样做没错,但当你试着调整和改善虚拟机安全性和性能时,每个文件有单独的分区如/tmp、/var、/home、/usr,这样做更有意义——特别是如果你想要每个分区有不同的安装选项。通过利用/etc/fstab文件,可以在相应的行指定适用于不同分区的安装选项,如下所示:
  UUID=0aef28b9-3d11-4ab4-a0d4-d53d7b4d3aa4 /tmp ext4 defaults,noexec 1 2
  例如Web服务器,一个最常见的用例为Linux虚拟机,我们很快就会发现一些“默认”安装选项最终破坏安全以及绩效计划。
  Noatime/atime/relatime:这些安装选项决定如何处理包含在分区文件上的时间戳。在旧的Linux发行版中,默认是“一次”,这意味着每读写一次,操作系统会为文件元数据写一个时间戳——是的,仅仅读调用次数。一直使用对外提供文件的Web服务器,你可以想象这个过程的开销。通过指定存放Web服务器数据分区上的“noatime”,你可以不更新访问时间,减轻服务器的开销。新发行版默认选项是“relatime”,它的功能很强大, 如果修改时间更新,只更新访问时间。
  Noexec/exec: 在给定的分区禁用或启用二进制文件执行。对于Web服务器的例子而言,用“noexec”安装/tmp分区的意义重大。事实上,许多硬化指南建议使用这个选项来提高安全性。
  用户更改访问时间参数时必须谨慎。一些应用程序,比如邮件相关的功能,需要一个完整的“一次”安装选项。在Web服务器的例子中,只要安全指导方针允许它访问,可以用“noatime”安装Web服务器数据。就noexec而言,明智地使用这个选项,很多自动安装程序和安装包就解压到/tmp并从那儿开始执行。它很容易打开和关闭,但我至少可以为/tmp添加noexec。
  I/O调度器
  ESXi在管理内存方面作用很大,当它属于I/O调度器并写入磁盘时,它又呈现另一种状态。此外,Linux操作系统内部重复一些这方面的功能。2.6的内核,大多数发行版已经利用Completely Fair Queuing作为默认的I/O调度器。其他可用的是NOOP,Anticipatory和Deadline。VMware只解释了如何改变这个值还有你为什么想要更改,调度两次I/O是没有意义的。简而言之,通过附加机器转换到grub内核条目,使用Linux内核的默认I/O调度器可以进行切换。
  不需要先安排操作系统再安排到管理程序。我建议使用NOOP I/O调度器,因为它没有优化磁盘I/O,并允许vSphere全权管理。
  删除未使用的硬件并禁用不必要的服务
  在过去的一年里,你有多少次在虚拟机中使用虚拟软盘和内部的电脑扬声器呢?如果你不打算使用这些设备,就把将它们拉入黑名单。删除软盘的命令如下:
  echo "blacklist floppy" | tee /etc/modprobe.d/blacklist-floppy.conf
  rmmod floppy
  update-initramfs -u
  也没有必要纠结未使用的硬件。如果你还在使用,不妨禁用任何虚拟控制台。这可以在/etc/inittab中通过如下操作实现:
  1:2345:respawn:/sbin/getty 38400 tty1
  2:23:respawn:/sbin/getty 38400 tty2
  #3:23:respawn:/sbin/getty 38400 tty3
  #4:23:respawn:/sbin/getty 38400 tty4
  #5:23:respawn:/sbin/getty 38400 tty5
  #6:23:respawn:/sbin/getty 38400 tty6
  我建议你卸掉软盘。请记住,你还必须删除虚拟机的硬件配置,并在虚拟机的BIOS禁用它。关于其他服务,你可以将它们列入黑名单,包括监视磁盘阵列配置(mptctl), pcspker, snd_pcm, snd_page_alloc, snd_timer, snd, snd_soundcore, coretemp, parport and parport_pc.
  将这些服务拉入黑名单之前,你要确保没有使用它们。同时,我总会开启几个可能用到的虚拟控制台,但开启六个就有点多了。
  这是一些运行Linux虚拟机的注意事项。考虑到性能收益,每个人应视情况而定。做出一些细微的调整,你可能会看到更多性能方面的提升和一些退化的性能。像往常一样,更改之前,要在实验室环境中进行测试。技术是不断变化的,所以通过提前测试可以达到最佳效果。如果你有任何其他技巧或建议,可以在评论中提出。(想学习更多可以关注公众号:华清远见)

顶!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top