我需要在没有 VT 扩展的 x86-64 Debian 挤压机上托管 ssh 服务器:(
我正在将 virtlib 与 qemu 一起使用(设置并工作)。
我尝试了很多事情,但都不完美,所以我希望借鉴你的经验。
我习惯于使用基于 Debian 的 Linux 发行版,因此坚持使用它们是可取的,但绝不是关键。
到目前为止,我已经尝试过在没有桌面、X 等的情况下进行 x86_64 挤压。但速度慢得令人痛苦。如果我ps aux
在任何时候,都有大量进程在运行,其中大多数都处于空闲状态,但仍然如此。
我还在 i686 qemu 模式下尝试过 i386dammsmalllinux,一旦 Fluxbox 和 X 被终止,它的速度就足以满足我的需要,但删除桌面充其量只是一个糟糕的黑客。我把它简化为只有少数必要的流程,这很好。
所以我的问题是是什么让 DSL 更快,它是内核 2.4 并且安装 Woody (Debian 3.0) 会产生类似的结果吗?或者它运行的是 x86-32(在 64 位主机上)还是其他什么东西。
如果这是你的系统你会做什么?您对默认情况下没有 UI 的轻型发行版有什么建议吗?
答案1
Qemu 不是适合这项工作的工具。 Qemu 模拟整个计算机,包括 CPU。这对于在虚拟硬件与主机硬件不同的情况下运行虚拟机很有用,但这不是必需的。
此外,模拟 amd64 CPU 可能比模拟 i386 CPU 慢。仅此一点就可以解释 Debian/amd64 和 DSL/i386 之间的差异。额外的进程会增加启动时间,但对之后的性能没有影响(空闲进程消耗内存,但根据定义没有 CPU 时间)。
要在 Linux 上运行 Linux,正确的工具是专门的 Linux-on-Linux 虚拟化技术,例如LXC,Linux虚拟服务器,开放VZ或者用户态Linux。维基百科和Linux 内核新手有比较页面可以帮助您做出选择。
答案2
慢得令人痛苦可能与您的 I/O 有关。我发现通过告诉 libvirt 使用 virtio 可以解决这个问题。验证我的:
# virsh list
Id Name State
----------------------------------
11 ca running
13 new_box running
.....
# virsh dumpxml ca|awk '/disk/,/<\/disk>/'
<disk type='block' device='disk'>
<driver name='qemu'/>
<source dev='/dev/xen02/ca.root'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<disk type='block' device='cdrom'>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
您可以在安装时执行此操作,或者通过编辑现有的 VM 定义来执行此操作,这会稍微麻烦一些。看一下这
答案3
几天前,我刚刚在工作中构建了一个 ssh 虚拟机,与您想要构建自己的虚拟机的原因相同。实际上,它用于私有地址上本地工作站的出站 ssh 转发以及入站 ssh 代理。
我刚刚使用了 debian squeeze(最小基本安装,没有 X。唯一不寻常的事情是 libpam-ldap 通过大学的 Active Directory 服务器进行身份验证......当然还有 /etc/security/access.conf 的正确配置,这样只有我的教职人员中的用户可以登录,并且并非其他教职人员中的某个白痴在其 OU 中创建的每个测试/测试帐户也设置了 sshd_config,以便仅允许从本地网络进行密码登录,而从其他任何地方进行的连接都需要。一个公钥和 iptables 最近的匹配规则来过滤掉不间断的 ssh script-kiddie 探针)
VM是512M(可能比实际需要的多),以及virtio磁盘和网络驱动程序。性能完全可以接受。它只分配了 1 个 CPU,如果使用量高于当前预测(几十个学者和研究生),我可能需要添加更多。
“慢得令人痛苦”是指当您在 virt-manager 中查看 VNC 控制台时吗?
如果是这样,那就是一个已知的错误 - virt-manager 的 VNC 性能很糟糕。 VM 本身很好,ssh 进入它以正常速度运行,来自任何其他 VNC 客户端的 VNC 连接都很好,但使用 virt-manager 内置的 VNC 控制台令人难以忍受......您可以看到屏幕上出现单个字符输出文本时一次一个。