LXC——LinuX Container
对于学习Linux的学生,在学习高可用、负载均衡、集群等知识时,经常会有用到20多台虚拟服务器的需求,因电脑配置原因,创建的虚拟机数量不足,导致无法按照预设拓扑图进行试验的窘境,而LXC程序的存在就是为了解决这个痛点而生。
LXC程序是一款开源程序,类似于VMWare虚拟机软件,LXC能够在一个内核空间基础上建立多个互相独立的用户空间,能够满足我们建立多主机集群的难题。下面我们来学习如何使用LXC创建多台虚拟机(用户空间)吧。
准备一个CentOS系统(此处称为母LXC系统)
- 建议配置两块网卡(假设为ens33和ens34),方便在其中一块网卡设置为虚拟网络的桥接接口后能够联网下载所需程序包,并且使用ssh程序能够连接控制母LXC系统
准备工作:创建LXC系统网络接口
- 创建虚拟桥接网络配置文件并修改文件,如下:
cd /etc/sysconfig/network-scripts
cp ifcfg-ens34 ifcfg-virbr0
vim ifcfg-virbr0
#修改下面两项内容
DEVICE=virbr0
TYPE=Bridge
#删除UUID、HWADDR等条目
#设置IPADDR、PREFIX、GATEWAY、DNS1等条目
- 修改网络接口配置文件
cd /etc/sysconfig/network-scripts
vim ifcfg-ens34
#添加一条内容
BRIDGE=virbr0
#删除UUID、HWADDR等条目
#删除IPADDR、PREFIX、GATEWAY、DNS1等条目
下载LXC程序以及LXC模板程序
lxc收录在epel仓库中。
yum -y install lxc lxc-templates
创建lxc虚拟机
lxc-create -n lxc2 -t centos
等待虚拟机创建完成,启动虚拟机
- 修改虚拟机登录密码命令
chroot /var/lib/lxc/lxc2/rootfs passwd
- 启动虚拟机并登录
可以使用 “-d” 或 “-F” 选项选择运行为后台进程或前台启动指定虚拟机
lxc-start -n lxc1
进入虚拟机并设置网络配置文件
- 首次启动虚拟机不要在让虚拟机在后台运行,因为需要查询该虚拟机的IP地址(也可以手动指定),方便ssh连接至该虚拟机
注意:手动配置网卡文件后重启network服务可能会报错,无需理会。
在母LXC系统执行命令:
lxc-stop -n lxc1
lxc-start -d -n lxc1
使用ssh程序连接至该虚拟机,lxc1虚拟机可以正常使用
如果有需求可以对虚拟机做快照,命令:
lxc-snapshot -n lxc1