(一) 作業系統獲得儲存空間的方式一般有兩種:
(二) 第一種裸硬碟的方式叫做 block storage(塊儲存),每個裸硬碟通常也稱作 volume(卷) 第二種叫做檔案系統儲存。nas 和 nfs 伺服器,以及各種分布式檔案系統提供的都是這種儲存。
塊儲存服務提供對 volume 從建立到刪除整個生命週期的管理。從 instance 的角度看,掛載的每乙個 volume 都是一塊硬碟。openstack 提供 block storage service 的是 cinder,其具體功能是:
(一)cinder採用的是鬆散的架構理念,由cinder-api統一管理外部對cinder的呼叫,cinder-scheduler負責排程合適的節點去構建volume儲存。volume-provider通過driver負責具體的儲存空間,然後cinder內部依舊通過訊息佇列queue溝通,解耦各子服務支援非同步呼叫。
(二)cinder-sheduler通過filter進行刪選,允許使用第三方的filter,自定義篩選內容。
(一)cinder-api:接收 api 請求,呼叫 cinder-volume 執行操作。cinder-api 對接收到的 http api 請求會做如下處理:
(二)cinder-scheduler:cinder 可以有多個儲存節點,當需要建立 volume 時,cinder-scheduler 會根據儲存節點的屬性和資源使用情況選擇乙個最合適的節點來建立 volume。
(三)cinder-volume:cinder-volume 在儲存節點上執行,openstack 對 volume 的操作,最後都是交給 cinder-volume 來完成的。cinder-volume 自身並不管理真正的儲存裝置,儲存裝置是由 volume provider 管理的。cinder-volume 與 volume provider 一起實現 volume 生命週期的管理。
(四)volume provider:資料的儲存裝置,為 volume 提供物理儲存空間。 cinder-volume 支援多種 volume provider,每種 volume provider 通過自己的 driver 與cinder-volume 協調工作。
(五)message queue:cinder 各個子服務通過訊息佇列實現程序間通訊和相互協作。因為有了訊息佇列,子服務之間實現了解耦,這種鬆散的結構也是分布式系統的重要特徵。
使用者向 cinder-api傳送建立volume的請求
cinder-api對請求做一些必要處理後,通過 messaging將建立訊息傳送給cinder-scheduler
cinder-scheduler從 messaging 獲取到 cinder-api發給它的訊息,然後執行排程演算法,從若干計儲存點中選出節點 a
cinder-scheduler通過 messaging 將建立訊息傳送給儲存節點a
儲存節點 a 的 cinder-volume從 messaging 中獲取到 cinder-scheduler發給它的訊息,然後通過 driver 在 volume provider 上建立 volume。
OpenStack服務的啟動
通過源 安裝openstack,服務都是通過手動啟動的,特別是在控制節點,要啟動一大堆服務也挺麻煩的,並且我發現在用nova all啟動nova相關服務時nova compute有時會報timeout錯誤而無法啟動 該錯誤的修復見這裡 可能是nova compute對其它服務存在依賴,得等其它服務啟...
OpenStack的Keystone元件詳解
一 簡介 一 作用 1.使用者管理 驗證使用者身份資訊合法性 2.認證服務 提供了其餘所有元件的認證資訊 令牌的管理,建立,修改等等,使用mysql作為統一的資料庫。3.keystone是openstack用來進行身份驗證 authn 及高階授權 authz 的身份識別服務,目前支援基於口令的aut...
OpenStack的架構詳解 1
openstack既是乙個社群,也是乙個專案和乙個開源軟體,它提供了乙個部署雲的操作平台或工具集。其宗旨在於,幫助組織執行為虛擬計算或儲存服務的雲,為公有雲 私有雲,也為大雲 小雲提供可擴充套件的 靈活的雲計算。1.openstack是什麼 openstack既是乙個社群,也是乙個專案和乙個開源軟體...