GPU-Cluster(Docker)3.0 User Guide

From IIIS-Systems
Jump to: navigation, search

清华大学交叉信息研究院GPU-Cluster(Docker)3.0用户操作指南


申请GPU资源

需要使用GPU资源的用户,请把如下信息发送给尹伟老师,尹伟老师的邮箱是yw@mail.tsinghua.edu.cn,尹老师建立帐号并授权后,即可使用GPU资源。

1)帐号名

2)姓名

3)邮箱

4)电话

5)申请资源目的

6)使用期限

VPN的配置及使用

访问GPU集群时,需要连接VPN。关于VPN的配置及使用,请参见以下链接2.1节内容:http://wiki.iiis.systems/w/index.php/OpenStack_User_Guide

修改帐号的密码

1)连接VPN,访问 http://10.1.1.1:81/ui

2)使用申请的帐号和密码登录。登录后,单击右上角的第二个按钮,可以看到“个人中心”,在个人中心界面,用户可以修改帐号的密码。

使用GPU资源

用户使用GPU资源,操作步骤,如下:

1)连接VPN,访问 http://10.1.1.1:81/ui

2)使用申请的帐号和密码登录。登录后,单击左侧导航栏中的“应用管理”,单击右上角的“+创建应用”,在界面中点击“json模式”,单击“从文件中读取”按钮,上传json文件。

json文件的下载地址为:https://pan.baidu.com/s/1bppnZKb 上传json文件之后,请修改json文件内容第2行"id"值中的xxx(其他内容不用修改),把xxx修改成“应用名”。

应用名由用户命名,应用名中可以包含小写字母或数字,不能包含大写字母及标点符号,应用名不能重名。然后点击“创建”按钮,便可以创建应用。

应用创建后,单击左侧导航栏中的“应用管理”,在“我的应用”中,单击应用名称,即可看到应用所在主机的IP地址和端口号。

使用命令“ssh -p 端口号 VPN帐号名@IP地址” ,密码与VPN帐号的密码相同 , 即可登录。

注意事项

1)GPU集群通过docker为用户提供GPU资源,使用docker时,请把重要数据存放在用户的家目录下,即“/home/用户名”目录,该目录挂接ceph存储系统。即便容器出现问题,存放在该目录下的数据不会丢失。

2)用户基于基础镜像启动容器后,在容器中安装了新软件或搭建了实验环境,在更新或扩展或重启容器时,用户自己安装的软件或实验环境会被自动清除。如果用户希望保留自己安装的软件或实验环境,请参见本文档“自定义镜像”内容。

3)用户基于基础镜像启动容器后,在容器中安装了新软件或搭建了实验环境,如果容器所在的物理服务器关机或重启,用户自己安装的软件或实验环境会被自动清除。如果用户希望保留自己安装的软件或实验环境,请参见本文档“自定义镜像”内容。

自定义镜像

1)用户什么时候需要自定义镜像?

用户基于基础镜像启动容器,并在容器中配置了实验环境,希望再启一个容器,容器中带有自己的实验环境,此时需要用到“自定义镜像”。

用户基于基础镜像启动容器,并在容器中安装了软件或配置了实验环境,在更新或扩展容器时,容器会删除用户安装的软件或实验环境,恢复到基础镜像提供的系统状态。如果用户希望

保留自己安装的软件或实验环境,需要用到自定义镜像。

2)制作自定义镜像的步骤

用户在容器环境内(用户发布应用所对应的环境),依次执行如下命令:

1> 登录镜像仓库:sudo docker login 10.1.0.180 使用VPN帐号名和VPN帐号的密码进行登录,当出现Login Succeeded提示,说明登录成功。

2> 基于当前容器制作镜像:先关闭autofs服务,之后制作自定义镜像,最后开启autofs服务。

sudo /etc/init.d/autofs stop

sudo docker commit 容器主机名 10.1.0.180/项目名/镜像ID:镜像tag

上述docker commit命令中的“容器主机名”,用户可以执行hostname命令,进行查看;命令中的“项目名”需要用户自己在镜像仓库中创建项目,操作为:使用浏览器访问10.1.0.180,

使用VPN帐号和密码登录,在“项目”界面,选择“我的项目”或“公开项目”,然后点击“新增项目”按钮创建项目,创建项目后,点击项目的“公开”属性,决定是否将该项目公开,如下图;

命令中的镜像ID,用户自己命名,只要不重名即可;命令中的镜像tag,用户自己定义,一般写成latest。

Harbor.jpg

sudo /etc/init.d/autofs start

3> 将产生的镜像push到镜像仓库:sudo docker push 10.1.0.180/项目名/镜像ID:镜像tag

上述命令成功后,用户可以通过浏览器登录到10.1.0.180,在相应项目下查看刚刚上传的镜像。

3)使用自定义镜像启动容器

然后你就可以回到docker管理网页http://10.1.1.1:81 去运行你自己制作的镜像了。

修该json文件第23行,"image": "10.1.0.180/alluxio/ubuntu_14.04:latest",把10.1.0.180/alluxio/ubuntu_14.04_genaral:latest替换成用户的自定义镜像,即10.1.0.180/项目名/镜像ID:镜像tag,使用该json文件发布应用即可。

访问容器提供的服务

如何从用户终端上访问容器中提供的服务?

下面以web服务进行说明,用户可以根据该说明,修改相关设置,实现访问其他服务的功能。比如用户希望访问容器提供的web服务,web端口号为80,则操作步骤为:

在json文件第39行"portMappings"部分,加入80端口映射内容,见下例

 "portMappings": [
               {
                   "containerPort": 22,
                   "hostPort": 0,
                   "servicePort": 0,
                   "protocol": "tcp"
               },
               {
                   "containerPort": 80,
                   "hostPort": 0,
                   "servicePort": 0,
                   "protocol": "tcp"
               } 
           ],

基于该json文件发布应用,建立应用后,在“应用管理”界面,能看到刚发布的应用对应的端口,第一个端口为ssh对应的端口,第二个端口为web对应的端口。见下图:

如果用户希望查看端口的映射关系,可以单击实例ID,查看详情。

下图例子中,应用发布在IP地址为10.1.0.138服务器上,web对应的端口为31956,则:用户在浏览器中输入10.1.0.138:31956 即可访问容器提供的web服务。

Portmap.jpg

常见问题及解决办法

1)用户在容器中使用python时,执行import操作,会提示无法找到模块,比如import caffe时,提示:ImportError: No module named caffe

解决办法:

sudo -i

python

>>> import caffe

2)用户在容器,使用apt-get install安装软件时,如果下载速度不高,则可以考虑更换apt源。容器中提供的apt源为中科大提供的ubuntu源。

cp /etc/apt/sources.list /etc/apt/sources.list.bak

vi /etc/apt/sources.list 更换源

apt-get update

常用apt源列表:

1> 阿里提供的ubuntu源

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

2>163提供的ubuntu源

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

3>ubuntu官方源

deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

Ubuntu官方提供的其他软件(第三方闭源软件等):

deb http://archive.canonical.com/ubuntu/ trusty partner

deb http://extras.ubuntu.com/ubuntu/ trusty main

3)在发布的应用中,执行apt-get update时,提示如下错误:

W: GPG error: http://developer.download.nvidia.com Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80

解决办法为:

执行如下命令添加公钥

wget -qO - http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/7fa2af80.pub | sudo apt-key add -

然后再执行apt-get update

4)用户在安装软件时,如果提示访问https站点有问题,或server certificate verification failed,请修改/etc/apt/sources.list文件,修改源。然后执行命令apt-get update