1.确认 CPU 已经支持虚拟化,intel 的 CPU 虚拟化技术叫 vmx,AMD 的 CPU 叫 svm
代码语言:javascript复制[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
2.安装kvm平台及工具包,启动libvirtsd并设置为开机启动,启动完librirtd会创建一个桥接的网卡virbr0而且IP地址是192.168.122.1
代码语言:javascript复制[root@localhost ~]#yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install
[root@localhost ~]#systemctl start libvirtd
[root@localhost ~]#systemctl enable libvirtd
3.桥接方式网络:
代码语言:javascript复制网桥方式配置步骤
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
4.创建磁盘
代码语言:javascript复制# 创建一个格式为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
5.安装虚拟机
代码语言:javascript复制# 默认网络
[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
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。
6.创建完成通过 vnc 客户端连接到安装界面,kvm 虚拟机的默认端口从 5900 开始 vnc下载地址:https://www.realvnc.com/en/connect/download/viewer/macos/
7.命令使用
代码语言:javascript复制# 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
8.KVM虚拟化之虚拟机内存、CPU调整
代码语言:javascript复制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
9.克隆虚拟机
代码语言:javascript复制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
参考链接: 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/