在centos7上安装kvm,用virsh 管理

一、安装kvm及其相关组件

1. 验证CPU是否支持KVM;如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。

egrep '(vmx|svm)' /proc/cpuinfo


2. 关闭SELinux,将 /etc/sysconfig/selinux 中的 SELinux=enforcing 修改为 SELinux=disabled 


3. 最小安装的CentOS安装一些最基本的包(可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)

yum install epel-release net-tools vim unzip zip wget ftp -y

4. 安装KVM及其依赖项(合起来yum会报错)

yum install qemu-kvm -y
yum install libvirt -y
yum install virt-install -y
yum install bridge-utils -y

5. 验证安装结果,下图说明已经成功安装了

lsmod | grep kvm


6. 开启kvm服务,并且设置其开机自动启动

systemctl start libvirtd
systemctl enable libvirtd

7. 查看状态操作结果,如下图所示,说明运行情况良好

systemctl status libvirtd
systemctl is-enabled libvirtd


8. 配置网桥模式,先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份(注:不要备在当前目录以及子目录下,其他目录随意)

添加ifcfg-br0

TYPE="Bridge"
BOOTPROTO="static"
DEFROUTE="yes"
#NAME="ens33"
#UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="br0"
ONBOOT="yes"
IPADDR=10.0.0.130
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
DNS2=8.8.4.4

改写ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NM_CONTROLLED="no"
UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"

开启stp服务
brctl stp br0 on

重启网络服务,使用 ifconfig 验证操作结果,多了一块网卡br0。


注意:宿主机需要安装acpid服务才能实现 宿主机shell中关闭虚拟机(virsh shutdown vm0)

yum -y install acpid
systemctl start acpid
systemctl enable acpid


二、用vnc viewer安装虚拟机 (注意:使用root账户)

1. 准备操作系统安装镜像文件,在本文中将使用和宿主环境一样的CentOS7.3,把该文件放到 /home/kvm/iso.d/ 目录下


2. 创建虚拟机文件存放的目录

mkdir -p /home/kvm/img.d

3. 使用 virt-install 创建虚拟机

virt-install --name vm0 \
--memory 4096 --disk /home/kvm/img.d/vm0.qcow2,format=qcow2,size=32 \
--network bridge=br0 \--os-type=linux \
--cdrom /home/kvm/iso.d/CentOS-7.3-x86_64-DVD.iso \
--vnc --vncport=5910 --vnclisten=0.0.0.0


4. 打开防火墙上的5910端口

firewall-cmd --zone=public --add-port=5910/tcp --permanent
firewall-cmd --reload


5. 下载VNC Viewer, 使用VNC Viewer连接该虚拟机(kvm自带vnc-server,所以只需下载vnc viewer即可),进行虚拟机操作系统的安装,


6. 安装完CentOS,系统要求重启,这时候虚拟机没有重启(也不知是因为什么问题),VNC也连不上,先在宿主机上查看虚拟机状态

virsh list --all


7. 手动启动虚拟机, 再次使用VNC连接,发现已经可以连进去了

virsh start vm0 

8. 其余virsh操作
virt-clone -o vm0 -n vm1 -f /home/img.d/vm1.qcow2
virsh edit vm1 (一般都是更改vnc接口)
virsh shutdown vm0(关机)
virsh undefine vm0 (删除虚拟机,但虚拟机文件要手动删除)


三、克隆虚拟机
1、关闭虚拟机:
克隆之前要确保源虚拟机关闭,命令:
virsh shutdown centos-dfy

2、克隆命令:
virt-clone -o centos-dfy -n centos-dfy01 -f /home/kvm/img.d/centos-dfy01.qcow2
命令解释:
将centos-dfy 克隆,新的虚拟机名称为centos-dfy01,镜像存储路径为/home/kvm/img.d/centos-dfy01.qcow2

3、编辑新虚拟机
virsh edit centos-dfy01
修改其vnc端口
查找/vnc

4、打开新虚拟机
virsh start centos-dfy01

四、其余virsh 命令


virsh list                                                 #显示本地活动虚拟机

virsh list –all                                          #显示本地所有的虚拟机(活动的+不活动的)

virsh define ubuntu.xml                     #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)

virsh start ubuntu                               #启动名字为ubuntu的非活动虚拟机

virsh create ubuntu.xml                    # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)

virsh suspend ubuntu                         # 暂停虚拟机

virsh resume ubuntu                          # 启动暂停的虚拟机

virsh shutdown ubuntu                      # 正常关闭虚拟机

virsh destroy ubuntu                          # 强制关闭虚拟机

virsh dominfo ubuntu                         #显示虚拟机的基本信息

virsh domname 2                                # 显示id号为2的虚拟机名

virsh domid ubuntu                             # 显示虚拟机id号

virsh domuuid ubuntu                        # 显示虚拟机的uuid

virsh domstate ubuntu                      # 显示虚拟机的当前状态

virsh dumpxml ubuntu                       # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)

virsh setmem ubuntu 512000          #给不活动虚拟机设置内存大小

virsh setvcpus ubuntu 4                     # 给不活动虚拟机设置cpu个数

virsh edit ubuntu                                 # 编辑配置文件(一般是在刚定义完虚拟机之后)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值