实例管理

连接实例

我的实例 中启动要登录的实例,点击 获取登录指令

../_images/25.png

点击 复制登录指令,使用 SSH 终端登录实例,点击 复制密码 用于登录认证。

重要

建议登录后配置好用户公钥,关闭 SSH 密码验证。防止实例被渗透。

请使用 supervisorctl restart sshd 重启 SSHD 服务。

../_images/26.png

连接实例需要使用 SSH 客户端,Windows 平台下可以使用 Xshell、PuTTY 等工具。macOS 或 Linux 平台下可以使用终端。

小技巧

以下工具教程可能因版本或环境不同发生改变,请以实际情况为准。实例均为 Ubuntu 操作系统,需要有 Linux 的基础才能正常使用。此章节的目的是提供帮助仅供参考,遇到问题请自行在互联网中查阅。

Xshell连接

连接过程

Windows 平台可以安装 Xshell 进行连接,使用 Xftp 进行文件传输。

Xshell 7.0.0073p 下载

Xftp 7.0.0071p 下载

安装后打开 Xshell,关闭会话窗口,从头来进行创建主机会话。

../_images/091.png

点击 新建会话 按钮。

../_images/101.png

新建会话属性 窗口填写自定义名称,主机 填写从控制台复制出的登录指令域名部分,端口号 填写 -p 后的数字。

../_images/11.png

点击左侧类别中的 用户身份认证,右侧 用户名 填写 root,密码填写从控制台复制出的密码。确认保存。

../_images/12.png

点击 打开会话 按钮。

../_images/13.png

选中刚创建的主机,点击连接。

../_images/14.png

首次连接会提示是否信任公钥,点击 接受并保存

../_images/15.png

连接成功后可以在终端上进行实例使用。

可以在实例中看到有若干挂载好的目录,根据不同的用途存放不同的数据。关于数据的详细说明请查看 数据管理

  • /user-data: NAS,速度快,跟随实例迁移。可通过控制台、FTP工具或 vcloud-oss-cli 命令工具传输数据。

  • /data-output: 本地 SSD,速度最快,跟随实例迁移,用于存放 TensorFlow、PyTorch 汇总数据

  • /datasets: NAS,只读,存放提供的公共数据集,用户可通过该路径查看和直接使用官方提供的数据集和模型。

../_images/16.png

利用 Xftp 工具可以通过 SSH 来进行文件下载和上传,如要将文件上传到 /user-data 目录下。

../_images/18.png

在 Xshell 连接好实例的情况下,点击 新建文件传输 按钮。

../_images/19.png

在新打开的 Xftp 界面上,左侧为本地文件系统,右侧为实例内文件,可以双击或右键文件对文件进行上传和下载操作。

../_images/20.png

设置公钥

建议使用将公钥添加到实例内,实现不需要密码登录。可以在 Xshell 中选择 工具 - 用户密钥管理者,进行密钥管理。

../_images/21.png

如果本地从未生成过密钥,选择 生成。如果之前已经生成过密钥,忽略此生成步骤。

../_images/22.png

选择密钥类型和长度,默认参数即可。

../_images/23.png

生成密钥对。

../_images/24.png

填写密钥名称,可以为密钥设置密码,或不设置。

../_images/251.png

生成完成后,点击刚生成的密钥,选择属性。

../_images/261.png

公钥 选项卡内选择将公钥复制。

../_images/27.png

连接进实例内,将复制的公钥写入认证文件。

# 登录远程实例,创建文件夹
mkdir ~/.ssh

# 编辑认证文件,写入复制的公钥
vim ~/.ssh/authorized_keys

退出实例,选择刚才创建的会话,右键-属性,进入 属性窗口 。在 用户身份验证 中选择的方法选择 Public Key。用户密钥选择刚才创建的密钥,如果创建时输入了密码,可以在这里填写密码。

../_images/281.png

保存后通过会话进入实例,如果不需要密码登录成功即为添加成功。进入实例后建议关闭密码验证方式。

# 确认无需密码后关闭密码验证方式,提高安全性
sed -i "s/#\?\(PasswordAuthentication \).*/\1no/" /etc/ssh/sshd_config
supervisorctl restart sshd

PuTTY 连接

PuTTY 是通过 SSH 连接 Linux 的工具,支持 Windows 平台。

PuTTY 0.73 64-bit 下载

  1. 在极链云 用户中心 - 我的实例 中复制出登陆指令,填写到打开的 PuTTY 窗口中,包括主机名、端口号。为方便下次打开,在 Saved Sessions 中填写一个自定义的配置名称,点击 Save 来保存。点击 Open 来打开连接。

../_images/013.png
  1. 首次连接会询问是否信任主机密钥,点击是。

../_images/023.png
  1. 输入用户名 root。密码从租用列表中复制密码,在窗口中右键可以直接粘贴。密码字段不会显示,回车确认即可。

../_images/033.png
  1. 登陆正确后可以进入到实例当中。

../_images/043.png

macOS 连接

macOS 可以使用原生的终端或 iTerm2 终端连接。

原生终端在 启动台 - 其他 - 终端

../_images/291.png

iTerm2 下载: iTerm2-3_3_9.zip

下载解压后安装,在启动台中打开 iTerm2

复制登录指令到终端执行,首次连接会提示是否信任公钥,输入 yes。信任后再输入密码进行登录。

../_images/301.png

可以在实例中看到有若干挂载好的目录,根据不同的用途存放不同的数据。关于数据的详细说明请查看 数据管理

  • /user-data: NAS,速度快,跟随实例迁移。可通过控制台、FTP工具或 vcloud-oss-cli 命令工具传输数据。

  • /data-output: 本地 SSD,速度最快,跟随实例迁移,用于存放 TensorFlow、PyTorch 汇总数据

  • /datasets: NAS,只读,存放提供的公共数据集,用户可通过该路径查看和直接使用官方提供的数据集和模型。

../_images/31.png

建议使用将公钥添加到实例内,实现不需要密码登录。如果本地从未生成过密钥,在 本地 使用 ssh-keygen 命令生成。如果之前生成过,忽略此步骤。

bash-3.2$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/videopls/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/videopls/.ssh/id_rsa.
Your public key has been saved in /Users/videopls/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:4PyieOyrSmJzQxvd5l0f4DH4VI7jIHhyzm8Qj+ewd4Y videopls@MacBook-Pro.local
The key's randomart image is:
+---[RSA 3072]----+
|             .   |
|      .   . +    |
|     o.= o B .   |
|    .oB.= * =    |
|   o .oOSo = .   |
|  . o o.O o . .  |
|.+ =  .o.E o .   |
|+ o.+. .o o      |
|..o++.           |
+----[SHA256]-----+

生成后私钥保存在 ~/.ssh 目录下,私钥为 id_rsa ,公钥为 id_rsa.pub

# 本地执行,复制公钥
cat ~/.ssh/id_rsa.pub

# 登录远程实例,创建文件夹
mkdir ~/.ssh

# 编辑认证文件,写入复制的公钥
vim ~/.ssh/authorized_keys

# 退出实例重新登录,如果不需要密码即添加成功
# 确认无需密码后关闭密码验证方式,提高安全性
sed -i "s/#\?\(PasswordAuthentication \).*/\1no/" /etc/ssh/sshd_config
supervisorctl restart sshd

实例镜像

实例内置软件:

  • CUDA

  • cuDNN 7

  • Anaconda

  • Python

  • Jupyter Notebook

  • TensorBoard

CUDA 的相关环境变量:

CUDA_HOME=/usr/local/cuda
LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64

Python、框架的环境均使用 conda 安装。python 的命令组已经指向创建时选择的 Python 版本。可以使用如下命令查看 conda 的 python 命令。

ll /opt/conda/bin | grep "python"

PIP 均配好国内镜像源,可以快速安装软件包。

工具使用

实例内提供了 JupyterLabTensorBoard,默认为开启状态。在实例列表中的 第三方工具 中可以点击进入工具界面。

../_images/271.png

小技巧

以下工具教程可能因版本或环境不同发生改变,请以实际情况为准。此章节的目的是提供帮助仅供参考,遇到问题请自行在互联网中查阅。

JupyterLab 使用

点击 JupyterLab 链接后打开页面。

右侧的选项卡为启动器,你可以新建notebook、console、terminal终端、text文本或者markdown文件。

如果您想新建文档,只需要单击左侧红圈里的“ + ”按钮

../_images/191.png

左侧一栏是文件浏览器,显示可以使用的文件。

../_images/241.png

你可以创建文件夹、上传文件、更新文件列表

../_images/231.png

TensorBoard 使用

TensorBoard 可以将训练后的汇总数据做一个可视化的展示。默认会从 /data-output 路径下读取汇总数据。如果汇总结果数据在其他目录,可以复制或创建一个软链接。

# 将其他汇总数据目录软连接到 /data-output 下
# 两个目录替换为绝对路径
ln -s <源目录> /data-output/<目标目录>

小技巧

PyTorch 从 1.2.0 开始支持 TensorBoard,可参考文档 TORCH.UTILS.TENSORBOARD

MXNet 镜像已经预装了 MXBoard,使用此项目也可以将结果用 TensorBoard 呈现。具体使用可参考 awslabs/mxboard 官方描述。

这里使用 TensorFlow 框架来做一个简单的示例。使用如下代码来生成一个汇总数据,将汇总数据保存到 /data-output 下。将此代码保存为 example.py,之后使用 python3.6 ./example.py 来执行它。

import tensorflow as tf
a=tf.constant([10.0, 20.0, 40.0], name='a')
b=tf.Variable(tf.random_uniform([3]), name='b')
output=tf.add_n([a,b], name='add')
writer=tf.summary.FileWriter('/data-output', tf.get_default_graph())
writer.close()

执行后可以在 /data-output 下看到生成了 events.out.tfevents 的数据。此时从实例列表中打开 TensorBoard 链接,可以在浏览器中查看可视化界面。

../_images/161.png

VSCode 远程连接

VSCode 可以通过安装扩展连接到远程 Linux 主机,在远程的服务器上执行代码。

  1. VSCode 连接远程主机需要使用密钥的认证方式,需要生成密钥添加到远程服务器。具体请参考 连接实例

  2. 在扩展中搜索 Remote - SSH 进行安装。

../_images/014.png
  1. 在远程资源管理器中添加远程主机。

../_images/024.png
  1. 在极链云用户中心的实例列表中复制登陆指令,粘贴到连接命令中。

../_images/034.png
  1. 远程资源管理器的主机信息是从 SSH config 文件中读取,添加的主机也会写到此文件中。一般选择第一个默认的文件。

../_images/044.png
  1. 添加完成后可以通过两种方式连接主机。在远程资源管理器中找到刚添加的主机右键选择在当前或新窗口中连接。或点击左下角图标再选择连接到主机,列表中选择刚添加的主机。

../_images/051.png ../_images/061.png
  1. 等待完成连接和激活扩展。完成后在左下角会显示当前连接的主机,资源管理器中显示已连接到远程。

../_images/071.png
  1. 资源管理器中选择打开文件夹,选择远程实例内的目录。如打开 /root 目录。在远程目录中可以新建文件或文件夹。

../_images/081.png ../_images/092.png
  1. 点击左下角的问题图标,在工作区下方选择终端,可以直接进入远程主机的终端执行命令。

../_images/102.png

PyCharm 远程连接

JetBrains 的部分产品都可以使用此方法连接主机。需要安装 Professional Edition 才具有远程连接功能。

  1. 菜单中打开 Preferences。

../_images/015.png
  1. 选择 Project - Project Interpreter 标签。点击设置按钮添加一个解析器。

../_images/025.png
  1. 选择 SSH Interpreter。在极链云用户中心的实例列表中复制登陆指令和密码,填写进服务器配置中,下一步中输入密码或选择密钥。

../_images/035.png ../_images/045.png
  1. 因为实例内的 Python 是使用 conda 安装,解析器需要填写 /opt/conda/bin/python。Sync folders 配置代码同步的远程目录。

../_images/052.png
  1. 配置成功后可以查看远程的全部包。

../_images/062.png
  1. 右键工作区选择 Run 运行,在输出中可以看到在远程主机中执行结果。

../_images/072.png ../_images/082.png