0

我有一个处理服务器(只有板载显卡,没有磁头),它连接到多个工作站服务器(带有专用显卡/2 个磁头的服务器)。有一套 opengl 应用程序我无法更改并且处理密集。我希望能够在不同的工作站服务器上移动它们,而不必重新加载这些应用程序。到目前为止,我一直无法做到这一点,我正在寻找关于这是否可能的建议。

如果我将显示器导出到工作站服务器,则在处理服务器上运行应用程序可以正常工作,但是如果不重新启动应用程序,我将无法将这些显示器移动到另一台服务器。

我已经尝试过 x11vnc 并且工作正常,但前提是它连接到当前正在运行的 X 会话。这将允许应用程序在工作站之间移动,但一个工作站始终致力于运行不受欢迎的应用程序。

我用 xfvb 尝试了 x11vnc,但我无法将它连接到显卡,所以我缺少应用程序所需的 NV-GLX 扩展。

我也尝试过使用 virtualgl 的 turbovnc,但这些应用程序似乎不适用于 virtualgl。这也需要我在工作站服务器上运行应用程序,这是不可取的。

在我看来,理想的解决方案是让处理服务器能够运行应用程序但移动导出的 DISPLAY ,但这似乎是不可能的。我看过 xmove 和 xpra 但它们似乎使用类似于 VNC 的东西,我担心我会再次遇到 NV-GLX 扩展问题。

感谢您提供的任何帮助。

4

1 回答 1

2

不,正如您所描述的那样,这是不可能的。

现在,您有一个处理服务器执行 CPU 密集型工作,而工作站服务器执行 GPU 密集型渲染。它们通过 X11 显示连接紧密耦合。Xlib 和 OpenGL 的设计都假设图形卡/屏幕不会在它们下面发生变化,这就是为什么你不能在不重新启动的情况下移动到另一个工作站的原因。

附加到现有 X 会话的 VNC 可以正常工作,因为它根本不进行任何渲染。它只是从现有窗口中读取像素并将它们复制到其他地方。

使用 xfvb,您要求 OpenGL 应用程序在不太好的软件渲染器上运行,但它拒绝这样做。(即使你可以让它工作,性能也会很糟糕。)

我会在处理服务器上安装一个像样的显卡和一个显示器,并完全在该服务器/显示器上运行 OpenGL 应用程序。使用工作站中的 x11vnc 查看结果。

于 2013-07-09T01:16:14.953 回答