OpenStack及云計算(面試)常見問題
云計算是一種采用按量付費的模式,基于虛擬化技術(shù),將相應(yīng)計算資源(如網(wǎng)絡(luò)、存儲等)池化后,提供便捷的、高可用的、高擴展性的、按需的服務(wù)(如計算、存儲、應(yīng)用程序和其他 IT 資源)。
-
自主服務(wù):可按需的獲取云端的相應(yīng)資源(主要指公有云);
-
網(wǎng)路訪問:可隨時隨地使用任何聯(lián)網(wǎng)終端設(shè)備接入云端從而使用相應(yīng)資源。
-
資源池化:
-
快速彈性:可方便、快捷地按需獲取和釋放計算資源。
-
按量計費:
-
私有云:云平臺資源只給某個單位、或某部分用戶內(nèi)部使用。
-
公有云:云平臺資源開放給社會公眾服務(wù)。
-
社區(qū)云:云平臺資源給幾個固定的單位內(nèi)使用。
-
混合云:兩個或兩個以上不同類型的云平臺。
-
IaaS:基礎(chǔ)設(shè)施即服務(wù),云服務(wù)商將IT系統(tǒng)的基礎(chǔ)設(shè)施(如計算資源、存儲資源、網(wǎng)絡(luò)資源)池化后作為服務(wù)進(jìn)行售賣;
-
PaaS:平臺即服務(wù),云服務(wù)商將IT系統(tǒng)的平臺軟件層(數(shù)據(jù)庫、OS、中間件、運行庫)作為服務(wù)進(jìn)行售賣;
-
SaaS:軟件即服務(wù),云服務(wù)商將IT系統(tǒng)的應(yīng)用軟件層作為服務(wù)進(jìn)行售賣。
-
云服務(wù)消費者:租賃云服務(wù)產(chǎn)品的個人或者單位組織;
-
云服務(wù)提供商:提供云服務(wù)產(chǎn)品的個人或者單位組織;
-
云服務(wù)代理商:向消費者銷售云服務(wù)并獲取一定傭金的個人或者單位組織;
-
云計算審計員:針對云計算安全性、云計算性能等進(jìn)行獨立評估的第三方個人或者單位組織;
-
云服務(wù)承運商:在云服務(wù)提供商和消費者之間提供連接媒介,以便把云計算服務(wù)產(chǎn)品從云服務(wù)提供商轉(zhuǎn)移到云服務(wù)消費者手中,如中國電信。
-
常見的虛擬化廠商及其相應(yīng)的產(chǎn)品?
VMware:
虛擬化平臺產(chǎn)品:ESXi,管理工具:VMware vCenter套件(包括vCenter Server),VMware vCloud(主要管理公有云)。
RedHat:KVM,及基于KVM的虛擬化套件RHV
思杰:XEN
微軟:
虛擬化平臺產(chǎn)品:Virtual PC、Hyper-V,管理工具:System Center 2016.
Oracle:Oracle VM Server(集成XEN+Linux內(nèi)核)
云計算:IT能力服務(wù)化,按需使用,按量計費,多租戶隔離,是一個系統(tǒng)的輕量級管理控制面。
虛擬化:環(huán)境隔離,資源復(fù)用,降低隔離損耗,提升運行性能,提供高級虛擬化特性。
虛擬化是實現(xiàn)云計算的技術(shù)支撐之一,但并非云計算的核心關(guān)注點。
OpenStack、Apache CloudStack
-
數(shù)據(jù)安全性更高;
-
可節(jié)省上云遷移過程中的大量成本;
-
業(yè)務(wù)快速部署,縮短業(yè)務(wù)周期;
-
降低企業(yè)成本,自主可控。
-
在OpenStack高可用架構(gòu)中,controller節(jié)點為什么通常至少有3個節(jié)點?
由mysql的多主集群決定,通常情況下,openstack集群的數(shù)據(jù)庫:mysql集群部署在controller節(jié)點。
軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN ),指通過軟件定義網(wǎng)絡(luò),是網(wǎng)絡(luò)虛擬化的一種實現(xiàn)方式.
SDN的主要技術(shù)特點體現(xiàn)在3方面:
-
轉(zhuǎn)發(fā)與控制分離。SDN具有轉(zhuǎn)發(fā)與控制分離的特點,采用SDN控制器實現(xiàn)網(wǎng)絡(luò)拓?fù)涞氖占?、路由的計算、流表的生成及下發(fā)、網(wǎng)絡(luò)的管理與控制等功能;而網(wǎng)絡(luò)層設(shè)備僅負(fù)責(zé)流量的轉(zhuǎn)發(fā)及策略的執(zhí)行。通過這種方式可使得網(wǎng)絡(luò)系統(tǒng)的轉(zhuǎn)發(fā)面和控制面獨立發(fā)展,轉(zhuǎn)發(fā)面向通用化、簡單化發(fā)展,成本可逐步降低;控制面可向集中化、統(tǒng)一化發(fā)展,具有更強的性能和容量。
-
控制邏輯集中。轉(zhuǎn)發(fā)與控制分離之后,使得控制面向集中化發(fā)展??刂泼娴募谢?,使得SDN控制器擁有網(wǎng)絡(luò)的全局靜態(tài)拓?fù)洌W(wǎng)的動態(tài)轉(zhuǎn)發(fā)表信息,全網(wǎng)絡(luò)的資源利用率,故障狀態(tài)等。因此,SDN控制器可實現(xiàn)基于網(wǎng)絡(luò)級別的統(tǒng)一管理、控制和優(yōu)化,更可依托全局的拓?fù)涞膭討B(tài)轉(zhuǎn)發(fā)信息幫助實現(xiàn)快速的故障定位和排除,提高運營效率。
-
網(wǎng)絡(luò)能力開放化。SDN還有一個重要特征是支持網(wǎng)絡(luò)能力開放化。通過集中的SDN控制器實現(xiàn)網(wǎng)絡(luò)資源的統(tǒng)一管理、整合以及虛擬化后,采用規(guī)范化的北向接口為上層應(yīng)用提供按需分配的網(wǎng)絡(luò)資源及服務(wù),進(jìn)而實現(xiàn)網(wǎng)絡(luò)能力開放。這樣的方式打破了現(xiàn)有網(wǎng)絡(luò)對業(yè)務(wù)封閉的問題,是一種突破性的創(chuàng)新。
一個開源云操作系統(tǒng)內(nèi)核,用于構(gòu)建云平臺,主要實現(xiàn)以下五個主要特點:
-
資源抽象:OpenStack將各類硬件資源,通過虛擬化與軟件定義的形式,抽象成虛擬的資源池;
-
資源調(diào)度:OpenStack根據(jù)管理員/用戶的需求,將資源池中的資源分配給不同的用戶,承載不同的應(yīng)用;
-
應(yīng)用生命周期管理:OpenStack可以提供初步的應(yīng)用部署/撤銷、自動規(guī)模調(diào)整等功能;
-
系統(tǒng)運維:OpenStack可以提供一定的系統(tǒng)監(jiān)控能力;
-
人機交互:OpenStack提供人機接口,外界可通過API、CLI或圖形界面的方式與OpenStack進(jìn)行交互。
-
Horzon組件:提供一個Web前端控制臺,從而實現(xiàn)通過web管理云平臺,建云主機,分配網(wǎng)絡(luò),配安全組等。
-
Nova組件:負(fù)責(zé)響應(yīng)虛擬機創(chuàng)建請求、調(diào)度、銷毀云主機。
-
Neutron組件:提供云計算的網(wǎng)絡(luò)虛擬化技術(shù),為OpenStack其他服務(wù)提供網(wǎng)絡(luò)連接服務(wù)。為用戶提供接口,可以定義Network、Subnet、Router,配置DHCP、DNS、負(fù)載均衡、L3服務(wù),網(wǎng)絡(luò)支持GRE、VLAN。插件架構(gòu)支持許多主流的網(wǎng)絡(luò)廠家和技術(shù),如OpenvSwitch。以上為三大核心組件。
-
Swift組件:用于在大規(guī)模可擴展系統(tǒng)中通過內(nèi)置冗余及高容錯機制實現(xiàn)對象存儲的系統(tǒng),允許進(jìn)行存儲或者檢索文件??蔀镚lance提供鏡像存儲,為Cinder提供卷備份服務(wù)。
-
Cinder組件:為運行實例提供穩(wěn)定持久化的數(shù)據(jù)塊存儲服務(wù),如創(chuàng)建卷、刪除卷,在實例上掛載和卸載卷。
-
Keystone組件:為OpenStack其他服務(wù)提供身份驗證、服務(wù)規(guī)則和服務(wù)令牌的功能,管理Domains、Projects、Users、Groups、Roles。
-
Glance組件:為云主機提供不同系統(tǒng)鏡像,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有創(chuàng)建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。
-
Ceilometer組件:能把OpenStack內(nèi)部發(fā)生的幾乎所有的事件都收集起來,然后為計費和監(jiān)控以及其它服務(wù)提供數(shù)據(jù)支撐。
-
Heat組件:提供了一種通過模板定義的協(xié)同部署方式,實現(xiàn)云基礎(chǔ)設(shè)施軟件運行環(huán)境(計算、存儲和網(wǎng)絡(luò)資源)的自動化部署。
-
OpenStack中什么服務(wù)通常運行在控制節(jié)點?
-
以下服務(wù)通常運行在控制節(jié)點:
-
認(rèn)證服務(wù)(Keystone)
-
鏡像服務(wù)(Glance)
-
Nova服務(wù),如Nova API、Nova Scheduler和Nova DB
-
塊存儲和對象存儲服務(wù)(Cinder、Swift)
-
Ceilometer服務(wù)
-
MariaDB/MySQL和RabbitMQ服務(wù)
-
網(wǎng)絡(luò)(Neutron)和網(wǎng)絡(luò)代理的管理服務(wù)
-
編排服務(wù)(Heat)
-
OpenStack中什么服務(wù)通常運行在計算節(jié)點?
-
Nova計算
-
網(wǎng)絡(luò)服務(wù),比如OVS
-
OpenStack中的Domain,project,user,role,token 的概念和關(guān)系?
Domain:表示 project 和 user 的集合,在公有云或者私有云中常常表示一個客戶
Group:一個domain 中的部分用戶的集合
Project:IT基礎(chǔ)設(shè)施資源的集合,比如虛機,卷,鏡像等
Role:角色,表示一個 user 對一個 project resource 的權(quán)限
Token:一個 user 對于某個目標(biāo)(project 或者 domain)的一個有限時間段內(nèi)的身份令牌
-
OpenStack中計算節(jié)點上虛擬機默認(rèn)保存路徑在哪?
虛擬機存儲在計算節(jié)點的/var/lib/nova/instances目錄。
-
OpenStack中Glance鏡像的默認(rèn)保存路徑在哪?
因為Glance服務(wù)運行在控制節(jié)點上,所以Glance鏡像都被存儲在控制節(jié)點的/var/lib/glance/images目錄。
-
OpenStack創(chuàng)建虛擬機的命令是什么?
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>
-
界面或命令行通過RESTful API向keystone獲取認(rèn)證信息。
-
keystone通過用戶請求認(rèn)證信息,并生成auth-token返回給對應(yīng)的認(rèn)證請求。
-
界面或命令行通過RESTful API向nova-api發(fā)送一個boot instance的請求(攜帶auth-token)。
-
nova-api接受請求后向keystone發(fā)送認(rèn)證請求,查看token是否為有效用戶和token。
-
keystone驗證token是否有效,如有效則返回有效的認(rèn)證和對應(yīng)的角色(注:有些操作需要有角色權(quán)限才能操作)。
-
通過認(rèn)證后nova-api和數(shù)據(jù)庫通訊。
-
初始化新建虛擬機的數(shù)據(jù)庫記錄。
-
nova-api通過rpc.call向nova-scheduler請求是否有創(chuàng)建虛擬機的資源(Host ID)。
-
nova-scheduler進(jìn)程偵聽消息隊列,獲取nova-api的請求。
-
nova-scheduler通過查詢nova數(shù)據(jù)庫中計算資源的情況,并通過調(diào)度算法計算符合虛擬機創(chuàng)建需要的主機。
-
對于有符合虛擬機創(chuàng)建的主機,nova-scheduler更新數(shù)據(jù)庫中虛擬機對應(yīng)的物理主機信息。
-
nova-scheduler通過rpc.cast向nova-compute發(fā)送對應(yīng)的創(chuàng)建虛擬機請求的消息。
-
nova-compute會從對應(yīng)的消息隊列中獲取創(chuàng)建虛擬機請求的消息。
-
nova-compute通過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)
-
nova-conductor從消息隊隊列中拿到nova-compute請求消息。
-
nova-conductor根據(jù)消息查詢虛擬機對應(yīng)的信息。
-
nova-conductor從數(shù)據(jù)庫中獲得虛擬機對應(yīng)信息。
-
nova-conductor把虛擬機信息通過消息的方式發(fā)送到消息隊列中。
-
nova-compute從對應(yīng)的消息隊列中獲取虛擬機信息消息。
-
nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請求glance-api獲取創(chuàng)建虛擬機所需要鏡像。
-
glance-api向keystone認(rèn)證token是否有效,并返回驗證結(jié)果。
-
token驗證通過,nova-compute獲得虛擬機鏡像信息(URL)。
-
nova-compute通過keystone的RESTfull API拿到認(rèn)證k的token,并通過HTTP請求neutron-server獲取創(chuàng)建虛擬機所需要的網(wǎng)絡(luò)信息。
-
neutron-server向keystone認(rèn)證token是否有效,并返回驗證結(jié)果。
-
token驗證通過,nova-compute獲得虛擬機網(wǎng)絡(luò)信息。
-
nova-compute通過keystone的RESTfull API拿到認(rèn)證的token,并通過HTTP請求cinder-api獲取創(chuàng)建虛擬機所需要的持久化存儲信息。
-
cinder-api向keystone認(rèn)證token是否有效,并返回驗證結(jié)果。
-
token驗證通過,nova-compute獲得虛擬機持久化存儲信息。
-
nova-compute根據(jù)instance的信息調(diào)用配置的虛擬化驅(qū)動來創(chuàng)建虛擬機。
-
OpenStack中如何顯示用戶的網(wǎng)絡(luò)命名空間列表?
# ip netns list
-
OpenStack中如何執(zhí)行網(wǎng)絡(luò)命名空間內(nèi)的命令?
假設(shè)我們想在 qdhcp-a51635b1-d023-419a-93b5-39de47755d2d 網(wǎng)絡(luò)命名空間中執(zhí)行 ifconfig 命令,可以執(zhí)行如下命令。
命令格式 : ip netns exec {network-space} <command>:
# ip netns exec qdhcp-a51635b1-d023-419a-93b5-39de47755d2d "ifconfig"
-
OpenStack中Glance服務(wù)如何使用命令上傳和下載鏡像?
# 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> #下載
-
OpenStack中如何將虛擬機從異常狀態(tài)置為活動狀態(tài)?
# nova reset-state --active {Instance_id}
# openstack ip floating list | grep None | head -10
-
OpenStack中如何在特定可用區(qū)特定計算節(jié)點創(chuàng)建虛擬機?
# 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
-
OpenStack中如何獲取特定計算節(jié)點虛擬機列表?
命令格式: 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
# openstack console log show {Instance-id}
# openstack console url show {Instance-id}
-
OpenStack中如何創(chuàng)建Cinder/Block存儲卷?
# openstack image list | grep -i cirros #獲取鏡像列表
| 89254d46-a54b-4bc8-8e4d-658287c7ee92 | cirros | active |
# cinder create --image-id 89254d46-a54b-4bc8-8e4d-658287c7ee92 --display-name cirros-bootable-vol 8 #使用cirros鏡像創(chuàng)建8G啟動卷
-
OpenStack中如何列出所有創(chuàng)建的項目或用戶?
# openstack project list --long
-
OpenStack中如何顯示服務(wù)端點(endpoint)列表?
OpenStack 服務(wù)端點被分為 3 類:
使用如下 OpenStack 命令來查看各種 OpenStack 服務(wù)端點:
# openstack catalog list
可通過以下命令來顯示特定服務(wù)端點(比如說 keystone)列表:
# openstack catalog show keystone
-
OpenStack控制節(jié)點按什么步驟重啟nova服務(wù)?
# service nova-api restart
# service nova-cert restart
# service nova-conductor restart
# service nova-consoleauth restart
# service nova-scheduler restart
-
OpenStack中已存在的安全組SG,如何添加規(guī)則?
# 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
-
OpenStack中如何查看控制節(jié)點和計算節(jié)點的OVS橋配置?
# ovs-vsctl show
-
OpenStack中計算節(jié)點的集成橋(br-int)的作用是什么?
集成橋(br-int)對來自和運行在計算節(jié)點上的實例的流量執(zhí)行 VLAN 標(biāo)記和取消標(biāo)記。
數(shù)據(jù)包從實例的 n/w 接口發(fā)出使用虛擬接口 qvo 通過 Linux 橋(qbr)。qvb 接口是用來連接 Linux 橋的,qvo 接口是用來連接集成橋的。集成橋上的 qvo 端口有一個內(nèi)部 VLAN 標(biāo)簽,這個標(biāo)簽是用于當(dāng)數(shù)據(jù)包到達(dá)集成橋的時候貼到數(shù)據(jù)包頭部的。
-
OpenStack中計算節(jié)點的隧道橋(br-tun)的作用是什么?
隧道橋(br-tun)根據(jù) OpenFlow 規(guī)則將 VLAN 標(biāo)記的流量從集成網(wǎng)橋轉(zhuǎn)換為隧道 ID。
隧道橋允許不同網(wǎng)絡(luò)的實例彼此進(jìn)行通信。隧道有利于封裝在非安全網(wǎng)絡(luò)上傳輸?shù)牧髁浚С謨蓪泳W(wǎng)絡(luò),即 GRE 和 VXLAN。
-
OpenStack中外部OVS橋(br-ex)的作用是什么?
外部OVS網(wǎng)橋轉(zhuǎn)發(fā)來往網(wǎng)絡(luò)的流量,以允許外部訪問實例。br-ex 連接物理接口比如 eth3,這樣用戶網(wǎng)絡(luò)的浮動 IP 數(shù)據(jù)從物理網(wǎng)絡(luò)接收并路由到用戶網(wǎng)絡(luò)端口。
OpenStack中有至少兩種通信機制, RESTful API和RPC調(diào)用。
RESTFUL API是一套架構(gòu)約束條件和原則
-
所有事物都定義了ID。openstack中每個資源都有唯一的UUID
-
所有事物都鏈接在一起。在openstack中將資源的ID放在URL中。
-
使用標(biāo)準(zhǔn)的方法。比如說GET是查詢資源,POST是添加資源,PUT是更新資源等等。
-
使用RESTful API架構(gòu),實現(xiàn)的目標(biāo)
-
客戶端與服務(wù)端的獨立性: 在公共接口不變的情況下,客戶端和服務(wù)端的代碼可以獨立開發(fā)。
-
無狀態(tài)性: 用戶的狀態(tài)保存在客戶端,服務(wù)端不再保存用戶的狀態(tài)。客戶端向服務(wù)端發(fā)送請求時,必須發(fā)送所有的數(shù)據(jù),包括用戶狀態(tài)。
-
統(tǒng)一的接口: RESTful API的URL格式需要遵守統(tǒng)一的規(guī)范??梢越档涂蛻舳?a title="服務(wù)器" target="_blank" href="http://kemok4.com/">服務(wù)器的耦合度,使得編碼更加簡單。
-
消息僅限于文本
-
客戶端與服務(wù)端采取同步機制,當(dāng)發(fā)送http請求時客戶端需要等待服務(wù)器的響應(yīng)
-
客戶端與服務(wù)器雖然可以獨立開發(fā),但也存在耦合。客戶端必須要知道服務(wù)器的地址才可以正常工作。
其他
-
REST是面向資源的,資源通過URL暴露
-
REST本身可以利用HTTP的一些特征,如HTTP動詞、狀態(tài)碼、HTTP報頭等
RPC協(xié)議,即遠(yuǎn)程過程調(diào)用(Remote Procedure Call Protocol)
RPC采用AMQP協(xié)議實現(xiàn)進(jìn)程間通信。openstack中采用rabbitmq和qpid。
AMQP:高級消息隊列,基于消息的中間件提供的開放的應(yīng)用層標(biāo)準(zhǔn)協(xié)議。能夠有效地支持各種通信模型或者報文傳送方面的應(yīng)用。
-
特點:二進(jìn)制的應(yīng)用層通信協(xié)議,進(jìn)城之間對稱的異步通信協(xié)議,消息格式,一系列標(biāo)準(zhǔn)化的但可拓展的消息能力(訂閱者和發(fā)布者,兩個節(jié)點無需知道對方是什么節(jié)點,也不用管對方節(jié)點怎么去處理發(fā)送的消息,擁有過濾器可以修改訂閱者的接收內(nèi)容)
-
組成:發(fā)布者,中間件(消息的存儲、交換和路由),訂閱者
-
流程:發(fā)布者將消息發(fā)送到中間件,中間件將消息存儲到消息隊列中,最后訂閱者從消息隊列中獲取消息。
-
nova中使用rabbitmq實現(xiàn)RPC調(diào)用
-
客戶端(發(fā)布者)無需知道服務(wù)器(訂閱者)的位置
-
客戶端與服務(wù)器無需同步運行??蛻舳丝梢韵劝l(fā)RPC調(diào)用,然后存儲在消息隊列中。
-
遠(yuǎn)程調(diào)用的隨機均衡性,當(dāng)客戶端發(fā)起RPC調(diào)用時,可以隨機選擇一個服務(wù)器來處理消息
-
OpenStack中根據(jù)權(quán)限不同網(wǎng)絡(luò)可分為幾種?
Provider network:管理員創(chuàng)建的和物理網(wǎng)絡(luò)有直接映射關(guān)系的虛擬網(wǎng)絡(luò)。
Tenant network:租戶普通用戶創(chuàng)建的網(wǎng)絡(luò),物理網(wǎng)絡(luò)對創(chuàng)建者透明,其配置由Neutron根據(jù)管理員在系統(tǒng)中的配置決定。
-
OpenStack中根據(jù)網(wǎng)絡(luò)類型不同網(wǎng)絡(luò)可分為幾種?
Flat network:基于不使用 VLAN 的物理網(wǎng)絡(luò)實現(xiàn)的虛擬網(wǎng)絡(luò)。每個物理網(wǎng)絡(luò)最多只能實現(xiàn)一個虛擬網(wǎng)絡(luò)。
local network(本地網(wǎng)絡(luò)):一個只允許在本服務(wù)器內(nèi)通信的虛擬網(wǎng)絡(luò),不進(jìn)行跨服務(wù)器的通信。主要用于單節(jié)點上測試。
VLAN network(虛擬局域網(wǎng)) :基于物理 VLAN 網(wǎng)絡(luò)實現(xiàn)的虛擬網(wǎng)絡(luò)。共享同一個物理網(wǎng)絡(luò)的多個 VLAN 網(wǎng)絡(luò)是相互隔離的,甚至可以使用重疊的 IP 地址空間。每個支持 VLAN network 的物理網(wǎng)絡(luò)可以被視為一個分離的 VLAN trunk,它使用一組獨占的 VLAN ID。有效的 VLAN ID 范圍是 1 到 4094。
GRE network (通用路由封裝網(wǎng)絡(luò)):一個使用 GRE 封裝網(wǎng)絡(luò)包的虛擬網(wǎng)絡(luò)。GRE 封裝的數(shù)據(jù)包基于 IP 路由表來進(jìn)行路由,因此 GRE network 不和具體的物理網(wǎng)絡(luò)綁定。
VXLAN network(虛擬可擴展網(wǎng)絡(luò)):基于 VXLAN 實現(xiàn)的虛擬網(wǎng)絡(luò)。同 GRE network 一樣, VXLAN network 中 IP 包的路由也基于 IP 路由表,也不和具體的物理網(wǎng)絡(luò)綁定。
-
OpenStack網(wǎng)絡(luò)中OpenFlow規(guī)則的作用是什么?
OpenFlow 規(guī)則是一種機制,這種機制定義了一個數(shù)據(jù)包如何從源到達(dá)目的地。OpenFlow 規(guī)則存儲在 flow 表中。flow 表是 OpenFlow 交換機的一部分。
當(dāng)一個數(shù)據(jù)包到達(dá)交換機就會被第一個 flow 表檢查,如果不匹配 flow 表中的任何入口,那這個數(shù)據(jù)包就會被丟棄或者轉(zhuǎn)發(fā)到其他 flow 表中。
-
OpenStack網(wǎng)絡(luò)中OpenFlow交換機的信息(比如端口、表編號、緩存編號等)如何查看?
假如我們要顯示 OpenFlow 交換機的信息(br-int),需要執(zhí)行如下命令:
# ovs-ofctl show br-int
-
OpenStack網(wǎng)絡(luò)中如何顯示交換機的所有Flow入口?
可以使用命令 ovs-ofctl dump-flows 來查看交換機的 flow 入口。
假設(shè)我們想顯示 OVS 集成橋(br-int)的所有 flow 入口,可以使用如下命令:
# ovs-ofctl dump-flows br-int
-
OpenStack中Neutron代理是什么?如何顯示所有Neutron代理?
OpenStack Neutron 服務(wù)器充當(dāng)中心控制器,實際網(wǎng)絡(luò)配置是在計算節(jié)點或者網(wǎng)絡(luò)節(jié)點上執(zhí)行的。Neutron 代理是計算節(jié)點或者網(wǎng)絡(luò)節(jié)點上進(jìn)行配置更新的軟件實體。Neutron 代理通過 Neuron 服務(wù)和消息隊列來和中心 Neutron 服務(wù)通信。
可通過如下命令查看 Neutron 代理列表:
# openstack network agent list -c ‘Agent type’ -c Host -c Alive -c State
-
OpenStack中CPU Pinning指什么?
CPU Pinning 是指為某個虛擬機保留物理核心。它也稱為 CPU 隔離或處理器關(guān)聯(lián)。有兩個目的:
-
它確保虛擬機只能在專用核心上運行;
-
它還確保公共主機進(jìn)程不在這些核心上運行。
我們也可以認(rèn)為 Pinning 是物理核心到一個用戶虛擬 CPU(vCPU)的一對一映射。
-
常見的OpenStack環(huán)境中的網(wǎng)絡(luò)部署有哪些?
-
外部網(wǎng)絡(luò)(External network):數(shù)據(jù)中心 Intranet,從這里分配浮動IP地址。
-
OpenStack 內(nèi)部網(wǎng)絡(luò):
-
管理網(wǎng)絡(luò)(management network):提供 OpenStack 各個組件之間的內(nèi)部通信,以及 API 訪問端點(Endpoint)。為安全考慮,該網(wǎng)絡(luò)必須限制在數(shù)據(jù)中心之內(nèi)。
-
API 網(wǎng)絡(luò):其實這不是一個單獨的網(wǎng)絡(luò),而是包含在外部和內(nèi)部網(wǎng)絡(luò)中。API 的 Endpoint 包括 publicurl 和 internalurl,其中,publicurl 包含的是 externa network 的 IP 地址,internal network 包含的是 management network IP 地址。為了簡單起見,提供給內(nèi)外網(wǎng)絡(luò)訪問的API的 publicurl 和 internalurl 相同,而只給內(nèi)部網(wǎng)絡(luò)訪問的 API 只使用 internalurl。
-
數(shù)據(jù)網(wǎng)絡(luò)(data network):除管理網(wǎng)絡(luò)以外的其它網(wǎng)絡(luò),往往還可以細(xì)分為下面幾種。它們可以合為一種,也可以從性能方面考慮分離出一種或幾種作為單獨的網(wǎng)絡(luò)。
-
租戶網(wǎng)絡(luò)(Tenant network):提供虛機在計算節(jié)點之間,以及計算節(jié)點和網(wǎng)絡(luò)節(jié)點之間的通信。同樣這也是數(shù)據(jù)中心的內(nèi)部網(wǎng)絡(luò)。
-
存儲訪問網(wǎng)絡(luò)(storage access network):訪問存儲的網(wǎng)絡(luò)。
-
存儲后端網(wǎng)絡(luò)(storage backend network):比如 Ceph 和 Swift 集群用于后端數(shù)據(jù)復(fù)制的網(wǎng)絡(luò)。
-
Neutron實現(xiàn)了哪些層次的網(wǎng)絡(luò)隔離?
租戶之間的網(wǎng)絡(luò)是三層隔離的,即使通過VR也無法通信,若需要通信必須走物理網(wǎng)絡(luò)
一個租戶內(nèi)的不同網(wǎng)絡(luò)之間二層隔離的,需要通過 VR 做三層連通
一個網(wǎng)絡(luò)內(nèi)的不同子網(wǎng)也是二層隔離的,需要通過 VR 做三層連通
Neutron提供數(shù)據(jù)網(wǎng)絡(luò)與外部網(wǎng)絡(luò)的隔離性,默認(rèn)情況下,所有虛機通往外網(wǎng)的流量全部走網(wǎng)絡(luò)節(jié)點上的 L3 agent,內(nèi)部的固定IP被轉(zhuǎn)化為外部的浮動IP地址。
相同組租戶的的虛擬機位于同一個宿主機之間的通訊?
不同租戶之間的虛擬機之間的通訊?
參考:http://www.mamicode.com/info-detail-1485454.html
參考:https://www.sdnlab.com/13000.html
DevStack,Rdo ,SaltStack ,Ansible ,TripleO
-
簡述塊存儲、文件存儲及對象存儲的區(qū)別及各自特點?
|
塊存儲 |
文件存儲 |
對象存儲 |
使用方式 |
塊存儲主要是將裸磁盤空間整個映射給主機使用的。 |
文件存儲可直接提供給主機使用,從而實現(xiàn)文件的上傳和下載,且無需對文件存儲再進(jìn)行格式化。 |
基于網(wǎng)絡(luò)的數(shù)據(jù)存取服務(wù),可通過網(wǎng)絡(luò)隨時存儲和調(diào)用包括文本、圖片、音頻和視頻等在內(nèi)的各種非結(jié)構(gòu)化數(shù)據(jù)文件。 |
典型設(shè)備 |
RAID、DISK、DAS、SAN |
HDFS、RGFS |
SWIFT、OSS |
優(yōu)點 |
1. 通過RAID與LVM等手段,對數(shù)據(jù)提供了保護;
2. 可將多塊廉價的硬盤組合為一個大容量的邏輯盤對外提供服務(wù),提高了容量;
3. 多塊磁盤進(jìn)行組合,能實現(xiàn)并行寫入,提升了讀寫效率;
4. 當(dāng)塊存儲采用SAN架構(gòu)組網(wǎng)時,傳輸速度以及封裝協(xié)議的原因,使得傳輸速度和讀寫效率得到提升。 |
1. 成本低廉,普通以太網(wǎng)即可實現(xiàn),無需其他專用設(shè)備;
2. 方便文件共享。 |
1. 兼具塊存儲和文件存儲的優(yōu)點。 |
缺點 |
1. 當(dāng)塊存儲采用SAN架構(gòu)組網(wǎng)時,需要額外光纖通道卡及光纖交換機,增加成本;
2. 在非集群環(huán)境中,塊存儲裸盤映射給主機,其他節(jié)點無法使用,從而無法實現(xiàn)主機之間數(shù)據(jù)的共享;
3. 當(dāng)塊存儲作為某主機裸設(shè)備格式化之后,不利于不同操作系統(tǒng)主機(不同文件格式)間的數(shù)據(jù)共享。 |
1. 基于以太網(wǎng),讀寫速率低,傳輸速率慢。 |
1. 不兼容現(xiàn)有模式,應(yīng)用形態(tài)需要重新開發(fā)。 |
接口 |
Driver |
POSIX |
Restful API |
-
通常高可用(High Availability)可通過哪兩個維度衡量,各自含義是什么?
RTO(Recovery Time Objective):RTO指服務(wù)恢復(fù)的時間,最佳的情況是 0,即服務(wù)立即恢復(fù);最壞是無窮大,即服務(wù)永遠(yuǎn)無法恢復(fù);
RPO(Recovery Point Objective):RPO 指切換時向前恢復(fù)的數(shù)據(jù)的時間長度,0 意味著使用同步的數(shù)據(jù),大于 0 意味著有數(shù)據(jù)丟失,如“RPO=1 d”指恢復(fù)時使用一天前的數(shù)據(jù),那么一天之內(nèi)的數(shù)據(jù)就丟失了。因此,恢復(fù)的最佳情況是 RTO = RPO = 0,幾乎無法實現(xiàn)。
-
高可用(High Availability)根據(jù)服務(wù)節(jié)點角色分為哪兩類?
Active/Passive HA:集群包括兩個角色節(jié)點簡稱主備。在此配置下,系統(tǒng)采用主和備用節(jié)點提供服務(wù),系統(tǒng)只在主節(jié)點上提供服務(wù)。在主節(jié)點故障時,備節(jié)點上的服務(wù)被啟動來替代主節(jié)點提供的服務(wù)。典型地,如采用 Pacemaker 來控制主備設(shè)備之間的切換,并提供一個虛機 IP 來提供服務(wù)。
Active/Active HA:集群只包括兩個節(jié)點時簡稱雙活,包括多節(jié)點時成為多主(Multi-master)。在此配置下,系統(tǒng)在集群內(nèi)所有服務(wù)器上運行同樣的負(fù)載。以數(shù)據(jù)庫為例,對一個實例的更新,會被同步到所有實例上。如采用負(fù)載均衡軟件HAProxy 來提供服務(wù)的虛擬 IP。
-
衡量容災(zāi)系統(tǒng)的重要指標(biāo)是什么,且容災(zāi)可分為幾個級別?
RPO(Recovery Point Objective):指當(dāng)災(zāi)難發(fā)生時允許丟失的數(shù)據(jù)量;
RTO(Recovery Time Object):指系統(tǒng)恢復(fù)的時間。
RPO 與 RTO 越小,系統(tǒng)的可用性就越高,成本投資也越大。
級別 |
定義 |
RTO |
RPO |
數(shù)據(jù)級 |
指通過建立異地容災(zāi)中心,對數(shù)據(jù)進(jìn)行遠(yuǎn)程備份,在災(zāi)難發(fā)生之后要確保原有的數(shù)據(jù)不會丟失或者遭到破壞。但在數(shù)據(jù)級容災(zāi)這個級別,發(fā)生災(zāi)難時應(yīng)用是會中斷的。
在數(shù)據(jù)級容災(zāi)方式下,所建立的異地容災(zāi)中心相當(dāng)于一個遠(yuǎn)程的數(shù)據(jù)備份中心。
數(shù)據(jù)級容災(zāi)的恢復(fù)時間比較長,但是相比其他容災(zāi)級別來講它的費用比較低,且構(gòu)建實施相對簡單。 |
RTO最長(若干天),因為災(zāi)難發(fā)生時,需要重新部署機器,利用備份數(shù)據(jù)恢復(fù)業(yè)務(wù)。 |
最低 |
應(yīng)用級 |
在數(shù)據(jù)級容災(zāi)的基礎(chǔ)之上,在備份站點同樣構(gòu)建一套相同的應(yīng)用系統(tǒng),通過同步或異步復(fù)制方式,可保證關(guān)鍵應(yīng)用在允許的時間范圍內(nèi)恢復(fù)運行,盡可能減少災(zāi)難帶來的損失,讓用戶基本感受不到災(zāi)難的發(fā)生,從而使系統(tǒng)所提供的服務(wù)是完整的、可靠的和安全的。 |
RTO中等(若干小時) |
中等。異地可搭建一樣的系統(tǒng),或者精簡系統(tǒng)。 |
業(yè)務(wù)級 |
全業(yè)務(wù)的災(zāi)備,除了必要的IT相關(guān)技術(shù),還要求具備全部的基礎(chǔ)設(shè)施。其大部分內(nèi)容是非IT系統(tǒng)(如電話、辦公地點等),當(dāng)大災(zāi)難發(fā)生后,原有的辦公場所都會受到破壞,除了數(shù)據(jù)和應(yīng)用的恢復(fù),更需要一個備份的工作場所能夠正常的開展業(yè)務(wù)。 |
RTO最?。ㄈ舾煞昼娀蛘呙耄?/span> |
最高 |
https://www.imdb.com/list/ls085332179/
https://www.imdb.com/list/ls085332117/
https://www.imdb.com/list/ls085332135/
https://www.imdb.com/list/ls085332167/
https://www.imdb.com/list/ls085332124/
https://www.imdb.com/list/ls085332147/
https://www.imdb.com/list/ls085332197/
https://www.imdb.com/list/ls085332193/
https://www.imdb.com/list/ls085332188/
https://www.imdb.com/list/ls085332302/