服务器:192.168.8.176 CentOS_64 7.2.1511 (Core)
1、判断服务器是否支持虚拟化?
[root@kvm ~]# grep -Ei ‘vmx|svm‘ /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx pdpe1g pclmulqdq vmx ssse3 fma cx16 pcid sse4
以下是ESXi6.0上面的虚拟机报错处理:宿主机硬件未开启虚拟化造成的。
2、安装虚拟化包
[root@kvm ~]# yum install -y kvm virt-* libvirt bridge-utils qemu-img
[root@kvm ~]# modprobe kvm-intel
[root@kvm ~]# lsmod |grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
3、配置ip地址
[root@kvm ~]# cd /etc/sysconfig/network-scripts
[root@kvm network-scripts]# cp ifcfg-eno16777736 ifcfg-br0
[root@kvm network-scripts]# grep -v ‘#‘ ifcfg-eno16777736
TYPE=Ethernet
NAME=eno16777736
UUID=d3c4aa56-03f6-4da8-97fc-4e3f521b50c2
DEVICE=eno16777736
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
[root@kvm network-scripts]# grep -v ‘#‘ ifcfg-br0
TYPE=Bridge
IPV4_FAILURE_FATAL=no
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.8.176
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=114.114.114.114
4、启动管理接口,启动消息总线
[root@kvm network-scripts]# systemctl start libvirtd
[root@kvm network-scripts]# systemctl status libvirtd
[root@kvm network-scripts]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29cfbb6a no eno16777736
virbr0 8000.000000000000 yes
5、准备足够的硬盘
[root@kvm ~]# fdisk -l /dev/sdb
[root@kvm ~]# mke2fs -t ext4 /dev/sdb1
[root@kvm ~]# mkdir /data
[root@kvm ~]# mount /dev/sdb1 /data/
[root@kvm ~]# df -h
6、上传镜像
[root@kvm iso]# ls /data/iso/CentOS-7-x86_64-Minimal-1511.iso
7、定义存储池
参考:http://blog.csdn.net/LH9898/article/details/62913727
[root@kvm data]# ll
总用量 24
drwxr-xr-x 2 root root 4096 2月 23 11:22 iso
drwxr-xr-x 2 root root 4096 2月 23 11:28 kvm
drwx------ 2 root root 16384 2月 23 11:02 lost+found
[root@kvm data]# virsh pool-define-as Serverpool --type dir --target /data/kvm/
定义池 Serverpool
[root@kvm data]# virsh pool-build Serverpool
构建池 Serverpool
[root@kvm data]# virsh pool-autostart Serverpool
池 Serverpool 标记为自动启动
[root@kvm data]# virsh pool-start Serverpool
池 Serverpool 已启动
[root@kvm data]# virsh pool-info Serverpool
名称: Serverpool
UUID: 3f8d37f2-5190-4987-8b57-2d1a6e040dc0
状态: running
持久: 是
自动启动: 是
容量: 98.30 GiB
分配: 663.04 MiB
可用: 97.66 GiB
8、安装虚拟机。整个过程需要借助第三方工具(VNC Viewer)来安装
[root@kvm data]# virt-install --name centos7_test1 --ram 1024 --vcpus=1 --os-type=linux --accelerate -c /data/iso/CentOS-7-x86_64-Minimal-1511.iso --disk path=/data/kvm/centos7_test1.img,size=20,bus=virtio,format=qcow2 --network bridge=br0,model=virtio --force --autostart --vnc --vncport=5994 --vnclisten=0.0.0.0
WARNING 未检测到操作系统,虚拟机性能可能会受到影响。使用 --os-variant 选项指定操作系统以获得最佳性能。
WARNING 需要图形显示,但未设置 DISPLAY。不能运行 virt-viewer。
WARNING 没有控制台用于启动客户机,默认为 --wait -1
开始安装......
正在分配 ‘centos7_test1.img‘ | 20 GB 00:00:00
ERROR unsupported format character ‘0xffffffe7) at index 47
域安装失败,您可以运行下列命令重启您的域:
‘virsh start virsh --connect qemu:///system start centos7_test1‘
否则请重新开始安装。
[root@kvm data]# virsh list 查看虚拟机状态
Id 名称 状态
----------------------------------------------------
2 centos7_test1 running
下面再安装Windows虚拟机试试
[root@kvm iso]# ll
-rw-r--r-- 1 qemu qemu 632291328 10月 31 19:55 CentOS-7-x86_64-Minimal-1511.iso
-rw-r--r-- 1 root root 2653276160 2月 23 14:50 cn_windos_7e_with_sp1_x86_dvd_u_677486.iso
[root@kvm iso]# virt-install --name win7 --ram 1024 --vcpus=1 --os-type=windows --accelerate -c /data/iso/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso --disk path=/data/kvm/win7.img,size=30,bus=virtio,format=qcow2 --network bridge=br0,model=virtio --force --autostart --vnc --vncport=5991 --vnclisten=0.0.0.0
WARNING 需要图形显示,但未设置 DISPLAY。不能运行 virt-viewer。
WARNING 没有控制台用于启动客户机,默认为 --wait -1
开始安装......
正在分配 ‘win7.img‘ | 30 GB 00:00:00
ERROR unsupported format character ‘0xffffffe7) at index 47
域安装失败,您可以运行下列命令重启您的域:
‘virsh start virsh --connect qemu:///system start win7‘
否则请重新开始安装。
安装Windows过程中,出现找不到驱动器。
参考:http://fedoraproject.org/wiki/Windows_Virtio_Drivers
[root@kvm iso]# curl --output /etc/yum.repos.d/virtio-win.repo https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo
[root@kvm iso]# yum install virtio-win
提示: 这里是使用的是软盘方式加载,如果镜像和驱动都使用cdrom的方式加载,在有些情况系统会找不到启动镜像,导致无法启动. 加载的驱动有x86和amd64两种类型,64位系统选择amd64. 32为系统选择x86.(软盘、位数)
290 yum -y install libstdc++-4.8.5-4.el7.x86_64
291 yum -y install spice-server spice-protocol
292 yum -y install qemu-kvm-tools virt-viewer virt-v2v libguestfs-tools-c
293 yum install libguestfs-winsupport
这里安装2008R2,可以找到对应的驱动程序,如下截图。
[root@kvm iso]# virt-install --name win2008 --ram 1024 --vcpus=1 --os-type=windows --accelerate -c /data/iso/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso --disk=/usr/share/virtio-win/virtio-win-0.1.141_amd64.vfd,device=floppy --disk path=/data/kvm/2008.img,size=30,bus=virtio,format=qcow2 --network bridge=br0,model=virtio --force --autostart --vnc --vncport=5992 --vnclisten
root@kvm iso]# virt-install --name win7 --ram 1024 --vcpus=1 --os-type=windows --accelerate -c /data/iso/cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso --disk=/usr/share/virtio-win/virtio-win-0.1.141_amd64.vfd,device=floppy --disk path=/data/kvm/win7.img,size=30,bus=virtio,format=qcow2 --network bridge=br0,model=virtio --force --autostart --vnc --vncport=5991 --vnclisten=0.0.0.0
32位操作系统安装如下,
[root@kvm data]# virt-install --name win71 --ram 1024 --vcpus=1 --os-type=windows --accelerate -c /data/iso/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso --disk=/usr/share/virtio-win/virtio-win-0.1.141_x86.vfd,device=floppy --disk path=/data/kvm/win71.img,size=30,bus=virtio,format=qcow2 --network bridge=br0,model=virtio --force --autostart --vnc --vncport=5993 --vnclisten=0.0.0.0
32位可以安装,需要对应32位网卡信息。
至此,kvm虚拟化环境初步搭建完毕。
采坑的位置:软盘挂载,系统对应的驱动位数