开发者社区> shy丶gril> 正文

Linux_RHEV虚拟化_基础理论&KVM

简介:
+关注继续查看

RHEV

RHEV(Red Hat Enterprise virtualization)红帽企业虚拟化。RHEV是红帽公司功能强大且全面的服务器虚拟化平台。面向企业级KVM虚拟化,能够实现轻松的KVM管理、高可用性、最佳性能与其他高级功能。Red Hat Enterprise Virtualization包含了RHEV Manager(RHEV-M),这个是集中的KVM管理平台,能同时管理物理与虚拟资源。 
RHEV-M:能管理虚拟机与其磁盘镜像,安装ISO,进行高可用性设置,创建虚拟机模板等,这些都能从图形web界面完成。也可使用RHEV-M管理两种类型的hypervisor。RHEV自身带有一个独立的裸机hypervisor,基于RHEL与KVM虚拟化,作为托管的物理节点使用。另外,如果你想从RHEV管理运行在RHEL上的虚拟机,可注册RHEL服务器到RHEV-M控制台。

KVM

KVM(Kernel-based Virtual Machine),是一个开源的系统虚拟化模块。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM(Virtual Machine Manager)之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。 
注意: 
1. Only support in 64bit OS 
2. CPU support virtualization

grep -E -o 'svm|vmx' /proc/cpuinfo  --> AMD:svm intel:vmx
  • 1
  • 1
  1. Import module “modprobe”
    kvm_intel
    kvm_amd
  • 1
  • 2
  • 1
  • 2

Full 完全虚拟化

完全虚拟化(Full):不可以直接调用硬件,需要VMM来转化,不修改内核,效率较低。但可以借助于HVM(Hardware)实现半虚拟化的效果。如KVM在Kernel中装载了KVMDriver,此虚拟机的各个CPU以线程的形式存在,虚拟CPU线程被Kernel中的进程调度器连接调度。KVM只是提供KVMDriver来将Kernel资源抽象成虚拟接口API(/dev/kvm)而虚拟机的其他处理全由虚拟机内的虚拟Kernel提供。 
**VMM:**VMM可以识别GuestOS的指令集,将只能在GuestOS中执行的特权指令过滤不传达到Host中。

PV半虚拟化

可以直接调用硬件,不需要VMM转化,效率高,需要修改内核。 
实现:需要修改物理机的硬件和Kernel,半虚拟化的Kernel能够知道运行的是虚拟机的硬件,所以不需要进行虚拟硬件的转换,只需进行一重转换,模拟出多套的虚拟硬件驱动。 
特点: 
1. Hypervisor给OS提供了特殊接口,OS可以更有效的跟Hypervisor进行交流 
2. 需要修改OS Kernel代码,或用过安装管理程序硬件驱动。

Full和PV最大的区别

Full不需要为GuestOS修改物理机的Kernel,且物理机Kernel不知道运行中的虚拟机的实现。用软件虚拟(BT二进制翻译)仅将Kernel的特权指令虚拟化,而不是将全部的指令都虚拟化,其他的一般指令仍然在物理机的CPU上执行。即虚拟机内的Kernel以为自己运行在物理机上。后来将BT去除,用硬件级别(HVM)来实现翻译,性能得到提升。

HVM(Hardware Virtual Manager)硬件辅助虚拟化

    Intel:vmx
    AMD:svm
  • 1
  • 2
  • 1
  • 2

使用软件来将一块硬盘映射到多个虚拟机中,使多个虚拟机使用同一个I/O。因为需要两重模拟,将硬件模拟成多个硬件,再为虚拟硬件模拟出虚拟硬件驱动,所以性能较低。 
特点: 
1. 允许在没有修改Kernel的OS上运行 
2. 提供完整的裸机,能够将所有的设备都进行虚拟化(虚拟硬件+虚拟硬件驱动) 
3. 虚拟机的所有硬件都被Hpyervisor(VMM:VMWare\VritualBox\KVM\Hpyer-V)管理 
4. 每个虚拟机都是独立的,拥有虚拟的整套设备环境 
5. 除了特权指令,一般指令均由物理机CPU解析,特权指令会被Hypervisor(VMM)捕获,并替换成安全指令后再交由物理机CPU处理执行。 
6. 所有的特权指令均运行在Kernel的特权级中。

Setup KVM

step1. Install KVM software

yum groupinstall -y virtual*     #VritualizationHost
  • 1
  • 1

Virtualization Host include: 
1. Virtualization –> qemu-kvm 
2. Virtualization Client –> virt-top(virtsh tools) 
3. Virtualization platform –> libvirt (virtsh tools High-Availability environment) 
4. Virtualization Tools –> virt-v2v (virtualization transfer)

/usr/libexec/qemu-kvm help
  • 1
  • 1

step2. Start libvirt tools service of Vritualization platform

service libvirtd start   #automatic create virtual bridge device "virbr0"
virsh iface-bridge eth0 br0    #Create physical bridge device "br0" and then will combine networkCard "eth0" with physical bridge device "br0"
  • 1
  • 2
  • 1
  • 2

Use the virtual host management command

General operation

virsh uri   #Check connect path of hypervisor in the host
#options:
      destroy virtualHostName     #close the virtualHost
      undefine virtualHostName    #delete the virtualHot
      start virtualHostName       #start VM
      list                        #list running of VM 
      connect                     #connect to VM
      nodeinfo                    #list host detailed info
      create XX.xml               #create VM via file of .xml  
      define XX.xml               #create VM via file of .xml but not start it
      screenshot                  #Screenshot
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

利用模板批量创建虚拟机

准备工作: 
去除HOST的个性化,删除MAC地址,修改网卡配置文件,SSL证书,用户。 
使用模板创建虚拟机,KVM将有更高的几率合并内存页。可以减少磁盘的使用量,恶意使用池。

创建OS模板

使用一个全新的VM并对其进行封装 
Linux: 可以使用virt-sysprep来进行封装 
1. 网卡使用DHCP 
2. 删除MAC地址 
3. HOSTNAME=template.localdomain 
4. 删除SSH hostkey, ssl证书 
5. 删除/etc/krbs.keytab 
6. remove RHN SyatemID /etc/sysconfig/rhn/systemid 
Windows:消除SID号(唯一) 
(Win+r)Run:sysprep -> c:\windows\system32\sysprep -> 使用sysprep program -> 系统全新体验 -> 通用 -> 关机 -> 确定 -> win可作为模板 -> 创建模板

使用池来批量创建

创建虚拟机,创建用户,授权,不能随便的添加User,只能通过加入AD/LDAP来实现。池是基于相同的模板的VM集合,池内会自动的为用户分配VM,无需重复授权。 
新建池->池: 
1. 自动:自动分配,VM会被重置 
2. 手动:池需要手动分配,适合企业内分配给员工 
注意:VM也可以从池中分离出来,删除池前需要将VM都分离出来。

RHEV应用

虚拟化的作用:将物理机的硬件资源CPU、内存、磁盘更充分的利用,节省管理费用,提高效率。 
Virtualization type
1. Virtualization Server 
2. Virtualization Client 
a. SlimClient: Highly Concentrated computer device as OS Server, the SkimClient via Remote desktop connection protocol connect to the OS Server. 
b. Fatclient: one person by one computer device. 
c. Virtualization Storage 
d. Virtualization Network 
e. Virtualization Application

RHEV Framework

RHEV-M Port:

Install RHEV-M      #(max support 200 host) in the RHEL6
  • 1
  • 1

RHEV-H Port: 
RHEV-H OS can replace the RHEL6 OS as the ServerOS. The size of RHEV-H only have 100MB, you can get more resource of Server when you install the RHEV-H OS on it.

Setup the RHEV-M Port

Step1. Setup static IP 
Step2. Setup DNSServer include forward lookup and reverse lookup. 
Step3. Setup Hostname 
Step4. Setup NTPServer(Port:udp 123) 
vim /etc/ntp.conf

#server 0.rhel.pool.ntp.org iburst
server 127.127.1.0 iburst    #setup localhost as ntpServer
fudge
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
service ntpd start
  • 1
  • 1

Check the ntpServer in Client

ntpdate RHEV-HPortIP RHEV-M(ntpServer)IP   #realize time sync
  • 1
  • 1

Step5. Setup RHEV YUM resource(RHEV.iso) and ftpServer serve as YUM software resource 
Mount RHEV.iso to /rhev in MPortOS.

 mount /dev/cdrom /mnt/rhev
 yum list | grep rhev
  • 1
  • 2
  • 1
  • 2

Step6. Install RHEV-M

yum install -y rhevm rhevm-reports  #You can use the commands of "rhevm-setup" after execute above commands.
  • 1
  • 1
rhevm-setup
        #rhevm --> management service
        #rhevm-reports --> report console
rhevm-dwh-setup
rhevm-reports-setup
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

Step7. How to use the ‘rhevm-config’ commands

rhevm-config
        -a --all --> list all config option and parameter
        -h --help
        -l --list --> list usable config option
        -g --get key --> get parameter from specify option
        -s --set --> set the parameter for option,parameter activation after reboot the jBoss server
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Setup the RHEV-H Port

Step1. Create VM of RHEV-H Port in the VMWare.

option=parameter
Guest Template=other 64-bit
DiskType=IDE
Virtualization=Intel VT-x/EPT or AMD-V/RVI(V)
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

Step2. Get the image file for HPort from MPort

yum search rhev-hypervisor
yum install -y rhev-hpyervisor
cd /usr/share/rhev-hypervisor/ #get the image file
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

Step3. Use the RHEV-H Port image file to install the RHEV-H Port OS in the Server 
Step4. Setup and connect to the RHEV-M.

Supply store for RHEV-H

**Data center:**Collection of resource(VM, Network) 
Cluster:HOST集合,每个HOST中有若干的虚拟机,好处在于可以实现负载均衡,虚拟机迁移(若CPU同型号)可以整体创建虚拟机。一个数据中心下有若干集群,集群中至少有一台物理的HOST,也需要有存储。 
Pools:一组型号完全相同的HOST集合。 
Storage: 
1. 数据存储:存放虚拟机磁盘和快照(虚拟机的持久存储)尽量使用ISCSI(不可共享) 
2. ISO域:存放Image文件,只能用NFS实现(可共享) 
3. Export导出域:备份虚拟机,可以使用ISCSI和NFS。 
一个数据中心可以有多个数据域

创建数据中心和集群

1. 创建ISCSI服务器

yum install -y scsi-target-utils
  • 1
  • 1

2. 将分区配成逻辑卷再以ISCSIServer共享出去(必须是逻辑卷的格式) 
3. 共享ISCSI存储 
vim /etc/tgt/targets.conf

<target iqn.XX>
  • 1
  • 1
service tgtd restart
tgtadm -S
  • 1
  • 2
  • 1
  • 2

4. 在RHEV-M上创建数据中心 
在HOST上查看CPU型号,CPU名称一定要确定。 
将HOST变成维护状态后,才可以编辑并改变数据中的集群的参数,最后点击激活。 
数据中心只有附加了数据域后才能附加ISO域,故先创建数据域,若用NFS共享方法,要注意共享目录权限为”36:36”/”vdsm:vdsm” –> rhevm的user 
5. 上传image文件袋ISO域中 
命令上传:

rhevm-iso-uploader -l iso upload windows-7.iso
  • 1
  • 1

手动Copy文件到指定的目录中,并且修改目录权限为vdsm:vdsm

rhevm-iso-uploader list    #显示ISO域列表
rhevm-iso-uploader -i [上述指令显示出来的ISO域的名字] upload windows-7.iso  #上传ISO文件到指定的ISO域中,即上传到iso域指定的目录下(win的驱动存放在/usr/share/virtio-win中)
  • 1
  • 2
  • 1
  • 2

创建虚拟机

Step1. 创建服务器 
创建

新建服务器->
    配置网络接口(可以多添加)->
        rtl8139、e1000模拟网卡,适用于各种环境(一般用于冷门的OS)
        RHVirtIO(RHEL上适用)网卡支持半虚拟化才能用
    配置硬盘->
        内部: 使用DataCenter的存储域
    分配策略->
        Preallocated:固定磁盘大小(连续的存储空间)效率高
        实时弹性大小:分片存储,效率低
    只运行一次->
        指定ISO文件
    **点击小电脑图标开始安装OS**
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在RHEVM上安装Spice远程桌面连接

yum install spice-xpi
  • 1
  • 1

导出

    虚拟机导出->
        vim /etc/exports
            /export        192.168.8.0/24(rw)-->share destination network segment
        exportfs -r
        showmount -e 
        chown 36:36 /export --> 让RHEVM服务可以使用(导出域目录)
        新建域(导出域)->
        export/NTS->确定
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Step2.:创建桌面客户端(WinOS只能通过安装虚拟化驱动)在/iso存放了Win的半虚拟化驱动

    新建桌面->
        添加网卡->
            添加磁盘->
                只运行一次->
                    附加软盘win_and64
                    选择win光盘
    安装->加载驱动程序->SCSI Controller
    为Win7插入网卡驱动->修改CD->RHEV-Tools
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

虚拟机迁移

    自动迁移:
        a. 负载平衡迁移
        b. 节能迁移
    集群->编辑->迁移->
                    迁移VM
                    高可用VM(标签)
    集群实现自身迁移策略->
        平均分布:按性能(负载均衡)
        省电模式
    虚拟机->迁移->迁移目标->确定
    rhevm-shell:
        rhevm-shell -l httpd://rhevm.nice.com/api -A ca.crt -c -u admin@internal
            -l:API
            -A:CA certificate
            -c:Connect
            -u:User
        wget http://rhevm.nice.com/ca.crt --> download certificate


转载:http://blog.csdn.net/jmilk/article/details/50404926

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
虚拟化学习笔记-KVM虚拟化跨机迁移原理
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396689 参考:https://zhuanlan.zhihu.com/p/27055555 在线迁移过程划分为三个阶段:准备阶段、迁移阶段和切换阶段。
1077 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20097 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23536 0
虚拟化学习笔记-Linux 系统在虚拟机迁移中的技术难点
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396683 磁盘分区名被硬编码。
1395 0
虚拟化学习笔记-基础知识
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396678 ...
1195 0
+关注
1876
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载