016.OpenStack及雲計算(面試)常見問題

  1. 什麼是雲計算?
雲計算是一種採用按量付費的模式,基於虛擬化技術,將相應計算資源(如網絡、存儲等)池化後,提供便捷的、高可用的、高擴展性的、按需的服務(如計算、存儲、應用程序和其餘 IT 資源)。
 
  1. 雲計算的基本特徵?
  • 自主服務:可按需的獲取雲端的相應資源(主要指公有云);
  • 網路訪問:可隨時隨地使用任何聯網終端設備接入雲端從而使用相應資源。
  • 資源池化:
  • 快速彈性:可方便、快捷地按需獲取和釋放計算資源。
  • 按量計費:
 
  1. 雲計算常見幾種部署模式?
  • 私有云:雲平臺資源只給某個單位、或某部分用戶內部使用。
  • 公有云:雲平臺資源開放給社會公衆服務。
  • 社區雲:雲平臺資源給幾個固定的單位內使用。
  • 混合雲:兩個或兩個以上不一樣類型的雲平臺。
 
  1. 雲計算的三種服務模式?
  • IaaS:基礎設施即服務,雲服務商將IT系統的基礎設施(如計算資源、存儲資源、網絡資源)池化後做爲服務進行售賣;
  • PaaS:平臺即服務,雲服務商將IT系統的平臺軟件層(數據庫、OS、中間件、運行庫)做爲服務進行售賣;
  • SaaS:軟件即服務,雲服務商將IT系統的應用軟件層做爲服務進行售賣。
 
  1. 常見雲平臺架構組成?
  • 雲服務消費者:租賃雲服務產品的我的或者單位組織;
  • 雲服務提供商:提供雲服務產品的我的或者單位組織;
  • 雲服務代理商:向消費者銷售雲服務並獲取必定佣金的我的或者單位組織;
  • 雲計算審計員:針對雲計算安全性、雲計算性能等進行獨立評估的第三方我的或者單位組織;
  • 雲服務承運商:在雲服務提供商和消費者之間提供鏈接媒介,以便把雲計算服務產品從雲服務提供商轉移到雲服務消費者手中,如中國電信。
 
  1. 常見的虛擬化廠商及其相應的產品?
VMware:
虛擬化平臺產品:ESXi,管理工具:VMware vCenter套件(包括vCenter Server),VMware vCloud(主要管理公有云)。
RedHat:KVM,及基於KVM的虛擬化套件RHV
思傑:XEN
微軟:
虛擬化平臺產品:Virtual PC、Hyper-V,管理工具:System Center 2016.
Oracle:Oracle VM Server(集成XEN+Linux內核)
 
  1. 雲計算與虛擬化的區別?
雲計算:IT能力服務化,按需使用,按量計費,多租戶隔離,是一個系統的輕量級管理控制面。
虛擬化:環境隔離,資源複用,下降隔離損耗,提高運行性能,提供高級虛擬化特性。
虛擬化是實現雲計算的技術支撐之一,但並不是雲計算的核心關注點。
 
  1. 常見的IaaS管理工具?
OpenStack、Apache CloudStack
 
  1. 私有云相對於公有云有哪些優點?
  • 數據安全性更高;
  • 可節省上雲遷移過程當中的大量成本;
  • 業務快速部署,縮短業務週期;
  • 下降企業成本,自主可控。
 
  1. 在OpenStack高可用架構中,controller節點爲何一般至少有3個節點?
由mysql的多主集羣決定,一般狀況下,openstack集羣的數據庫:mysql集羣部署在controller節點。
 
  1. 簡單描述SDN?
軟件定義網絡(Software Defined Network, SDN ),指經過軟件定義網絡,是網絡虛擬化的一種實現方式.
SDN的主要技術特色體如今3方面:
  • 轉發與控制分離。SDN具備轉發與控制分離的特色,採用SDN控制器實現網絡拓撲的收集、路由的計算、流表的生成及下發、網絡的管理與控制等功能;而網絡層設備僅負責流量的轉發及策略的執行。經過這種方式可以使得網絡系統的轉發面和控制面獨立發展,轉發面向通用化、簡單化發展,成本可逐步下降;控制面可向集中化、統一化發展,具備更強的性能和容量。
  • 控制邏輯集中。轉發與控制分離以後,使得控制面向集中化發展。控制面的集中化,使得SDN控制器擁有網絡的全局靜態拓撲,全網的動態轉發表信息,全網絡的資源利用率,故障狀態等。所以,SDN控制器可實現基於網絡級別的統一管理、控制和優化,更可依託全局的拓撲的動態轉發信息幫助實現快速的故障定位和排除,提升運營效率。
  • 網絡能力開放化。SDN還有一個重要特徵是支持網絡能力開放化。經過集中的SDN控制器實現網絡資源的統一管理、整合以及虛擬化後,採用規範化的北向接口爲上層應用提供按需分配的網絡資源及服務,進而實現網絡能力開放。這樣的方式打破了現有網絡對業務封閉的問題,是一種突破性的創新。
 
  1. 什麼是OpenStack?
一個開源雲操做系統內核,用於構建雲平臺,主要實現如下五個主要特色:
  • 資源抽象:OpenStack將各種硬件資源,經過虛擬化與軟件定義的形式,抽象成虛擬的資源池;
  • 資源調度:OpenStack根據管理員/用戶的需求,將資源池中的資源分配給不一樣的用戶,承載不一樣的應用;
  • 應用生命週期管理:OpenStack能夠提供初步的應用部署/撤銷、自動規模調整等功能;
  • 系統運維:OpenStack能夠提供必定的系統監控能力;
  • 人機交互:OpenStack提供人機接口,外界可經過API、CLI或圖形界面的方式與OpenStack進行交互。
 
  1. OpenStack常見組件及其功能?
  • Horzon組件:提供一個Web前端控制檯,從而實現經過web管理雲平臺,建雲主機,分配網絡,配安全組等。
  • Nova組件:負責響應虛擬機建立請求、調度、銷燬雲主機。
  • Neutron組件:提供雲計算的網絡虛擬化技術,爲OpenStack其餘服務提供網絡鏈接服務。爲用戶提供接口,能夠定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。插件架構支持許多主流的網絡廠家和技術,如OpenvSwitch。以上爲三大核心組件。
  • Swift組件:用於在大規模可擴展系統中經過內置冗餘及高容錯機制實現對象存儲的系統,容許進行存儲或者檢索文件。可爲Glance提供鏡像存儲,爲Cinder提供卷備份服務。
  • Cinder組件:爲運行實例提供穩定持久化的數據塊存儲服務,如建立卷、刪除卷,在實例上掛載和卸載卷。
  • Keystone組件:爲OpenStack其餘服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。
  • Glance組件:爲雲主機提供不一樣系統鏡像,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW二、Raw、VDI、VHD、VMDK),有建立上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。
  • Ceilometer組件:能把OpenStack內部發生的幾乎全部的事件都收集起來,而後爲計費和監控以及其它服務提供數據支撐。
  • Heat組件:提供了一種經過模板定義的協同部署方式,實現雲基礎設施軟件運行環境(計算、存儲和網絡資源)的自動化部署。
 
  1. OpenStack中什麼服務一般運行在控制節點?
  • 如下服務一般運行在控制節點:
  • 認證服務(Keystone)
  • 鏡像服務(Glance)
  • Nova服務,如Nova API、Nova Scheduler和Nova DB
  • 塊存儲和對象存儲服務(Cinder、Swift)
  • Ceilometer服務
  • MariaDB/MySQL和RabbitMQ服務
  • 網絡(Neutron)和網絡代理的管理服務
  • 編排服務(Heat)
 
  1. OpenStack中什麼服務一般運行在計算節點?
  • Nova計算
  • 網絡服務,好比OVS
 
  1. OpenStack中的Domain,project,user,role,token 的概念和關係?
Domain:表示 project 和 user 的集合,在公有云或者私有云中經常表示一個客戶
Group:一個domain 中的部分用戶的集合
Project:IT基礎設施資源的集合,好比虛機,卷,鏡像等
Role:角色,表示一個 user 對一個 project resource 的權限
Token:一個 user 對於某個目標(project 或者 domain)的一個有限時間段內的身份令牌
 
 
  1. OpenStack中計算節點上虛擬機默認保存路徑在哪?
虛擬機存儲在計算節點的/var/lib/nova/instances目錄。
 
  1. OpenStack中Glance鏡像的默認保存路徑在哪?
由於Glance服務運行在控制節點上,因此Glance鏡像都被存儲在控制節點的/var/lib/glance/images目錄。
 
  1. 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>
 
  1. OpenStack虛擬機啓動過程?
  1. 界面或命令行經過RESTful API向keystone獲取認證信息。
  2. keystone經過用戶請求認證信息,並生成auth-token返回給對應的認證請求。
  3. 界面或命令行經過RESTful API向nova-api發送一個boot instance的請求(攜帶auth-token)。
  4. nova-api接受請求後向keystone發送認證請求,查看token是否爲有效用戶和token。
  5. keystone驗證token是否有效,若有效則返回有效的認證和對應的角色(注:有些操做須要有角色權限才能操做)。
  6. 經過認證後nova-api和數據庫通信。
  7. 初始化新建虛擬機的數據庫記錄。
  8. nova-api經過rpc.call向nova-scheduler請求是否有建立虛擬機的資源(Host ID)。
  9. nova-scheduler進程偵聽消息隊列,獲取nova-api的請求。
  10. nova-scheduler經過查詢nova數據庫中計算資源的狀況,並經過調度算法計算符合虛擬機建立須要的主機。
  11. 對於有符合虛擬機建立的主機,nova-scheduler更新數據庫中虛擬機對應的物理主機信息。
  12. nova-scheduler經過rpc.cast向nova-compute發送對應的建立虛擬機請求的消息。
  13. nova-compute會從對應的消息隊列中獲取建立虛擬機請求的消息。
  14. nova-compute經過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)
  15. nova-conductor從消息隊隊列中拿到nova-compute請求消息。
  16. nova-conductor根據消息查詢虛擬機對應的信息。
  17. nova-conductor從數據庫中得到虛擬機對應信息。
  18. nova-conductor把虛擬機信息經過消息的方式發送到消息隊列中。
  19. nova-compute從對應的消息隊列中獲取虛擬機信息消息。
  20. nova-compute經過keystone的RESTfull API拿到認證的token,並經過HTTP請求glance-api獲取建立虛擬機所須要鏡像。
  21. glance-api向keystone認證token是否有效,並返回驗證結果。
  22. token驗證經過,nova-compute得到虛擬機鏡像信息(URL)。
  23. nova-compute經過keystone的RESTfull API拿到認證k的token,並經過HTTP請求neutron-server獲取建立虛擬機所須要的網絡信息。
  24. neutron-server向keystone認證token是否有效,並返回驗證結果。
  25. token驗證經過,nova-compute得到虛擬機網絡信息。
  26. nova-compute經過keystone的RESTfull API拿到認證的token,並經過HTTP請求cinder-api獲取建立虛擬機所須要的持久化存儲信息。
  27. cinder-api向keystone認證token是否有效,並返回驗證結果。
  28. token驗證經過,nova-compute得到虛擬機持久化存儲信息。
  29. nova-compute根據instance的信息調用配置的虛擬化驅動來建立虛擬機。
 
  1. OpenStack中如何顯示用戶的網絡命名空間列表?
# ip netns list
 
  1. OpenStack中如何執行網絡命名空間內的命令?
假設咱們想在 qdhcp-a51635b1-d023-419a-93b5-39de47755d2d 網絡命名空間中執行 ifconfig 命令,能夠執行以下命令。
命令格式 : ip netns exec {network-space} <command>:
# ip netns exec qdhcp-a51635b1-d023-419a-93b5-39de47755d2d "ifconfig"
 
  1. OpenStack中Glance服務如何使用命令上傳和下載鏡像?
# 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> #下載
 
  1. OpenStack中如何將虛擬機從異常狀態置爲活動狀態?
# nova reset-state --active {Instance_id}
 
  1. OpenStack中如何獲取浮動IP列表?
# openstack ip floating list | grep None | head -10
 
  1. OpenStack中如何在特定可用區特定計算節點建立虛擬機?
# 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
 
  1. OpenStack中如何獲取特定計算節點虛擬機列表?
命令格式: 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
 
  1. OpenStack中如何查看虛擬機的控制檯日誌?
# openstack console log show {Instance-id}
 
  1. OpenStack中如何獲取控制檯的URL?
# openstack console url show {Instance-id}
 
  1. OpenStack中如何建立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鏡像建立8G啓動卷
 
  1. OpenStack中如何列出全部建立的項目或用戶?
# openstack project list --long
 
  1. OpenStack中如何顯示服務端點(endpoint)列表?
OpenStack 服務端點被分爲 3 類:
  • 公共端點
  • 內部端點
  • 管理端點
使用以下 OpenStack 命令來查看各類 OpenStack 服務端點:
# openstack catalog list
可經過如下命令來顯示特定服務端點(好比說 keystone)列表:
# openstack catalog show keystone
 
  1. OpenStack控制節點按什麼步驟重啓nova服務?
# service nova-api restart
# service nova-cert restart
# service nova-conductor restart
# service nova-consoleauth restart
# service nova-scheduler restart
 
  1. OpenStack中已存在的安全組SG,如何添加規則?
# 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
 
  1. OpenStack中如何查看控制節點和計算節點的OVS橋配置?
# ovs-vsctl show
 
  1. OpenStack中計算節點的集成橋(br-int)的做用是什麼?
集成橋(br-int)對來自和運行在計算節點上的實例的流量執行 VLAN 標記和取消標記。
數據包從實例的 n/w 接口發出使用虛擬接口 qvo 經過 Linux 橋(qbr)。qvb 接口是用來鏈接 Linux 橋的,qvo 接口是用來鏈接集成橋的。集成橋上的 qvo 端口有一個內部 VLAN 標籤,這個標籤是用於當數據包到達集成橋的時候貼到數據包頭部的。
 
  1. OpenStack中計算節點的隧道橋(br-tun)的做用是什麼?
隧道橋(br-tun)根據 OpenFlow 規則將 VLAN 標記的流量從集成網橋轉換爲隧道 ID。
隧道橋容許不一樣網絡的實例彼此進行通訊。隧道有利於封裝在非安全網絡上傳輸的流量,它支持兩層網絡,即 GRE 和 VXLAN。
 
  1. OpenStack中外部OVS橋(br-ex)的做用是什麼?
外部OVS網橋轉發來往網絡的流量,以容許外部訪問實例。br-ex 鏈接物理接口好比 eth2,這樣用戶網絡的浮動 IP 數據從物理網絡接收並路由到用戶網絡端口。
 
  1. OpenStack中的各組件之間通訊機制?
OpenStack中有至少兩種通訊機制, RESTful API和RPC調用。
  • RESTful API:
RESTFUL API是一套架構約束條件和原則
  • REST定義的原則
  1. 全部事物都定義了ID。openstack中每一個資源都有惟一的UUID
  2. 全部事物都連接在一塊兒。在openstack中將資源的ID放在URL中。
  3. 使用標準的方法。好比說GET是查詢資源,POST是添加資源,PUT是更新資源等等。
  • 使用RESTful API架構,實現的目標
  1. 客戶端與服務端的獨立性: 在公共接口不變的狀況下,客戶端和服務端的代碼能夠獨立開發。
  2. 無狀態性: 用戶的狀態保存在客戶端,服務端再也不保存用戶的狀態。客戶端向服務端發送請求時,必須發送全部的數據,包括用戶狀態。
  3. 統一的接口: RESTful API的URL格式須要遵照統一的規範。能夠下降客戶端服務器的耦合度,使得編碼更加簡單。
  • 缺點
  1. 消息僅限於文本
  2. 客戶端與服務端採起同步機制,當發送http請求時客戶端須要等待服務器的響應
  3. 客戶端與服務器雖然能夠獨立開發,但也存在耦合。客戶端必需要知道服務器的地址才能夠正常工做。
其餘
  1. REST是面向資源的,資源經過URL暴露
  2. REST自己能夠利用HTTP的一些特徵,如HTTP動詞、狀態碼、HTTP報頭等
 
  • RPC
RPC協議,即遠程過程調用(Remote Procedure Call Protocol)
RPC採用AMQP協議實現進程間通訊。openstack中採用rabbitmq和qpid。
AMQP:高級消息隊列,基於消息的中間件提供的開放的應用層標準協議。可以有效地支持各類通訊模型或者報文傳送方面的應用。
  • 特色:二進制的應用層通訊協議,進城之間對稱的異步通訊協議,消息格式,一系列標準化的但可拓展的消息能力(訂閱者和發佈者,兩個節點無需知道對方是什麼節點,也不用管對方節點怎麼去處理髮送的消息,擁有過濾器能夠修改訂閱者的接收內容)
  • 組成:發佈者,中間件(消息的存儲、交換和路由),訂閱者
  • 流程:發佈者將消息發送到中間件,中間件將消息存儲到消息隊列中,最後訂閱者從消息隊列中獲取消息。
  • nova中使用rabbitmq實現RPC調用
  1. 客戶端(發佈者)無需知道服務器(訂閱者)的位置
  2. 客戶端與服務器無需同步運行。客戶端能夠先發RPC調用,而後存儲在消息隊列中。
  3. 遠程調用的隨機均衡性,當客戶端發起RPC調用時,能夠隨機選擇一個服務器來處理消息
 
  1. OpenStack中根據權限不一樣網絡可分爲幾種?
Provider network:管理員建立的和物理網絡有直接映射關係的虛擬網絡。
Tenant network:租戶普通用戶建立的網絡,物理網絡對建立者透明,其配置由Neutron根據管理員在系統中的配置決定。
 
  1. OpenStack中根據網絡類型不一樣網絡可分爲幾種?
Flat network:基於不使用 VLAN 的物理網絡實現的虛擬網絡。每一個物理網絡最多隻能實現一個虛擬網絡。
local network(本地網絡):一個只容許在本服務器內通訊的虛擬網絡,不進行跨服務器的通訊。主要用於單節點上測試。
VLAN network(虛擬局域網) :基於物理 VLAN 網絡實現的虛擬網絡。共享同一個物理網絡的多個 VLAN 網絡是相互隔離的,甚至可使用重疊的 IP 地址空間。每一個支持 VLAN network 的物理網絡能夠被視爲一個分離的 VLAN trunk,它使用一組獨佔的 VLAN ID。有效的 VLAN ID 範圍是 1 到 4094。
GRE network (通用路由封裝網絡):一個使用 GRE 封裝網絡包的虛擬網絡。GRE 封裝的數據包基於 IP 路由表來進行路由,所以 GRE network 不和具體的物理網絡綁定。
VXLAN network(虛擬可擴展網絡):基於 VXLAN 實現的虛擬網絡。同 GRE network 同樣, VXLAN network 中 IP 包的路由也基於 IP 路由表,也不和具體的物理網絡綁定。
 
  1. OpenStack網絡中OpenFlow規則的做用是什麼?
OpenFlow 規則是一種機制,這種機制定義了一個數據包如何從源到達目的地。OpenFlow 規則存儲在 flow 表中。flow 表是 OpenFlow 交換機的一部分。
當一個數據包到達交換機就會被第一個 flow 表檢查,若是不匹配 flow 表中的任何入口,那這個數據包就會被丟棄或者轉發到其餘 flow 表中。
 
  1. OpenStack網絡中OpenFlow交換機的信息(好比端口、表編號、緩存編號等)如何查看?
假如咱們要顯示 OpenFlow 交換機的信息(br-int),須要執行以下命令:
# ovs-ofctl show br-int
 
  1. OpenStack網絡中如何顯示交換機的全部Flow入口?
可使用命令 ovs-ofctl dump-flows 來查看交換機的 flow 入口。
假設咱們想顯示 OVS 集成橋(br-int)的全部 flow 入口,可使用以下命令:
# ovs-ofctl dump-flows br-int
 
  1. OpenStack中Neutron代理是什麼?如何顯示全部Neutron代理?
OpenStack Neutron 服務器充當中心控制器,實際網絡配置是在計算節點或者網絡節點上執行的。Neutron 代理是計算節點或者網絡節點上進行配置更新的軟件實體。Neutron 代理經過 Neuron 服務和消息隊列來和中心 Neutron 服務通訊。
可經過以下命令查看 Neutron 代理列表:
# openstack network agent list -c ‘Agent type’ -c Host -c Alive -c State
 
  1. OpenStack中CPU Pinning指什麼?
CPU Pinning 是指爲某個虛擬機保留物理核心。它也稱爲 CPU 隔離或處理器關聯。有兩個目的:
  • 它確保虛擬機只能在專用核心上運行;
  • 它還確保公共主機進程不在這些核心上運行。
咱們也能夠認爲 Pinning 是物理核心到一個用戶虛擬 CPU(vCPU)的一對一映射。
 
  1. 常見的OpenStack環境中的網絡部署有哪些?
  • 外部網絡(External network):數據中心 Intranet,從這裏分配浮動IP地址。
  • OpenStack 內部網絡:
  • 管理網絡(management network):提供 OpenStack 各個組件之間的內部通訊,以及 API 訪問端點(Endpoint)。爲安全考慮,該網絡必須限制在數據中心以內。
  • API 網絡:其實這不是一個單獨的網絡,而是包含在外部和內部網絡中。API 的 Endpoint 包括 publicurl 和 internalurl,其中,publicurl  包含的是 externa network 的 IP 地址,internal network 包含的是 management network IP 地址。爲了簡單起見,提供給內外網絡訪問的API的 publicurl 和 internalurl 相同,而只給內部網絡訪問的 API 只使用 internalurl。
  • 數據網絡(data network):除管理網絡之外的其它網絡,每每還能夠細分爲下面幾種。它們能夠合爲一種,也能夠從性能方面考慮分離出一種或幾種做爲單獨的網絡。
    1. 租戶網絡(Tenant network):提供虛機在計算節點之間,以及計算節點和網絡節點之間的通訊。一樣這也是數據中心的內部網絡。
    2. 存儲訪問網絡(storage access network):訪問存儲的網絡。
    3. 存儲後端網絡(storage backend network):好比 Ceph 和 Swift 集羣用於後端數據複製的網絡。
  • IPMI、PXE網絡等
 
  1. Neutron實現了哪些層次的網絡隔離?
  • 租戶的網絡隔離:
租戶之間的網絡是三層隔離的,即便經過VR也沒法通訊,若須要通訊必須走物理網絡
一個租戶內的不一樣網絡之間二層隔離的,須要經過 VR 作三層連通
一個網絡內的不一樣子網也是二層隔離的,須要經過 VR 作三層連通
  • 外部網絡的隔離:
Neutron提供數據網絡與外部網絡的隔離性,默認狀況下,全部虛機通往外網的流量所有走網絡節點上的 L3 agent,內部的固定IP被轉化爲外部的浮動IP地址。
 
  1. 相同組租戶的的虛擬機位於不一樣宿主機之間的通信?
相同組租戶的的虛擬機位於同一個宿主機之間的通信?
不一樣租戶之間的虛擬機之間的通信?
參考:http://www.mamicode.com/info-detail-1485454.html
參考:https://www.sdnlab.com/13000.html
 
  1. OpenStack常見部署方式?
DevStack,Rdo ,SaltStack ,Ansible ,TripleO
 
  1. 簡述塊存儲、文件存儲及對象存儲的區別及各自特色?
 
塊存儲 文件存儲 對象存儲
使用方式
塊存儲主要是將裸磁盤空間整個映射給主機使用的。
文件存儲可直接提供給主機使用,從而實現文件的上傳和下載,且無需對文件存儲再進行格式化。
基於網絡的數據存取服務,可經過網絡隨時存儲和調用包括文本、圖片、音頻和視頻等在內的各類非結構化數據文件。
典型設備
RAID、DISK、DAS、SAN
HDFS、RGFS
SWIFT、OSS
優勢
1. 經過RAID與LVM等手段,對數據提供了保護;
2. 可將多塊廉價的硬盤組合爲一個大容量的邏輯盤對外提供服務,提升了容量;
3. 多塊磁盤進行組合,能實現並行寫入,提高了讀寫效率;
4. 當塊存儲採用SAN架構組網時,傳輸速度以及封裝協議的緣由,使得傳輸速度和讀寫效率獲得提高。
1. 成本低廉,普通以太網便可實現,無需其餘專用設備;
2. 方便文件共享。
1. 兼具塊存儲和文件存儲的優勢。
缺點
1. 當塊存儲採用SAN架構組網時,須要額外光纖通道卡及光纖交換機,增長成本;
2. 在非集羣環境中,塊存儲裸盤映射給主機,其餘節點沒法使用,從而沒法實現主機之間數據的共享;
3. 當塊存儲做爲某主機裸設備格式化以後,不利於不一樣操做系統主機(不一樣文件格式)間的數據共享。
1. 基於以太網,讀寫速率低,傳輸速率慢。
1. 不兼容現有模式,應用形態須要從新開發。
接口
Driver
POSIX
Restful API
 
  1. 一般高可用(High Availability)可經過哪兩個維度衡量,各自含義是什麼?
RTO(Recovery Time Objective):RTO指服務恢復的時間,最佳的狀況是 0,即服務當即恢復;最壞是無窮大,即服務永遠沒法恢復;
RPO(Recovery Point Objective):RPO 指切換時向前恢復的數據的時間長度,0 意味着使用同步的數據,大於 0 意味着有數據丟失,如「RPO=1 d」指恢復時使用一天前的數據,那麼一天以內的數據就丟失了。所以,恢復的最佳狀況是 RTO = RPO = 0,幾乎沒法實現。
 
  1. 高可用(High Availability)根據服務節點角色分爲哪兩類?
Active/Passive HA:集羣包括兩個角色節點簡稱主備。在此配置下,系統採用主和備用節點提供服務,系統只在主節點上提供服務。在主節點故障時,備節點上的服務被啓動來替代主節點提供的服務。典型地,如採用 Pacemaker 來控制主備設備之間的切換,並提供一個虛機 IP 來提供服務。
Active/Active HA:集羣只包括兩個節點時簡稱雙活,包括多節點時成爲多主(Multi-master)。在此配置下,系統在集羣內全部服務器上運行一樣的負載。以數據庫爲例,對一個實例的更新,會被同步到全部實例上。如採用負載均衡軟件HAProxy 來提供服務的虛擬 IP。
 
  1. 衡量容災系統的重要指標是什麼,且容災可分爲幾個級別?
RPO(Recovery Point Objective):指當災難發生時容許丟失的數據量;
RTO(Recovery Time Object):指系統恢復的時間。
RPO 與 RTO 越小,系統的可用性就越高,成本投資也越大。
級別 定義 RTO RPO
數據級
指經過創建異地容災中心,對數據進行遠程備份,在災難發生以後要確保原有的數據不會丟失或者遭到破壞。但在數據級容災這個級別,發生災難時應用是會中斷的。
在數據級容災方式下,所創建的異地容災中心至關於一個遠程的數據備份中心。
數據級容災的恢復時間比較長,可是相比其餘容災級別來說它的費用比較低,且構建實施相對簡單。
RTO最長(若干天),由於災難發生時,須要從新部署機器,利用備份數據恢復業務。
最低
應用級
在數據級容災的基礎之上,在備份站點一樣構建一套相同的應用系統,經過同步或異步複製方式,可保證關鍵應用在容許的時間範圍內恢復運行,儘量減小災難帶來的損失,讓用戶基本感覺不到災難的發生,從而使系統所提供的服務是完整的、可靠的和安全的。
RTO中等(若干小時)
中等。異地可搭建同樣的系統,或者精簡系統。
業務級
全業務的災備,除了必要的IT相關技術,還要求具有所有的基礎設施。其大部份內容是非IT系統(如電話、辦公地點等),當大災難發生後,原有的辦公場所都會受到破壞,除了數據和應用的恢復,更須要一個備份的工做場所可以正常的開展業務。
RTO最小(若干分鐘或者秒)
最高
 
  1. RabbitMQ的核心組件及其通訊機制?
Rabbitmq最核心的組件是Exchange和Queue,其通訊機制以下:
    1. 消息的生產者(Producer)與rabbitmq server創建鏈接,並建立通道(channel);
    2. 消息的生產者(Producer)生產消息,發送給服務器端的Exchange;
    3. Exchange收到消息,根據ROUTINKEY,將消息轉發給匹配的Queue;
    4. Queue收到消息,將消息發送給消費者(Consumer);
    5. 消費者(Consumer)收到消息,發送ACK給隊列確認收到消息;
    6. Queue收到ACK,刪除隊列中緩存的此條消息。
參考:https://linux.cn/article-10328-1.html
相關文章
相關標籤/搜索