你真的知道如何在 ESXi 上安装 Linux 吗?

153 篇文章 16 订阅
78 篇文章 4 订阅

1.分区4K对齐以获得最佳存储性能

如果分区没有4K对齐,这对单个磁盘来说不是什么大问题,但对于共享存储来说,共享存储中的一个LUN实际上是跨越多个不同的磁盘条带化的;

所以虚拟机操作系统的一次读或写操作会导致存储阵列上的I/O翻倍(未对齐的分区会跨越条带上的数据块,所以阵列会从2个条带中读取或写入; 正常应该只会读取单个条带)
这对于一两台虚拟机来说算不上大问题,但当数百个虚拟机的I/O未对齐时,其影响就会变得很糟糕。

比如: parted 命令一不注意就容易创建出未对齐的分区,建议使用 fdisk 和 gdisk 工具来创建分区就没有此问题:

(parted) mkpart primary 0 5gb
Warning: The resulting partition is not properly aligned for best performance.
使用 parted 命令创建分区的正确方法是,创建后使用 align-check 命令验证对齐:

(parted) mkpart primary 0% 100%
(parted) align-check
alignment type(min/opt) [optimal]/minimal?
Partition number? 1
1 aligned

2.安装和使用 VMWare Tools
这是必然的,但还有很多Linux虚拟机并没有安装, 许多运维人员依旧认为 VMware-tools 是 “VMware Workstation 上的那种”,所以就抵触安装;
但实际上 ESXi 的 VMware Tools 还用于添加 “半虚拟化网络 paravirtualized network” 和 “SCSI适配器 SCSI adapters” 的驱动程序,并且添加了图形驱动程序,还支持从
vCenter 正常关机和重启虚拟机

无需多言,务必要装!
[root@localhost ~]# yum -y install open-vm-tools

3.尽可能不要安装桌面版
首先服务器不安装桌面版几乎已经成为"行业共识"(不安装桌面版还能省下不少磁盘空间)
如果你安装了桌面版(如:Xorg、KDE、GNOME 等),则桌面的屏幕保护程序会导致性能问题,此外运行"命令行模式"能够节省大量内存和CPU周期

4.计划任务 crontab 的随机延迟
系统中默认就有一些"计划任务",如: 日志旋转,mlocate数据库索引更新,系统监控任务sar…等等,再加上用户自定义的任务;
这些任务通常都是I/O密集型的,我们可以在这些任务中引入"随机延迟时间"有助于分散系统负载

在 bash 中有一个环境变量 $RANDOM , 该变量会随机生成一个 0 - 32767 之间的随机数;

比如,我最多可以接受某个任务随机等待不超过5分钟, 你可以计算 32767 ÷ 300(秒)=109
然后在 crontab 的作业文件(/etc/cron.d 或 /etc/cron.daily)中这样做:
/bin/sleep $((RANDOM/109)) # 在文件第2行中添加,即可随机延迟 0 - 300 秒

5.虚拟机应使用 NTP 而非 VMware Tools 同步时间
NTP是标准的网络时间同步协议,而使用 VMware Tools 可能会因为虚拟化开销和生命周期事件引入一些额外的系统因素,这些因素会影响计时机制,从而导致虚拟机内的时间漂移;
时间的准确性非常重要,不仅仅是为了系统日志和 crontab 程序的准确性,加密操作也依赖于系统时间

参考链接: https://kb.vmware.com/s/article/1006427

6.将磁盘调度算法设置为"noop"
noop 即 “no optimal” 不优化,因为 ESXi 本身就会对I/O做排序和优化;
操作系统应该将所有 I/O 请求都交给 hypervisor(虚拟机管理程序) 进行调度,而不是尝试自行优化,自行优化反而可能破坏更多的"ESXi全局优化"

在 /etc/default/grub 中添加:
GRUB_CMDLINE_LINUX=“crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap elevator=noop rhgb quiet”
并重新生成 grub.cfg,重启生效
[root@localhost ~]# grub2-mkconfig >/boot/grub2/grub.cfg
[root@localhost ~]# reboot
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
[noop] deadline cfq

7.如需收集虚拟机性能数据,请从 vSphere 上收集,而不要从操作系统中
因为从虚拟机内测量性能数据可能不准确,尤其是在CPU正在被"过度使用"时,也就是多台虚拟机同时抢占CPU
使用操作系统的性能测量工具时,操作系统无法得知 ESXi 使用CPU的开销; 所以要使用 vSphere 的性能测量工具

8.为虚拟机开机热添加功能,不要分配过多的资源给虚拟机
许多客户喜欢为它们的虚拟机配置"强悍的性能 16核32GB",哪怕这台虚拟机仅仅是运行一个静态的HTML网页;

正确的做法是:
1.在 vCenter 中监控 CPU 和 RAM 的利用率
2.当虚拟机确实需要更多资源时,才进行配置的增加

这种做法反而会提高性能,因为 ESXi 可以更加轻松的调度具有更少 CPU 的虚拟机,并且如果虚拟机磁盘较小还能节省交换文件磁盘空间和 vMotion 的时间,所以最好不要过度分
配"性能"
9.禁用文件系统的访问时间更新
文件系统会跟踪文件的创建、修改和访问时间; 更新上一次访问的时间的操作就会变成"额外的磁盘写入" 根据 IBM 的说法: “昂贵的I/O操作”
如果你不需要这个功能,可以选择关闭; 当然在单台 VM 上可能看不出性能的提升,但如果在数百个 VM 上就会看到性能的大幅提升

要禁用访问时间更新,在 /etc/fstab 中的文件系统条目中添加:
/dev/mapper/storage-data /data xfs defaults,noatime 0 0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GLAB-Mary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值