我习惯于将自己的内核用于服务器,因为它可以最大限度地减少漏洞(以及由此产生的补丁)的数量.
在传统(裸机)世界中,整个过程是关于知道你拥有什么(硬件),以及你需要什么(以太网,IPv4,iptables等).在虚拟化环境中,有些东西保持不变(仍然需要以太网)和IPv4),有些东西消失了(电源管理),然后有一些新的需求(vxnet3或vmware-tools,即使它是在内核之外编译的).
所以我的问题主要关注最后两个类别:我可以完全删除哪些内容,以及我想要的新内容?
例如,如果我的所有磁盘操作都通过另一个文件系统/调度程序/缓存到达虚拟磁盘,我想要什么IO调度程序?我是否需要启用超线程,或者VM无论如何都要向我显示它作为cpu?我是否需要打开大型接收卸载,或者是管理程序的网络驱动程序要为我做什么?