热门标签 | 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  
版权声明:本文为博主原创文章,转载请附上博文链接!


推荐阅读
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • 体积小巧的vsftpd与pureftpd Docker镜像在Unraid系统中的详细配置指南:支持TLS加密及IPv6协议
    本文详细介绍了如何在Unraid系统中配置体积小巧的vsftpd和Pure-FTPd Docker镜像,以支持TLS加密和IPv6协议。通过这些配置,用户可以实现安全、高效的文件传输服务,适用于各种网络环境。配置过程包括镜像的选择、环境变量的设置以及必要的安全措施,确保了系统的稳定性和数据的安全性。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • 在MFC框架中,存在多个全局函数,用于在不同对象间获取信息或创建新对象。其中,`afxGetApp`函数尤为关键,它能够帮助开发者轻松获取当前应用程序的实例指针。本文将详细解析`afxGetApp`函数的内部机制及其在MFC应用程序中的具体应用场景,探讨其在提升代码可维护性和灵活性方面的优势。此外,还将介绍其他常用全局函数如`AfxWinInit()`和`AfxBeginThread()`的功能和使用方法,为开发者提供全面的参考。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
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社区 版权所有