最前
本文用于记录实验室服务器配置情况,主要用途为遥感影像处理和炼丹,可供其他实验室作参考。
如有建议,可联系站长admin@busby.com.cn,十分感谢您的建议。
一、硬件配置
Dell R740机架式服务器
二、软件环境
Ubuntu 20.10
容器:LXD
存储:ZFS
面板:LXDUI
三、安装过程
3.1 LXD软件安装
1
| sudo apt-get install lxd zfsutils-linux bridge-utils
|
3.2 LXD初始化

- LXD Clustering:不需要
- New storage pool:需要创建一个存储池
- Name of storage pool:给存储池命名
- storage backend:存储后端,使用 ZFS
- Create a new ZFS pool:需要创建一个 ZFS 池
- Use an existing block device:Yes
- Path to block device:使用已有的磁盘分区用于 ZFS 的存储后端
- MAAS server?:不知道是啥,不需要
- New local network bridge?:需要,我只需要使用 LXD 默认的网桥即可
- New bridge be called:给网桥命名
- IPv4:默认 auto
- IPv6:默认 auto
- LXD available over the network?:默认 no
- Stale cached?:默认 yes
- YAML printed?:打印信息,yes/no 都行
3.3 LXD测试
1
| sudo lxc profile show default
|
3.4 创建容器模板
1
| sudo lxc remote add tuna-images https://mirrors.tuna.tsinghua.edu.cn/lxc-images/ --protocol=simplestreams --public
|
- 查看镜像列表,寻找合适的镜像的FINGERPRINT,用于下载
1
| sudo lxc image list tuna-images
|
- FINGERPRINT是镜像的指纹,在上条命令下查找,ContainerTemplateName为容器模板名称,自己定义
1
| sudo lxc launch tuna-images:<FINGERPRINT> <ContainerTemplateName>
|
- 举例,创建一个名为xenialTemplate的容器。在lxc清华源中24be957c5e9f是Ubuntu16.04的fingerprint
1
| sudo lxc launch tuna-images:24be957c5e9f xenialTemplate
|
1
| sudo lxc exec <ContainerTemplateName> bash
|
3.5 配置共享目录
- 设置共享目录来实现宿主机与容器之间的文件传输
- 设置键值
1
| sudo lxc config set <ContainerTemplateName> security.privileged true
|
- 设置共享目录,其中shareName为虚拟的设备名称,lxd会虚拟出该设备并导通接通两者共享目录,path1为宿主机下共享目录路径,path2为容器下共享目录路径
1
| sudo lxc config device add <ContainerTemplateName> <shareName> disk source=<path1> path=<path2>
|
3.6 设置用户密码
1 2 3
| sudo lxc exec <ContainerTemplateName> bash
passwd
|
3.7 配置Frp(内网穿透)
1 2 3 4 5
| [common] bind_port = 7000
# 限制端口,要对端口做好管理 allow_ports = 2000-3000
|
- 客户机配置:frpc.ini,容器执行
./frpc -c frpc.ini
连接服务。
1 2 3 4 5 6 7 8 9
| [common] server_addr = 10.**.**.** # 网段下宿主机的IP server_port = 7000 # 服务端的bind_port
[ssh-template] # 一个转发实例,注意每个实例名称都不能相同,括号中的名称自定义 type = tcp local_ip = 127.0.0.1 local_port = 22 # 容器本地SSH访问端口 remote_port = 2011 # 宿主机映射端口
|
四、分配容器及可视化管理
4.1 分配容器
- 克隆容器 参数一为模板容器名称,参数二为目标容器名称
1
| sudo lxc copy <ContainerTemplateName> <newContainerName>
|
1
| sudo lxc start <newContainerName>
|
1
| sudo lxc exec <newContainerName> bash
|
注意,此步骤后需要修改Frp的端口,重新建立内外网穿透,建议修改后使用snapshot快照备份sudo lxc snapshot <ContainerName>
。
4.2 可视化管理
1
| git clone https://github.com/AdaptiveScale/lxdui.git
|
1 2 3
| python3 -m venv lxdui
source lxdui/bin/activate
|
1 2 3 4 5
| cd lxdui
pip3 install . --user # 或 python3 setup.py install --user
|
五、参考文献
第一版修订于 2021.3.16