1. 程式人生 > >基於 Ceph RBD 實現 Docker 叢集的分散式儲存

基於 Ceph RBD 實現 Docker 叢集的分散式儲存

以 Docker 為代表的容器技術在雲端計算領域正扮演著越來越重要的角色,甚至一度被認為是虛擬化技術的替代品。企業中對於有狀態的容器,往往需要將資料儲存在額外的儲存空間。Docker 引入了 Volume 機制,能夠將永久資料獨立於容器之外。正式的生產環境,Docker 通常是以叢集的方式使用的,因此容器會分散在不同的主機上,為了保證資料的一致性和可訪問性,共享儲存是不可避免的。相比於傳統共享檔案系統,分散式儲存系統擴充套件能力更強,由於資料都是分散在多個數據儲存伺服器上,因此資料更加可靠、安全,也更適用於容器的儲存。

Ceph 簡介

Ceph 概述

Ceph 是一個分散式儲存系統,獨一無二地用統一的系統—Ceph 儲存叢集,提供了物件儲存,塊儲存和檔案儲存三種功能。Ceph 的儲存叢集基於 RADOS,提供了極大伸縮性—供成千使用者訪問 PB 乃至 EB 級的資料。 

Ceph 節點以普通硬體和智慧守護程序作為支撐點, Ceph 儲存叢集組織起了大量節點,它們之間靠相互通訊來複制資料、同時採用 CRUSH 演算法動態地重分佈資料。

Ceph 有很多術語,瞭解這些術語,對理解 Ceph 的體系結構是非常重要的。表 1 給出了 Ceph 的常見術語。

表 1. Ceph 術語

對 Ceph 的術語有了瞭解後,我們來看下 Ceph 的體系結構。Ceph 的體系結構與組成部分如下圖 1 所示。Ceph 的體系結構由客戶端(Client),物件儲存閘道器(RADOSGW),塊儲存(RBD),檔案儲存(CEPHFS),和 RADOS 直接互動的庫 LIBRADOS,儲存叢集(RADOS)組成。

Ceph 儲存叢集從 Ceph 客戶端接收資料—不管是來自 Ceph 塊裝置、 Ceph 物件儲存、 Ceph 檔案系統、還是基於 librados 的自定義實現的—並存儲為物件。每個物件是檔案系統中的一個檔案,它們儲存在

物件儲存裝置上。由 Ceph OSD 守護程序處理儲存裝置上的讀/寫操作。

圖 1. Ceph 體系結構
圖 1. Ceph 體系結構

Ceph 儲存叢集是 Ceph 很重要的部分,Ceph 檔案系統、 Ceph 物件儲存、和 Ceph 塊裝置從 Ceph 儲存叢集統一讀出和寫入資料。Ceph 儲存叢集的元件如下圖 2 所示。Ceph 儲存叢集至少要有一個 Ceph Monitor 和兩個 OSD 組成,如果要使用檔案儲存功能,還至少要有一個 MDS。

圖 2. Ceph 儲存叢集
圖 2. Ceph 儲存叢集

Ceph 常用命令

Ceph 客戶端提供了非常豐富的命令用來操作塊裝置。在與容器對接過程中,我們需要建立塊裝置,刪除塊裝置等功能,並且後續也需要針對這些功能提供相應的 REST API,方便通過 HTTP 請求的方式來操作塊裝置。所以這裡對一些常用的命令進行說明,如表 2 所示。

表 2. Ceph 常用命令

Ceph 分散式儲存叢集的安裝與配置

Ceph 叢集搭建

本文通過安裝 ceph-deploy 軟體的管理節點來安裝配置 ceph 叢集,以 6 個節點—3 個 monitor 節點,3 個 osd 節點,以 ceph kraken(1.11.1)版本為例,說明 Ceph 儲存叢集的安裝以及配置過程。叢集的配置資訊如表 3 所示。

表 3. Ceph 叢集配置資訊

Ceph 叢集的安裝配置過程如清單 1 所示。

清單 1. Ceph 叢集的安裝配置
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

相關推薦

基於 Ceph RBD 實現 Docker 叢集分散式儲存

以 Docker 為代表的容器技術在雲端計算領域正扮演著越來越重要的角色,甚至一度被認為是虛擬化技術的替代品。企業中對於有狀態的容器,往往需要將資料儲存在額外的儲存空間。Docker 引入了 Volume 機制,能夠將永久資料獨立於容器之外。正式的生產環境,Docker 通常

rexray docker ceph-rbd 實現無狀態資料庫docker容器實戰

1.前提條件 1.1有了一個可用的ceph 叢集 其中mon1節點的IP 10.20.4.1 1.2 有2臺虛擬機器可以用於驗證測試,虛擬機器能上網,DNS設定正常。 關於如何建立ceph叢集,請參考文章:https://blog.csdn.net/happyfreeangel/arti

helm部署ceph在k8s上做分散式儲存

先在k8s上機器上拉取映象 docker pull docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04 docker pull docker.io/kolla/ubuntu-source-kubernetes-en

SpringBoot + maven + Jenkins + docker 實現docker叢集一鍵自動化部署

整體可分為以下幾個步驟:1,建立springboot專案2,搭建docker私服庫3,build映象並上傳到私服庫4,搭建docker swarm叢集5,搭建jenkins並構建部署演示系統使用centos7,jdk1.81,建立Springboot專案:在eclipse上新

如何實現 Docker分散式資料庫結合

作者:蔣勇 技術新潮流 - Docker 隨著如今開源軟體以及開源專案的熱潮,Docker作為如今在技術圈非常火爆的一款開源軟體產品,除了開源專案的貢獻非常活躍,目前應用也十分的廣泛,包括Redhat在內的多個

Spring Session + Redis 實現Session的分散式儲存

1 Redis的安裝及其基本使用 1.1 環境說明 CentOS7.3 Redis-3.2.10 1.2 Redis下載 [[email protected] Downloads]# wget http://download.

WinForm基於外掛開發實現多項配置儲存

一、課程介紹和例項線上演示 明人不說暗話,跟著阿笨一起玩WinForm。本次分享課程屬於《C#高階程式設計實戰技能開發寶典課程系列》中的一部分,阿笨後續會計劃將實際專案中的一些比較實用的關於C#高階程式設計的技巧分享出來給大家進行學習,不斷的收集、整理和完善此係列課程! 本次分

基於Dubbo&RocketMQ實現SOA與分散式事務

基於Dubbo&RocketMQ實現SOA與分散式事務 專案介紹 專案定位 首先本專案是基於前後端分離的架構,後端僅提供RESTful介面,前端使

Linux叢集儲存——day4——Ceph分散式儲存搭建、OSD塊儲存、COW快照、RBD儲存映象

Ceph的專有名詞 OSDs 儲存裝置 Monitors 叢集監控元件 MDSs 存放檔案系統的元資料 部署Ceph分散式儲存  

基於Gluster分散式實現docker儲存

1.安裝配置glusterfs基礎配置:centos7 關閉firewalld/selinux配置/etc/hosts和hostname 1 [[email protected] ~]# cat /etc/hosts 2 127.0.0.1 localhost localhost.loc

深入淺出分散式檔案儲存系統之 Ceph實現

一、何為分散式檔案檔案系統       分散式檔案系統(Distributed File System)是指檔案系統管理的物理儲存資源不一定直接連線在本地節點上,而是通過計算機網路與節點相連,它的設計是基於客戶端/伺服器模式。  &n

初試 Kubernetes 叢集使用 Ceph RBD儲存

目錄 Kubernetes PersistentVolumes 介紹 環境、軟體準備 單節點使用 Ceph RBD Kubernetes PV & PVC 方式使用 Ceph RBD 測試單節點以及多節點使用 Ceph RBD 1、Kube

基於memcached for java 實現通用分散式快取和叢集分散式快取

前提:基於memcached client for java 的基礎進行的二次封裝,實現快取儲存的兩種模式:通用分散式快取和叢集分散式快取。以下是對於memcached client for Java 二次封裝的UML圖。 對於memcached的客戶端初始化在Ca

k8s(十二)、分散式儲存Ceph RBD使用

前言 Ceph儲存有三種儲存介面,分別是: 物件儲存 Ceph Object Gateway 塊裝置 RBD 檔案系統 CEPHFS Kubernetes支援後兩種儲存介面,支援的接入模式如下圖: 在本篇將測試使用ceph rbd作持久化儲存後端 RBD建立

基於Ceph分布式集群實現docker跨主機共享數據卷

eat def 分布式存 fault 原因 efault conf word package 上篇文章介紹了如何使用docker部署Ceph分布式存儲集群,本篇在此基礎之上,介紹如何基於Ceph分布式存儲集群實現docker跨主機共享數據卷。 1、環境準備 在原來的環境

一步一步安裝配置Ceph分散式儲存叢集

Ceph可以說是當今最流行的分散式儲存系統了,本文記錄一下安裝和配置Ceph的詳細步驟。 提前配置工作 從第一個叢集節點開始的,然後逐漸加入其它的節點。對於Ceph,我們加入的第一個節點應該是Monitor,我們設定為Monitor1。 我使用的作業系統是Ubuntu Server 19.10,目前沒有對應的

大型電商基於Springboot+Springcloud微服務+Dubbo分散式,JVM虛擬機器,併發原理程式設計,實現微服務架構

大型電商基於Springboot+Springcloud微服務+Dubbo分散式,JVM虛擬機器,併發原理程式設計,實現微服務架構39套Java架構師,高併發,高效能,高可用,分散式,叢集,電商,快取,微服務,微信支付寶支付,公眾號開發,java8新特性,P2P金融專案,程式設計,功能設計,資料庫設

分散式儲存-ceph原理

一、ceph核心元件:   Ceph提供了RADOS、OSD、MON、Librados、RBD、RGW和Ceph FS等功能元件,但其底層仍然使用RADOS儲存來支撐上層的那些元件;   核心元件:Ceph OSD,Ceph Monitor,

基於Docker搭建分散式訊息佇列Kafka

本文基於Docker搭建一套單節點的Kafka訊息佇列,Kafka依賴Zookeeper為其管理叢集資訊,雖然本例不涉及叢集,但是該有的元件都還是會有,典型的kafka分散式架構如下圖所示。本例搭建的示例包含Zookeeper + Kafka + Kafka-manger mark &

spring-boot+Redis實現簡單的分散式叢集session共享

  寫在前面:      首先宣告,筆者是一名Java程式設計屆的小學生。前面一直在幾家公司裡面做開發,其實都是一些傳統的專案,對於像分散式啦,叢集啦一些大型的專案接觸的很少,所以一直沒有自己整合和實現過。由於最近幾天專案不是很忙,自己又有點時間