Cinder 組件詳解 - 每天5分鐘玩轉 OpenStack(47)

本節我們將詳細講解 Cinder 的各個子服務。

cinder-api

cinder-api 是整個 Cinder 組件的門戶,所有 cinder 的請求都首先由 nova-api 處理。cinder-api 向外界暴露若干 HTTP REST API 接口。在 keystone 中我們可以查詢 cinder-api 的 endponits。

客戶端可以將請求發送到 endponits 指定的地址,向 cinder-api 請求操作。 當然,作為最終用戶的我們不會直接發送 Rest API 請求。OpenStack CLI,Dashboard 和其他需要跟 Cinder 交換的組件會使用這些 API。

cinder-api 對接收到的 HTTP API 請求會做如下處理:

  1. 檢查客戶端傳人的參數是否合法有效

  2. 調用 cinder 其他子服務的處理客戶端請求

  3. 將 cinder 其他子服務返回的結果序列號并返回給客戶端

cinder-api 接受哪些請求呢?簡單的說,只要是 Volume 生命周期相關的操作,cinder-api 都可以響應。大部分操作都可以在 Dashboard 上看到。

打開 Volume 管理界面

點擊下拉箭頭,列表中就是 cinder-api 可執行的操作。

cinder-scheduler

創建 Volume 時,cinder-scheduler 會基于容量、Volume Type 等條件選擇出最合適的存儲節點,然后讓其創建 Volume。

這個部分比較多,我們下一次單獨討論。

cinder-volume

cinder-volume 在存儲節點上運行,OpenStack 對 Volume 的操作,最后都是交給 cinder-volume 來完成的。 cinder-volume 自身并不管理真正的存儲設備,存儲設備是由 volume provider 管理的。cinder-volume 與 volume provider 一起實現 volume 生命周期的管理。

通過 Driver 架構支持多種 Volume Provider

接著的問題是:現在市面上有這么多塊存儲產品和方案(volume provider),cinder-volume 如何與它們配合呢?

這就是我們之前討論過的 Driver 架構。 cinder-volume 為這些 volume provider 定義了統一的接口,volume provider 只需要實現這些接口,就可以 Driver 的形式即插即用到 OpenStack 系統中。下面是 Cinder Driver 的架構示意圖:

我們可以在 /opt/stack/cinder/cinder/volume/drivers/ 目錄下查看到 OpenStack 源代碼中已經自帶了很多 volume provider 的 Driver:

存儲節點在配置文件 /etc/cinder/cinder.conf 中用 volume_driver 選項配置使用的driver:

這里 LVM 是我們使用的 volume provider。

定期向 OpenStack 報告計算節點的狀態

在前面 cinder-scheduler 會用到 CapacityFilter 和 CapacityWeigher,它們都是通過存儲節點的空閑容量來做篩選。那這里有個問題:Cinder 是如何得知每個存儲節點的空閑容量信息的呢?

答案就是:cinder-volume 會定期向 Cinder 報告

從 cinder-volume 的日志 /opt/stack/logs/c-vol.log 可以發現每隔一段時間,cinder-volume 就會報告當前存儲節點的資源使用情況。

因為在我們的實驗環境中存儲節點使用的是 LVM,所以在上面的日志看到存儲節點通過“vgs”和”lvs”這兩個命令獲取 LVM 的容量使用信息。

實現 volume 生命周期管理

Cinder 對 volume 的生命周期的管理最終都是通過 cinder-volume 完成的,包括 volume 的 create、extend、attach、snapshot、delete 等,后面我們會詳細討論。

下一節我們將詳細討論 cinder-scheduler 如何篩選 cinder-volume。

轉載于:https://www.cnblogs.com/CloudMan6/p/5585637.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395759.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395759.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395759.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國移動 全球通、 動感地帶、神州行 的區別

1、全球通 1、主要面向商務人士可以享受機場VIP俱樂部的尊貴、1860專席的高質量服務、個性化賬單、客戶積分獎勵以及大客戶經理貼心服務,更有尊貴資費套餐優惠,但它價格也是最貴的。 2、全球通面對事業成功的人士,進取。 3、全球通&#xff…

java 并發測試main方法_java并發編程test之synchronized測試

synchronized關鍵字可以用于聲明方法,也可以用于聲明代碼塊;package com.test.java;public class SyncTest {public static void main(String[] args) {SynchronizedDemo1 synct1 new SynchronizedDemo1();SynchronizedDemo2 synct new SynchronizedDemo2();SynchronizedDemo…

業余愛好者linux_如何從業余愛好者變成專業開發人員

業余愛好者linuxby Ken Rogers肯羅杰斯(Ken Rogers) 如何從業余愛好者變成專業開發人員 (How to Go From Hobbyist to Professional Developer) A few years ago, I was bouncing back and forth between landscaping jobs and restaurant jobs. I had just left college, and…

RedHat Enterprise Linux 6 配置Xmanager ,實現圖形界面連接

我們經常見到的幾種最為常用的windows下遠程管理Linux服務器的方法,基本上都是利用SecureCRT,或者是PUTTY等客戶端工具通過ssh服務來實現Windows下管理Linux服務器的,這些客戶端工具幾乎不需要什么配置,使用簡單,但是它們都無法啟…

Mac下配置iterm2 支持rz sz命令

轉自:http://blog.csdn.net/citywolf4/article/details/49071679 1.安裝lrzsz,使用brew命令:brew install lrzsz如果找不到lrzsz,使用以下命令更新brew庫:brew update2.下載zmoden腳本在https://github.com/mmastrac/iterm2-zmode…

java中session對象登錄_JavaWeb中Session對象的學習筆記

一、Session簡單介紹在WEB開發中,服務器可以為每個用戶瀏覽器創建一個會話對象(session對象),注意:一個瀏覽器獨占一個session對象(默認情況下)。因此,在需要保存用戶數據時,服務器程序可以把用戶數據寫到用戶瀏覽器獨…

vux flexbox使用_Flexbox用大的,彩色的動畫gif進行解釋

vux flexbox使用Here are three links worth your time:這是三個值得您花費時間的鏈接: How Flexbox works — explained with big, colorful, animated gifs (5 minute read) Flexbox的工作原理-帶有大尺寸,彩色動畫gif動畫( 閱讀5分鐘 ) How to commi…

微信小程序 沒有找到 node_modules 目錄

在學習小程序云開發的時候,遇到一個問題,使用npm i --production 和npm i vant-weapp -S --production之后,在微信開發者工具中并沒有node_modules文件夾 但是在根目錄下生成了一個package-lock.json文件。也就是下載的依賴都已經裝好了&…

關于Unity中UI中的Image節點以及它的Image組件

一、圖片的Inspector面板屬性 Texture Type:一般是選擇sprite(2D and UI) Sprite Mode:一般是選擇Single Packing Tag:打包的標志值,最后打包的時候會把Tag相同的所有小圖打包成一個大圖。不像cocos打包圖集需要用到第三方軟件&am…

Knockoutjs官網翻譯系列(一)

最近馬上要開始一個新項目的研發,作為第一次mvvm應用的嘗試,我決定使用knockoutjs框架。作為學習的開始就從官網的Document翻譯開始吧,這樣會增加印象并加入自己的思考,說是翻譯也并不是純粹的翻譯,會加入自己對知識點的思考以及自…

無人機導航定位系統Java_無人機高精度室內定位導航的技術方案

原標題:無人機高精度室內定位導航的技術方案因為一些特殊的用途,比如室內表演,編隊室內飛行等,無人機不可避免會在室內飛行,無人機對室內定位精度的要求很高,室內空間本身就不會太大,若定位精度…

javascript控制臺_如何充分利用JavaScript控制臺

javascript控制臺by Darryl Pargeter達里爾帕格特(Darryl Pargeter) 如何充分利用JavaScript控制臺 (How to get the most out of the JavaScript console) One of the most basic debugging tools in JavaScript is console.log(). The console comes with several other use…

Django之靜態文件配置

靜態文件 了解靜態文件配置之前,我們需要知道靜態文件是什么? 靜態文件其實指的是像css,js,img等一些被模板需要的文件。 如何在Django中配置我們的靜態文件 1.建立static文件夾,將靜態文件放在該目錄下 2.在settings文件下配置如…

神奇的圖像處理算法

http://blog.chinaunix.net/uid-23065002-id-4392043.html http://blog.csdn.net/k_shmily/article/details/51138154 幾周前,我介紹了相似圖片搜索。 這是利用數學算法,進行高難度圖像處理的一個例子。事實上,圖像處理的數學算法&#xff0c…

JavaWeb項目前端規范(采用命名空間使js深度解耦合)

沒有規矩不成方圓,一個優秀的代碼架構不僅易于開發和維護,而且是一門管理與執行的藝術。 這幾年來經歷了很多項目,對代碼之間的強耦合及書寫不規范,維護性差等問題深惡痛絕。在這里,通過仔細分析后,結合自己…

java重要基礎知識點_java基礎知識點整理

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓java基礎知識點整理1.&和&&的區別?&:邏輯與(and),運算符兩邊的表達式均為true時,整個結果才為true。&&:短路與,如果第一個表達式為false時&#…

網易云音樂的算法有什么特點_當算法設計音樂廳時會發生什么?

網易云音樂的算法有什么特點Here are three links worth your time:這是三個值得您花費時間的鏈接: What happens when algorithms design a concert hall? (3 minute read) 當算法設計音樂廳時會發生什么? ( 閱讀3分鐘 ) How to land a top-notch tec…

開機發現超級管理員賬戶不見了

今天出現了一個怪現象,連接打印機的電腦上沒有超級管理員賬戶,只有一個剛建立的新賬戶,這是怎們回事來?噯,原來啊,安裝Windows XP時,如果又設置了一個管理員賬戶,那么系統內置沒有密…

vs自帶iis局域網調試

http://www.cnblogs.com/liluping860122/p/4685564.html轉載于:https://www.cnblogs.com/wcLT/p/5594252.html

java.util.set cannot be assigned from null_Java中有關Null的9件事

對于Java程序員來說,null是令人頭痛的東西。時常會受到空指針異常(NPE)的騷擾。連Java的發明者都承認這是他的一項巨大失誤。Java為什么要保留null呢?null出現有一段時間了,并且我認為Java發明者知道null與它解決的問題相比帶來了更多的麻煩&…