oVirt-3.5部分features

来源:互联网 发布:数据流程说明er图 编辑:程序博客网 时间:2024/06/05 07:02
Template Version--模板/子模板

描述:有两种方法创建模板的子模板
    1. 选择一个虚拟机,用它来创建一个模板的子模板
    2. 编辑一个模板,当保存的时候选择它作为一个子模板保存--??
  子模板可以删除如果没有vm使用它,如果删除根模板,它的子模板也会一并删除--好像就算没有VM在使用它也不能删除。
  Stateless vms and vms from vm-pool that are using 'latest' version, will use new version automatically on new runs。

  最主要的使用场景是对于pool中的VM:
    从一个指定的模板或者‘latest’中创建pool,
    过一段时间后,创建一个新的子模板从这个上面的那个模板上,
    如果这个pool是从'latest'模板创建的,pool中的处于关机状态的VM将会自动更新到这个最新的模板,
    这样所有的pool中的处于关机状态的VM都会自动更新使用最新的模板了。

  处于stateless状态的VM(还有待测试):
    基于'latest'模板创建的‘stateless’状态的VM,
    更新最新的模板,它们将会被从新创建,更新到最新的模板
    


SSO--单点登录功能
  用户只需要登录一次就可以访问所有相互信任的应用系统。

  Use diagram
    vdsm control:            ovirt-engine --HTTPS(mutual authentication)--> vdsm
    qemu control:            vdsm --API----> libvirt --usock--------------> qemu
    guest agent:             vdsm --usock--> qemu    --virtual serial-----> guest agent
    user: ovirt user portal: browser --HTTPS-----------> ovirt-engine
    user: spice/novnc        native  --SSL(vnc/spice)-->  qemu
    user  novnc/spice-html5: browser --SSL(webscoket)--> websocket proxy --TCP(vnc/spice)--> qemu

  Auto login sequence
       Desktop    ovirt-engine    vdsm    libvirt    qemu     guest-agent  Guest OS
 1.     ---HTTPS---> login
 2.     ---HTTPS---> Start Graphical
 3.
 4.                ---HTTPS(m.auth)-->---usock--->Ticket
 5.                ---HTTPS(m.auth)-->---usock--->---serial-->user/password
 6.                                                            -------------->
 7.     <--HTTPS- Execute spice/vnc client with Ticket, host, port
 8.     ---SSL----------------------------------->Ticket
 9.                           <--usock--------- disconnect
10                            ---usock----------->---serial-->lock-screen
11.                           ---usock----------->Ticket
  自动登录仅仅只是在'user portal'端,在user portal端的VM通过运行'guest agent',必须具备domain, user, password。
    1. 用户登录'oVirt-engine'的'user portal'端
    2. 用户请求图形处理会话用于VM
    3. ovirt-engine随机产生一个'ticket'
    4. engine通过vdsm发送'ticket'给qemu,并且规定与硬性编码的有效期为120秒;
    5. 然后engine通过vdsm发送桌面登录命令(domain,user,password)给在VM内运行的'guest agent',---通过vdsm-guest agent之间的side band channel;
    6. guest agent使用上面给出的那些登录凭据在自动登录序列中使用很多方法中的一种来登录;
    7. ovirt-engine在客户端通过'ticket'触发执行'spice/vnc';
    8. 'spice/vnc'通过'ticket'在客户端与qemu建立链接;
    9. 当'spice/vnc'断开链接的时候,将会有一个断开链接的事件给vdsm;
    10. vdsm会发送'lock-screen'命令给'guest agent';
    11. 以防万一,vdsm会恢复'ticket'当于客户端从新建立链接的时候。
  in case of webscoket proxy another ticket is issued signed by engine key and validated against engine public key at websocket proxy, ticket contains destination ip and port to establish communication with.

  Guest agent commands
    1. refresh--
    2. login--Accepts-username[@domain], password
    3. lock-screen-Lock console
    4. log-off
    5. shutdown
 
  当前的缺陷:


smnp--简单网络管理协议
  This feature extends events notifier capabilities and enables it to generate SNMP traps out of system events to integrate oVirt with generic monitoring systems.
  允许用户用开源的监控系统监控他们的虚拟环境
  A new 'SNMP_TRAP Notifications' section is now available in the notifier's configuration file under
  /usr/share/ovirt-engine/services/ovirt-engine-notifier/ovirt-engine-notifier.conf

  /etc/snmp/snmptrapd.conf


Predictable_vNIC_Order--可预见的虚拟网卡排序
  描述:
    为了解决当ovirt客户端加入一块新的vNIC时,MAC地址和PCI地址与网卡name的映射混乱,
    主要的分为下面几种情况:
      1. create vm from template
      2. create vm from snapshot
      3. import vm
    当对VM添加网卡时,会有一个[name]-[MAC]的映射关系,oVirt依据[MAC]的顺序来传送设备信息给[libvirt],libvrit会分配一个[pci]地址给它。[mac]和[pci]被虚拟机的操作系统所使用以获取vNIC的[guest]名称,例如EL5/6使用[mac],EL7/fedoras使用[pci]。需要控制网卡启动顺序,目前[boot]匹配的是[mac]。
  Benefit:
    假设我们有两个网络,RED(机密网络)/BLUE(公开网络),部署几台用于入侵检测的VM,监控BLUE网络并发送报告至RED。创建VM,eth0-RED,eht1-BLUE。根据这个VM创建template,然后从这个VM clone出另一台VM。如果没有Predictable_vNIC_Order,这个clone出来的VM可能会eht0-BLUE,eth1-RED,然后系统将会把机密网络的信息泄漏到公开网络上。That's very bad.

1. http://www.ovirt.org/Features/PMHealthCheck --增加周期性的电源管理安全检查关于'link-down'的检测/警告的检查
  对配置的PM的hosts增加一个周期性的安全检测,通过启动一个计划任务,周期性(预定义的one hour)的给PM发送一个关于状态的command,其中遇到error会raise alerts
2. http://www.ovirt.org/Features/Design/DetailedPMHealthCheck  --engine代码,增加一个类PmHealtCheckManager去处理上面的那个计划任务
  配置:
    PMHealthCheckEnabled (boolean, false by default) - Enable/Diable the Pm Health Check scheduled job
    PMHealthCheckIntervalInSec (int, default 3600) - Determines the number of seconds for scheduling the PM Healt Check operation
  它主要的逻辑:
  Search for all Hosts with defined and enabled power management
  For each Host
      If the Host has just a Primary card, send a status command to this card, In case that this failed
      and Alert is generated, in case that it succeeded we check if there is an active alert for this host
      and remove it.
      If the Host has Primary & Secondary cards
         For sequential devices, both are tested but only warning alerts are generated if one of those
         cards is OK and one fails
         For concurrent devices both are tested and alert is generated no matter which card fails
3. http://www.ovirt.org/Custom_Fencing
  engine-config -s CustomVdsFenceType="zzz"
  engine-config -s CustomFenceAgentMapping="zzz=ipmilan"
  engine-config -s CustomVdsFenceOptionMapping="zzz:port=ipport"
  engine-config -s CustomFencePowerWaitParam="zzz=power_wait"

4. http://www.ovirt.org/Features/Design/CommandCoordinator
  CommandCoordinator提供将非存储相关操作persist/load到DB里,在3.5里面特别用于'live merge';
  它用来存储SPM和NON SPM的任务,好处-当在执行'live merge'或者需要长时间的任务时engine重启了,它可以用来保存和重载任务。
  设计:
    1. 创建一个command_entities表
    2. 提供一系列的方法用来'persist/retrieve/delete' command
    3. command实体的DAO(数据访问接口)
      void saveOrUpdate(CommandEntity commandEntity);
      void remove(Guid commandId);
      void removeAllBeforeDate(Date cutoff);
      void updateExecuted(Guid id);
      void updateNotified(Guid id);
      void updateStatus(Guid command, Status status);

5. http://www.ovirt.org/Features/Snapshots_Overview  3.5 还在开发中
  快照预览和管理存储域。
  在'Storage -> Disk Snapshots Sub-Tab',可以看到你对磁盘做的快照。


0 0