1. 程式人生 > >我看Openstack的臨時(Ephemeral)儲存和塊(Block)儲存

我看Openstack的臨時(Ephemeral)儲存和塊(Block)儲存

背景

Openstack不管是Ephemeral Storage還是Block Storage, 其實從介面上看,其實都是塊服務。那麼為什麼要搞兩個不同的型別呢,本文從這兩種不同型別塊儲存的實現上來分析下其中的原因。

臨時儲存

Openstack臨時儲存是由Nova提供的,主要是利用主機的本地儲存給虛擬機器提供卷服務。如果虛擬機器被刪除了,掛在這個虛擬機器上的任何臨時儲存自動釋放。這樣的實現方式決定了:
  • 使用Ephemeral Storage的虛擬機器不能支援遷移,以及和虛擬機器遷移相關的特性,包括 1) HA  2) 動態排程 等等。
  • 存放在Ephemeral Storage上的資料是高度不可靠的,任何虛擬機器和主機的故障都可能會導致資料丟失。

塊儲存

目前Openstack的塊儲存由Cinder提供,其後端支援很多型別的儲存裝置,比如多個廠商不同型號的陣列裝置,或者是Ceph, Glusterfs, Sheepdog之類的分散式儲存系統。基於塊儲存,可以為使用者提供:
  • 高可靠的儲存(基於陣列的RAID, 或者是分散式儲存的多副本機制;甚至還可以充分利用裝置的備份,遠端複製能力)
  • 共享儲存 (意味著可以支援HA, 虛擬機器遷移等等)

臨時儲存的妙用

這麼看來,臨時儲存豈不是幾乎沒什麼作用了,那為什麼還需要提供這個服務呢?其實原因非常簡單: 這個服務便宜,而且便宜到令人髮指的地步,比如AWS的Ephemeral Storage, 就是免費的。使用者可以用它來做不少有意思的事情,比如:
  • 無狀態虛擬機器,為系統提供Cache服務
  • 為虛擬機器作業系統提供交換分割槽,或者用來存放其它型別的臨時檔案
  • 改進EBS的效能,比如買4個EBS盤,再配置2個免費的Ephermal盤,組建一個RAID 10系統

總結

對於雲服務提供商,不管採用什麼樣的後端技術,為使用者提供7個9甚至更高可靠性的EBS服務,成本是巨大的,如果使用陣列,其價格本來就昂貴;如果使用分散式儲存,起碼要3個副本,再考慮到定期備份,快照,跨地域容災,成本一樣很高。現在的SATA, SAS盤便宜而且量又足,很容易造成在本地主機上空閒,所以乾脆直接送給使用者,由他們去玩,而且對於玩的好的使用者,還真能對業務有不少幫助。 最後再附上Openstack官方文件對幾種儲存的對比:
Ephemeral storage Block storage Object storage

Used to…

Run operating system and scratch space

Add additional persistent storage to a virtual machine (VM)

Store data, including VM images

Accessed through…

A file system

block device that can be partitioned, formatted and mounted (such as, /dev/vdc)

REST API

Accessible from…

Within a VM

Within a VM

Anywhere

Managed by…

OpenStack Compute (Nova)

OpenStack Block Storage ()

OpenStack Object Storage (Swift)

Persists until…

VM is terminated

Deleted by user

Deleted by user

Sizing determined by…

Administrator configures size settings, known asflavors

Specified by user in initial request

Amount of available physical storage

Example of typical usage…

10 GB first disk, 30GB second disk

1 TB disk

10s of TBs of dataset storage


相關推薦

Openstack臨時(Ephemeral)儲存(Block)儲存

背景 Openstack不管是Ephemeral Storage還是Block Storage, 其實從介面上看,其實都是塊服務。那麼為什麼要搞兩個不同的型別呢,本文從這兩種不同型別塊儲存的實現上來分析下其中的原因。 臨時儲存 Openstack臨時儲存是由Nova提供的

python通過librados庫通過底層的rados操作ceph的物件儲存儲存

使用python語言呼叫原生介面(呼叫librados庫來操作rados) 也就是下圖中幾種方式中的一種,就是圖中的紅色部分: 首先來說明一下:這個就相當於在客戶端上操作ceph叢集的底層物件儲存rados,我的程式碼是在mon節點上執行的,也就是暫時把

tensor flow 模型儲存回覆,儲存精度最高的模型,python 程式碼

將訓練好的模型引數儲存起來,以便以後進行驗證或測試,這是我們經常要做的事情。tf裡面提供模型儲存的是tf.train.Saver()模組。 模型儲存,先要建立一個Saver物件:如 saver=tf.train.Saver() 在建立這個Saver物

資料結構與演算法(二)-線性表之單鏈表順序儲存鏈式儲存

前言:前面已經介紹過資料結構和演算法的基本概念,下面就開始總結一下資料結構中邏輯結構下的分支——線性結構線性表 一、簡介 1、線性表定義   線性表(List):由零個或多個數據元素組成的有限序列;   這裡有需要注意的幾個關鍵地方:     1.首先他是一個序列,也就是說元素之間是有個先來後到的。

雜湊儲存、B樹儲存LSM樹儲存引擎

1、雜湊儲存引擎  是雜湊表的持久化實現,支援增、刪、改以及隨機讀取操作,但不支援順序掃描,對應的儲存系統為key-value儲存系統。對於key-value的插入以及查詢,雜湊表的複雜度都是O(1),明顯比樹的操作O(n)快,如果不需要有序的遍歷資料,雜湊表就是your M

資料庫為什麼會分為“行式儲存“列式儲存”呢?

我們知道 當今的資料處理大致可分為兩大類 聯機事務處理 OLTP (on-line transaction processing) 以及聯機分析處理 OLAP (On-Line Analytical Processing) OLTP 是傳統關係型資料庫的主要應用 用來執行一些基本的、日常的事務處

行式儲存列式儲存的比較

行式儲存的優點: 同一行資料存放在同一個block塊裡面,select * from table_name;資料能直接獲取出來;  INSERT/UPDATE比較方便 行式儲存的缺點: 不同型別資料存放在同一個block塊裡面,壓縮效能不好; select id,name

佇列的順序儲存鏈式儲存

佇列的基本概念 1.定義:佇列是隻允許在一端進行插入操作,而在另一端進行刪除操作的線性表。 2.佇列是一種先進先出的線性表,簡稱FIFO。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。front指標指向對頭元素,rear指標指向隊尾的下一個位置。當fron

線性表、棧、佇列的的順序儲存鏈式儲存

先概括一下線性表順序儲存和鏈式儲存。 線性表的順序儲存是用一組地址連續的儲存單元依次儲存線性表的資料元素。 線性表的鏈式儲存是用指標將儲存線性表中的資料元素的那些單元依次串聯在一起。 接下來圖片說明。

Hive部分:行式儲存列式儲存的比較

行式儲存和列式儲存的比較: 列式儲存(Columnar or column-based)是相對於傳統關係型資料庫的行式儲存(Row-basedstorage)來說的。簡單來說兩者的區別就是如何組織表: Ø  Row-based storage stores atabl

LocalStorage本地儲存sessionStorage會話儲存

用過HTML5 LocalStorage本地儲存和sessionStorage的,你就感覺Html5很強大,比cookie和session好用很多,下面讓我們來學習這個知識吧... 最早的Cookies自然是大家都知道,問題主要就是太小,大概也就4KB的樣子,而且IE

大端儲存小端儲存,網路位元組序

一、大端、小端 "大端"和"小端"表示多位元組值的哪一端儲存在該值的起始地址處;小端儲存在起始地址處,即是小端位元組序;大端儲存在起始地址處,即是大端位元組序; 或者說: 1.小端法(Little-Endian)就是低位位元組排放在記憶體的低地址端(即該值的起始地址),高

大端儲存小端儲存及基於c語言的測試函式

大端模式是什麼?小端模式又是什麼?對系統哪些方面有影響?又如何來檢視我的電腦到底是大端還是小端呢?這些問題在文中都將獲得解決,一起來看看吧。首先我們來介紹一下概念:大端模式(Big_endian):字資料的高位元組儲存在低地址中,而字資料的低位元組儲存在高地址中。如下圖。小端

線性表的順序儲存鏈式儲存差異

線性表的順序儲存和鏈式儲存方式在存讀資料以及插入刪除資料時,時間複雜度不同。順序儲存的典型例子為陣列,鏈式儲存的典型例子為單鏈表。眾所周知,當讀取資料較為頻繁時,我們選擇順序儲存方式,當插入和刪除操作較為頻繁時,我們選擇鏈式儲存方式。接下來,我們將分析這樣做的原因:1.順序儲

資料結構 線性表中,順序儲存鏈式儲存的優缺點

簡單對順序儲存和鏈式儲存結構做對比:   儲存分配方式; 順序儲存用一段連續的儲存單元一次儲存線性表的資料元素。                          鏈式儲存採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。時間複雜度衡量;               

獲取手機內建儲存外掛sdcard儲存路徑可用空間以及總空間大小的方式

在網上找了好多資料都是執行“執行mount命令,獲取日誌,並進行篩選” 其實真正做起來還要根據廠家的手機做不同的篩選條件,太過於麻煩。 一種簡單帥氣的獲取方法如下 下面的getExternalSDRoot()<span style="font-family: Ari

C#的Equals()GetHashCode()方法

註意 關系 type() 什麽 來看 在操作 實現 操作符 amp 首先先談一下Equals()這個方法: Equals()方法,來自於Object,是我們經常需要重寫的方法。此方法的默認實現大概是這樣的: 1 public virtual bool Equals(ob

web Storage(臨時儲存本地儲存)

示例:  HTML的程式碼: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></t

從Gartner資料2016全球外部儲存固態陣列市場格局

前兩天我在文章從IDC資料聊聊2016全年中國外部儲存市場格局裡分享了中國儲存市場的一些情況,今天,我們重點來聊聊全球市場,不過,我採用的是Gartner資料。 還是醜話說在前頭,我的分享僅供參考,對於我整理過程中可能帶來的錯誤,概不負責,O(∩_∩)O哈! 在Gartner的跟蹤資料裡,2016

不下去鳥。。。。JavaC#的socket通訊真的簡單嗎?

這幾天在部落格園上看到好幾個寫Java和C#的socket通訊的帖子。但是都為指出其中關鍵點。 C# socket通訊元件有很多,在vs 使用nuget搜尋socket元件有很多類似的。本人使用的是自己開發的一套元件。 Java socket通訊的元件也有很多,常用的大多數都是用的mina或者netty。