扣丁学堂Linux培训之30 个Openstack 经典面试问题和解答
2019-03-19 16:11:23
1758浏览
今天扣丁学堂Linux培训老师给大家详细介绍一下关于30个Openstack经典面试问题和解答详解,由于现在大多数公司都试图将它们的IT基础设施和电信设施迁移到私有云,如OpenStack。如果你打算面试OpenStack管理员这个岗位,那么下面列出的这些面试问题可能会帮助你通过面试。
Q:1说一下OpenStack及其主要组件?
答:OpenStack是一系列开源软件,这些软件组成了一个云供给软件,也就是OpenStack,意即开源软件或项目栈。
下面是OpenStack的主要关键组件:
Nova–用于在计算级别管理虚拟机,并在计算或管理程序级别执行其他计算任务。
Neutron–为虚拟机、计算和控制节点提供网络功能。
Keystone–为所有云用户和OpenStack云服务提供身份认证服务。换句话说,我们可以说Keystone是一个提供给云用户和云服务访问权限的方法。
Horizon–用于提供图形用户界面。使用图形化管理界面可以很轻松地完成各种日常操作任务。
Cinder–用于提供块存储功能。通常来说OpenStack的Cinder中集成了Chef和ScaleIO来共同为计算和控制节点提供块存储服务。
Swift–用于提供对象存储功能。通常来说,Glance管理的镜像是存储在对象存储空间的。像ScaleIO这样的外部存储也可以提供对象存储,可以很容易的集成Glance服务。
Glance–用于提供镜像服务。使用Glance的管理平台来上传和下载云镜像。
Heat–用于提供编排服务或功能。使用Heat管理平台可以轻松地将虚拟机作为堆栈,并且根据需要可以将虚拟机扩展或收缩。
Ceilometer–用于提供计量与监控功能。
Q:2什么服务通常在控制节点上运行?
答:以下服务通常在控制节点上运行:
认证服务(KeyStone)
镜像服务(Glance)
Nova服务比如NovaAPI、NovaScheduler和NovaDB
块存储和对象存储服务
Ceilometer服务
MariaDB/MySQL和RabbitMQ服务
网络(Neutron)和网络代理的管理服务
编排服务(Heat)
Q:3什么服务通常在计算节点上运行?
答:以下服务通常在计算节点运行:
Nova计算
网络服务,比如OVS
Q:4计算节点上虚拟机的默认地址是什么?
答:虚拟机存储在计算节点的/var/lib/nova/instances。
Q:5Glance镜像的默认地址是什么?
答:因为Glance服务运行在控制节点上,所以Glance镜像都被存储在控制节点的/var/lib/glance/images文件夹下。
想了解更多请访问:在OpenStack中如何使用命令行创建和删除虚拟机
Q:6说一下如何使用命令行启动一个虚拟机?
答:我们可以使用如下OpenStack命令来启动一个新的虚拟机:
# openstack server create --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>
Q:7如何在OpenStack中显示用户的网络命名空间列表?
答:可以使用ipnetns命令来列出用户的网络命名空间。
~# ip netns list
qdhcp-a51635b1-d023-419a-93b5-39de47755d2d
haproxy
vrouter
Q:8如何在OpenStack中执行网络命名空间内的命令?
答:假设我们想在qdhcp-a51635b1-d023-419a-93b5-39de47755d2d网络命名空间中执行ifconfig命令,我们可以执行如下命令。
命令格式:ipnetnsexec{network-space}<command>:
~# ip netns exec qdhcp-a51635b1-d023-419a-93b5-39de47755d2d "ifconfig"
Q:9在Glance服务中如何使用命令行上传和下载镜像?
答: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>
Q:10OpenStack如何将虚拟机从错误状态转换为活动状态?
答:在某些情况下虚拟机可能会进入错误状态,可以使用如下命令将错误状态转换为活动状态:
~# nova reset-state --active {Instance_id}
Q:11如何使用命令行来获取可使用的浮动IP列表?
答:可使用如下命令来显示可用浮动IP列表:
~]# openstack ip floating list | grep None | head -10
Q: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
Q:13如何在特定计算节点上获取配置的虚拟机列表?
答:假设我们想要获取在compute-0-19中配置的虚拟机列表,可以使用如下命令:
命令格式:openstackserverlist–all-projects–long-cName-cHost|grep-i{Compute-Node-Name}:
~# openstack server list --all-projects --long -c Name -c Host | grep -i compute-0-19
Q:14如何使用命令行查看OpenStack实例的控制台日志?
答:使用如下命令可查看实例的控制台日志。
首先获取实例的ID,然后使用如下命令:
~# openstack console url show {Instance-id}
Q:15如何获取OpenStack实例的控制台的URL地址?
答:可以使用以下OpenStack命令从命令行检索实例的控制台URL地址:
~# openstack console url show {Instance-id}
Q:16如何使用命令行创建可启动的cinder/block存储卷?
答:假设创建一个8GB可启动存储卷,可参考如下步骤:
使用如下命令获取镜像列表
~# openstack image list | grep -i cirros
| 89254d46-a54b-4bc8-8e4d-658287c7ee92 | cirros | active |
使用cirros镜像创建8GB的可启动存储卷
~# cinder create --image-id 89254d46-a54b-4bc8-8e4d-658287c7ee92 --display-name cirros-bootable-vol 8
Q:17如何列出所有在你的OpenStack中创建的项目或用户?
答:可以使用如下命令来检索所有项目和用户:
~# openstack project list --long
Q:18如何显示OpenStack服务端点列表?
答:OpenStack服务端点被分为3类:
公共端点
内部端点
管理端点
使用如下OpenStack命令来查看各种OpenStack服务端点:
~# openstack catalog list
可通过以下命令来显示特定服务端点(比如说keystone)列表:
~# openstack catalog show keystone
Q:19在控制节点上你应该按照什么步骤来重启nova服务?
答:应该按照如下步骤来重启OpenStack控制节点的nova服务:
service nova-api restart
service nova-cert restart
service nova-conductor restart
service nova-consoleauth restart
service nova-scheduler restart
Q: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
Q: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
Q:22如何查看控制节点和计算节点的OVS桥配置?
答:控制节点和计算节点的OVS桥配置可使用以下命令来查看:
~]# ovs-vsctl show
Q:23计算节点上的集成桥(br-int)的作用是什么?
答:集成桥(br-int)对来自和运行在计算节点上的实例的流量执行VLAN标记和取消标记。
数据包从实例的n/w接口发出使用虚拟接口qvo通过Linux桥(qbr)。qvb接口是用来连接Linux桥的,qvo接口是用来连接集成桥的。集成桥上的qvo端口有一个内部VLAN标签,这个标签是用于当数据包到达集成桥的时候贴到数据包头部的。
Q:24隧道桥(br-tun)在计算节点上的作用是什么?
答:隧道桥(br-tun)根据OpenFlow规则将VLAN标记的流量从集成网桥转换为隧道ID。
隧道桥允许不同网络的实例彼此进行通信。隧道有利于封装在非安全网络上传输的流量,它支持两层网络,即GRE和VXLAN。
Q:25外部OVS桥(br-ex)的作用是什么?
答:顾名思义,此网桥转发来往网络的流量,以允许外部访问实例。br-ex连接物理接口比如eth2,这样用户网络的浮动IP数据从物理网络接收并路由到用户网络端口。
Q:26OpenStack网络中OpenFlow规则的作用是什么?
答:OpenFlow规则是一种机制,这种机制定义了一个数据包如何从源到达目的地。OpenFlow规则存储在flow表中。flow表是OpenFlow交换机的一部分。
当一个数据包到达交换机就会被第一个flow表检查,如果不匹配flow表中的任何入口,那这个数据包就会被丢弃或者转发到其他flow表中。
Q: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
………………………………………
Q:28如何显示交换机中的所有flow的入口?
答:可以使用命令ovs-ofctldump-flows来查看交换机的flow入口。
假设我们想显示OVS集成桥(br-int)的所有flow入口,可以使用如下命令:
[root@compute01 ~]# ovs-ofctl dump-flows br-int
Q:29什么是Neutron代理?如何显示所有Neutron代理?
答:OpenStackNeutron服务器充当中心控制器,实际网络配置是在计算节点或者网络节点上执行的。Neutron代理是计算节点或者网络节点上进行配置更新的软件实体。Neutron代理通过Neuron服务和消息队列来和中心Neutron服务通信。
可通过如下命令查看Neutron代理列表:
~# openstack network agent list -c ‘Agent type’ -c Host -c Alive -c State
Q:30CPUPinning是什么?
答:CPUPinning是指为某个虚拟机保留物理核心。它也称为CPU隔离或处理器关联。有两个目的:
它确保虚拟机只能在专用核心上运行
它还确保公共主机进程不在这些核心上运行
我们也可以认为Pinning是物理核心到一个用户虚拟CPU(vCPU)的一对一映射。
以上就是关于扣丁学堂Linux培训之30 个Openstack 经典面试问题和解答的详细介绍,
最后想要了解更多关于Linux方面内容的小伙伴,请关注扣丁学堂Linux培训官网、微信等平台,Linux培训后的前景无限,行业薪资和未来的发展会越来越好的,扣丁学堂老师精心推出的Linux视频教程定能让你快速掌握Linux从入门到精通开发实战技能。扣丁学堂Linux技术交流群:422345477。
【关注微信公众号获取更多学习资料】
查看更多关于“Linux培训资讯”的相关文章>>
标签:
Linux培训
Linux视频教程
红帽Linux视频
Linux学习视频
Linux入门视频