高效运行Linux虚拟机的六大技巧分别是什么

77次阅读
没有评论

共计 3527 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章给大家介绍高效运行 Linux 虚拟机的六大技巧分别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Linux 在企业数据中心已经盛行多年。LAMP 服务、Web 服务器、代理服务器、防火墙和负载平衡器,只是 Linux 为基本操作系统提供的几个用例。在过去十年,随着易用性的提高和文档的完善,许多 Linux 发行版使用量明显增加。在增长阶段,我们还将虚拟化技术引入数据中心。与此同时,在运行 Linux 虚拟机时要留意一些注意事项。

逻辑卷管理

最近许多 Linux 的发行版都包含逻辑卷管理 (LVM) 这一技术,因为它属于磁盘和分区管理,允许管理员执行大量的任务。一些分段特性 mdash; mdash; 扩展或跨多个磁盘分段数据 mdash; mdash; 在虚拟化的世界里可能不太普遍,用户通常是将数据存储在同一存储区域网络或数据存储区。除了这些,LVM 还提供其他有趣的功能。通过启用 LVM,管理员可以扩展网络文件系统,在工作中扩展不同的分区和文件系统,同时保持文件系统在线和可访问。根据严格的合规要求,LVM 允许我们在没有调用 vSphere 所带功能的情况下执行基于卷的快照用于备份和恢复。

我的建议是如果在工作负载下,你有严格的可用性策略并利用在线调整功能,就要将 LVM 与虚拟机分区。如果你不需要大量的正常运行时间或不打算安装 Linux 在单独的分区运行,LVM 的复杂性将远远大于好处,最终禁用 LVM。

分区选项

默认安装的 Linux 通常提示用户仅仅使用一个分区的所有文件。在某些情况下这样做没错,但当你试着调整和改善虚拟机安全性和性能时,每个文件有单独的分区如 /tmp、/var、/home、/usr,这样做更有意义 mdash; mdash; 特别是如果你想要每个分区有不同的安装选项。通过利用 /etc/fstab 文件,可以在相应的行指定适用于不同分区的安装选项,如下所示:

UUID=0aef28b9-3d11-4ab4-a0d4-d53d7b4d3aa4 /tmp ext4 defaults,noexec 1 2

例如 Web 服务器,一个最常见的用例为 Linux 虚拟机,我们很快就会发现一些“默认”安装选项最终破坏安全以及绩效计划。

Noatime/atime/relatime:这些安装选项决定如何处理包含在分区文件上的时间戳。在旧的 Linux 发行版中,默认是“一次”,这意味着每读写一次,操作系统会为文件元数据写一个时间戳 mdash; mdash; 是的,仅仅读调用次数。一直使用对外提供文件的 Web 服务器,你可以想象这个过程的开销。通过指定存放 Web 服务器数据分区上的“noatime”,你可以不更新访问时间,减轻服务器的开销。新发行版默认选项是“relatime”,它的功能很强大,如果修改时间更新,只更新访问时间。

Noexec/exec:在给定的分区禁用或启用二进制文件执行。对于 Web 服务器的例子而言,用“noexec”安装 /tmp 分区的意义重大。事实上,许多硬化指南建议使用这个选项来提高安全性。

用户更改访问时间参数时必须谨慎。一些应用程序,比如邮件相关的功能,需要一个完整的“一次”安装选项。在 Web 服务器的例子中,只要安全指导方针允许它访问,可以用“noatime”安装 Web 服务器数据。就 noexec 而言,明智地使用这个选项,很多自动安装程序和安装包就解压到 /tmp 并从那儿开始执行。它很容易打开和关闭,但我至少可以为 /tmp 添加 noexec。

VMXNET3 和 PVSCSI

很长一段时间,大家都推荐在虚拟机中利用 VMXNET3 网络适配器和超虚拟化磁盘适配器。在基于 Windows 系统的虚拟机,我们可以仅仅指定这些还有利用 VMware 工具自动安装的驱动。利用这个硬件,Linux 带来了一些挑战。首先,新版的 Linux 发行版通常有自己的 VMXNET3 适配器和驱动程序,即使安装了 VMware 工具,也将它们作为默认驱动程序。

旧的 Linux 发行版可能包含一个过时的 VMXNET3 驱动版本,可能不会为你提供包含在 VMware 工具版本的完整特性集。VMware 的 KB2020567 概述如何在 VMXNET 驱动启用某些特性。如果你想在 VMware 工具安装 VMXNET3 驱动,可以在 VMware 工具安装时指定以下选项:

./vmware-install.pl  ndash;clobber-kernel-modules=vmxnet3

低成本的 CPU 想要获得一些额外的吞吐量,超虚拟化 SCSI 适配器是一个不错的方式。做出这个选择之前一定要检查所支持的操作系统列表,以确保超虚拟化 SCSI 适配器支持内核或分布。

如果可能的话,我建议管理员使用 VMXNET3 和 PVSCSI。如果使用一个旧的内核,就安装 VMware 工具 VMXNET3 版本。如果你使用一个更新的内核,在分布中使用本地 Linux 驱动程序。

内存管理

Linux 操作系统不断将存储页面从物理内存页移动到本地交换分区,这是由设计决定的。事实上,VMware 利用内存管理功能在做同样的事。但是 Linux 内存管理的行为有点不同,即使物理内存 mdash; mdash; 目前虚拟内存可用,也会移动内存页面。为了减少 Linux 虚拟机内部交换活动,我们可以调整一个“swapiness”值。更高的值表示更多的运动,而较低的值表示内存不会移动。要调整这个值,只需在 /etc/sysctl.conf   添加“Vm.swappiness=##”,重启后将“##”替换为你想要的值。

我喜欢将这个值替换成一个低于默认值 60 的数字。同时使用操作系统和 vSphere 管理你的内存交换是没有意义的。而且,这取决于应用程序,但我通常设置这个值为 15 至 20。

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 虚拟机的注意事项。考虑到性能收益,每个人应视情况而定。做出一些细微的调整,你可能会看到更多性能方面的提升和一些退化的性能。像往常一样,更改之前要在实验室环境中进行测试。技术是不断变化的,所以通过提前测试可以达到效果。

关于高效运行 Linux 虚拟机的六大技巧分别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计3527字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)