品味KVM虚拟化技术部署及其虚拟磁盘扩容私房菜
2017-01-20 17:17
435 查看
一、简介
虚拟化是指计算机组件在虚拟的基础上而不是在真实的基础上运行,虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程,允许一个平台同时运行多个操作系统,并且应用程序都可在相互独立的空间运行而相互不影响彼此,从而提高计算机的运行效率。KVM是一个开源的虚拟化软件,英文名为kernel-base
virtual machine,基于内核的虚拟机,KVM在2007年2月被导入Linux 核心中,以可加载核心模块的方式被移植到FreeBSD上。
虚拟化技术分类:
主机虚拟化:完全虚拟化(KVM)、半虚拟化(XEN)
用户空间虚拟化:LXC,OPENVZ
应用程序虚拟化:JVM
KVM相关简介:
KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
它包含一个为处理器提供底层虚拟化 可加载的核心模块(kvm-或kvm-)。
KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
在主流的Linux内核,如以上的内核均已包含了KVM核心。
KVM 内存管理:
KVM 继承了 Linux 系统管理内存的诸多特性,比如,分配给虚拟使用的内存可以被交换至交换空间、能够使用大内存页以实现更好的性能,以及对 NUMA 的支持能够让虚拟机高效访问更大的内存空间等。
KVM 基于 Intel 的 EPT ( ExtendedPage Table )或 AMD 的 RVI ( Rapid Virtualization Indexing )技术可以支持更新的内存虚拟功能,这可以降低 CPU 的占用率,并提供较好的吞吐量。
此外,KVM 还借助于 KSM ( Kernel Same-pageMerging )这个内核特性实现了内存页面共享 。 KSM 通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时, KSM 会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同 GuestOS
的虚拟机之间出现相同内存页面的概率是很的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此, KSM 技术可以降低内存占用进而提高整体性能。
KVM组件:
/dev/kvm:管理虚拟机的设备节点,用户空间的程序可通过其ioctl()系统调用集来完成虚拟机的创建启动等管理工作;它是一个字符设备;其主要完成的操作包括:
qemu进程:工作于用户空间的组件,用于仿真PC机的I/O类硬件设备;
qemu全称Quick Emulator。是独立虚拟软件,能独立运行虚拟机(根本不需要kvm)。kqemu是该软件的加速软件。kvm并不需要qemu进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由kvm驱动。
二、KVM虚拟化安装
前提:
①确保cpu执行HVM
grep -E "(svm|vmx)" /proc/cpuinfo
②内核编译提供了KVM模块
modinfo kvm
[root@node1 ~]# systemctl stop NetworkManager
[root@node1 ~]# virsh iface-bridge eno16777736 br0 -no-stp #配置成桥接接口
[root@node1 ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet netmask broadcast
inet6 fe80::20c:29ff:fe2e:3557 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2e:35:57 txqueuelen 0 (Ethernet)
RX packets 694 bytes 57740 ( KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 101 bytes 13261 ( KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#此时物理机接口就类似于交换机使用
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:2e:35:57 txqueuelen 1000 (Ethernet)
RX packets 270458 bytes 37652584 ( MiB)
RX errors 0 dropped 85 overruns 0 frame 0
TX packets 5761 bytes 826732 ( KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@node1 ~]#virt-manager #启动图形化界面创建虚拟机
[b]
虚拟化是指计算机组件在虚拟的基础上而不是在真实的基础上运行,虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程,允许一个平台同时运行多个操作系统,并且应用程序都可在相互独立的空间运行而相互不影响彼此,从而提高计算机的运行效率。KVM是一个开源的虚拟化软件,英文名为kernel-base
virtual machine,基于内核的虚拟机,KVM在2007年2月被导入Linux 核心中,以可加载核心模块的方式被移植到FreeBSD上。
虚拟化技术分类:
主机虚拟化:完全虚拟化(KVM)、半虚拟化(XEN)
用户空间虚拟化:LXC,OPENVZ
应用程序虚拟化:JVM
KVM相关简介:
KVM是开源软件,全称是kernel-based virtual machine(基于内核的虚拟机)。
是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。
它包含一个为处理器提供底层虚拟化 可加载的核心模块(kvm-或kvm-)。
KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。
KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。
在主流的Linux内核,如以上的内核均已包含了KVM核心。
KVM 内存管理:
KVM 继承了 Linux 系统管理内存的诸多特性,比如,分配给虚拟使用的内存可以被交换至交换空间、能够使用大内存页以实现更好的性能,以及对 NUMA 的支持能够让虚拟机高效访问更大的内存空间等。
KVM 基于 Intel 的 EPT ( ExtendedPage Table )或 AMD 的 RVI ( Rapid Virtualization Indexing )技术可以支持更新的内存虚拟功能,这可以降低 CPU 的占用率,并提供较好的吞吐量。
此外,KVM 还借助于 KSM ( Kernel Same-pageMerging )这个内核特性实现了内存页面共享 。 KSM 通过扫描每个虚拟机的内存查找各虚拟机间相同的内存页,并将这些内存页合并为一个被各相关虚拟机共享的单独页面。在某虚拟机试图修改此页面中的数据时, KSM 会重新为其提供一个新的页面副本。实践中,运行于同一台物理主机上的具有相同 GuestOS
的虚拟机之间出现相同内存页面的概率是很的,比如共享库、内核或其它内存对象等都有可能表现为相同的内存页,因此, KSM 技术可以降低内存占用进而提高整体性能。
KVM组件:
/dev/kvm:管理虚拟机的设备节点,用户空间的程序可通过其ioctl()系统调用集来完成虚拟机的创建启动等管理工作;它是一个字符设备;其主要完成的操作包括:
qemu进程:工作于用户空间的组件,用于仿真PC机的I/O类硬件设备;
qemu全称Quick Emulator。是独立虚拟软件,能独立运行虚拟机(根本不需要kvm)。kqemu是该软件的加速软件。kvm并不需要qemu进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由kvm驱动。
二、KVM虚拟化安装
前提:
①确保cpu执行HVM
grep -E "(svm|vmx)" /proc/cpuinfo
②内核编译提供了KVM模块
modinfo kvm
# grep -E "(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 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw xop fma4 tbm arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists bmi1 flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c hypervisor lahf_lm svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw xop fma4 tbm arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists bmi1 [root@node1 ~]# [root@node1 ~]# modinfo kvm #确保存在此模块 filename: /lib/modules/-_64/kernel/arch/x86/kvm/ license: GPL author: Qumranet rhelversion: srcversion: 13ED0467630AC8D418AB2C8 depends: intree: Y vermagic: -_64 SMP mod_unload modversions signer: CentOS Linux kernel signing key sig_key: 79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3 sig_hashalgo: sha256 parm: ignore_msrs:bool parm: min_timer_period_us:uint parm: kvmclock_periodic_sync:bool parm: tsc_tolerance_ppm:uint parm: lapic_timer_advance_ns:uint parm: halt_poll_ns:uint [root@node1 ~]# ll /dev/kvm #虚拟主机节点管理 crw-rw-rw-+ 1 root kvm 10, 232 Dec 11 15:11 /dev/kvm
[root@node1 ~]# systemctl stop NetworkManager
[root@node1 ~]# virsh iface-bridge eno16777736 br0 -no-stp #配置成桥接接口
[root@node1 ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet netmask broadcast
inet6 fe80::20c:29ff:fe2e:3557 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2e:35:57 txqueuelen 0 (Ethernet)
RX packets 694 bytes 57740 ( KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 101 bytes 13261 ( KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#此时物理机接口就类似于交换机使用
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:2e:35:57 txqueuelen 1000 (Ethernet)
RX packets 270458 bytes 37652584 ( MiB)
RX errors 0 dropped 85 overruns 0 frame 0
TX packets 5761 bytes 826732 ( KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@node1 ~]#virt-manager #启动图形化界面创建虚拟机
[b]
相关文章推荐
- 品味KVM虚拟化技术部署及其虚拟磁盘扩容私房菜 推荐
- VirtualBox虚拟vdi磁盘扩容
- 同一个ip通一个80端口部署多个网站的原理-虚拟主机技术本质解析
- Vmware虚拟技术我做主之二:dns+IIS实现简单的网站部署
- 十分钟万台服务器部署能力,探秘阿里双十一弹性扩容背后的技术故事
- VirtualBox虚拟vdi磁盘扩容
- Eclipse+MySQL(利用docker虚拟技术)实现本地部署
- VirtualBox虚拟vdi磁盘扩容
- ELK技术实战–了解Elk各组件 ELK技术实战-部署Elk 2.x平台 ELK Stack是软件集合Elasticsearch、Logstash、Kibana的简称,由这三个软件及其相关的组件可
- VirtualBox虚拟vdi磁盘扩容
- Wine虚拟技术及其使用
- 虚拟技术助力科技强警 IBM助公安局部署环境
- 十分钟万台服务器部署能力,探秘阿里双十一弹性扩容背后的技术故事
- win7 VHD虚拟磁盘扩容
- VirtualBox虚拟vdi磁盘扩容 201
- 磁盘管理之挂载扩容交换分区及其dd命令
- IBM虚拟化专家何乐——服务器虚拟化的关键技术:虚拟器件的创建,部署和管理
- mongodb分片技术及其部署
- 使用Apache Axis部署 Web服务时的常见问题及其解决方法
- 射频技术系列谈:射频技术及其在供应链管理中的应用之一