设为首页 收藏本站
查看: 1080|回复: 0

[经验分享] KVM 虚拟化技术

[复制链接]

尚未签到

发表于 2017-6-24 06:29:21 | 显示全部楼层 |阅读模式
  
简介:
  KVM 是 kernel-based Virtual Machine 的简称,是一个开源的系统虚拟化模块,是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供虚拟化核心架构和处理器规范模块。
  自 Linux 内核 2.6.20 之后集成在 Linux 的各个主要发行版本中。它使用 Linux 自身的调度器进行管理,所以相对于 Xen ,其核心源码很少。KVM 已成为学术界的主流 VMM 之一。
  KVM的虚拟化需要硬件支持(如 Intel VT 技术或者 AMD V 技术),是基于硬件的完全虚拟化。
  而 Xen 早期则是基于软件模拟的 Para-Virtualization ,新版本则是基于硬件支持的完全虚拟化。但 Xen 本身有自己到进程调度器,存储管理模块等,所以代码较为庞大。
  广为流传的商业系统虚拟化软件 VMware ESX 系列也是基于软件模拟的 Para-Virtualization 。
  使用 KVM ,可允许运行多个虚拟机,包括 Linux 和 Windows 操作系统。每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。
一、KVM 安装准备
  1、查看 CPU 是否支持虚拟化



shell > grep -E '(vmx|svm)' --color=always /proc/cpuinfo  # 如果是 Intel 则显示 vmx ; AMD 则显示 svm
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
  2、如果支持则要去 BIOS 中查看 Virtualization Technology 是否开启;如果上述命令没结果就是不支持



BIOS Features --> Intel Virtualization Technology --> 选择 Enabled --> F10 保存退出
  3、查看内核版本是否高于 2.6.20



shell > uname -r
2.6.32-358.el6.x86_64
  4、SELinux 确保开启,否则 virt-install 不能正常工作



shell > getenforce
Enforcing
  二、安装 KVM



shell > yum -y install qemu-kvm libvirt libvirt-python python-virtinst libvirt-virtinst
shell > reboot                ## 需要重启系统
shell > lsmod | grep kvm      ## KVM 模块已经成功加载
kvm_intel              53484  0
kvm                   316506  1 kvm_intel
shell > virsh -c qemu:///system list      ## 安装成功
Id    名称                         状态
----------------------------------------------------
  三、增加网桥(方便服务器与虚拟机直连)



shell > yum -y install bridge-utils
  1、修改网卡设备文件



shell > cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=90:2B:34:00:9F:42
#TYPE=Ethernet
UUID=7132d3c7-5fbf-41e9-8bf6-ab39c684cc2c
ONBOOT=yes
#NM_CONTROLLED=yes
#BOOTPROTO=static
#IPADDR=192.168.1.20
#NETMASK=255.255.255.0
#GATEWAY=192.168.1.1
BRIDGE=br0
  ## 只保留 DEVICE、HWADDR、ONBOOT 添加 BRIDGE=br0 ,UUID 可有可无
  2、添加网桥设备文件 ## 最好不要远程操作



shell > cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.20
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=202.106.46.151
DNS3=8.8.8.8
  ## 整个文件都是新写的,DNS 如果原来写在网卡中就搬过来,如果原来定义在 /etc/resolv.conf 中,就不用管了



shell > service network restart
正在关闭接口 br0:                                         [确定]
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0:                                            [确定]
弹出界面 br0:                                             [确定]
  3、最后的效果是这样



shell > ifconfig
br0       Link encap:Ethernet  HWaddr 90:2B:34:00:9F:42
inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fe80::922b:34ff:fe00:9f42/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:1127 errors:0 dropped:0 overruns:0 frame:0
TX packets:956 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:82289 (80.3 KiB)  TX bytes:83835 (81.8 KiB)
eth0      Link encap:Ethernet  HWaddr 90:2B:34:00:9F:42
inet6 addr: fe80::922b:34ff:fe00:9f42/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:7556 errors:0 dropped:0 overruns:0 frame:0
TX packets:2740 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:602123 (588.0 KiB)  TX bytes:297335 (290.3 KiB)
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:82 errors:0 dropped:0 overruns:0 frame:0
TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:28368 (27.7 KiB)  TX bytes:28368 (27.7 KiB)
virbr0    Link encap:Ethernet  HWaddr 52:54:00:50:72:04
inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
  四、使用 virt-manager 管理虚拟机(这里是新开的一台机器,做实验可以放到 KVM 上)
  CentOS 6.4 minimal 已经安装桌面环境、VNC 服务(参考 http://www.cnblogs.com/wangxiaoqiangs/p/5796556.html)



shell > yum -y install virt-manager libvirt    ## 安装管理工具
shell > service libvirtd start
启动 libvirtd 守护进程:                                   [确定]
shell > chkconfig --add libvirtd
shell > chkconfig --level 35 libvirtd on
  ## 然后通过 VNC 连接这台机器
  1、第一次登陆在 应用程序-->系统工具-->虚拟系统管理器 ,点击后会提示安装一些依赖包(自动安装)
2、文件-->add Connection(添加远程 KVM 主机)
1
2
3
3、然后就可以创建 KVM 虚拟主机了 ^_^
## 如果是通过 ISO 文件来创建,需要注意一下:KVM 主机的 /var/lib/libvirt/images 这是默认读取 ISO 文件的地方,需要将 ISO 复制到这里
5/4 这里可以看到
## 选择系统的时候 Linux--> 没有 CentOS ,那就选 RedHat 也可以。
## 创建过程中这一步记得将勾去掉
6
## 接下来就跟真机装系统完全一样了 ^_^

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387426-1-1.html 上篇帖子: KVM 内存虚拟化 下篇帖子: virsh 操作kvm虚拟机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表