您的位置:首页 > 运维架构 > Linux

在centos7上安装kvm,用virsh 管理

2017-09-20 19:02 274 查看
一、安装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 libvirtdsystemctl enable libvirtd
7. 查看状态操作结果,如下图所示,说明运行情况良好
systemctl status libvirtdsystemctl is-enabled libvirtd
8. 配置网桥模式,先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份(注:不要备在当前目录以及子目录下,其他目录随意)添加ifcfg-br0TYPE="Bridge"BOOTPROTO="static"DEFROUTE="yes"#NAME="ens33"#UUID="f7b9a37f-d1bc-486a-83f9-1fea0cf85fbc"DEVICE="br0"ONBOOT="yes"IPADDR=10.0.0.130PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.4.4改写ifcfg-ens33TYPE="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 acpidsystemctl start acpidsystemctl 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.04. 打开防火墙上的5910端口
firewall-cmd --zone=public --add-port=5910/tcp --permanentfirewall-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-dfy2、克隆命令: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.qcow23、编辑新虚拟机virsh edit centos-dfy01修改其vnc端口查找/vnc4、打开新虚拟机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                        # 显示虚拟机的uuidvirsh domstate ubuntu                      # 显示虚拟机的当前状态virsh dumpxml ubuntu                       # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)virsh setmem ubuntu 512000          #给不活动虚拟机设置内存大小virsh setvcpus ubuntu 4                     # 给不活动虚拟机设置cpu个数virsh edit ubuntu                                 # 编辑配置文件(一般是在刚定义完虚拟机之后)
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kvm