天天看點

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

從零開始搭建基于linux(Ubuntu)深度學習伺服器

硬體裝置介紹(伺服器主機配置):CPU(inter i9 7900)、主機闆(華碩X299-A)、顯示卡(影馳1080ti 11G*2)、記憶體(金士頓16G)、硬碟(影馳240G固态+WD2T)、電源(長城1250W)。

第一步:制作Ubuntu server 16.04 U盤啟動盤

首先去官網下載下傳Ubuntu server 16.04的iOS檔案(網址:https://ubuntu.com/download/alternative-downloads),如下選擇Ubuntu16.04server(64bit),下下來是個ubuntu-16.04.6-server-amd64.iso.torrent檔案,用迅雷下載下傳。

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

然後制作Ubuntu server 16.04 U盤啟動盤,首先去這裡下在Rufus,連結位址:https://rufus.akeo.ie/,下載下傳完之後,插入要制作啟動盤的U盤,直接輕按兩下Rufus運作就行。運作界面如下:

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器
linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器
linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

選擇鏡像檔案,上一步下載下傳好的,其餘選項預設,點選開始。開始制作,完成後,為了保險本人把鏡像檔案再次放到U盤下。

第二步:給伺服器安裝Ubuntu server 16.04 系統

開機進入bios,F2或者del,看機子對應的主機闆是什麼。

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

按F8選擇啟動菜單,選擇剛剛制作好的U盤作為啟動盤

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

進入之後選擇 install Ubuntu

後面的操作可以參考這篇文章(https://blog.csdn.net/zhengchaooo/article/details/79500209)

選擇硬碟寫入的時候,選擇固态硬碟,盡量把系統分區做大,2T的機械硬碟可以挂載來實作資料存放。

2T機械硬碟的挂載:

1.檢視資訊

輸入sudo fdisk –l

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

由上圖所示,需要挂載的硬碟是 /dev/sda1

2.格式化機械硬碟

sudo mkfs.ext4 /dev/sda1

3.建立/home/data目錄(/home/data目錄為硬碟将挂載的地方)

sudo mkdir /home/data

4.挂載分區

sudo mount /dev/sda1 /home/data

5. 檢視磁盤分區的UUID

sudo blkid

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

6. 配置開機自動挂載

sudo vim /etc/fstab

按inset鍵 最後加入以下内容

# add mount disk

UUID=0e06d4ce-9b7d-4617-a7b6-b5b86cf4cbb9 /home/data ext4 defaults 0 0

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

7. 重新開機系統

sudo reboot 重新開機系統後輸入 df –h檢驗如下所示即成功

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

第三步 安裝顯示卡驅動以及可視化界面

  1. 首先要關閉 Ubuntu unity桌面環境預設的 lightdm 管理器,切換到tty (按快捷鍵 Ctrl + Alt + F2 就是切換到 tty2)

sudo service lightdm stop

2.解除安裝原有的N卡驅動(沒有的請忽略)

解除安裝apt方式安裝的n卡驅動

sudo apt remove --purge nvidia*

sudo apt autoremove

解除安裝用官網run方式安裝的n卡驅動

sudo nvidia-uninstall

3.安裝NVIDIA驅動

sudo add-apt-repository ppa:xorg-edgers/ppa

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

sudo apt-get install prime-indicator #安裝雙顯示卡切換訓示器(可忽略)

檢視可安裝驅動版本

ubuntu-drivers devices

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

找後面有recommend的版本,我的是nvidia-430

sudo apt install nvidia-430

重新開機

這種方法相容性好,幫你禁用預設的 nouveau 開源驅動,避免和本閉源驅動沖突。

現在會存在循環登入的問題。我我采用用戶端安裝Git Bash,用openssh-server的方法解決。官網下載下傳Windows版(https://git-scm.com/downloads),安裝完打開Git Bash。

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

輸入ssh [email protected] , username為你在安裝系統是設定的使用者名,@後面的ip位址是你伺服器所在區域網路内的IP位址(連上路由器了),如何檢視呢。在你的電腦連上路由器所在區域網路,通過登入路由器的管理界面,本人所在實驗室的路由器登入位址為http://tplogin.cn/,進入點選裝置管理,點選伺服器名稱對應管理檢視IP位址。(通過管理者設定DHCP服務可以使伺服器使用永久ip,不會因為每次重新開機而重新整理)

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

4.驗證

查詢系統現在使用的驅動

sudo prime-select query

然後再把nvidia驅動設定為系統使用的顯示卡驅動

sudo prime-select nvidia

沒有報錯即表示顯示卡能夠正常運作了,順便檢視顯示卡資訊。

sudo nvidia-smi

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

如上則成功。

如果出現: NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.(核心版本高造成的,開機啟動換舊版本核心)

請檢視https://blog.csdn.net/qq_41870658/article/details/93330041

5.解決循環登入問題

不用預設的unity桌面,改成 gnome3。

sudo add-apt-repository ppa:gnome3-team/gnome3

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install gnome-shell ubuntu-gnome-desktop

此時選 gdm3

重新開機

進入圖形界面

确認 gnome 桌面運作沒有問題,就把 unity 桌面解除安裝掉

sudo apt-get remove unity lightdm ubuntu-desktop

第四步 伺服器安裝docker

  1. 用戶端安裝Gitbash 和filezilla

Gitbash下進入root:ssh [email protected]

2.安裝docker以及nvidia-docker

關閉docker

sudo systemctl stop docker

首先解除安裝舊版本docker

sudo apt-get remove docker docker-engine http://docker.io containerd runc

或者

sudo apt-get purge docker-ce

更新apt包索引

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

3.選擇國内的雲服務商,這裡選擇阿裡雲為例

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

或者

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

其他來源檢視(https://blog.csdn.net/BigData_Mining/article/details/87869147)

4.安裝所需要的包

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

5.添加使用 HTTPS 傳輸的軟體包以及 CA 證書

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates

6.添加GPG密鑰

sudo apt-key adv --keyserver hkp://http://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

7.添加軟體源

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

或者

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable

8.添加成功後更新軟體包緩存

sudo apt-get update

或者apt-cache madison docker-ce

9.安裝docker

sudo apt install docker-ce=5:19.03.1~3-0~ubuntu-xenial(一定要安裝19.03版本,這個版本docker能夠共享主控端的nvidia驅動,無需在docker容器内再安裝)

10.啟動docker

sudo systemctl start docker

11.加入開機啟動

sudo systemctl enable docker

12.檢視安裝後資訊

sudo docker info

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

13.安裝nvidia-docker 看業務

sudo apt update

sudo apt install nvidia-docker2

如果失敗檢視(更新連結:https://github.com/NVIDIA/nvidia-docker/blob/master/README.md)或者直接如下操作

# Add the package repositories

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

$ sudo systemctl restart docker

14.Docker免sudo

sudo groupadd docker

sudo gpasswd -a ${USER} docker

sudo service docker restart

newgrp – docker

15.列出GPU裝置

docker run -it --rm --gpus all ubuntu nvidia-smi –L

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

安裝docker和nvidia-docker成功。

第五步 docker安裝鏡像以及添加使用者/

1、docker安裝Ubuntu鏡像

docker search ubuntu(如果擷取報錯response from daemon: Get https://index.docker.io/v1/search?q=centos&n=25: dial tcp: lookup http://index.docker.io on 222.88.88.88:53: read udp 192.168.1.101:56472->222.88.88.88:53: i/o timeout 原因是國外的源很慢通路有問題,建議更改國内的源)

docker pull ubuntu

docker images #列出鏡像

2、添加/删除使用者以及密碼

sudo useradd –d /home/data/username –m –s /bin/bash username(username為你想添加的使用者名,/home/data為我2T機械硬碟的挂載目錄,在此目錄下添加用友善資料的存儲和計算)

sudo passwd username(設定或者更改密碼)

删除使用者:sudo userdel –r username

3、為使用者建立docker容器器皿,并共享主機硬體

docker run -it --privileged=true --name username-v /home/data/username:/username ubuntu /bin/bas

4、将使用者添加到docker組

sudo adduser username docker

docker start username

docker stop username

Docker安裝完啟動時提示Failed to start docker.service: Unit docker.service is masked(檢視https://blog.csdn.net/u011403655/article/details/50524071)

docker的正常操作檢視(https://blog.csdn.net/weixin_44286547/article/details/88980211)

第六步 為使用者搭建深度學習環境

1、進入使用者

ssh [email protected]

進入docker容器器皿:docker start username(第一次和重新開機伺服器之後需要運作此指令)

docker exec –it username /bin/bash

退出ctl+D

2、anconda、tensorflow-gpu、keras安裝

apt-get install -y wget

安裝anaconda:wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2018.12-Linux-x86_64.sh (用的是清華鏡像,一個字,快)

bash Anaconda3-2018.12-Linux-x86_64.sh

conda create –n tf python=3.6

source activate tf

conda install packagename(安裝所需的包package,如tensorflow、tensorflow-gpu、keras等)

若測試tensorflow出錯:不能建立session會話,則安裝低版本cuda

Anaconda search –t conda cuda rlcc/cudatookkit

3、将容器器皿儲存為一個新的鏡像

docker ps –a #檢視容器器皿位址

linux gnome3安裝_從零開始搭建基于linux(Ubuntu)深度學習伺服器

docker commit container_ID dockerimage #dockerimage為儲存的鏡像的名字, container_ID 為上述查詢到的容器器皿位址

4、儲存/加載鏡像

docker save container_ID > filename.tar

docker load < filename.tar

5、下回建立新的使用者可直接加載儲存好的鏡像

docker run -it --privileged=true --name username-v /home/data/username:/username dockerimage /bin/bash

PS:前端時間訓練VQA資料集,安裝了pytorch,不支援老版本的cuda故重新更新了主控端的nvidia驅動,導緻docker容器器皿下的使用者無法使用N卡加速,這是老版本的docker不支援使用者組跟主控端同步的驅動導緻的,索性重裝系統重新配置伺服器,現功能正常,又能愉快的深度學習了。第一次整理這麼長的内容,内容有些表達不完善還請見諒。

繼續閱讀