云计算及部分面试题

本文深入探讨了OpenStack的工作原理和技术特点,包括SaaS、PaaS和IaaS的概念,详细解析了OpenStack中Nova组件的运作流程,并介绍了Python编程语言中的排序算法、生成器等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SaaS 软件即服务-- 用户通过网络客户端访问
    CRM客户关系管理,电子邮件,虚拟桌面,统一通信,在线游戏

PaaS平台即服务-- 软件业务运行的环境
    数据库,开发工具,web服务器,软件运行环境

IaaS基础架构即服务-- 用户直接访问底层的计算资源、存储资源和网络资源
    虚拟机,服务器,存储空间,网络带宽,安全防护
    
    


1. openstack 中heat是通过那个进程去调用openstack 其他component相应的api去创建相应的resource的?

2. 为什么要引入nova conductor, nova conductor 为什么接管了nova api RPC调用nova scheduler 的任务?
    
    更高的安全性

            在 OpenStack 的早期版本中,nova-compute 可以直接访问数据库,但这样存在非常大的安全隐患。
            因为 nova-compute 这个服务是部署在计算节点上的,为了能够访问控制节点上的数据库,
            就必须在计算节点的 /etc/nova/nova.conf 中配置访问数据库的连接信息,比如
            试想任意一个计算节点被黑客入侵,都会导致部署在控制节点上的数据库面临极大风险。
            为了解决这个问题,从 G 版本开始,Nova 引入了一个新服务 nova-conductor,
            将 nova-compute 访问数据库的全部操作都放到 nova-conductor 中,
            而且 nova-conductor 是部署在控制节点上的。 这样就避免了 nova-compute 直接访问数据库,
            增加了系统的安全性。
    
    更好的伸缩性
    
            nova-conductor 将 nova-compute 与数据库解耦之后还带来另一个好处:
            提高了 nova 的伸缩性。
            nova-compute 与 conductor 是通过消息中间件交互的。
            这种松散的架构允许配置多个 nova-conductor 实例。
            在一个大规模的 OpenStack 部署环境里,
            管理员可以通过增加 nova-conductor 的数量来应对日益增长的计算节点对数据库的访问。    
                
3. Python 写冒泡排序
    
    a=[10,6,2,3,1,5,4,7,9,8]
    for i in range(len(a)):
        for j in range(i):
            if a[j]>a[j+1]:
                a[j],a[j+1]=a[j+1],a[j]
                
    print(a)

4. python中 xrange 和range的区别

    xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
    xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

5. python decorator的用法

6. python 中yield的用法
    
        '''yield生成斐波那契'''
        def fab(max):
            n, a, b = 0, 0, 1
            while n < max:
                yield b
                # print b
                a, b = b, a + b
                n = n + 1   

        for i in fab(10):
            print i

7 openstack中多线程 协程

8. socket write什么情况下会受到 EAGAIN 和EWOULDBLOCK

9. 简述openstack中 nova boot 一个vm所需的过程

    Openstack得到函数名本身作为了一个命令, 但为了区分命令和一般函数的区别,
    在每个命令函数前加一个do_, 也就是说所有的命令都是命令加上一个do_,那么
    很明显,nova boot,对应的处理函数就是do_boot.
    
        nova boot创建VM的流程大致为:

        1. novaclient发送HTTP请求到nova-api(这里内部细节包括keystone对用户的验证及用户从keystone获取token和endpoints等信息,具体参考《keystone WSGI流程》)。

        2. nova-api通过rpc调用到nova-conductor。

        3. nova-conductor调用rpc进入nova-scheduler进行compute节点的选择,nova-scheduler将compute节点选择的信息的返回给nova-conductor。

        4.最后nova-conductor执行rpc调用到nova-compute到选择的compute创建VM。

10. openstack 中trove 是干什么用的

    对Sql/Nosql数据库做统一的抽象
    
11. 容器相关

12. openstack 中取得虚拟机状态的函数是?

13. openstack 中nova compute boot虚拟机用到的函数

转载于:https://my.oschina.net/guoba/blog/787860

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值