CentOS 7安装KVM并创建虚拟机

本文参考自KVM的安装KVM官网文档,这里记录安装和使用KVM的过程,以便后面查阅。

准备工作

检测是否支持KVM:KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的

# cat /proc/cpuinfo | egrep 'vmx|svm'
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave avx f16c lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm arat pln pts

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

vi /etc/sysconfig/selinux

也可以考虑配一个速度快的yum源。

安装 KVM 环境

通过 yum 安装 kvm 基础包和管理工具:

# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

启动libvirtd服务并设置为开机启动项:

# systemctl enable libvirtd && systemctl start libvirtd

查看KVM模块是否被正确加载:

lsmod | grep kvm
kvm_intel             174841  3 
kvm                   578518  1 kvm_intel
irqbypass              13503  3 kvm

配置网络

KVM 虚拟机默认是基于 NAT 的网络配置的,只有同一宿主机的虚拟键之间可以互相访问,跨宿主机是不能访问。虚拟机需要和宿主机配置成桥接模式,以便虚拟机可以在局域网内可见。

1. 我们将会创建一个名为'br0'的网桥,首先在网卡的配置文件中(比如:/etc/sysconfig/network-scripts/ifcfg-em1)添加这一行:

BRIDGE=br0

2. 创建 /etc/sysconfig/network-scripts/ifcfg-br0并添加:

DEVICE="br0"
# BOOTPROTO is up to you. If you prefer “static”, you will need to
# specify the IP address, netmask, gateway and DNS information.
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"

3. 启动网络重定向功能,在文件 /etc/sysctl.conf 添加:

net.ipv4.ip_forward = 1

更新之:

# sysctl -p /etc/sysctl.conf

4. 重启服务 'NetworkManager' :

# systemctl restart NetworkManager

创建虚拟机

使用virt-install工具可以很方便的创建虚拟机,这里我使用非交互模式创建一个名为vm1的虚拟机:

 virt-install \
 --network bridge:br0 \
 --name vm1 \
 --ram=512 \
 --vcpus=1 \
 --disk path=/var/lib/libvirt/images/vm1.img,size=10 \
 --graphics none \
 --location=http://mirrors.163.com/centos/6.9/os/x86_64/\
 --extra-args="console=tty0 console=ttyS0,115200"

遇到的问题

1. 在完成kvm虚拟机的安装之后,如果想要重装相同名字的虚拟机,是会有错误提示的,就算是删除了虚拟机的xml文件,也会弹出错误提示:

ERROR  Guest name ‘vm1’ is already in use.

解决方法:

1)查看虚拟机'vm1'所在进程的ID号,关掉这个进程:

# ps aux | grep 'vm1'
kill -9 pid

2)执行命令:

# virsh undefine vm1


你可能感兴趣的:(KVM)