在CentOS7上创建运行KVM虚拟机

一、准备工作

1、检查CPU特性
CPU应该支持vmx特性以更好地运行KVM虚拟机:lscpu | grep vmx 或者 cat /proc/cpuinfo | grep vmx

[root@localhost ~]# lscpu | grep vmx
[root@localhost ~]#
[root@localhost ~]# cat /proc/cpuinfo | grep vmx
flags : aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr

2、安装一些基础软件包(非必须)

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

3、安装KVM及相关工具

sudo yum install -y qemu-kvm libvirt
sudo yum install -y qemu-img
sudo yum install -y virt-install.noarch
sudo yum install -y libguestfs-tools libguestfs-tools libguestfs-tools-c

如果安装不了,需要配置网络、DNS及yum源:

配置网络及DNS方法
修改yum安装源方法

二、验证安装结果

1、正常应该启动加载如下:

$ lsmod | grep kvm
kvm_intel 174250 0 kvm 570658 1
kvm_intel

2、如果只加载如下:

[root@localhost ~]# lsmod | grep kvm
kvm 554609 0
irqbypass 13503 1 kvm

3、需要加载KVM模块至内核:

modprobe kvm
modprobe kvm-intel

执行报错:

[root@localhost ~]# modprobe kvm
[root@localhost ~]#
[root@localhost ~]# modprobe kvm-intel
modprobe: ERROR: could not insert ‘kvm_intel’: Operation not supported

4、开启CPU支持虚拟机:

开机时按F2、F12、DEL、ESC等键就可以进入到BIOS,进入到BIOS后,找到Configuration选项或者Security选项,然后选择Virtualization,或者Intel Virtual Technology,然后回车,将其值设置成:设置为Enabled。
在这里插入图片描述
在这里插入图片描述
三、启动相关服务

1、启动libvirtd服务并设置为开机自动运行

systemctl start libvirtd
systemctl enable libvirtd

2、检查服务状态

systemctl status libvirtd
systemctl is-enabled libvirtd

3、调整权限
将user和group前面的#去掉,让root用户可以操作

[root@Dell ~]# vim /etc/libvirt/qemu.conf
user = “root”
group = “root”

四、创建KVM虚拟机

1、创建KVM目录

mkdir /root/kvm-test

2、创建虚拟磁盘文件

qemu-img create -f qcow2 /root/kvm-test/CentOS-7.qcow2 10G
-f 指定格式 qcow2 kvm的虚拟磁盘格式
/root/kvm-test/CentOS-7.qcow2 /root/kvm-test目录及CentOS-7.qcow2文件名
10G 虚拟磁盘大小

3、上传Linux安装镜像

CentOS-7-x86_64-Minimal-1810.iso

4、安装KVM虚拟机

1)安装命令:

virt-install --virt-type kvm --name kvm-test --ram 10240 --vcpus 1 --cdrom=/root/kvm-test/CentOS-7-x86_64-Minimal-1810.iso --disk /root/kvm-test/CentOS-7.qcow2,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7

2)安装命令解释

--virt-type HV_TYPE     要使用的管理程序名称 (kvm, qemu, xen, ...)
-n NAME, --name NAME    客户机实例名称
-r MEMORY, --ram=MEMORY:虚拟机内在大小,单位为MB;
--vcpus VCPUS           配置客户机虚拟 CPU(vcpu) 数量。例如:
                        --vcpus 5
                        --vcpus 5,maxcpus=10,cpuset=1-4,6,8
                        --vcpus sockets=2,cores=4,threads=2
--cdrom CDROM           光驱安装介质
--disk DISK             指定存储的各种选项。例如:
                        --disk size=10 (在默认位置创建 10GiB 镜像)
                        --disk /my/existing/disk,cache=none
                        --disk device=cdrom,bus=scsi
                        --disk=?
-w NETWORK, --network NETWORK
                        配置客户机网络接口。例如:
                        --network bridge=mybr0
                        --network network=my_libvirt_virtual_net
                        --network network=mynet,model=virtio,mac=00:11...
                        --network none
                        --network help
--graphics GRAPHICS     配置客户机显示设置。例如:
                        --graphics vnc
                        --graphics spice,port=5901,tlsport=5902
                        --graphics none
                        --graphics vnc,password=foobar,port=5910,keymap=ja
--noautoconsole         不要自动尝试连接到客户端控制台
--os-type=DISTRO_TYPE   操作系统类型,如linux、unix或windows等;
--os-variant DISTRO_VARIANT
                        在客户机上安装的操作系统,例如:'fedor
                        a18'、'rhel6'、'winxp' 等。

3)安装报错1:

Starting install… ERROR ‘virConnect’ object has no attribute
‘baselineHypervisorCPU’ Domain installation does not appear to have
been successful. If it was, you can restart your domain by running:
virsh --connect qemu:///system start kvm-test otherwise, please
restart your installation.

解决办法:将 libvirt-python-3.2.0-3 升级至 libvirt-python-4.5.0-1 即可解决

[root@localhost ~]# yum install libvirt-python
Resolving Dependencies
–> Running transaction check
—> Package libvirt-python.x86_64 0:3.2.0-3.el7_4.1 will be updated
—> Package libvirt-python.x86_64 0:4.5.0-1.el7 will be an update
–> Finished Dependency Resolution

4)安装报错2:

Starting install…
ERROR Cannot access storage file
‘/root/kvm-test/CentOS-7.qcow2’ (as uid:107, gid:107): Permission denied

解决办法:qemu.conf中将user和group前面的#去掉,让root用户可以操作,修改后重启libvirtd服务;

sed -i ‘s/#vnc_listen = “0.0.0.0”/vnc_listen = “0.0.0.0”/g’ /etc/libvirt/qemu.conf
sed -i ‘s/#group = “root”/group = “root”/g’ /etc/libvirt/qemu.conf
sed -i ‘s/#user = “root”/user = “root”/g’ /etc/libvirt/qemu.conf
service libvirtd restart

5)安装报错3:默认虚拟网络不可用或没有启动
在这里插入图片描述
a、检查/usr/share/libvirt/networks/目录下有没有default.xml文件;

[root@localhost ~]# cat net-define /usr/share/libvirt/networks/default.xml 
<network>
  <name>default</name>
  <bridge name="virbr0"/>
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254"/>
    </dhcp>
  </ip>
</network>

b、重新加载并激活xml配置:

virsh net-define /usr/share/libvirt/networks/default.xml
virsh net-autostart default
virsh net-start default

c、检查默认虚拟网络是否可用

[root@localhost ~]# virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

五、VNC连接KVM虚拟机

1、查看qemu-kvm端口

[root@localhost ~]# netstat -natp | grep kvm
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 9894/qemu-kvm
tcp 0 0 192.169.8.197:5900 192.169.0.24:63646 ESTABLISHED 9894/qemu-kvm

2、开放查出来的qemu-kvm端口

iptables -I INPUT -p tcp --dport 5900 -j ACCEPT

或者

(1) 端口: firewall-cmd --zone=public --add-port=5900/tcp --permanent
(2)刷新防火墙规则: firewall-cmd --reload
验证端口,查询防火墙开放端口: firewall-cmd --zone=public --list-port

3、使用VNC Viewer连接安装KVM虚拟机
在这里插入图片描述
如果没有开启qemu-kvm端口,则会出现如下报错:
在这里插入图片描述
六、KVM虚拟机控制及状态查看

1、virsh进入交互模式

[root@localhost ~]# virsh
Welcome to virsh, the virtualization interactive terminal.
Type: ‘help’ for help with commands
‘quit’ to quit
virsh # list --all

2、list --all 查看kvm虚拟机状态

[root@localhost ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     kvm-test                       shut off

3、启动虚拟机

[root@localhost ~]#virsh  start kvm-test
Domain kvm-test started

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 2     kvm-test                       running

4、关闭虚拟机

[root@localhost ~]# virsh shutdown kvm-test
Domain kvm-test is being shutdown

5、销毁虚拟机

[root@localhost ~]# virsh undefine kvm-test
Domain kvm-test has been undefined

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值