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

jiangjiang123發表於2020-07-18
  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、QCOW2、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. 相同組租戶的的虛擬機器位於不同宿主機之間的通訊?
相同組租戶的的虛擬機器位於同一個宿主機之間的通訊?
不同租戶之間的虛擬機器之間的通訊?
參考:
參考:

 

  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最小(若干分鐘或者秒)
最高

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979443/viewspace-2705426/,如需轉載,請註明出處,否則將追究法律責任。

相關文章