13

实验室有一台高性能服务器是一种什么样的体验?

 3 years ago
source link: https://blog.cugxuan.cn/2020/12/20/Linux/ubuntu-remote-desktop-by-multi-users/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Linux 和 Windows 不同,它本来就是可以多用户同时登陆的操作系统。多用户同时通过 SSH 命令登陆服务器已经是司空见惯的事情,但同时登陆自己的桌面,却并不能直接达成。我们给 Ubuntu 配置了可以多用户同时登陆桌面使用而且互不干扰的功能。

介绍一下配置方法和对于实验室服务器使用方式的一点思考。

computers

实验室有一台高性能服务器是一种什么样的体验?

实验室最近新配了一台服务器,配置很强,具体如下:

  • 2 枚至强 10 核处理器
  • 4 条三星 2933MHz 的 32G 内存
  • 4 块 24G 显存的 3090 显卡
  • 1 块 500G 的固态硬盘
  • 1 块 4T 的数据盘
  • 系统版本是 Ubuntu 18.04.5 Desktop
server

默认源下载的话速度比较慢,首先更换成清华的镜像源

$ sudo gedit /etc/apt/sources.list

将原来的文件内容删掉,然后修改为以下内容

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

安装 xrdp

首先安装 xorgxrdp

// 更新一下软件包的信息
$ sudo apt update
$ sudo apt install xorgxrdp
// 此时可能会遇到报错
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
xorgxrdp : 依赖: xorg-video-abi-23
依赖: xserver-xorg-core (>= 2:1.18.99.901)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
// 安装 xserver-xorg-core 来更新版本
$ sudo apt install xserver-xorg-core
// 然后安装需要的其他组件
$ sudo apt-get install xorgxrdp xserver-xorg-input-all xorg xrdp dbus-x11 x11-xserver-utils

这个时候可以重启一下服务器(不重启应该也没有问题)

编辑配置文件

$ sudo gedit /etc/xrdp/startwm.sh

把最后两行注释之后加入一行 gnome-session,改好之后文件最后几行如下

#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession

gnome-session

开启端口并且重启服务

// 开启防火墙
$ sudo apt install ufw
$ sudo ufw allow 3389
// 重启服务
$ sudo ufw restart
$ sudo service xrdp restart

至此就完成了服务器在远程桌面的配置

配置完成之后需要给同学创建对应用户,打开右上角用户设置,点击用户名,选择账户设置,然后点击解锁,输入密码即可

unlock

点击添加用户,按需创建账号即可

create-user

Windows

键盘按 Win + R 打开命令输入框,输入 mstsc,打开远程桌面,输入局域网内的 ip 地址,然后确认之后输入创建的账号密码即可连接

win-connect

官网文档 推荐去 App Store 安装,但是国内账号并不能搜索到这个应用,文末放了一个我找的安装包。

安装软件之后,点击添加,输入 ip 地址即可(也可以直接创建自己的账号,以后连接就能不输入账号密码)

mac-connect

常用软件安装

由于是多人使用,仅仅安装了一下大家常用的软件,PyCharm,Clion,Goland,VSCode,Chrome

安装完成之后,点击软件列表,每个用户都可以在「全部」中找到

$ sudo snap install clion --classic
$ sudo snap install goland --classic
$ sudo snap install pycharm-community --classic
$ sudo snap install chrome --classic
$ sudo snap install vscode --classic

平时大家都是拿 U 盘拷贝代码和数据在服务器旁边跑实验,对于服务器的利用不够高效,如果有人正在使用,那么其他人需要等到别人跑完了实验才能抢占到使用机会,而服务器本身就有 4 块 GPU,可以并行跑不同的任务。

而大多数人都习惯了图形化界面的运行,如果要进行繁多的配置,对于大多数对 Linux 不太熟悉的同学来说成本较高,于是我们折腾了多用户同时使用远程桌面方法。

实验室里面多数人使用的 Windows 的系统,还有一些人使用的是 Mac 的系统,但是大家的学习内容很多时候需要使用 Linux 系统来进行实验,比如学 CPP 的同学在实践网络编程,大多数人没有台式机,使用自己的笔记本电脑,Windows 带的子系统还有一点点的功能缺失,使用虚拟机又会占用较多内存,所以直接在远程桌面上实践操作进行也是一种很不错的选择。

其实按照理想型的方式来说,直接 SSH 远程运行当然更好,更加节省资源。Jetbrain 家的 IDE 和 VSCode 早就支持了 SSH 连接的方式,设置对应的拷贝目录,将源文件拷贝到远程的服务器,然后进行编译运行,同时也可以断点调试,这可能是我所认为的最佳的实践方式。对于 Clion 如何远程编译调试,我之前也配置了一遍,在继续网络编程的学习之后会发新的文章总结。

首先说说内存管理,由于实验室人数不少,挂载在 /data 目录下,在跑机器学习实验的时候如果大家把数据都放到 /home 下,不用多久后面的人就没有办法继续跑实验了,所以得告诉大家,把数据扔到 /data 下面建立自己的文件夹。

虽然已经配置成功,但是仔细的同学可能会发现上面我没有提到 Python 的环境。一般来说大家的项目版本都不尽相同,为了避免因为公共的 Python 环境改变而对已有的项目管理造成影响,尽管 Anaconda 可以区分不同的环境,但考虑过后还是没有统一安装,推荐大家自行安装 MiniConda 之后,在家目录下自行配置自己的环境。

我们担心有些不太熟悉的同学进行一些系统级的卸载和安装会弄坏已经有环境,在之前的一台旧服务器上可能是误操作而导致一些东西不能使用,最后重装系统。我们已经使用了几周的时间,在权限管理方面现在也没有多少经验,对于大家基本上都需要软件,管理员进行安装,给一些对 Linux 不太熟悉的人普通用户的权限,一些管理员权限,有问题多多交流。

在实验室大佬王博士的带领下,我们通过更优雅的方式使用服务器。其实文件在局域网路由器下的传输速度可能比普通的机械硬盘更快,但是很多同学可能不太熟悉 scp 以及 rsync 这样的简单命令。

我想过可以构建实验室内部的服务器使用文档,但是维护的同学可能会毕业,后续没有人继续修订,如何继续前行,总是困难很多;有想过可以每个月或者两周组织一次基本使用注意事项的交流培训课,但是也不知道大家的积极性如何,因为很多人可能并没有太大的兴趣。

但是有想法不去做,就一定不会成功,就像王博花了一两天的时间就搞定了远程桌面,行动起来也就成功了一半吧!

下面的安装包是我从互联网上搜集而来,如果侵犯了您的权益,请尽快与我联系,我会将其删除,邮箱:[email protected]


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK