需求
实验室有多人共用一台服务器,为了避免环境之间相互干扰,采用Lxc创建虚拟机。
LXD简介
LXD 就是一个提供了 REST API 的 LXC 容器管理器,LXD 最主要的目标就是使用 Linux 容器而不是硬件虚拟化向用户提供一种接近虚拟机的使用体验。LXD 聚焦于系统容器,通常也被称为架构容器。这就是说 LXD 容器实际上如在裸机或虚拟机上运行一般运行了一个完整的 Linux 操作系统。相对的, Docker 关注于短期的、无状态的、最小化的容器,这些容器通常并不会升级或者重新配置,而是作为一个整体被替换掉。这就使得 Docker 及类似项目更像是一种软件发布机制,而不是一个机器管理工具。
安装环境
系统:ubuntu 18.04
注意,18.04及之后的才支持apt安装Lxd2.0,16.04可使用包管理工具snap安装2.0
安装方法
1、LXD容器安装
sudo apt-get install lxd zfsutils-linux bridge-utils
2、初始化
sudo lxd init
初始化选项
Would you like to use LXD clustering? (yes/no) [default=no]:no
LXD Clustering:不需要
Do you want to configure a new storage pool? (yes/no) [default=yes]:yes
New storage pool:需要创建一个存储池
Name of the new storage pool [default=default]: lxd_pool
Name of storage pool:给存储池命名
Name of the storage backend to use (btrfs, ceph, dir, lvm, zfs) [default=zfs]:zfs
storage backend:存储后端,使用 ZFS
Create a new ZFS pool? (yes/no) [default=yes]:yes
Create a new ZFS pool:需要创建一个 ZFS 池
Would you like to use an existing block device? (yes/no) [default=no]:yes
Use an existing block device:Yes
Path to the existing block device: /dev/sdc
Path to block device:使用已有的磁盘分区用于 ZFS 的存储后端(一般使用使用空硬盘作为存储后端)
Would you like to connect to a MAAS server? (yes/no) [default=no]:no
Would you like to create a new local network bridge? (yes/no) [default=yes]: yes
New local network bridge?:需要,我只需要使用 LXD 默认的网桥即可
What should the new bridge be called? [default=lxdbr0]:lxdbr0
New bridge be called:给网桥命名
What IPv4 address should be used? (CIDR subnet notation, "auto" or "none") [default=auto]:auto
IPv4:默认 auto
What IPv6 address should be used? (CIDR subnet notation, "auto" or "none") [default=auto]:auto
IPv6:默认 auto
Would you like LXD to be available over the network? (yes/no) [default=no]:no
LXD available over the network?:默认 no
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:yes
Stale cached?:默认 yes
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:yes
YAML printed?:打印信息,yes/no 都行
3、LXD测试
- 查看ZFS的后端存储池(存储池大小,已用空间等)
sudo zpool list lxd_pool
- 查看LXD的配置信息
sudo lxc info
- 查看默认容器配置
sudo lxc profile show default
- 查看容器列表
sudo lxc list
- 暂停容器
sudo lxc stop <container>
- 删除容器
sudo lxc delete <container>