码迷,mamicode.com
首页 > 其他好文 > 详细

云计算之--------高级虚拟化KVM

时间:2016-07-20 06:44:27      阅读:772      评论:0      收藏:0      [点我收藏+]

标签:虚拟化   应用程序   云计算   服务器   计算机   linux   

背景:

       前篇在讨论完云计算后,本次我们来讨论实现云计算的基础--->虚拟化技术,虚拟化官方解释,

是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

       虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

技术分享


分类和业务场景选择:

    1. 一台或几台少量服务器(物理机)

        a. ESXI (常用)

        b. XenServer

    2. 多台服务器(物理机)

        a. KVM (linux内核级支持)    [本次主要讲解

        b. oVirt(开源的RHEV)

        c. openstack(开源,火爆)

        d. Vmware vshpere (虚拟化中的霸主,收费)

        e. RHEV(RedHat收费产品)


 

KVM优势

    1. 嵌入到linux正式kernel(兼容性高) (kernel:linux内核)

    2. 代码(内核)级资源调用,不用上下文切换

    3. 虚拟机就是一个进程,可以通过命令来进行管理虚拟机

    4. 直接支持NUMP(Non uniform memory access) 非统一内存方式

    5. 社区人员多

    6. intel和AMD都支持

    7. RedHat6和CentOS6之后都内置

    5. 其它(被RedHat收购)

        a. 保持开源发展模式

        b. 更好的商业支持级服务保障

        



在开始实战前,我们来讨论一下虚拟化中常见的一个问题

        [一台主机跑多个相同的应用和一个主机上面多个虚拟主机,每个虚拟主机一个应用的区别]

        最终得出的结论如下:

            1. 前者性能好,因为虚拟化管理工具也需要占用计算资源

            2. 前者一个应用故障会影响其它剩余的应用运行状态,后者基于虚拟主机上所以每个应用独立,故障不会互相影响.

            3. 前者不易于管理,后者管理容易

            4. 后者快照,备份,回复容易

   技术分享


介绍了这么多关于虚拟化方面的优势和常识,那如何实现虚拟化呢

    技术分享


下面正式开始实现虚拟化

1.环境准备

[#1#root@kvm ~]# cat /etc/redhat-release 

CentOS Linux release 7.2.1511 (Core)


[#2#root@kvm ~]# uname -a

Linux kvm 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


2. 安装

[#3#root@kvm ~]#yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install


3. 检查安装

[#4#root@kvm ~]#rpm -qa qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install

virt-install-1.2.1-8.el7.noarch

qemu-kvm-1.5.3-105.el7_2.4.x86_64

virt-manager-1.2.1-8.el7.noarch

qemu-kvm-tools-1.5.3-105.el7_2.4.x86_64

libvirt-1.2.17-13.el7_2.5.x86_64


4. 查看是否支持虚拟化

    a. 标志

        intel vmx

        AMD svm 

    b. 查看是否支有vmx或svm  

[#5#root@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 dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf 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 arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt


5. 创建虚拟机所需硬盘

硬盘格式分类:

    1.全镜像模式

        a. 一次性分配空间,性能高,转换容易

        b. 不支持压缩,快照,镜像,占用空间大

        c. 代表有raw

    2. 稀疏模式

        a. 支持压缩,快照,镜像

        b. 占用空间小, 使用多少占用多少

        c. 代表 qcow2  (后面使用此硬盘格式)


[#6#root@kvm ~]#qemu-img  create -f qcow2  /opt/CentOS-7.1-x86_64.raw  10G     

Formatting ‘/opt/CentOS-7.1-x86_64.raw‘, fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off


   qemu-img: 通过qemu来创建模拟外部设置(硬盘,网络等), KVM只能模拟CPU和内存

    -f  支持格式,qcow2 稀疏模式

    /opt/CentOS-7.1-x86_64.raw 保存的位置和名称

    10G 指定大小



6. 查看硬盘是否创建成功

[#7#root@kvm ~]#lsmod | grep kvm

kvm_intel             162153  0 

kvm                   525409  1 kvm_intel


7. libvirt设置启动并开机自启

[#8#root@kvm ~]#systemctl enable libvirtd.service

[#9#root@kvm ~]#systemctl start libvirtd.service


8. 创建ISO镜像

    通过Vmware Workstation挂载系统盘

[#10#root@kvm ~]#dd if=/dev/cdrom of=/opt/CentOS-7.1.iso    

1234944+0 records in

1234944+0 records out

632291328 bytes (632 MB) copied, 30.9402 s, 20.4 MB/s


9. 创建虚拟机

[#11#root@kvm ~]#virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024  --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default  --graphics vnc,listen=0.0.0.0 --noautoconsole


Starting install...

Creating domain...                                       |    0 B     00:01     

Domain installation still in progress. You can reconnect to 

the console to complete the installation process.


10. 通过VNC连接 

    默认第一个创建的虚拟机端口为5900, 第二个5901,第三个第四个以此类推

    


    设置网卡名称编名为eth0

     光标移动到Install CentOS 7按Tab键,在后面输入net.ifnames=0 biosdevname=0 

    

    技术分享






    








本文出自 “sea” 博客,请务必保留此出处http://lisea.blog.51cto.com/5491873/1827921

云计算之--------高级虚拟化KVM

标签:虚拟化   应用程序   云计算   服务器   计算机   linux   

原文地址:http://lisea.blog.51cto.com/5491873/1827921

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!