1.环境准备
物理机准备
内存设置4GB
系统centos7.4下载地址http://mirror.unpad.ac.id/centos/7.4.1708/isos/x86_64/
配置好图形界面和开发工具和国内yum源
开机
查看自己的 CPU 是否支持全虚拟化虚拟化技术且是 64 位的
[root@node2 ~]# cat /proc/cpuinfo | grep --color vmx
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 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 arat xsaveopt tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 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 arat xsaveopt tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 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 arat xsaveopt tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht 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 arat xsaveopt tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap
yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python -y
qemu-kvm:kvm主程序
virt-manager:kvm图形化管理工具
libvirt:虚拟化服务
libguestfs-tools:虚拟机系统管理工具
virt-install:安装虚拟机的实用工具
libvirt-python:python调用libvirt虚拟化服务的api接口
2.kvm的使用
systemctl start libvirtd
systemctl enable libvirtd
systemctl is-enabled libvirtd
systemctl status libvirtd
[root@master01 ~]# lsmod|grep kvm
kvm_intel 170086 0
kvm 566340 1 kvm_intel
irqbypass 13503 1 kvm
确保这三项出现并且libvirtd状态正常
2.1.1建立虚拟机
使用virt-manager建立虚拟机
kvm工具切换中文使用LANG='zh_CN.UTF-8'
echo $LANG能查看当前kvm语言
[root@master01 ~]# virt-manager
[root@master01 ~]# echo $LANG
zh_CN.UTF-8
在kvm里右击此选项可以新建虚拟机
2.1.2使用bride桥接网络
yum install bridge-utils
之后编辑网卡文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 /opt/
vim ifcfg-ens33
删除其中的ip地址、子网掩码位,网关,dns地址4行
在其最后添加BRIDGE="br0"
效果如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f2bd7624-5647-41d8-b0cb-d041ab29ad39
DEVICE=ens33
ONBOOT=yes
IPV6_PRIVACY=no
PEERDNS=no
BRIDGE="br0"
之后添加br0网卡配置
vim ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=none #static/dhcp/none
IPADDR=10.10.10.27
NETMASK=255.255.255.0
GATEWAY=10.10.10.2
DNS1=10.10.10.2
将原来eth0的4项参数填在这里
2.1.3查看桥设备
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29c15816 no ens33
virbr0 8000.525400ab5392 yes virbr0-nic
virbr0是kvm创的bridge设备,bridge设备的mac地址与ens33是一样的
2.2 创建一台kvm虚拟机
2.2.1准备
df -h 确保磁盘上有足够的空间
cd /var/lib/libvirt/images #此目录为安装虚拟机默认存放的路径
用xftp将centos7.4的镜像复制到此目录中
2.2.2创建过程
virt-manager打开kvm图形管理窗口
右击新建-本地安装介质-前进-浏览
在选择存储卷页面中左边栏为image根目录,可点击左下角的+改变,如图
下方的本地浏览可以选择镜像
一路前进,根据提示配置各项参数
其中,选择网络
选择前面创建好的bridge桥br0
最后点击完成就可以进入系统了,接下来的流程和正常装centos7并无不同
2.2.3kvm图形界面下的虚拟机管理
点击灯泡出现如下界面
引导选项可以在虚机关机下调整开机引导顺序
2.3kvm常用命令
2.3.1 virsh list 查看虚拟机列表
[root@master01 images]# virsh list
Id 名称 状态
----------------------------------------------------
1 kvm1.1 running
2.3.2 virsh start kvm1.1 启动虚拟机
2.3.3 virsh shutdown kvm1.1 关闭虚拟机
2.3.4 virsh autostart kvm1.1 物理虚拟机开机自启动kvm虚拟机
2.3.4.1 物理虚拟机reboot后kvm虚拟机不自启
解决办法1:systemctl enable libvirtd #开机启动
vim /etc/fstab #挂载的新硬盘开机没有被自动挂载
3.1解决centos6上shutdown关不了kvm虚拟机的问题
3.1.1 方法一创建网卡连接互联网
在安装好的 KVM 的 Linux 虚拟机中安装并启动 acpid 服务
virsh shutdown 命令使用发送 acpi 命令来控制虚拟机的电源,而 kvm 虚拟机最小化安装的 centos6 系统时默认是没有安装 acpi 服务的,所以并不会处理shutdown 发来的关机信号。 在 centos7 最小化安装的 linux 系统上有安装 acpid 服务。
只需要在虚拟机里安装和启动 acpid 服务即可
配置kvm虚拟机网卡,能上网后yum install acpid -y即可
3.1.2方法二做本地镜像yum源
在物理虚拟机上搭建一个基于http 协议的 yum 源服务
[root@xuegod63 ~]# yum install httpd -y
[root@xuegod63 ~]# service httpd start
[root@xuegod63 ~]# mount /dev/cdrom /var/www/html/
setenforce 0 #关闭 selinux
iptables -F #关闭防火墙
kvm上
[root@localhost ~ ]# cd /etc/yum.repos.d
[root@localhost ~ ]# vi centos6.repo # 写入以下内容
[centos6]
name= centos6
baseurl=http://10.10.10.27/ #物理虚机ip
#baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum repolist
yum install acpid -y