zoukankan      html  css  js  c++  java
  • 30个OpenStack问题

    1. 说一下 OPenstack 及其主要组件?

    答: OpenStack 是一系列开源软件,这些软件组成一个云供给软件,也就是 OpenStack ,意即开源软件或项目栈。

    下面是 OpenStack 的主要关键组件:

    Nova - 用于在计算级别管理虚拟机,并在计算或管理程序级别执行其他计算任务。

    Neutron - 为虚拟机,计算和控制节点提供网络功能。

    Keystone - 为所有云用户和 OpenStack 云服务提供身份认证服务。换句话说,我们可以说 Keystone 是一个提供给云用户和云服务访问权限的方法。

    Horizon - 用户提供图形用户界面。使用图形化管理可以很轻松的完成各种日常操作任务。

    Cinder - 用于提供块存储功能。通常来说 OpenStack 的 Cinder 中集成了 Chef 和 ScalelO 来共同为计算和控制节点提供块存储服务。

    Swift - 用于提供对象存储功能。通常来说,Glance 的管理平台来上传的下载云镜像。像 ScalelO 这样的外部存储也可以提供对象存储,可以很容易的集成 Glance 服务。

    Glance - 用于提供镜像服务。使用 Glance 的管理平台来上传和下载云镜像。

    Heat - 用于提供编排服务或功能。使用 Heat 管理平台可以轻松的将虚拟机作为堆栈,并且根据需要可以将虚拟机扩展或收缩。

    Ceilometer - 用于提供计量与监控功能。

    2.什么服务通常在控制节点上运行?

    答:以下服务通常在控制节点上运行:

    认证服务(KeyStone)

    镜像服务(Glance)

    Nova 服务比如 Nova API,Nova Scheduler 和 Nova DB

    块存储和对象存储服务

    Ceilometer 服务

    MariaDB / MySQL 和 RabbitMQ 服务

    网络(Neutron)和网络代理的管理服务

    编排服务(Heat)

    3. 什么服务通常在计算节点运行?

    答:以下服务通常在计算节点运行:

    Nova 计算

    网络服务,比如 OVS

     4.计算节点上虚拟机的默认地址是什么?

    答:虚拟机存储在计算节点的 /var/lib/nova/instance

    5.Glance 镜像的默认地址是什么?

    答:因为 Glance 服务运行在控制节点上,所以 Glance 镜像都被存储在控制节点的 /var/lib/glance/image 文件夹下

    6.如何使用命令行启动一个虚拟机?

    答:我们可以使用如下 OpenStack 命令来启动一个新的虚拟机:

    # openstack server creat -- flavor {flavor-name} --image {Image-Name-Or-Image-ID} --nic net-id={Network-ID} --security-group {Security_Group_ID} -key-name {Keypair-Name} <VM_Name>

    7.如何在 OpenStack  中显示用户的网络命令空间列表?

    答:可以使用 ip net ns 命令来列出用户的网络命令空间

    # ip netns list
    qdhcp-a51635b1-d023-419a-93b5-39de47755d2d
    haproxy
    vrouter

     8.如何在 OpenStack 中执行网络命名空间内的命令?

    答:假设我们想在 qdhcp-a51635b1-d023-419a-93b5-39de47755d2d 网络命名空间中执行 ifconfig 命令,我们可以执行如下命令。

    命令格式 : ip netns exec {network-space} <command>

    ~# ip netns exec qdhcp-a51635b1-d023-419a-93b5-39de47755d2d "ifconfig"

    9.在 Gkance 服务中如何使用命令行上传和下载镜像?

    答:Glance 服务中云镜像上传可以使用如下 OpenStack 命令:

    ~# openstack image create --disk-format qcow2 --container-format bare   --public --file {Name-Cloud-Image}.qcow2     <Cloud-Image-Name>

    下载云镜像则使用如下命令:

    ~# glance image-download --file <Cloud-Image-Name> --progress  <Image-ID>

    10. OpenStack 如何将虚拟机从错误状态转换为活动状态?

    ~# nova reset-state --active {Instance_id}

    11.如何使用命令行来获取可使用的浮动 IP 列表?

    答:可使用如下命令来显示可用浮动 IP 列表:

    ~# openstack ip floating list | grep None | head -10

    12.如何在特定可用区域中或在计算机上配置虚拟机?

    答:假设我们想在 compute-02 中的可用区 NonProduction 上配置虚拟机,可以使用如下命令:

    ~# openstack server create --flavor m1.tiny --image cirros --nic net-id=e0be93b8-728b-4d4d-a272-7d672b2560a6 --security-group NonProd_SG  --key-name linuxtec --availability-zone NonProduction:compute-02  nonprod_testvm

    13.如何在特定计算节点上获取配置的虚拟机列表?

    答:假设我们想要获取 compute-0-19 中配置的虚拟机列表,可以使用如下命令:

    命令格式:openstack server list -all-projects -long -c Name -c Host | grep -i {Compute-Node-Name}:

    ~# openstack server list --all-projects --long -c Name -c Host | grep -i compute-0-19

    14.如何使用命令行查看 OpenStack 实例的控制日志?

    答: 使用如下命令可查看实例的控制台日志。

    首先获取实例的 ID,然后使用如下命令:

    ~# openstack console log show {Instance-id}

    15.如何获取 OpenStack 实例的控制台 URL 地址?

    答:可以使用以下 OpenStack 命令从命令行检索实例的控制台 URL 地址:

    ~# openstack console url show {Instance-id}

    16.如何使用命令行创建可启动的 cinder / block 存储卷?

    答:假设创建一个 8G 可启动存储卷,可参考如下步骤:

    使用如下命令获取镜像列表

    ~#openstack image list | grep -i cirros | 89254d46-a54b-4bc8-8e4d-658287c7ee92 | cirros  | active |

     使用 cirros 镜像创建 8GB 的可启动存储卷

    ~# cinder creat --image-id 89254d46-a54b-4bc8-8e4d-658287c7ee92 --display-name cirros-bootable-vol  8

    17.如何列出所有在你的 OpenStack 中创建的项目或用户?

    答:可以使用如下命令来检索所有项目和用户:

    ~# openstack project list --long

     18.如何显示 OpenStack 服务端点列表?

    答:OpenStack 服务端点被分为3类:

    公共端点

    内部端点

    管理端点

    使用如下 OpenStack 命令来查看各种 OpenStack 服务端点:

    ~# openstack catalog list 

    可通过以下命令来显示特定服务端点列表:

    ~# openstack catalog show keystone

    19.在控制节点上你应该按照什么步骤来重启 nova 服务?

    答:应该按照如下步骤来重启 OpenStack 控制节点的 nova 服务:

    service nova-api restart

    service nova-cert restart

    service nova-conductor restart

    service nova-consoleauth restart

    service nova-sechduler restart

    20.假如计算节点上为数据流量配置了一些 DPDK 端口,你如何检查 DPDK 端口的状态呢?

    答:因为我们使用 openvSwitch (OVS)来配置 DPDK 端口,因此可以使用如下命令来检查端口的状态:

    root@compute-0-15:~# ovs-appctl bond/show | grep dpdk
    active slave mac: 90:38:09:ac:7a:99(dpdk0)
    slave dpdk0: enabled
    slave dpdk1: enabled
    root@compute-0-15:~#
    root@compute-0-15:~# dpdk-devbind.py --status

    21.如何使用命令行在 OpenStack 中向存在的安全组 SG (安全组)中添加新规则?

    答:可以使用 neutron 命令向 OpenStack 已存在的安全组中添加新规则:

    ~# neutron security-group-rule-create --protocol <tcp or udp>  --port-range-min <port-number> --port-range-max <port-number> --direction <ingress or egress>  --remote-ip-prefix <IP-address-or-range> Security-Group-Name

    22.如何查看控制节点和计算节点的 OVS 桥配置?

    答:控制节点和计算节点的 OVS 桥配置可以使用以下命令来查看:

    ~# ovs-vsctl show

    23.计算节点上的集成桥(br-int)的作用是什么?

    答:集成桥(br-int)对来自和运行在计算节点上的实例的流量执行 VLAN 标记和取消i标记。

    数据包从实例的 n/w 接口发出使用虚拟接口 qvo 通过 Linux 桥(qbr)。qvb 接口是用来连接 Linux 桥的,qvo 接口是用来连接集成桥的。集成桥上的 qvo 端口有一个内部 VLAN 标签,这个标签是用于当数据包到达集成桥的时候贴到数据包头部的。

    24.隧道桥(br-bun)在计算节点上的作用是什么?

    答:隧道桥(br-tun)根据 OpenFlow 规则将 VLAN 标记的流量从集成网桥转换为隧道 ID。

    隧道桥允许不同网络的实例彼此进行通信。隧道有利于封装在非安全网络上传输的流量,它支持两层网络,即 GRE 和 VXLAN。

    25.外部 OVS 桥(br-ex)的作用是什么?

    答:顾名思义,此网桥转发来往网络的流量,以允许外部访问实例。br-ex 连接物理接口比如 eth2,这样用户网络的浮动 IP 数据从物理网络接收并路由到用户网络端口。

    26.OpenStack 网络中 OpenFlow 规则的作用是什么?

    答:OpenFlow 规则是一种机制,这种机制定义了一个数据包如何从源到达目的地。OpenFlow 规则存储在 flow 表中。flow 表是 OpenFlow 交换机的一部分。

    当一个数据包到达交换机就会被第一个 flow 表检查,如果不匹配 flow 表中的任何入口,那这个数据包就会被丢弃或者转发到其他 flow 表中。

    27.怎样查看 OpenFlow 交换机的信息(比如端口,表编号,缓存编号等)?

    答:假如我们显示 OpenFlow 交换机的信息(br-int),需要执行如下命令:

    root@compute-0-15# ovs-ofctl show br-int
    OFPT_FEATURES_REPLY (xid=0x2): dpid:0000fe981785c443
    n_tables:254, n_buffers:256
    capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
    actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
     1(patch-tun): addr:3a:c6:4f:bd:3e:3b
         config:     0
         state:      0
         speed: 0 Mbps now, 0 Mbps max
     2(qvob35d2d65-f3): addr:b2:83:c4:0b:42:3a
         config:     0
         state:      0
         current:    10GB-FD COPPER
         speed: 10000 Mbps now, 0 Mbps max
     ………………………………………

    28.如何显示交换机中的所有 flow 的入口?

    答:可以使用命令 ovs-ofctl dump-flows 来查看交换机的 flow 入口:

    [root@compute01 ~]# ovs-ofctl dump-flows br-int

     29.什么是 Neutron 代理?如何显示所有 Neutron 代理?

    答:OpenStack Neutron 服务器充当中心控制器,实际网络配置是在计算节点或者网络节点上执行的。Neutron 代理是计算节点或者网络节点上进行配置更新的软件实体。Neutron 代理通过 Neutron 服务和消息队列来和中心 Neutron 服务通信。

    可通过如下命令查看 Neutron 代理列表:

    ~# openstack network agent list -c ‘Agent type’ -c Host -c Alive -c State

    30.CPU Pinning 是什么?

    答:CPU Pinning 是指为某个虚拟机保留物理核心。它也称为 CPU 隔离或处理器关联。有两个目的:

    它确保虚拟机只能在专用核心上运行

    它还确保公共主机进程不在这些核心上运行

    我们也可以认为 Pinning 是物理核心到一个用户虚拟 CPU (vCPU) 的一对一映射。

  • 相关阅读:
    MySql模糊查询like通配符使用详细介绍
    使用powershell批量添加Qt的文件(生成pro)
    宏定义的教训
    使用powershell批量添加Keil和IAR的头文件路径
    python和数据科学(Anaconda)
    CDCE913产生任意频率
    QT中检索设定目录下所有指定文件的方法
    QT中将ASCII转换为对应数值的方法
    STM8如何使用自带的bootloader
    QT中使用函数指针
  • 原文地址:https://www.cnblogs.com/lwl117/p/11065622.html
Copyright © 2011-2022 走看看