OpenStack及云計算(面試)常見問題
云計算是一種采用按量付費的模式,基于虛擬化技術,將相應計算資源(如網絡、存儲等)池化后,提供便捷的、高可用的、高擴展性的、按需的服務(如計算、存儲、應用程序和其他 IT 資源)。
-
自主服務:可按需的獲取云端的相應資源(主要指公有云);
-
網路訪問:可隨時隨地使用任何聯網終端設備接入云端從而使用相應資源。
-
資源池化:
-
快速彈性:可方便、快捷地按需獲取和釋放計算資源。
-
按量計費:
-
私有云:云平臺資源只給某個單位、或某部分用戶內部使用。
-
公有云:云平臺資源開放給社會公眾服務。
-
社區云:云平臺資源給幾個固定的單位內使用。
-
混合云:兩個或兩個以上不同類型的云平臺。
-
IaaS:基礎設施即服務,云服務商將IT系統的基礎設施(如計算資源、存儲資源、網絡資源)池化后作為服務進行售賣;
-
PaaS:平臺即服務,云服務商將IT系統的平臺軟件層(數據庫、OS、中間件、運行庫)作為服務進行售賣;
-
SaaS:軟件即服務,云服務商將IT系統的應用軟件層作為服務進行售賣。
-
云服務消費者:租賃云服務產品的個人或者單位組織;
-
云服務提供商:提供云服務產品的個人或者單位組織;
-
云服務代理商:向消費者銷售云服務并獲取一定傭金的個人或者單位組織;
-
云計算審計員:針對云計算安全性、云計算性能等進行獨立評估的第三方個人或者單位組織;
-
云服務承運商:在云服務提供商和消費者之間提供連接媒介,以便把云計算服務產品從云服務提供商轉移到云服務消費者手中,如中國電信。
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內核)
云計算:IT能力服務化,按需使用,按量計費,多租戶隔離,是一個系統的輕量級管理控制面。
虛擬化:環境隔離,資源復用,降低隔離損耗,提升運行性能,提供高級虛擬化特性。
虛擬化是實現云計算的技術支撐之一,但并非云計算的核心關注點。
OpenStack、Apache CloudStack
-
數據安全性更高;
-
可節省上云遷移過程中的大量成本;
-
業務快速部署,縮短業務周期;
-
降低企業成本,自主可控。
-
在OpenStack高可用架構中,controller節點為什么通常至少有3個節點?
由mysql的多主集群決定,通常情況下,openstack集群的數據庫:mysql集群部署在controller節點。
軟件定義網絡(Software Defined Network, SDN ),指通過軟件定義網絡,是網絡虛擬化的一種實現方式.
SDN的主要技術特點體現在3方面:
-
轉發與控制分離。SDN具有轉發與控制分離的特點,采用SDN控制器實現網絡拓撲的收集、路由的計算、流表的生成及下發、網絡的管理與控制等功能;而網絡層設備僅負責流量的轉發及策略的執行。通過這種方式可使得網絡系統的轉發面和控制面獨立發展,轉發面向通用化、簡單化發展,成本可逐步降低;控制面可向集中化、統一化發展,具有更強的性能和容量。
-
控制邏輯集中。轉發與控制分離之后,使得控制面向集中化發展。控制面的集中化,使得SDN控制器擁有網絡的全局靜態拓撲,全網的動態轉發表信息,全網絡的資源利用率,故障狀態等。因此,SDN控制器可實現基于網絡級別的統一管理、控制和優化,更可依托全局的拓撲的動態轉發信息幫助實現快速的故障定位和排除,提高運營效率。
-
網絡能力開放化。SDN還有一個重要特征是支持網絡能力開放化。通過集中的SDN控制器實現網絡資源的統一管理、整合以及虛擬化后,采用規范化的北向接口為上層應用提供按需分配的網絡資源及服務,進而實現網絡能力開放。這樣的方式打破了現有網絡對業務封閉的問題,是一種突破性的創新。
一個開源云操作系統內核,用于構建云平臺,主要實現以下五個主要特點:
-
資源抽象:OpenStack將各類硬件資源,通過虛擬化與軟件定義的形式,抽象成虛擬的資源池;
-
資源調度:OpenStack根據管理員/用戶的需求,將資源池中的資源分配給不同的用戶,承載不同的應用;
-
應用生命周期管理:OpenStack可以提供初步的應用部署/撤銷、自動規模調整等功能;
-
系統運維:OpenStack可以提供一定的系統監控能力;
-
人機交互:OpenStack提供人機接口,外界可通過API、CLI或圖形界面的方式與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、QCOW2、Raw、VDI、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。
-
Ceilometer組件:能把OpenStack內部發生的幾乎所有的事件都收集起來,然后為計費和監控以及其它服務提供數據支撐。
-
Heat組件:提供了一種通過模板定義的協同部署方式,實現云基礎設施軟件運行環境(計算、存儲和網絡資源)的自動化部署。
-
以下服務通常運行在控制節點:
-
認證服務(Keystone)
-
鏡像服務(Glance)
-
Nova服務,如Nova API、Nova Scheduler和Nova DB
-
塊存儲和對象存儲服務(Cinder、Swift)
-
Ceilometer服務
-
MariaDB/MySQL和RabbitMQ服務
-
網絡(Neutron)和網絡代理的管理服務
-
編排服務(Heat)
-
OpenStack中的Domain,project,user,role,token 的概念和關系?
Domain:表示 project 和 user 的集合,在公有云或者私有云中常常表示一個客戶
Group:一個domain 中的部分用戶的集合
Project:IT基礎設施資源的集合,比如虛機,卷,鏡像等
Role:角色,表示一個 user 對一個 project resource 的權限
Token:一個 user 對于某個目標(project 或者 domain)的一個有限時間段內的身份令牌
-
OpenStack中計算節點上虛擬機默認保存路徑在哪?
虛擬機存儲在計算節點的/var/lib/nova/instances目錄。
-
OpenStack中Glance鏡像的默認保存路徑在哪?
因為Glance服務運行在控制節點上,所以Glance鏡像都被存儲在控制節點的/var/lib/glance/images目錄。
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獲取認證信息。
-
keystone通過用戶請求認證信息,并生成auth-token返回給對應的認證請求。
-
界面或命令行通過RESTful API向nova-api發送一個boot instance的請求(攜帶auth-token)。
-
nova-api接受請求后向keystone發送認證請求,查看token是否為有效用戶和token。
-
keystone驗證token是否有效,如有效則返回有效的認證和對應的角色(注:有些操作需要有角色權限才能操作)。
-
通過認證后nova-api和數據庫通訊。
-
初始化新建虛擬機的數據庫記錄。
-
nova-api通過rpc.call向nova-scheduler請求是否有創建虛擬機的資源(Host ID)。
-
nova-scheduler進程偵聽消息隊列,獲取nova-api的請求。
-
nova-scheduler通過查詢nova數據庫中計算資源的情況,并通過調度算法計算符合虛擬機創建需要的主機。
-
對于有符合虛擬機創建的主機,nova-scheduler更新數據庫中虛擬機對應的物理主機信息。
-
nova-scheduler通過rpc.cast向nova-compute發送對應的創建虛擬機請求的消息。
-
nova-compute會從對應的消息隊列中獲取創建虛擬機請求的消息。
-
nova-compute通過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)
-
nova-conductor從消息隊隊列中拿到nova-compute請求消息。
-
nova-conductor根據消息查詢虛擬機對應的信息。
-
nova-conductor從數據庫中獲得虛擬機對應信息。
-
nova-conductor把虛擬機信息通過消息的方式發送到消息隊列中。
-
nova-compute從對應的消息隊列中獲取虛擬機信息消息。
-
nova-compute通過keystone的RESTfull API拿到認證的token,并通過HTTP請求glance-api獲取創建虛擬機所需要鏡像。
-
glance-api向keystone認證token是否有效,并返回驗證結果。
-
token驗證通過,nova-compute獲得虛擬機鏡像信息(URL)。
-
nova-compute通過keystone的RESTfull API拿到認證k的token,并通過HTTP請求neutron-server獲取創建虛擬機所需要的網絡信息。
-
neutron-server向keystone認證token是否有效,并返回驗證結果。
-
token驗證通過,nova-compute獲得虛擬機網絡信息。
-
nova-compute通過keystone的RESTfull API拿到認證的token,并通過HTTP請求cinder-api獲取創建虛擬機所需要的持久化存儲信息。
-
cinder-api向keystone認證token是否有效,并返回驗證結果。
-
token驗證通過,nova-compute獲得虛擬機持久化存儲信息。
-
nova-compute根據instance的信息調用配置的虛擬化驅動來創建虛擬機。
-
OpenStack中如何顯示用戶的網絡命名空間列表?
# ip netns list
-
OpenStack中如何執行網絡命名空間內的命令?
假設我們想在 qdhcp-a51635b1-d023-419a-93b5-39de47755d2d 網絡命名空間中執行 ifconfig 命令,可以執行如下命令。
命令格式 : ip netns exec {network-space} <command>:
# ip netns exec qdhcp-a51635b1-d023-419a-93b5-39de47755d2d "ifconfig"
-
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> #下載
-
OpenStack中如何將虛擬機從異常狀態置為活動狀態?
# nova reset-state --active {Instance_id}
# openstack ip floating list | grep None | head -10
-
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
-
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
# openstack console log show {Instance-id}
# openstack console url show {Instance-id}
-
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啟動卷
-
OpenStack中如何列出所有創建的項目或用戶?
# openstack project list --long
-
OpenStack中如何顯示服務端點(endpoint)列表?
OpenStack 服務端點被分為 3 類:
使用如下 OpenStack 命令來查看各種 OpenStack 服務端點:
# openstack catalog list
可通過以下命令來顯示特定服務端點(比如說 keystone)列表:
# openstack catalog show keystone
-
OpenStack控制節點按什么步驟重啟nova服務?
# service nova-api restart
# service nova-cert restart
# service nova-conductor restart
# service nova-consoleauth restart
# service nova-scheduler restart
-
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
-
OpenStack中如何查看控制節點和計算節點的OVS橋配置?
# ovs-vsctl show
-
OpenStack中計算節點的集成橋(br-int)的作用是什么?
集成橋(br-int)對來自和運行在計算節點上的實例的流量執行 VLAN 標記和取消標記。
數據包從實例的 n/w 接口發出使用虛擬接口 qvo 通過 Linux 橋(qbr)。qvb 接口是用來連接 Linux 橋的,qvo 接口是用來連接集成橋的。集成橋上的 qvo 端口有一個內部 VLAN 標簽,這個標簽是用于當數據包到達集成橋的時候貼到數據包頭部的。
-
OpenStack中計算節點的隧道橋(br-tun)的作用是什么?
隧道橋(br-tun)根據 OpenFlow 規則將 VLAN 標記的流量從集成網橋轉換為隧道 ID。
隧道橋允許不同網絡的實例彼此進行通信。隧道有利于封裝在非安全網絡上傳輸的流量,它支持兩層網絡,即 GRE 和 VXLAN。
-
OpenStack中外部OVS橋(br-ex)的作用是什么?
外部OVS網橋轉發來往網絡的流量,以允許外部訪問實例。br-ex 連接物理接口比如 eth3,這樣用戶網絡的浮動 IP 數據從物理網絡接收并路由到用戶網絡端口。
OpenStack中有至少兩種通信機制, RESTful API和RPC調用。
RESTFUL API是一套架構約束條件和原則
-
所有事物都定義了ID。openstack中每個資源都有唯一的UUID
-
所有事物都鏈接在一起。在openstack中將資源的ID放在URL中。
-
使用標準的方法。比如說GET是查詢資源,POST是添加資源,PUT是更新資源等等。
-
客戶端與服務端的獨立性: 在公共接口不變的情況下,客戶端和服務端的代碼可以獨立開發。
-
無狀態性: 用戶的狀態保存在客戶端,服務端不再保存用戶的狀態。客戶端向服務端發送請求時,必須發送所有的數據,包括用戶狀態。
-
統一的接口: RESTful API的URL格式需要遵守統一的規范。可以降低客戶端服務器的耦合度,使得編碼更加簡單。
-
消息僅限于文本
-
客戶端與服務端采取同步機制,當發送http請求時客戶端需要等待服務器的響應
-
客戶端與服務器雖然可以獨立開發,但也存在耦合。客戶端必須要知道服務器的地址才可以正常工作。
其他
-
REST是面向資源的,資源通過URL暴露
-
REST本身可以利用HTTP的一些特征,如HTTP動詞、狀態碼、HTTP報頭等
RPC協議,即遠程過程調用(Remote Procedure Call Protocol)
RPC采用AMQP協議實現進程間通信。openstack中采用rabbitmq和qpid。
AMQP:高級消息隊列,基于消息的中間件提供的開放的應用層標準協議。能夠有效地支持各種通信模型或者報文傳送方面的應用。
-
特點:二進制的應用層通信協議,進城之間對稱的異步通信協議,消息格式,一系列標準化的但可拓展的消息能力(訂閱者和發布者,兩個節點無需知道對方是什么節點,也不用管對方節點怎么去處理發送的消息,擁有過濾器可以修改訂閱者的接收內容)
-
組成:發布者,中間件(消息的存儲、交換和路由),訂閱者
-
流程:發布者將消息發送到中間件,中間件將消息存儲到消息隊列中,最后訂閱者從消息隊列中獲取消息。
-
nova中使用rabbitmq實現RPC調用
-
客戶端(發布者)無需知道服務器(訂閱者)的位置
-
客戶端與服務器無需同步運行。客戶端可以先發RPC調用,然后存儲在消息隊列中。
-
遠程調用的隨機均衡性,當客戶端發起RPC調用時,可以隨機選擇一個服務器來處理消息
Provider network:管理員創建的和物理網絡有直接映射關系的虛擬網絡。
Tenant network:租戶普通用戶創建的網絡,物理網絡對創建者透明,其配置由Neutron根據管理員在系統中的配置決定。
-
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 路由表,也不和具體的物理網絡綁定。
-
OpenStack網絡中OpenFlow規則的作用是什么?
OpenFlow 規則是一種機制,這種機制定義了一個數據包如何從源到達目的地。OpenFlow 規則存儲在 flow 表中。flow 表是 OpenFlow 交換機的一部分。
當一個數據包到達交換機就會被第一個 flow 表檢查,如果不匹配 flow 表中的任何入口,那這個數據包就會被丟棄或者轉發到其他 flow 表中。
-
OpenStack網絡中OpenFlow交換機的信息(比如端口、表編號、緩存編號等)如何查看?
假如我們要顯示 OpenFlow 交換機的信息(br-int),需要執行如下命令:
# ovs-ofctl show br-int
-
OpenStack網絡中如何顯示交換機的所有Flow入口?
可以使用命令 ovs-ofctl dump-flows 來查看交換機的 flow 入口。
假設我們想顯示 OVS 集成橋(br-int)的所有 flow 入口,可以使用如下命令:
# ovs-ofctl dump-flows br-int
-
OpenStack中Neutron代理是什么?如何顯示所有Neutron代理?
OpenStack Neutron 服務器充當中心控制器,實際網絡配置是在計算節點或者網絡節點上執行的。Neutron 代理是計算節點或者網絡節點上進行配置更新的軟件實體。Neutron 代理通過 Neuron 服務和消息隊列來和中心 Neutron 服務通信。
可通過如下命令查看 Neutron 代理列表:
# openstack network agent list -c ‘Agent type’ -c Host -c Alive -c State
-
OpenStack中CPU Pinning指什么?
CPU Pinning 是指為某個虛擬機保留物理核心。它也稱為 CPU 隔離或處理器關聯。有兩個目的:
-
它確保虛擬機只能在專用核心上運行;
-
它還確保公共主機進程不在這些核心上運行。
我們也可以認為 Pinning 是物理核心到一個用戶虛擬 CPU(vCPU)的一對一映射。
-
外部網絡(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):除管理網絡以外的其它網絡,往往還可以細分為下面幾種。它們可以合為一種,也可以從性能方面考慮分離出一種或幾種作為單獨的網絡。
-
租戶網絡(Tenant network):提供虛機在計算節點之間,以及計算節點和網絡節點之間的通信。同樣這也是數據中心的內部網絡。
-
存儲訪問網絡(storage access network):訪問存儲的網絡。
-
存儲后端網絡(storage backend network):比如 Ceph 和 Swift 集群用于后端數據復制的網絡。
租戶之間的網絡是三層隔離的,即使通過VR也無法通信,若需要通信必須走物理網絡
一個租戶內的不同網絡之間二層隔離的,需要通過 VR 做三層連通
一個網絡內的不同子網也是二層隔離的,需要通過 VR 做三層連通
Neutron提供數據網絡與外部網絡的隔離性,默認情況下,所有虛機通往外網的流量全部走網絡節點上的 L3 agent,內部的固定IP被轉化為外部的浮動IP地址。
相同組租戶的的虛擬機位于同一個宿主機之間的通訊?
不同租戶之間的虛擬機之間的通訊?
參考:http://www.mamicode.com/info-detail-1485454.html
參考:https://www.sdnlab.com/13000.html
DevStack,Rdo ,SaltStack ,Ansible ,TripleO
|
塊存儲 |
文件存儲 |
對象存儲 |
使用方式 |
塊存儲主要是將裸磁盤空間整個映射給主機使用的。 |
文件存儲可直接提供給主機使用,從而實現文件的上傳和下載,且無需對文件存儲再進行格式化。 |
基于網絡的數據存取服務,可通過網絡隨時存儲和調用包括文本、圖片、音頻和視頻等在內的各種非結構化數據文件。 |
典型設備 |
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 |
-
通常高可用(High Availability)可通過哪兩個維度衡量,各自含義是什么?
RTO(Recovery Time Objective):RTO指服務恢復的時間,最佳的情況是 0,即服務立即恢復;最壞是無窮大,即服務永遠無法恢復;
RPO(Recovery Point Objective):RPO 指切換時向前恢復的數據的時間長度,0 意味著使用同步的數據,大于 0 意味著有數據丟失,如“RPO=1 d”指恢復時使用一天前的數據,那么一天之內的數據就丟失了。因此,恢復的最佳情況是 RTO = RPO = 0,幾乎無法實現。
-
高可用(High Availability)根據服務節點角色分為哪兩類?
Active/Passive HA:集群包括兩個角色節點簡稱主備。在此配置下,系統采用主和備用節點提供服務,系統只在主節點上提供服務。在主節點故障時,備節點上的服務被啟動來替代主節點提供的服務。典型地,如采用 Pacemaker 來控制主備設備之間的切換,并提供一個虛機 IP 來提供服務。
Active/Active HA:集群只包括兩個節點時簡稱雙活,包括多節點時成為多主(Multi-master)。在此配置下,系統在集群內所有服務器上運行同樣的負載。以數據庫為例,對一個實例的更新,會被同步到所有實例上。如采用負載均衡軟件HAProxy 來提供服務的虛擬 IP。
-
衡量容災系統的重要指標是什么,且容災可分為幾個級別?
RPO(Recovery Point Objective):指當災難發生時允許丟失的數據量;
RTO(Recovery Time Object):指系統恢復的時間。
RPO 與 RTO 越小,系統的可用性就越高,成本投資也越大。
級別 |
定義 |
RTO |
RPO |
數據級 |
指通過建立異地容災中心,對數據進行遠程備份,在災難發生之后要確保原有的數據不會丟失或者遭到破壞。但在數據級容災這個級別,發生災難時應用是會中斷的。
在數據級容災方式下,所建立的異地容災中心相當于一個遠程的數據備份中心。
數據級容災的恢復時間比較長,但是相比其他容災級別來講它的費用比較低,且構建實施相對簡單。 |
RTO最長(若干天),因為災難發生時,需要重新部署機器,利用備份數據恢復業務。 |
最低 |
應用級 |
在數據級容災的基礎之上,在備份站點同樣構建一套相同的應用系統,通過同步或異步復制方式,可保證關鍵應用在允許的時間范圍內恢復運行,盡可能減少災難帶來的損失,讓用戶基本感受不到災難的發生,從而使系統所提供的服務是完整的、可靠的和安全的。 |
RTO中等(若干小時) |
中等。異地可搭建一樣的系統,或者精簡系統。 |
業務級 |
全業務的災備,除了必要的IT相關技術,還要求具備全部的基礎設施。其大部分內容是非IT系統(如電話、辦公地點等),當大災難發生后,原有的辦公場所都會受到破壞,除了數據和應用的恢復,更需要一個備份的工作場所能夠正常的開展業務。 |
RTO最小(若干分鐘或者秒) |
最高 |
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/