基於 Ceph RBD 實現 Docker 叢集的分散式儲存
以 Docker 為代表的容器技術在雲端計算領域正扮演著越來越重要的角色,甚至一度被認為是虛擬化技術的替代品。企業中對於有狀態的容器,往往需要將資料儲存在額外的儲存空間。Docker 引入了 Volume 機制,能夠將永久資料獨立於容器之外。正式的生產環境,Docker 通常是以叢集的方式使用的,因此容器會分散在不同的主機上,為了保證資料的一致性和可訪問性,共享儲存是不可避免的。相比於傳統共享檔案系統,分散式儲存系統擴充套件能力更強,由於資料都是分散在多個數據儲存伺服器上,因此資料更加可靠、安全,也更適用於容器的儲存。
Ceph 簡介
Ceph 概述
Ceph 是一個分散式儲存系統,獨一無二地用統一的系統—Ceph 儲存叢集,提供了物件儲存,塊儲存和檔案儲存三種功能。Ceph 的儲存叢集基於 RADOS,提供了極大伸縮性—供成千使用者訪問 PB 乃至 EB 級的資料。
Ceph 有很多術語,瞭解這些術語,對理解 Ceph 的體系結構是非常重要的。表 1 給出了 Ceph 的常見術語。
表 1. Ceph 術語
名詞 | 解釋 |
---|---|
RADOSGW | 物件閘道器守護程序。 |
RBD | 塊儲存。 |
CEPHFS | 檔案儲存。 |
LIBRADOS | 和 RADOS 互動的基本庫 librados。Ceph 通過原生協議和 RADOS 互動,Ceph 把這種功能封裝進了 librados 庫,這樣你就能定製自己的客戶端。 |
RADOS | 儲存叢集 |
OSD | Object Storage Device。RADOS 的元件,用於儲存資源 |
Monitor | 監視器。RADOS 的元件,維護整個 Ceph 叢集的全域性狀態。 |
MDS | Ceph 元資料伺服器。為 Ceph 檔案系統儲存元資料。 |
對 Ceph 的術語有了瞭解後,我們來看下 Ceph 的體系結構。Ceph 的體系結構與組成部分如下圖 1 所示。Ceph 的體系結構由客戶端(Client),物件儲存閘道器(RADOSGW),塊儲存(RBD),檔案儲存(CEPHFS),和 RADOS 直接互動的庫 LIBRADOS,儲存叢集(RADOS)組成。
Ceph 儲存叢集從 Ceph 客戶端接收資料—不管是來自 Ceph 塊裝置、 Ceph 物件儲存、 Ceph 檔案系統、還是基於 librados 的自定義實現的—並存儲為物件。每個物件是檔案系統中的一個檔案,它們儲存在
圖 1. Ceph 體系結構
Ceph 儲存叢集是 Ceph 很重要的部分,Ceph 檔案系統、 Ceph 物件儲存、和 Ceph 塊裝置從 Ceph 儲存叢集統一讀出和寫入資料。Ceph 儲存叢集的元件如下圖 2 所示。Ceph 儲存叢集至少要有一個 Ceph Monitor 和兩個 OSD 組成,如果要使用檔案儲存功能,還至少要有一個 MDS。
圖 2. Ceph 儲存叢集
Ceph 常用命令
Ceph 客戶端提供了非常豐富的命令用來操作塊裝置。在與容器對接過程中,我們需要建立塊裝置,刪除塊裝置等功能,並且後續也需要針對這些功能提供相應的 REST API,方便通過 HTTP 請求的方式來操作塊裝置。所以這裡對一些常用的命令進行說明,如表 2 所示。
表 2. Ceph 常用命令
命令 | 功能 |
---|---|
rbd create | 建立塊裝置映像 |
rbd ls | 列出 rbd 儲存池中的塊裝置 |
rbd info | 檢視塊裝置資訊 |
rbd diff | 可以統計 rbd 使用量 |
rbd feature disable | 禁止掉塊裝置的某些特性 |
rbd map | 對映塊裝置 |
rbd remove | 刪除塊裝置 |
rbd resize | 更改塊裝置的大小 |
Ceph 分散式儲存叢集的安裝與配置
Ceph 叢集搭建
本文通過安裝 ceph-deploy 軟體的管理節點來安裝配置 ceph 叢集,以 6 個節點—3 個 monitor 節點,3 個 osd 節點,以 ceph kraken(1.11.1)版本為例,說明 Ceph 儲存叢集的安裝以及配置過程。叢集的配置資訊如表 3 所示。
表 3. Ceph 叢集配置資訊
節點 name | 節點 IP | 配置 | 說明 |
---|---|---|---|
ceph-moni-0 | 192.168.1.100 | centos7.1 4CPU,16.0GMem,200GDisk | 管理節點,監視器 monitor |
ceph-moni-1 | 192.168.1.101 | centos7.1 4CPU,16.0GMem,200GDisk | 監視器 monitor |
ceph-moni-2 | 192.168.1.02 | centos7.1 4CPU,16.0GMem,200GDisk | 監視器 monitor |
ceph-osd-0 | 192.168.1.103 | centos7.1 4CPU,16.0GMem,200GDisk | 儲存節點 osd |
ceph-osd-1 | 192.168.1.104 | centos7.1 4CPU,16.0GMem,200GDisk | 儲存節點 osd |
ceph-osd-2 | 192.168.1.105 | centos7.1 4CPU,16.0GMem,200GDisk | 儲存節點 osd |
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程式設計屆的小學生。前面一直在幾家公司裡面做開發,其實都是一些傳統的專案,對於像分散式啦,叢集啦一些大型的專案接觸的很少,所以一直沒有自己整合和實現過。由於最近幾天專案不是很忙,自己又有點時間 |