ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

KVM虚拟化(一)创建虚拟机

2020-09-05 10:00:39  阅读:172  来源: 互联网

标签:00 kvm 虚拟化 -- 虚拟机 KVM 192.168


一、虚拟化分类

虚拟化分成两类,全虚拟化和半虚拟化。

半虚拟化,Hypervisor程序部署在物理机上,如:Xen,VMWare ESXI。

全虚拟化,Hypervisor 作为OS 上的一个程序模块运行,并对管理虚拟机进行管理,如:kvm、VirtualBox、VMWare Workstation。

 

 

二、KVM

KVM,Kernel-Based Virtual Machine,基于Linux 内核实现的虚拟化技术。目前x86平台上最热门运用最广泛的虚拟化方案。

一台虚拟机的主要构成部分包括:cpu、memory、disk和network。其中:

  •  Kvm负责CPU和内存的虚拟化。
  • Qemu负责磁盘、网络等IO的虚拟化。

三、Libvirt

Libvirt,kvm的管理工具,包含三个部分:

  •  libvirtd是服务程序,接收和处理API请求
  •  API库使得其他人可以开发基于Libvirt的高级工具
  •  virsh命令管理工具

四、创建一台虚拟机

1、服务器信息

# uname -r
3.10.0-1062.12.1.el7.x86_64
# more /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
# lsmod |grep kvm
kvm_intel            188688  42 
kvm                  636883  1 kvm_intel
irqbypass             13503  16 kvm
# grep -E '(vmx|svm)' /proc/cpuinfo   //查看CPU是否支持虚拟化,能过滤到信息代表支持虚拟化

2、安装kvm相关包

# yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y
# systemctl enable libvirtd.service
# systemctl start libvirtd.service 
# systemctl status libvirtd.service

3、  创建虚拟机

# wget http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso
# qemu-img create -f raw /data/test/centos7.raw 20g //创建虚拟机磁盘
# virt-install --virt-type kvm --name centos7 --ram 4096 \
--cdrom=/data/test/CentOS-7-x86_64-Minimal-2003.iso \
--disk path=/data/test/centos7.raw --network network=default \
--graphics vnc,listen=0.0.0.0 -noautoconsole

使用vnc客户端访问宿主机的5900端口

然后就跟我们平常安装操作一样去操作就可以了

这里有一个优化点,就是虚拟机的磁盘在宿主机上本质就是一个磁盘文件,所以没必要做太多的分区,一般只给一个根分区就可以了。

如果制作的centos7的镜像,一般会做如下的设置

1)为了标准化,设置网络接口的名称为eth0

 

 

在后面输入net.ifname=0 biosdevname=0,然后输入enter

2)只创建一个/分区

 

安装完毕,可以看到dhcp分配到的IP地址是192.168.122.55,也可以访问到互联网

 

五、虚拟机访问互联网

默认网络虚拟机是如何访问互联网的?

Kvm默认会创建一个叫virbr0的网桥,其作用是为连接其上的虚拟机网卡提供nat访问外网的功能。

# brctl show
virbr0         8000.525400375ff1       yes             virbr0-nic
                                                       vnet0
# virsh domiflist oautoconsole
Interface Type       Source     Model      MAC
-------------------------------------------------------
vnet0     network    default    virtio     52:54:00:a0:a4:3f
# ps -ef|grep dnsmasq
root      19041 106421  0 10:51 pts/9    00:00:00 grep --color=auto dnsmasq
nobody  112903      1  0 Sep02 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/defau
root     112904 112903  0 Sep02 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/defau
# more /var/lib/libvirt/dnsmasq/default.conf
……
interface=virbr0
dhcp-range=192.168.122.2,192.168.122.254
……
# more /var/lib/libvirt/dnsmasq/virbr0.status 
[
  {
   "ip-address": "192.168.122.55",
   "mac-address": "52:54:00:a0:a4:3f",
   "expiry-time": 1599104583
  }
]
# iptables -S -t nat
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE

虚拟的逻辑连接图

 

 

虚拟机上网数据流向

 

标签:00,kvm,虚拟化,--,虚拟机,KVM,192.168
来源: https://www.cnblogs.com/guoxianqi2020/p/13617233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有