LXD虚拟化服务器
本文档记录了简单的LXD虚拟化方案,能够实现
- 在物理机上创建多个隔离的容器环境
- 在容器环境中运行桌面
- 将GPU接入容器环境中,并在多个容器间共享
快速配置
宿主机
快速初始化宿主机
# 安装对应依赖
sudo apt install lxd zfsutils-linux bridge-utils
# 创建存储池
lxc storage create <storage-poll-name> zfs size=256GB
# 初始化lxd
lxd init
# 添加存储池
lxc profile device add default root disk path=/ pool=<storage-poll-name>
# 添加清华镜像
lxc remote add tuna-images https://mirrors.tuna.tsinghua.edu.cn/lxc-images/ --protocol=simplestreams --public
快速创建新容器
# 创建容器(此处对应ubuntu/18.04镜像)
lxc launch tuna-images:ubuntu/18.04 <container-name>
# 添加GPU(此处添加第一个GPU)
lxc config device add <container-name> gpu0 gpu id=0
如果需要在容器内运行docker,需要权限
lxc config edit <container-name>
在
config
段中添加设置security.nesting: "true" security.privileged: "true"
容器
# 设置密码,此处对应的是ubuntu/18.04镜像
passwd root
passwd ubuntu
# 安装SSH
apt update
apt install openssh-server
# 安装图形界面
apt install ubuntu-desktop
# 安装NVIDIA驱动(如果有),建议由驱动自动配置X service
sudo sh ./NVIDIA-Linux-X86_64-<driver-version>.run --no-kernel-module
# 安装rdp
wget "https://www.c-nergy.be/downloads/xrdp-installer-1.2.zip"
unzip xrdp-installer-1.2.zip
chmod +x xrdp-installer-1.2.sh
./xrdp-installer-1.2.sh
常用命令
查看清华源中的镜像列表:
lxc image list tuna-images:
显示容器信息
lxc info <container-name>
进入容器
lxc exec <container-name> /bin/bash
推送文件到容器中
lxc file push <source> <container-name>/path/to/destination
从容器中取出文件
lxc file pull <container-name>/path/to/source <destination>
保存当前容器为镜像
lxc publish <container-name> --alias <image-name> --public
生成快照
lxc snapshot <container-name> <snapshot-name?>
还原快照
lxc restore <container-name> <snapshot-name>
导出镜像
lxc image export <image-name> <file-path>
导入镜像
sudo lxc image import <file-path> --alias <image-name>
端口映射办法
默认SSH映射在外网:6X22
默认RDP映射在外网:6X89
桥接网络配置
eth0:
name: eth0
nictype: macvlan
parent: enp34s0
type: nic