1.确认 CPU 已经支持虚拟化,intel 的 CPU 虚拟化技术叫 vmx,AMD 的 CPU 叫 svm

[root@localhost ~]# grep -E   "vmx|svm" /proc/cpuinfo
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 pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts spec_ctrl intel_stibp flush_l1d
  • 1.
  • 2.
  • 3.

2.安装kvm平台及工具包,启动libvirtsd并设置为开机启动,启动完librirtd会创建一个桥接的网卡virbr0而且IP地址是192.168.122.1

[root@localhost ~]#yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install 
[root@localhost ~]#systemctl  start libvirtd
[root@localhost ~]#systemctl  enable  libvirtd
  • 1.
  • 2.
  • 3.

3.桥接方式网络:

网桥方式配置步骤
1、编辑修改网络设备脚本文件,增加网桥设备br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=10.0.112.39
NETMASK=255.255.255.0
GATEWAY=10.0.112.1
DEFROUTE=yes
上述配置将虚拟网卡配置在了10.0.112.* 网段。如果不需要静态地址,可以把配置地址的相关项屏蔽。如:
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=dhcp

2、编辑修改网络设备脚本文件,修改网卡设备eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=none
**BRIDGE="br0"**
NAME="System eth0"
HWADDR=44:37:E6:4A:62:AD
NM_CONTROLLED这个属性值,根据RedHat公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。
3、重启网络服务
#service network restart
4、校验桥接接口
#brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.4437e64a62ad       no              eth0
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.

4.创建磁盘

# 创建一个格式为raw大小为10G的裸磁盘

[root@localhost ~]#  qemu-img create -f raw /opt/CentOS-7-x86_64.raw 10G 
Formatting '/opt/CentOS-7-x86_64.raw', fmt=raw size=10737418240
  • 1.
  • 2.
  • 3.
  • 4.

5.安装虚拟机

# 默认网络
[root@localhost ~]# virt-install  --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/opt/CentOS-7-x86_64-DVD-1511.iso --disk path=/opt/CentOS-7-x86_64.raw  --network network=default --graphics  vnc,listen=0.0.0.0 --noautoconsole

# 桥接网络:
[root@localhost ~]# virt-install  --virt-type kvm --name  openstack-middleware1    --ram 4096  --vcpus 4 --cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1511.iso    --disk path=/var/lib/libvirt/images/CentOS-7-x86_64-GenericCloud-1511-ok.qcow2   --network bridge=br0  --graphics  vnc,listen=0.0.0.0  --noautoconsole

# 安装Windows:
[root@localhost ~]# qemu-img create -f qcow2   /var/lib/libvirt/images/Windows-2008_r2-x86_64.qcow2  200G
[root@localhost ~]#  virt-install --virt-type kvm  --name  Win_2008_r2-x86_64 --ram 3072  --vcpus=2 --os-type=windows --cdrom=/usr/local/src/windows_server_2008_r2.iso --disk path=/var/lib/libvirt/images/Windows-2008_r2-x86_64.qcow2,format=qcow2,bus=virtio   --disk path=/usr/local/src/virtio-win-0.1.141_amd64.vfd,device=floppy     --network bridge=br0,model=virtio  --graphics  vnc,listen=0.0.0.0 --noautoconsole

开始安装......
创建域......                                                                                                                       |    0 B  00:00:01     
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

6.创建完成通过 vnc 客户端连接到安装界面,kvm 虚拟机的默认端口从 5900 开始
vnc下载地址: https://www.realvnc.com/en/connect/download/viewer/macos/centos中KVM虚拟化_centos中KVM虚拟化

7.命令使用

# virsh-install命令帮助:
virt-install  --help

# 获取命令帮助
virsh  -help

# 当前正在运行的所有虚拟机
virsh  list --all
 Id    名称                         状态
----------------------------------------------------
 2     CentOS-7-x86_64                running
 -     CentOS-x86_64                  关闭
 -     CentOS_x86_64                  关闭

# 命令帮助
virsh  list --help

# 列出关闭的虚拟机
virsh  list  --inactive
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

8.KVM虚拟化之虚拟机内存、CPU调整

1.查看当前内存大小
virsh dominfo vm1-clone | grep memory

2.关闭虚拟机
virsh shutdown vm1-clone

3.编辑虚拟机配置文件修改内存大小、vcpu个数
virsh edit vm1-clone
......<memory unit='KiB'>1048432</memory>
  <currentMemory unit='KiB'>1048432</currentMemory>
  <vcpu placement='static'>2</vcpu>
......

4.从配置文件启动虚拟机
virsh create /etc/libvirt/qemu/vm1-clone.xml

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

9.克隆虚拟机

1,关闭模板虚拟机
virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos7                        shut off

2,开始克隆,新虚拟机名称为centos7_clone
virt-clone -o centos7 -n centos7_clone -f /var/lib/libvirt/images/centos7_clone.qcow2
Allocating 'centos7_clone.qcow2'                        |  40 GB  00:04     

Clone 'centos7_clone' created successfully.

3,查看虚拟机列表
virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos7                        shut off
 -     centos7_clone                  shut off
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

参考链接: https://www.jianshu.com/p/b352ec058aac https://blog.csdn.net/hzhsan/article/details/44098537/ https://blog.csdn.net/hnhuangyiyang/article/details/50902223 https://baijiahao.baidu.com/s?id=1612293596898577753&wfr=spider&for=pc https://www.ibm.com/developerworks/cn/linux/l-using-kvm/