硬件
目录
硬件
软件
0、预安装软件
1、卸载旧的驱动并重启
2、禁止Nouveau
3、更新并重启
4、检查是否成功
5、安装显卡驱动
6、安装cuda11.3
7、安装nvidia-container-runtime
8、安装LXD、ZFS、Bridge-utils
9、磁盘
10、初始化LXD
11、创建容器
12、配置容器
13、容器内安装显卡驱动和cuda
14、配置网络
15、全局配置
16、安装、美化桌面
17、容器管理
推荐连接方式:
其他:
配件 | 具体型号 |
cpu | AMD 3960x |
主板 | 华硕TRX40-pro s |
散热器 | 猫头鹰U12S TR4-SP3 |
显卡 | 索泰RTX3080TI *2 |
内存 | 英睿达32g 3600MHz *4 |
ssd | 1T |
hdd | 东芝4T |
机箱 | 追风者全塔机箱614PC |
机箱风扇 | 追风者SK神风140mm风扇 6个 |
电源 | 长城巨龙2000w |
低成本硬件:
单人使用:主板z170(华硕z170 pro gaming)、z370等,CPU i5 6500,其他看着买
多人使用(虚拟化):技嘉X99 ud4,E5 2696v3。
有钱的直接选主流配置。
CPU的选择要注意PCIE通道数,比如 intel 12400 的PCIE通道数为20,即可以满速带动一个x16(显卡)和一个x4(无线网卡或其他扩展)。AMD ThreadRipper3有64个以上的通道(参考:12.4. 硬件 — 动手学深度学习 2.0.0-beta1 documentation (d2l.ai))。如果PCIE通道为20的CPU上使用了双显卡,则每张卡只能用8个通道,传输速率是瓶颈。消费级CPU的通道数一般都是20。
软件
系统及软件参考:基于LXD搭建多人共用GPU服务器,简单易用,全网最详细!_比特桃的博客-CSDN博客_lxd
0、预安装软件
apt updateapt install vimapt install net-toolsapt install openssh-server# 修改 /etc/ssh/sshd_config,可以使用密码登录SSHPermitRootLogin yesPasswordAuthentication yesservice ssh start# 开机自启动(默认)systemctl enable ssh# 安装gccapt install build-essential# 安装anaconda,首先到官网下载安装包bash Anaconda.sh
1、卸载旧的驱动并重启
apt-get purge nvidia*apt-get autoremovereboot
2、禁止Nouveau
vim /etc/modprobe.d/blacklist.conf# 文件末尾添加以下两行:blacklist nouveauoptions nouveau modeset=0
3、更新并重启
update-initramfs -ureboot
4、检查是否成功
lsmod | grep nouveau# 取得root权限,关闭Nvidia驱动systemctl isolate multi-user.target# 下面的报错不影响modprobe -r nvidia-drm
5、安装显卡驱动
# 到官网选择显卡型号,下载最新版的驱动# 驱动文件权限
# 此处为缩写,NVIDIA-Linux.....run为驱动文件chmod a+x NVIDIA-Linux………run # 驱动文件运行安装bash NVIDIA-Linux…..run测试是否安装成功nvidia-smi
6、安装cuda11.3
# 下载CUDA文件,本文下载的是v11.3.1
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.runsudo# 运行安装sh cuda_11.3.1_465.19.01_linux.run# 配置环境变量,在bashrc文件里添加下面的两行exportvim ~/.bashrcexport PATH=/usr/local/cuda-11.3/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH# 测试nvcc -V
7、安装nvidia-container-runtime
# 依次运行下面5条命令curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -distribution=$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.listapt-get updateapt install libnvidia-container-dev libnvidia-container-tools nvidia-container-runtime -y
8、安装LXD、ZFS、Bridge-utils
sudo apt-get install lxd zfsutils-linux bridge-utils
9、磁盘
# 查看磁盘fdisk -l# 对磁盘进行分区:fdisk /dev/sda
10、初始化LXD
lxd init# 如果已有zpool,则将其配置为本项目Do you want to configure a new storage pool? (yes/no) [default=yes]: yesCreate a new ZFS pool? (yes/no) [default=yes]: no
11、创建容器
lxc launch ubuntu:20.04 ContainerName
12、配置容器
# 传送单个文件
# 从宿主机到容器
lxc file push <file source path> <container>/<path>
# 从容器到宿主机
lxc file pull <container>/<path> <target path># 共享文件夹:宿主机内创建,共享给容器# 创建文件夹
cd /mkdir share
# 将创建的文件夹共享给某个容器
lxc config device add <container> <device-name> disk source=/share path=/share# 其中path为容器路径,source 为宿主机路径# 移除共享文件夹lxc config device remove <container> <device-name>
13、容器内安装显卡驱动和cuda
# 宿主机内将gpu分配给容器
lxc config device add <container> gpu gpu# 安装驱动(/share目录下)./NVIDIA-Linux-x86_64-470.63.01.run --no-kernel-module# 安装cuda(/share目录下)./cuda_11.3.1_465.19.01_linux.run
14、配置网络
# 设置端口映射,将容器的端口映射到宿主机,客户端连接宿主机的端口使用
# 192.168.1.28为宿主机地址,10.214.111.11为容器地址,22为ssh端口,3389为xrdp端口# lxc config device add <container> <proxy_name> listen=tcp:宿主机IP:port connect=tcp:容器IP:port bind=hostlxc config device add <container> ssh listen=tcp:192.168.1.28:8002 connect=tcp:10.214.111.11:22 bind=hostlxc config device add <container> xrdp listen=tcp:192.168.1.28:8003 connect=tcp:10.214.111.11:3389 bind=host# 修改容器内的ssh(参考上面的宿主机配置,设置目的是可以使用密码登录)
15、全局配置
# 设置项目级共享目录lxc profile device add default share disk source=/share/ path=/share# 其中,default为项目名,share为在宿主机里设置的共享文件夹名# 设置GPUlxc profile device add default gpu gpu# 配置 nvidia.runtime,让容器使用宿主机的驱动和相关 runtime,这样就不需要在容器内安装驱动# 此项和security相关配置冲突,如果想用特权容器,则删掉此项,手动安装驱动lxc profile set default nvidia.runtime true# 开机自动启动容器lxc profile set default boot.autostart true# 可以再次检查这个默认的 profile 是否有误lxc profile show default# 修改默认配置项lxc profile edit default
16、安装、美化桌面
sudo apt install --no-install-recommends ubuntu-desktopsudo apt-get updatesudo apt-get install xrdp# 将xrdp用户添加到组:sudo adduser xrdp ssl-cert sudo systemctl restart xrdpsudo apt update# 安装图标主题,中间很慢,多等会sudo apt install papirus-icon-theme# 安装GTK主题git clone https://github.com/vinceliuice/vimix-gtk-themes.gitcd vimix-gtk-themessudo ./install# 安装Gnome Tweak Toolsudo apt install gnome-tweak-tool# 显示Linux系统信息工具sudo apt install neofetch# 查看CPU运行以及内存占用情况工具sudo apt install htop
17、容器管理
zpool listlxc config edit <container>Anaconda# 使用Python3.8的环境conda create -n lxd38 python=3.8 -yconda activate lxd38# 可视化 lxduigit clone https://github.com/AdaptiveScale/lxdui.gitcd lxduipip install -r requirments.txtpython setup.py install# 测试启动,终端关闭则停止服务python run.py start 或 lxdui start# 日常使用启动方式nohup python3 run.py start > python.log3 2>&1 &# 打开浏览器输入:localhost:15151,即可访问
推荐连接方式:
终端工具:Xshell、Tabby、远程连接(花生壳、todesk等)
推荐用终端工具,todesk偶尔内存会爆
花生壳映射22端口,终端连接
局域网:容器内安装xrdp,使用Windows自带的远程桌面连接xrdp端口映射后的端口
其他:
修改root密码:以root权限登录,在终端输入passwd,设置新密码
使用Windows的Pycharm、vscode等软件远程编写调试服务器端的代码(SSH)参考:
(1条消息) 配置Pycharm连接远程服务器_南方-D的博客-CSDN博客_pycharm连接远程服务器