應用ceph技術打造軟體定義儲存新局

37
打打打 打打打打打打 打打 Ceph 打打 Alex Lau ( 打打打 ) Software Consultant [email protected]

Upload: alex-lau

Post on 13-Jan-2017

338 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: 應用Ceph技術打造軟體定義儲存新局

打造軟體定義儲存新局應用 Ceph技術

Alex Lau ( 劉俊賢 )Software [email protected]

Page 2: 應用Ceph技術打造軟體定義儲存新局

SUSE Enterprise Storage 4

SUSE 領先提供企業級 cephfs 及 iSCSI 連接 SES4. 用戶可以直接利用 TCP/IP 連接 iSCSI 協議和 cephfs. iSCSI Target 驅動建立於 RDB 上( RADOS block device ). 任何 iSCSI Initiator 可以經過網絡連接 SES4

Page 3: 應用Ceph技術打造軟體定義儲存新局

基本 ceph 叢集

LIBRADOS

OSD MON

OSD

OSD

MON

MON

MDS

MDS

MDS

RADOS對象

文件介面

CEPHFS

RDB

RADOSGW

介面 :‒ 對象‒ 塊‒ 文件

MON:‒ 叢集 Map

OSD:‒ 對象數據

MDS:‒ cephfs

Page 4: 應用Ceph技術打造軟體定義儲存新局

Ceph Monitor

Paxos RoleProposers

Acceptors

Learners

Leader

Mon

OSDMAP

MONMAP

PGMAP

CRUSHMAP

Paxos Service

Paxos

LevelDB

K/V K/V K/V

Log

Page 5: 應用Ceph技術打造軟體定義儲存新局

ObjectStore Daemon

FileStore

OSD

OSDOSD OSD

PG PG PG PG …

Object Store

FileStore

FileJournal

DBObjectMap

低層 IO 操作FileJournal:

‒ 數據完整DBobjectMap:

‒ KeyValue map 給寫功能

Page 6: 應用Ceph技術打造軟體定義儲存新局

FileStore 後台

FileStore

OSD

Disk Disk Disk

BtrfsXFS ext4

FileStore

OSD

FileStore

OSD

OSD MON

OSD

OSD

MON

MON

RADOS

OSD 管理數據安全所有寫操作在文件系統上 :

‒ XFS, BTRFS

ACID:‒ 保護數據‒ Atomicity, Consistency,

Isolation, Durability

Page 7: 應用Ceph技術打造軟體定義儲存新局

BlueFS

META

DataDataData RocksDB

Allocator

Block Block Block

BlueStore 後台 BlueStore

Rocksdb‒ 對象 Metadata

‒ ceph Key/Value 數據Block 設備

‒ 數據直接讀寫不再需要文件系統

‒ 寫操作減半

Page 8: 應用Ceph技術打造軟體定義儲存新局

cephfs MeatData Server

OSD MON

OSD

OSD

MON

MON

MDS

MDS

MDS

RADOS

CephFSClient

META

DataDataData

MDS 存數據在 RADOS‒ 文作 , 目錄

POSIX 文件系統相容上不提供文件內容只需要當使用 cephfs

高可用性和可擴展性

Page 9: 應用Ceph技術打造軟體定義儲存新局

Ceph 對象關口

LIBRADOS

OSD MON

OSD

OSD

MON

MON

RADOS

RADOSGW

RADOSGW

S3 API

Swift API

RESTful 關口連接 ceph‒ S3 相容‒ Swift 相容

Page 10: 應用Ceph技術打造軟體定義儲存新局

CephFS

POSIX 文件系統相容上MDS 存數據在 RADOS

‒ 不提供文件內容Linux 核心模塊和 FUSE

高可用性和可擴展性‒ Inline Data

‒ SnapShots

‒ 多個文件系統

libcephfs

librados

OSD MON

OSD

OSD

MON

MON

MDS

MDS

MDS

RADOS

FUSE cephfsKernel cephfs.ko

Page 11: 應用Ceph技術打造軟體定義儲存新局

Block Storage

File System

Object Storage

001011010101010111011011101110001011010

使用 ceph 存儲的方法 ?SUSE 領先提供 iSCSI

Remote ClusterData Encrypted

at Rest

MonitorNodes

Management Node

Heterogeneous OS Access

RADOS gateway

RESTful api

iSCSI

001110111010110101101011010110110111010001110111101110100101101011101111011011

111010110101101101110100111010110101010

Page 12: 應用Ceph技術打造軟體定義儲存新局

iSCSI 架構技術背景協議 :

‒ 經過 TCP/IP 連接 Block storage

‒ 任何 iSCSI Initiators 可以經過 TCP/IP 連接 iSCSI Target

‒ iSCSI Targets, 伺服器提供本地 block 訪問SCSI and iSCSI:

‒ iSCSI 命令和回應打包裹‒ iSCSI TCP 包含 SCSI 命令

遠程存取 :‒ iSCSI Initiators 可以把遠程的 Block 當作本地硬碟處理‒ 存儲被連接後可以直接使用不同文件系統 XFS, brtfs ….

‒ 用戶可以直接使用 iSCSI Target 始動

Page 13: 應用Ceph技術打造軟體定義儲存新局

Public Network

OSD1 OSD2 OSD3 OSD4

iSCSI RBD 沒有驅動前… PRESENT

FUTURE

£€

$

Target System

RBD Block LIO to ISCSI

Initiator System

Page 14: 應用Ceph技術打造軟體定義儲存新局

iSCSI 加 LIO 有什麼問題 ? 缺少一些功能

LIO over RBD: ‒ 不支持 “ atomic compare and write”

‒ 不支持 “ persistent group reservations”

iSCSI:‒ 不支持 iSCSI Active/Active Multiple Path MPIO

Page 15: 應用Ceph技術打造軟體定義儲存新局

iSCSI LIO 在 RBD 驅動上的優點支持更多的系統平台連接 ceph:

‒ 不需要成為叢集的一部份像 radosgw 一樣標準 iSCSI 介面 :

‒ 大部份操集系統支持 iSCSI Initiators

LIO Linux IO Target:‒ Linux 核心實作 iSCSI Target

靈活的組態 :‒ Targetcli 經過 lrbd 工具動態設定

Page 16: 應用Ceph技術打造軟體定義儲存新局

設定 RBD iSCSI 入口介紹 lrbd

易用建立 :‒ 由開始 SES2.0 已經支持 iSCSI

‒ Targetcli 支持多點設定技術背景 :

‒ JSON 格式‒ Target, Portals, Pools, Auth

‒ 設定狀態保存在 ceph 叢集內Related Link:

‒ https://github.com/swiftgist/lrbd

‒ https://github.com/swiftgist/lrbd/wiki

Page 17: 應用Ceph技術打造軟體定義儲存新局

19

Public Network

OSD1 OSD2 OSD3 OSD4

Multiple Path 支持 iSCSI RBDPRESENT

FUTURE

£€

$

Cluster Network

iSCSI Gateway

RBD Module

iSCSI Gateway

RBD Module

iSCSI Initiator

RBD image

Page 18: 應用Ceph技術打造軟體定義儲存新局

如何管理 ceph 存儲的增長和費用 ?

Easily scale and manage data storage

Control storage growth and manage costs

Support today’s investment and adapt to the future

$

PRESENT

FUTURE

£€

$

Page 19: 應用Ceph技術打造軟體定義儲存新局

介紹 openATTIC

Easily scale and manage data storage

Page 20: 應用Ceph技術打造軟體定義儲存新局

SUSE Enterprise Storage 管理工具前景

開源項目 : ‒ 替代專用存儲管理系統

企業級應用 :‒ 支持傳統存儲管理 , 使用統一介面 e.g. NAS, SAN

SDS 支持 :‒ 支持 ceph 的管理和監視叢集狀態 , 簡化 ceph 複雜的操作

Page 21: 應用Ceph技術打造軟體定義儲存新局

openATTIC 功能現有功能現在的網頁介面RESTful API

‒ Software Defined Storage

統一存儲‒ NAS (NFS, CIFS, HTTP)

‒ SAN (iSCSI, Fiber Channel)

卷鏡像‒ DRBD

文件系統‒ LVM, XFS, Btrfs, ext3/4

監控‒ 內置 Nagios / Icinga

‒ ceph 管理 (WIP)

Page 22: 應用Ceph技術打造軟體定義儲存新局

openATTIC 架構技術內容後台 :

‒ Python (Django)

‒ Django REST Framework

‒ Nagios / Icinga & PNP4Nagios

‒ Linux tools‒ LVM, LIO, DRBD

‒ ceph API ‒ librados, librbd

網頁前台 :‒ AngularJS

‒ Bootstrap

‒ REST API

自動化測試‒ Python unit tests

‒ Gatling‒ RESTful API

‒ Protractor / Jasmine ‒ WebUI test

Page 23: 應用Ceph技術打造軟體定義儲存新局

openATTIC 架構概述

Django

Linux OS Tools

openATTIC SYSTEMD

RESTful API

PostgreSQL

DBUS

ShellCeph Storage Cluster

librados/librbd

Web UI REST Client

HTTP

NoDB

Page 24: 應用Ceph技術打造軟體定義儲存新局

如何管理 ceph 的費用 ?

Control storage growth and manage costs

$

Page 25: 應用Ceph技術打造軟體定義儲存新局

最低硬體建議OSD Storage Node

‒ 2GB RAM per OSD

‒ 1.5GHz CPU core per OSD

‒ 10GEb public and backend

‒ 4GB RAM for cache tier

MON Monitor Node‒ 3 Mons minimal

‒ 2GB RAM per node

‒ SSD System OS

‒ Mon and OSD should not be virtualized

‒ Bonding 10GEb

Page 26: 應用Ceph技術打造軟體定義儲存新局

SUSE 存儲價格

JBOD Storage

Mid-rangeArray

Mid-rangeNAS

High-endDisk Array

SUSE 企業存儲

Fully FeaturedNAS Device

Entry-levelDisk Array

Page 27: 應用Ceph技術打造軟體定義儲存新局

Thin Provisioning隨需配置

傳統存儲配置 SDS 隨需配置

Data

Allocated

Data

Allocated

Volume A

Volume B

Data

Data

AvailableStorage

Volume A

Volume B

Page 28: 應用Ceph技術打造軟體定義儲存新局

多層次的使用 ceph 存儲多寫應用 多讀應用

需要快寫的應用 :• e.g. 視像數據• e.g. 很多 IoT 數據

需要快讀的應用 :• e.g. 視像流傳播• e.g. 大數據分析

快寫層Hot Pool

一般層Cold Pool

快讀層Hot Pool

SUSE Enterprise Storage Cluster

一般層Cold Pool

Page 29: 應用Ceph技術打造軟體定義儲存新局

如何計算多個存儲價格 ?

1000$ = 1000G 2000MB rw4 PCIe = 4000$ = 8000MB rw 4T Storage 400,000 IOPS4$ per G

250$ = 1000G, 500MB rw16 Driver = 4000$ = 8000MB rw16T Storage 100,000 IOPS1$ per G

250$ = 8000G 150MB rw16 Driver = 4000$ = 2400MB rw128T Storage 2000 IOPS0.1$ per G

Page 30: 應用Ceph技術打造軟體定義儲存新局

Control Costs

如何使用 EC 減低存儲費用 ? $

Copy Copy Copy

對象存儲

Replication Pool

SES CEPH CLUSTSER

Control CostsErasure Coded Pool

SES CEPH CLUSTSER

多點複製數據• 300% 數據空間使用• 低延遲 , 快恢復

一份數據加奇偶校驗數據• 120% 數據空間使用• CPU 差換數據恢復

對象存儲

Data Data Data Data

Parity ParityData Data Data Data

Data Data

Page 31: 應用Ceph技術打造軟體定義儲存新局

公有雲對比私有雲 ceph 使用H270-H70 – 40000$ 美金

- 48 Core * 8 : 384 核心- 32G * 32: 1T 記億體- 1T * 16: 16T SSD- 40GbE * 8

R120-T30 – 5700$ 美金 * 7- 48 Core * 7 : 336 核心- 8 * 16G * 7 : 896G 記億體- 1T * 2 * 7 : 14T SSD- 8T * 6 * 7 : 336T HDD - 40GbE * 7- 10GbE * 14

1000 用戶使用5$ - 網站 = 5000$ 美金8 個月 = 40000$ 美金EC 5+2 大約等於 250T2500 用戶使用 100GB2$ 存儲 = 5000$8 個月 = 40000$

Page 32: 應用Ceph技術打造軟體定義儲存新局

ceph 開發者 / POC

OSD1OSD2OSD3OSD4

MON1

OSD5OSD6OSD7OSD8

MON2

OSD9OSD10OSD11OSD12

MON3

Dual 1G Network

300$ 300$

6T = 220$220 * 3 = 660$

512G = 150$

300$

6T = 220$220 * 3 = 660$

512G = 150$

6T = 220$220 * 3 = 660$

512G = 150$

Page 33: 應用Ceph技術打造軟體定義儲存新局

DevOps 的故事 ?介紹 salt

Support today’s investment and adapt to the future

PRESENT

FUTURE

£€

$

Page 34: 應用Ceph技術打造軟體定義儲存新局

Salt 加強 ceph 維護功能DeepSea

‒ https://github.com/SUSE/DeepSea

‒ Salt state 文件幫助管理及建立 ceph

產品支持‒ SUSE OpenStack cloud, SUSE manager ‒ SUSE Enterprise Storage並行操作

客制化模塊靈活設計

‒ Default Jinja2 + YAML ( stateconf )

‒ Pydsl if you like python directly, json, pyobject, etc

Page 35: 應用Ceph技術打造軟體定義儲存新局

ceph 叢集快速安裝例子Git repo for fast deploy and benchmark

- https://github.com/AvengerMoJo/Ceph-Saltstack

Demo recording- https://asciinema.org/a/4hmdsrksn0fd8fgpssdgqsjdb

1) Salt 基本設定2) Git clone 拷貝模塊到 salt 的 _modules 目錄3) Saltutil.sync_all 到所有 minion 系統節點 4) ntp_update 更新所有統節點5) 創造 MONs 節點和集的 keys 6) 系統清除硬碟分區及預備 OSD7) Crushmap 及 RADOSGW 設定

Page 36: 應用Ceph技術打造軟體定義儲存新局

SUSE Enterprise Storage 減低存儲用費用和管理成本

減低管理

加快相容控制成本

Page 37: 應用Ceph技術打造軟體定義儲存新局