ceph系統原理 細節 benchmark 不完全說明

ceph系統原理 細節 benchmark 不完全說明

轉載請說明出處:
http://blog.csdn.net/XingKong_678/article/details/51473988

1 流程說明

1.1 應用

1) RADOS GW是一個提供與Amazon S3和Swift兼容的RESTful API的gateway,以供相應的對象存儲應用開發使用。RADOS GW提供的API抽象層次更高,但功能則不如librados強大。因此,開發者應針對自己的需求選擇使用.

2) RBD則提供了一個標準的塊設備接口,常用於在虛擬化的場景下爲虛擬機創建volume。目前,Red Hat已經將RBD驅動集成在KVM/QEMU中,以提高虛擬機訪問性能。

3) Ceph FS是一個POSIX兼容的分佈式文件系統。由於還處在開發狀態,因而Ceph官網並不推薦將其用於生產環境中。

1.1.1 問題說明

RADOS自身既然已經是一個對象存儲系統,並且也可以提供librados API,爲何還要再單獨開發一個RADOS GW?

理解這個問題,事實上有助於理解RADOS的本質,因此有必要在此加以分析。粗看起來,librados和RADOS GW的區別在於,librados提供的是本地API,而RADOS GW提供的則是RESTful API,二者的編程模型和實際性能不同。而更進一步說,則和這兩個不同抽象層次的目標應用場景差異有關。換言之,雖然RADOS和S3、Swift同屬分 布式對象存儲系統,但RADOS提供的功能更爲基礎、也更爲豐富。這一點可以通過對比看出。由於Swift和S3支持的API功能近似,這裏以Swift舉例說明。Swift提供的API功能主要包括:
用戶管理操作:用戶認證、獲取賬戶信息、列出容器列表等;
容器管理操作:創建/刪除容器、讀取容器信息、列出容器內對象列表等;
對象管理操作:對象的寫入、讀取、複製、更新、刪除、訪問許可設置、元數據讀取或更新等。

由 此可見,Swift(以及S3)提供的API所操作的“對象”只有三個:用戶賬戶、用戶存儲數據對象的容器、數據對象。並且,所有的操作均不涉及存儲系統 的底層硬件或系統信息。不難看出,這樣的API設計完全是針對對象存儲應用開發者和對象存儲應用用戶的,並且假定其開發者和用戶關心的內容更偏重於賬戶和 數據的管理,而對底層存儲系統細節不感興趣,更不關心效率、性能等方面的深入優化。而 librados API的設計思想則與此完全不同。一方面,librados中沒有賬戶、容器這樣的高層概念;另一方面,librados API向開發者開放了大量的RADOS狀態信息與配置參數,允許開發者對RADOS系統以及其中存儲的對象的狀態進行觀察,並強有力地對系統存儲策略進行 控制。換言之,通過調用librados API,應用不僅能夠實現對數據對象的操作,還能夠實現對RADOS系統的管理和配置。這對於S3和Swift的RESTful API設計是不可想像的,也是沒有必要的。

1.2 ceph說明:

ceph Image 一般4M分成一塊.作爲對象存儲在OSD上.
寫入8M的數據產生了兩個對象(對象的大小可以自己定義.)
這裏寫圖片描述

在存儲中都是以對象4M形式存儲在OSD上的。不論Image,卷還是其他的形式在OSD上只存儲4M一個的對象.
塊設備就像是相當於磁盤的存在.

在OSD上存儲如下圖所示.
這裏寫圖片描述

1.3 系統結構讀寫運行過程

1.3.1 MON(Montior)監視器

責通過維護 Ceph Cluster map 的一個主拷貝(master copy of Cluster map)來維護整 Ceph 集羣的全局狀態。理論上來講,一個 MON 就可以完成這個任務,之所以需要一個多個守護進程組成的集羣的原因是保證高可靠性。每個 Ceph node 上最多只能有一個 Monitor Daemon。

1.3.2 OSD對象存儲設備

OSD (Object Storage Device)集羣:OSD 集羣由一定數目的(從幾十個到幾萬個) OSD Daemon 組成,負責數據存儲和複製,向 Ceph client 提供存儲資源。每個 OSD 守護進程監視它自己的狀態,以及別的 OSD 的狀態,並且報告給 Monitor;而且,OSD 進程負責在數據盤上的文件讀寫操作;它還負責數據拷貝和恢復。在一個服務器上,一個數據盤有一個 OSD Daemon

1.3.3 (Placement Group)PG 放置組

PG 也是對象的邏輯集合。同一個PG 中的所有對象在相同的 OSD 上被複制。
PG 聚合一部分對象成爲一個組(group),這個組被放在某些OSD上(place),合起來就是 Placemeng Group (放置組)了。
放置組是對象存儲的最小單位,對象不是每個對象自己映射到OSD,而是以放置組爲單位.這樣減小了集羣的管理負擔.

1.3.4 MDS元數據設備

MDS只有在使用cephfs時才使用,維護了集羣的元數據信息.

Ceph的命名空間是 (Pool, Object),每個Object都會映射到一組OSD中(由這組OSD保存這個Object):

(Pool, Object) → (Pool, PG) → OSD set → Disk

顯示對象映射到放置組 pg (10.3c)在OSD 1 0 2上,共存儲了3份.
這裏寫圖片描述
一個OSD上放置組PG狀態
這裏寫圖片描述

Client從Monitors中得到CRUSH MAP、OSD MAP、CRUSH Ruleset,然後使用CRUSH算法計算出Object所在的OSD set。所以Ceph不需要Name服務器,Client直接和OSD進行通信。
這裏寫圖片描述

這裏寫圖片描述

以上圖說明集羣從文件到OSD的過程.

這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述

從客戶端來看,客戶端塊設備的結構.
這裏寫圖片描述

數據讀寫過程讀寫過程
這裏寫圖片描述

-放置組PG是集羣映射對象組的單位

-給osd分層,建立SSD設備組成的快速設備pool.
這裏寫圖片描述

理解 OpenStack + Ceph (2):Ceph 的物理和邏輯結構 [Ceph Architecture]
http://www.cnblogs.com/sammyliu/p/4836014.html

2 ceph代碼

find . -name "*.c"  | xargs wc -l
文件類型 行數
*.cc 533135
*.c 44602
*.h 258289
*.sh 24660

總共 860686

2.1 源代碼目錄

Ceph源代碼目錄結構詳解
http://codefine.co/2603.html

從GitHub上Clone的Ceph項目,其目錄下主要文件夾和文件的內容爲:
1 根目錄
[src]:各功能某塊的源代碼
[qa]:各個模塊的功能測試(測試腳本和測試代碼)
[wireshark]:#wireshark的ceph插件。
[admin]:管理工具,用於架設文檔服務器等
[debian]:用於製作debian(Ubuntu)安裝包的相關腳本和文件
[doc]:用於生成項目文檔,生成結果參考http://ceph.com/docs/master/
[man]:ceph各命令行工具的man文件
configure.ac:用於生成configure的腳本
Makefile.am:用於生成Makefile的腳本
autogen.sh:負責生成configure。
do_autogen.sh:生成configure的腳本,實際上通過調用autogen.sh實現
ceph.spec.in:RPM包製作文件
2 src目錄
[include]:頭文件,包含各種基本類型的定義,簡單通用功能等。
[common]:共有模塊,包含各類共有機制的實現,例如線程池、管理端口、節流閥等。
[log]:日誌模塊,主要負責記錄本地log信息(默認/var/log/ceph/目錄)
[global]:全局模塊,主要是聲明和初始化各類全局變量(全局上下文)、構建駐留進程、信號處理等。
[auth]:授權模塊,實現了三方認知機制。
[crush]:Crush模塊,Ceph的數據分佈算法
[msg]:消息通訊模塊,包括用於定義通訊功能的抽象類Messenger以及目前的實現SimpleMessager
[messages]:消息模塊,定義了Ceph各節點之間消息通訊中用到的消息類型。
[os]:對象(Object Store)模塊,用於實現本地的對象存儲功能,
[osdc]:OSD客戶端(OSD Client),封裝了各類訪問OSD的方法。
[mon]:mon模塊
[osd]:osd部分
[mds]:mds模塊
[rgw]:rgw模塊的
[librados]:rados庫模塊的代碼
[librdb]:libbd庫模塊的代碼
[client]:client模塊,實現了用戶態的CephFS客戶端
[mount]:mount模塊
[tools]:各類工具
[test]:單元測試
[perfglue]:與性能優化相關的源代碼
[json_spirit]:外部項目json_spirit
[leveldb]:外部項目leveldb from google
[gtest]:gtest單元測試框架
[doc]:關於代碼的一些說明文檔
[bash_completion]:部分bash腳本的實現
[pybind]:python的包裝器
[script]:各種python腳本
[upstart]:各種配置文件
ceph_mds.cc:駐留程序mds
ceph_mon.cc:駐留程序mon
ceph_osd.cc:駐留程序osd
libcephfs.cc:cephfs庫
librdb.cc:rdb庫
ceph_authtool.cc:工具ceph_authtool
ceph_conf.cc:工具ceph_conf
ceph_fuse.cc:工具ceph_fuse
ceph_syn.cc:工具ceph_syn
cephfs.cc:工具cephfs
crushtool.cc:工具crushtool
dupstore.cc:工具dupstore
librados-config.cc:rados庫配置工具
monmaptool.cc:工具monmap
osdmaptool.cc:工具osdmap
psim.cc:工具psim
rados.cc:工具rados
rdb.cc:工具rdb
rados_export.cc:rados工具相關類
rados_import.cc:rados工具相關類
rados_sync.cc:rados工具相關類
rados_sync.h:rados工具相關類
sample.ceph.conf:配置文件樣例
ceph.conf.twoosds:配置文件樣例
Makefile.am:makefile的源文件
valgrind.supp:內存檢查工具valgrind的配置文件
init-ceph.in:啓動和停止ceph的腳本
mkcephfs.in:cephfs部署腳本

3 OpenStack與ceph

通過分析發現ceph現在的狀態特別像爲openstack的組件.迎合openstack的需求.

openstack
-鏡像image對應Openstack Glance
-Glance:管理 VM 的啓動鏡像,Nova 創建 VM 時將使用 Glance 提供的鏡像。
-block對應於Openstack Cinder
-Cinder:爲 VM 提供塊存儲服務。Cinder 提供的每一個 Volume 在 VM 看來就是一塊虛擬硬盤,一般用作數據盤。
可以瞬間建立數千個虛擬機,使用寫時複製技術的快存儲.
塊存儲存儲虛擬機的卷.克隆使複製虛擬機簡單

官方文檔內容:
From the roots, Ceph has been tightly integrated with cloud platforms such as OpenStack. For Cinder and Glance, which are volume and image programs for OpenStack, Ceph provides its block device backend to store virtual machine volumes and OS images. These images and volumes are thin provisioned. Only the changed objects needed to be stored; this helps in a significant amount of storage space, saving for OpenStack The copy-on-write and instant cloning features of Ceph help OpenStack to spin hundreds of virtual machine instances in less time. RBD also supports snapshots, thus quickly saving the state of virtual machine, which can be further cloned to produce the same type of virtual machines and used for point-in-time restores.Ceph acts as a common backend for virtual machines, and thus helps in virtual machine migration since all the machines can access a Ceph storage cluster. Virtualization containers such as QEMU, KVM, and XEN can be configured to boot virtual machines from volumes stored in a Ceph cluster.

3.1 OpenStack 與 Ceph 的三個結合點:

鏡像:OpenStack Glance 管理虛擬機鏡像。鏡像是不變的。OpenStack 把鏡像當作二進制對象並以此格式下載。
卷:卷是塊設備。OpenStack 使用捲來啓動虛擬機,或者綁定捲到運行中的虛擬機。OpenStack 使用 Cinder 服務管理卷。
客戶磁盤:客戶磁盤是客戶操作系統磁盤。默認情況下,當啓動一臺虛擬機時,它的系統盤以文件的形式出現在 hypervisor 系統上(通常在/var/lib/nova/instances/)。在 OpenStack Havana 以前的版本,在 Ceph 中啓動虛擬機的唯一方式是使用 Cinder 的 boot-from-volume 功能,現在能夠在 Ceph 中直接啓動虛擬機而不用依賴於 Cinder,這是非常有利的因爲它能夠讓你很容易的進行虛擬機的熱遷移。除此之外,如果 hypervisor 掛掉還能夠方便地觸發 nova evacute 然後無縫得在其他的地方繼續運行虛擬機。
可以使用 OpenStack Glance 來存儲鏡像在 Ceph 塊設備中,也可以使用 Cinder 通過鏡像的寫時複製來啓動虛擬機。

Glance,Cinder 和 Nova,儘管它們沒有必要一起使用。當虛擬機運行使用本地磁盤運行的時候,可以把鏡像存儲在 Ceph 塊設備中,或者正相反。

Glance image 在 Ceph 中其實是個 RBD snapshot,
OpenStack Cinder 組件和 Ceph RBD 集成的目的是將 Cinder 卷(volume)保存在 Ceph RBD 中。
除了上面所描述的 Cinder、Nova 和 Glance 與 Ceph RBD 的集成外,OpenStack 和 Ceph 之間還有其它的集成點:

(1)使用 Ceph 替代 Swift 作爲對象存儲 (網絡上有很多比較 Ceph 和 Swift 的文章,比如 1,2,3,)
(2)CephFS 作爲 Manila 的後端(backend)
(3)Keystone 和 Ceph Object Gateway 的集成
結構圖
這裏寫圖片描述

openstack

計算(Compute):Nova。一套控制器,用於爲單個用戶或使用羣組管理虛擬機實例的整個生命週期,根據用戶需求來提供虛擬服務。負責虛擬機創建、開機、關機、掛起、暫停、調整、遷移、重啓、銷燬等操作,配置CPU、內存等信息規格。自Austin版本集成到項目中。

對象存儲(Object Storage):Swift。一套用於在大規模可擴展系統中通過內置冗餘及高容錯機制實現對象存儲的系統,允許進行存儲或者檢索文件。可爲Glance提供鏡像存儲,爲Cinder提供卷備份服務。自Austin版本集成到項目中

鏡像服務(Image Service):Glance。一套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。自Bexar版本集成到項目中

塊存儲 (Block Storage):Cinder。爲運行實例提供穩定的數據塊存儲服務,它的插件驅動架構有利於塊設備的創建和管理,如創建卷、刪除卷,在實例上掛載和卸載卷。自Folsom版本集成到項目中。
Nova

在OpenStack Nova項目中存在兩種類型的存儲,一類是本地易失性存儲,另一類是持久塊設備。兩者最明顯的特徵就是持久塊設備由Cinder項目管理,並且具備大量API進行管理,如Snapshot,Backup等等。而相對的本地易失性存儲由Nova的hypervisor實現,如在libvirt中目前支持Qcow,LVM鏡像類型。這類存儲只具備簡單的創建和刪除設備能力,主要用作創建Root,Swap,Empheremal磁盤分區的後備。

Cinder項目很早就已經支持Ceph,並且一直是最完備的後端之一,而在H版的Nova易失性存儲中同樣迎來了Ceph的支持(只支持libvirt)Add RBD supporting to libvirt for creating local volume。在Nova中,目前可以通過指定”libvirt_images_type=rbd”來選擇Ceph作爲易失性後端。這就意味着如果採用Ceph作爲塊設備支持,那麼在OpenStack的VM可以只採用Ceph的存儲池。

這裏寫圖片描述
總結一下各模塊的關係
這裏寫圖片描述

4 快照和克隆

1) 快照
snapshot是特定時間鏡像(這裏鏡像是指ceph的image)的靜態拷貝
2) 克隆
clone是對snapshot的copy on write的再拷貝。通常snapshot只讀,clone可以正常讀寫。
Ceph通過rbd命令直接支持snapshot,也通過snapshot layering技術,支持對snapshot的clone。
3) QEMU 與塊設備
Ceph 塊設備最常見的用法之一是作爲虛擬機的塊設備映像。例如,用戶可創建一個安裝、配置好了操作系統和相關軟件的“黃金標準”映像,然後對此映像做快照,最後再克隆此快照(通常很多次)。詳情參見快照。能製作快照的寫時複製克隆意味着 Ceph 可以快速地爲虛擬機提供塊設備映像,因爲客戶端每次啓動一個新虛擬機時不必下載整個映像。
塊設備就像是相當於磁盤的存在.

5 塊設備

1.塊存儲
Block storage is a category of data storage used in the storage area network. In this type, data is stored as volumes, which are in the form of blocks and are attached to nodes. This provides a larger storage capacity required by applications with a higher degree of reliability and performance. These blocks, as volumes, are mapped to the operating system and are controlled by its filesystem layout.
可以看出,一塊分佈在很多對象上

2.塊分散成對象
When a client writes data to RBD, librbd libraries map data blocks into objects to store them in Ceph clusters, strip these data objects, and replicate them across the cluster, thus providing improved performance and reliability.

3.對象存儲
Ceph allows direct access to its cluster; this makes it superior to other storage solutions that are rigid and have limited interfaces.
允許直接訪問

4.定位對象

rados -p ceph_block  ls

這裏寫圖片描述

ceph osd pool get ceph_block  pg_num

這裏寫圖片描述

這裏寫圖片描述

6 image說明

非常好的文章
理解 OpenStack + Ceph (4):Ceph 的基礎數據結構 [Pool, Image, Snapshot, Clone]
http://www.cnblogs.com/sammyliu/p/4843812.html

卷的含義:

[ceph_jz@client ~]$ ceph osd lspools
0 rbd,1 .rgw.root,2 .rgw.control,3 .rgw,4 .rgw.gc,5 .users.uid,6 cephfs_data,7 cephfs_metadata,8 ceph_block,9 ssd-pool,
[ceph_jz@client ~]$
[ceph_jz@client ~]$ rbd ls ceph_block
foo
myimage
bar
block
block_test
new_block_test
[ceph_jz@client ~]$

一個鏡像劃分成很多的對象

[ceph_jz@client ~]$ rbd info ceph_block/myimage
rbd image 'myimage':
        size 102400 MB in 25600 objects
        order 22 (4096 kB objects)
        block_name_prefix: rb.0.58e5d.238e1f29
        format: 1
[ceph_jz@client ~]$

每個塊4M,100M分成25個對象

[ceph_jz@client ~]$ rbd info ceph_block/myimage              
rbd image 'myimage':
        size 102400 kB in 25 objects
        order 22 (4096 kB objects)
        block_name_prefix: rb.0.58e5d.238e1f29
        format: 1
[ceph_jz@client ~]$


[ceph_jz@client ~]$ rbd showmapped 
id pool       image   snap device    
0  ceph_block myimage -    /dev/rbd0 
[ceph_jz@client ~]$

寫入數據

[ceph_jz@client ~]$ sudo dd if=/dev/zero of=/dev/rbd0  bs=1047586 count=4
4+0 records in
4+0 records out
4190344 bytes (4.2 MB) copied, 0.0803551 s, 52.1 MB/s
[ceph_jz@client ~]$



[ceph_jz@client ~]$ rbd ls mypool
image1
[ceph_jz@client ~]$ rbd info mypool/image1
rbd image 'image1':
        size 102400 MB in 25600 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.58e7674b0dc51
        format: 2
        features: layering
        flags: 
[ceph_jz@client ~]$

創建過程pool中存在的數據
[ceph_jz@client ~]$ rados -p mypool  ls
rbd_header.58e7674b0dc51
rbd_directory
rbd_id.image1
[ceph_jz@client ~]$

顯示包含信息

[ceph_jz@client ~]$ rados -p  mypool  listomapvals rbd_directory        
id_58e7674b0dc51
value: (10 bytes) :
0000 : 06 00 00 00 69 6d 61 67 65 31                   : ....image1

name_image1
value: (17 bytes) :
0000 : 0d 00 00 00 35 38 65 37 36 37 34 62 30 64 63 35 : ....58e7674b0dc5
0010 : 31                                              : 1

[ceph_jz@client ~]$

rbd_header 保存的是一個 RBD 鏡像的元數據:
這裏寫圖片描述

[ceph_jz@client ~]$ sudo rbd map mypool/image1
 [sudo] password for ceph_jz: 
/dev/rbd1
[ceph_jz@client ~]$

寫入8M的數據
dd if=/dev/zero of=/dev/rbd1 bs=1048576 count=8

這裏寫圖片描述

寫入8M的數據多了兩個對象
這裏寫圖片描述

查看具體一個對象的映射.該對象映射到0 2 3 osd上
這裏寫圖片描述
放置組爲 10.27
計入osd0 查看也就是 node2
這裏寫圖片描述

進入到node2 的狀態

ceph/osd/ceph-0/current/10.27_head
這裏寫圖片描述

這也就是放置組
這裏寫圖片描述

這裏寫圖片描述

可見:
(1)RBD image 是簡單的塊設備,可以直接被 mount 到主機,成爲一個 device,用戶可以直接寫入二進制數據。
(2)image 的數據被保存爲若干在 RADOS 對象存儲中的對象。
(3)image 的數據空間是 thin provision 的,意味着ceph 不預分配空間,而是等到實際寫入數據時按照 object 分配空間。
(4)每個 data object 被保存爲多份。
(5)pool 將 RBD 鏡像的ID和name等基本信息保存在 rbd_directory 中,這樣,rbd ls 命令就可以快速返回一個pool中所有的 RBD 鏡像了。
(6)每個 RBD 鏡像的元數據將保存在一個對象中,命名爲 rbd_header.。
(7)RBD 鏡像保存在多個對象中,這些對象的命名爲 rbd_data..<順序編號序列>。
(8)RADOS 對象以 OSD 文件系統上的文件形式被保存,其文件名爲 udata.<順序編號序列>.<其它字符串>。

7 快照說明

創建pool寫入4M的數據
rados -p pool101 ls
這裏寫圖片描述
創建快照
[ceph_jz@client ~]rbdsnapcreatepool101/image1@snap1[cephjz@client ]

這裏寫圖片描述
創建的快照的數據再header中

這裏寫圖片描述

因此,
(1)snapshot 的 data objects 是和 image 的 data objects 保存在同一個目錄中。
(2)snapshot 的粒度不是整個 image,而是RADOS 中的 data object。
(3)當 snapshot 創建時,只是在 image 的元數據對象中增加少量字節的元數據;當 image 的 data objects 被修改(write)時,變修改的 objects 會被拷貝(copy)出來,作爲 snapshot 的 data objects。這就是 COW 的含義。

8 克隆說明

創建 Clone 是將 image 的某一個 Snapshot 的狀態複製變成一個 image. 如 imageA 有一個 Snapshot-1,clone 是根據 ImageA 的 Snapshot-1 克隆得到 imageB。imageB 此時的狀態與Snapshot-1完全一致,並且擁有 image 的相應能力,其區別在於 ImageB 此時可寫。
保護快照然後克隆
rbd clone pool101/image1@snap1 pool101/image1snap1clone1

這裏寫圖片描述
(2)從 clone 讀數據

從本質上是 clone 的 RBD image 中讀數據,對於不是它自己的 data objects,ceph 會從它的 parent snapshot 上讀,如果它也沒有,繼續找它的parent image,直到一個 data object 存在。從這個過程也看得出來,該過程是缺乏效率的。

(3)向 clone 中的 object 寫數據
Ceph 會首先檢查該 clone image 上的 data object 是否存在。如果不存在,則從 parent snapshot 或者 image 上拷貝該 data object,然後執行數據寫入操作。這時候,clone 就有自己的 data object 了。

9 RADOS API

Ceph 中文文檔:http://docs.ceph.org.cn/

C++例子

http://docs.ceph.org.cn/rados/api/

LIBRADOS (C)

http://docs.ceph.org.cn/rados/api/librados/

librados 提供了 RADOS 服務的底層訪問功能, RADOS 概覽參見體系結構。

提供了管理和存儲相關的大量API.
例如下圖
這裏寫圖片描述

10 創建object

root@dev:/# echo "Hello Ceph, You are Awesome like MJ" > /tmp/helloceph
root@dev:/# rados -p web-services put object1 /tmp/helloceph
root@dev:/# rados -p web-services ls
object1
root@dev:/# ceph osd map web-services object1
osdmap e29 pool 'web-services' (8) object 'object1' -> pg 8.bac5debc (8.3c) -> up ([0], p0) acting ([0], p0)

11 ceph監控系統

ceph的相關項目提供了ceph監控和管理工具.
監控信息
通過本章我們可以學到Ceph官方提供的ceph-rest-api,並帶領大家一步一步實現基於ceph-rest-api的Web監控管理工具。

inkscope

[inkscope]安裝的ceph的監控平臺inkscope 1.1
http://blog.csdn.net/nocturne1210/article/details/50559659

這裏寫圖片描述

Calamari

Calamari : step-by-step
http://www.tuicool.com/articles/MZBjy22

配置過程,非常好的參考文檔
https://www.gitbook.com/book/zphj1987/calamaribook/details

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

12 ceph benchmark 測試

Ceph RADOS bench

測試

rados bench -p rbd 10 write --no-cleanup

這裏寫圖片描述

測試

rados bench -p rbd 10 write --no-cleanup

這裏寫圖片描述

測試隨機讀寫

rados bench -p ceph_bloc 10 rand

刪除監視器 直接在主節點執行

sudo ceph mon remove  node2

13 其他說明

-ceph-deploy快速部署
主要參考官網 這裏記錄出現的問題
RuntimeError: NoSectionError: No section: ‘ceph’
執行yum remove ceph-release,據說是版本不兼容
RuntimeError: remote connection got closed, ensure requiretty is disabled for

-進入要部署的機器,執行如下命令 sudo visudo 把Defaults requiretty 修改爲 Defaults:ceph !requiretty
如果改完還麼起作用,說明免密碼的沒有配,執行如下
echo “ceph ALL = (root) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章