环境准备
- centos7.6
- CPU支持VT技术
查看是否支持KVM
代码语言:javascript复制# egrep 'vmx|svm' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat spec_ctrl intel_stibp flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat spec_ctrl intel_stibp flush_l1d arch_capabilities
输出内容包含vmx或svm字段表示CPU支持
禁用selinux
代码语言:javascript复制sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux
设置语言
代码语言:javascript复制# cat /etc/locale.conf
LANG="en_US.UTF-8"
更换yum源
代码语言:javascript复制mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum -y update
安装KVM
通过yum安装
代码语言:javascript复制yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
包名介绍
qumu-kvm
主要的kvm程序包python-virtinst
创建虚拟机所需要的命令行工具和程序库virt-manager
GUI虚拟机管理工具libvirt
C语言工具包,提供libvirt服务libvirt-client
为虚拟客户提供的C语言工具包virt-install
基于libvirt服务的虚拟机创建命令bridge-utils
创建和管理桥接设备的工具
重启服务器,加载kvm模块
代码语言:javascript复制init 6
or
reboot
查看KVM模块是否加载
代码语言:javascript复制# lsmod | grep kvm
kvm_intel 183737 0
kvm 615914 1 kvm_intel
irqbypass 13503 1 kvm
开启kvm服务
代码语言:javascript复制systemctl start libvirtd
systemctl enable libvirtd
安装虚拟机
创建目录
代码语言:javascript复制mkdir -p /data/kvm/{images,virtual-server}
上传镜像
这里建议使用filezilla上传,使用rz上传可能会失败
配置网卡
代码语言:javascript复制cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0
# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.152.160
PREFIX=24
GATEWAY=192.168.152.2
DNS1=114.114.114.114
修改之前的网卡配置
代码语言:javascript复制# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
重启网卡
代码语言:javascript复制systemctl restart network
创建虚拟机
代码语言:javascript复制virt-install
--virt-type=kvm
--os-type=linux
--name=web-server
--vcpus=1,maxvcpus=2
--memory=512,maxmemory=1024
--location=/data/kvm/images/CentOS-7-x86_64-Minimal-1810.iso
--disk path=/data/kvm/virtual-server/web-server.qcow2,size=10,format=qcow2
--network bridge=br0
--graphics none
--extra-args='console=tty0 console=ttyS0'
--force
上面命令执行无误后,就会出现设置的命令行界面
根据提示选择要配置的选项,首先配置时区,输入 2
根据提示一步一步进行安装,其他的也类似,注意:! 表示必须要设置的 所有带有 ! 的都设置完毕后,就可以输入 b 继续安装了
到这就安装完成了
虚拟机操作
虚拟机相关的一些命令
查看虚拟机
代码语言:javascript复制# virsh list
Id Name State
----------------------------------------------------
2 web-server running
virsh list --all 列出所有虚拟机
连接虚拟机
代码语言:javascript复制virsh console web-server
启停相关的命令
代码语言:javascript复制virsh start web-server # 虚拟机开启(启动):
virsh reboot web-server # 虚拟机重新启动
virsh shutdown web-server # 虚拟机关机
virsh destroy web-server # 强制关机(强制断电)
virsh suspend web-server # 暂停(挂起)KVM 虚拟机
virsh resume web-server # 恢复被挂起的 KVM 虚拟机
virsh undefine web-server # 该方法只删除配置文件,磁盘文件未删除
virsh autostart web-server # 随物理机启动而启动(开机启动)
virsh autostart --disable web-server # 取消标记为自动开始(取消开机启动)
上面是简单的部署过程,后面会继续整理网络相关的配置过程