kvm虚拟化技术1

1.环境准备

物理机准备


1.png

内存设置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

2.png

在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根目录,可点击左下角的+改变,如图


_NG{(68%I(WW)[email protected]

下方的本地浏览可以选择镜像
一路前进,根据提示配置各项参数
其中,选择网络


@XFC`P63ANS5Q}[email protected]

选择前面创建好的bridge桥br0
最后点击完成就可以进入系统了,接下来的流程和正常装centos7并无不同
2.2.3kvm图形界面下的虚拟机管理
点击灯泡出现如下界面
PHC79Y@2{MCK6H)OV~)`@26.png

引导选项可以在虚机关机下调整开机引导顺序

3.png

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 #挂载的新硬盘开机没有被自动挂载

4.png

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

你可能感兴趣的:(kvm虚拟化技术1)