热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

搭建实验室多人共用GPU服务器

配置方案(1)初始需求*首先每个用户的登陆是独立的,每个用户以各自的账号密码进行登陆,并进入到对应的文件空间中去。*用户需要以一定方式进行要跑的程序的上传,并能够使用命令行的方式找

配置方案

(1)初始需求

*首先每个用户的登陆是独立的,每个用户以各自的账号密码进行登陆,并进入到对应的文件空间中去。

*用户需要以一定方式进行要跑的程序的上传,并能够使用命令行的方式找到自己上传的文件,使用服务器上的python环境跑程序。

*在具体跑程序时,每个用户需要自己独立的python环境,也就是需要提前为每个用户创建一套python环境,自己环境中需要装的模块由自己维护。

(2)需求解决

*针对每个用户登陆方式独立和独自账号密码的需求,我们使用ubuntu下多用户管理的方式创建独自的账号密码,对Ftp或SSH里的配置协议来维护用户登陆方式。

*针对文件上传和使用命令行跑程序的需求,我们使用Ftp和SSH文件传输的方案,让用户使用两个传输方式根据ip使用账号密码登陆到服务器中。

*针对于python环境独立的需求,我们使用Anaconda用每个用户创建自己独立的python开发环境,并修改每个用户的环境变量文件.bashrc来让每个用户初始进入各自的虚拟python中。

*此外每个用户每次使用Ftp/ssh进行登陆时,使用的ip得是固定的,因为学校的校网是每次开机都会随机分配ip,因为这里是申请了一个固定的ip地址和绑定的校网账号,管理员需要将这个ip地址配置到网卡上,并使用绑定的校网账号进行网络的连接。

(3)搭建方案为:Ftp+SSH+多用户管理+Anaconda,其中:

*Ftp是用于为用户提供 往服务器上上传文件和使用命令行运行程序文件的文件传输协议

*SSH是另一种进行文件传输的方案,用途与FTP相同,用户可以选择使用Ftp或者SSH方式进行登陆。

*多用户管理是指我们可以在服务器上创建、删除用户,以及修改用户权限,这样我们会为实验室每个成员创建一个用于连接服务器进行跑文件的用户,并将用户名配置到FTP配置文件中去,使得用户可以使用FTP方式进行连接。

*Anaconda:是一个很强大的python环境管理集成平台,我们可以在安装Anaconda后,使用其下的conda命令进行多环境管理,环境下的模块管理。
具体实施

前提:以下搭建和维护是我们服务器上的方案,仅做参考,个人IP信息等已修改为全0,请有选择的修改为你自己服务器的方案。

可以按照以下的思路进行环境的搭建:

(1)绑定上固定的ip地址。在‘编辑连接’中往网卡上绑定上申请的IP地址(000.000.000.000)、子网掩码(000.000.000.0)、缺省网关(000.000.000.000)、DNS(000.000.00.0),并修改/etc/network/interfaces文件进行ip的设置。

(2)进行用户管理。在Terminal上使用useradd 等命令行形式进行用户的创建,我们这里为了有利于用户进行文件的访问,每个新建的用户都需要使用usermod -G root 新用户名 的命令方式将新用户放置到root组中,使得新用户具有root权限。

(3)设置远程协议。下载和安装FTP,并用sudo gedit /etc/vsftpd.conf命令在vsftpd.conf文件中进行FTP的内部协议信息配置(进行配置很重要,可以参照网上,将用户配置到ftp的配置文件中,曾经一直调不通,之后设置listen=True后才好的),SSH的话,直接下载、安装、启动SSH服务器即可,不需要进行协议配置,这样经过网络协议搭建之后,用户就可以按照ip地址进行文件访问和跑程序了。比如:

     *比如可以在浏览器上输入 ftp://fly@000.000.000.000(举例ftp 方式)进行指定用户的文件目录访问,可以往访问的目录中放置程序。

     *可以在cmd中输入ssh fly@000.000.000.000进行命令行方式的连接

(4)创建多人开发环境。首先安装Anaconda,这里我们选择将Anaconda安装到/home目录下(因为之后我们在很多配置文件中都配置了/home/anaconda3这一行环境变量),之后开始为每个用户创建虚拟环境,使用conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境,这样我们为每个要远程连入的用户都创建一个虚拟环境,之后可以使用conda info -e命令查看现在有哪些虚拟环境,以及现在正在使用的虚拟环境(标识*号),使用source activate 用户名命令可以进行虚拟环境的切换,此时terminal下的默认python也就是所激活的python虚拟环境.
维护思路

管理的日常维护包括:

(1)创建和删除用户,创建的用户我们一般放置到root组中,让其有管理员权限,这样的话用户才能更顺畅的在自己的python虚拟环境中安装和卸载模型(因为有些模块的安装和删除需要管理员权限)。

(2)在服务器初始开机后,进行网络连接的工作,先尝试直接使用校网验证平台登陆账号XXXX 密码XXXX,看是否能够连接成功网络,如果无法连接的话,在右上角网络图标下,尝试点击ifupdown(enp5s0)手动进行连接,这样能否连接上网络,或者还不行时,点击‘启动联网’关闭联网,再点击‘启动联网’进行重启联网,看是否可以连接上。

(3)在已经连好网的情况下,当ssh不起作用不可登陆时,使用sudo service ssh restart命令对ssh服务器进行重启(因为ssh服务器一般是不需要修改配置的),当ftp方式连接不上时,一方面可以尝试修改 /etc/vsftpd.conf配置文件进行一些配置上修改的尝试,另一方面可以使用service vsftpd start命令记性重启的尝试。

(4)服务器创建新用户和anaconda中创建对应虚拟环境是配套的,每次创建新用户后,需要使用conda create…..创建新用户的虚拟环境,并在创建好虚拟环境后执行sudo chmod 777 -R /home/anaconda3命令来让每个用户都有对/home/anaconda3的访问权限(注意这个命令很重要,因为每个用户默认登陆是无法访问上级文件的,这样的设置是令其能进行访问),另外需要修改新用户内的./bashrc文件,方法是:

      *在用户大环境下(你可以先cd到用户的目录中),输入命令‘vi  .bashrc’进入当前用户的环境变量文件,在最后加入如下的代码(可以从其他用户的环境变量中复制过来),注意对虚拟环境名进行替换。

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH

export CUDA_HOME=/usr/local/cuda-8.0

export PATH=/usr/local/cuda-8.0/bin:$PATH

# added by Anaconda3 installer

export PATH=”/home/anaconda3/bin:$PATH”

. /home/anaconda3/etc/profile.d/conda.sh

conda activate 虚拟环境名

举例下面的形式

这样设置之后每个用户初始登陆默认就会进入自己的python虚拟环境中,用户自己在里面安装模块即可。

     注意:对于新建立的用户的python虚拟环境,一方面可以使用自己一个个为其安装需要的模块,另一方面可以使用克隆的方式,将其他用户的虚拟环境克隆过去,克隆命令为如下,使用如下方法直接创建一个新的即可。

    (5)不要随便在ubuntu下安装软件(曾经因为安装teamview、LDA等软件导致出现了多网卡,导致混乱),在安装软件时可以先在左侧进行查询哪些软件可以安装,在安装python模块时,可以先使用语句conda search  模块名进行模块的查找,使用这样的方法。
———————  
作者:马飞飞  
来源:CSDN  
原文:https://blog.csdn.net/maqunfi/article/details/82903155  
版权声明:本文为博主原创文章,转载请附上博文链接!


推荐阅读
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 对于希望在未越狱的iOS设备上修改Hosts文件的苹果用户来说,了解文件的具体位置和操作步骤至关重要。本文将详细介绍如何通过安装最新版本的iTunes来实现这一目标,并提供实用的操作指南,帮助用户轻松完成Hosts文件的编辑。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • ROS主机与从机之间的通信原理及机制分析
    本文深入探讨了ROS(Robot Operating System)主机与从机之间的通信原理及机制。通过分析ROS网络架构,详细阐述了节点间的通信方式、消息传递流程以及数据同步机制。此外,还介绍了ROS中常用的通信模式,如发布/订阅、服务调用和参数服务器,为开发者提供了全面的技术指导。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 西北工业大学作为陕西省三所985和211高校之一,虽然在农业和林业领域不如某些顶尖院校,但在航空航天领域的实力尤为突出。该校的计算机科学专业在科研和教学方面也具有显著优势,是考研的理想选择。 ... [详细]
  • Swoole加密机制的安全性分析与破解可能性探讨
    本文深入分析了Swoole框架的加密机制,探讨了其在实际应用中的安全性,并评估了潜在的破解可能性。研究结果表明,尽管Swoole的加密算法在大多数情况下能够提供有效的安全保护,但在特定场景下仍存在被攻击的风险。文章还提出了一些改进措施,以增强系统的整体安全性。 ... [详细]
  • 在Ubuntu 20.04上安装Zotero时,压缩包中包含一个`.desktop`文件,可以方便地将Zotero添加到系统启动器中。建议将解压后的目录移动到合适的位置,如`/opt/zotero`,以便更好地管理和维护。此外,确保赋予该目录适当的权限,以确保Zotero能够正常运行。 ... [详细]
  • 如何在PHP中正确配置错误显示功能
    在PHP中正确配置错误显示功能的方法如下:首先,定位并打开“php.ini”配置文件;接着,将“display_errors”参数设置为“On”;最后,在PHP代码文件的顶部添加 `ini_set('display_errors', '1');` 以确保错误信息能够被正确显示。此外,建议在开发环境中启用此功能,而在生产环境中禁用,以避免敏感信息泄露。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
author-avatar
hhqblog
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有