Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

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

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 37 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (20)

Anzeige

Ähnlich wie 應用Ceph技術打造軟體定義儲存新局 (20)

Anzeige

Aktuellste (20)

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

  1. 1. 打造軟體定義儲存新局 應用Ceph技術 Alex Lau (劉俊賢) Software Consultant alau@suse.com
  2. 2. SUSE Enterprise Storage 4 SUSE 領先提供企業級 cephfs 及 iSCSI 連接 SES4. 用戶可以直接利用 TCP/IP 連接 iSCSI 協議和 cephfs. iSCSI Target 驅動建立於RDB上 ( RADOS block device ). 任何 iSCSI Initiator 可以經過網絡連接 SES4
  3. 3. 基本 ceph 叢集 LIBRADOS OSD MON OSD OSD MON MON MDS MDS MDS RADOS 對象 塊 文件 介面 CEPHFS RDB RADOSGW 介面: ‒ 對象 ‒ 塊 ‒ 文件 MON: ‒ 叢集Map OSD: ‒ 對象數據 MDS: ‒ cephfs
  4. 4. Ceph Monitor Paxos Role Proposers Acceptors Learners Leader Mon OSD MAP MON MAP PG MAP CRUSH MAP Paxos Service Paxos LevelDB K/V K/V K/V Log …
  5. 5. ObjectStore Daemon File Store OSD OSDOSD OSD PG PG PG PG … Object Store File Store FileJournal DBObjectMap 低層IO操作 FileJournal: ‒ 數據完整 DBobjectMap: ‒ KeyValue map給寫功能
  6. 6. FileStore後台 File Store OSD Disk Disk Disk BtrfsXFS ext4 File Store OSD File Store OSD OSD MON OSD OSD MON MON RADOS OSD管理數據安全 所有寫操作在文件系統上: ‒ XFS, BTRFS ACID: ‒ 保護數據 ‒ Atomicity, Consistency, Isolation, Durability
  7. 7. BlueFS META Dat a Dat a Dat a RocksDB Allocator Block Block Block BlueStore後台 BlueStore Rocksdb ‒ 對象Metadata ‒ ceph Key/Value數據 Block設備 ‒ 數據直接讀寫 不再需要文件系統 ‒ 寫操作減半
  8. 8. cephfs MeatData Server OSD MON OSD OSD MON MON MDS MDS MDS RADOS CephFS Client META Data DataData MDS存數據在RADOS ‒ 文作, 目錄 POSIX文件系統相容上 不提供文件內容 只需要當使用cephfs 高可用性和可擴展性
  9. 9. Ceph 對象關口 LIBRADOS OSD MON OSD OSD MON MON RADOS RADOSG W RADOSG W S3 API Swift API RESTful 關口連接ceph ‒ S3 相容 ‒ Swift 相容
  10. 10. 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
  11. 11. Block Storage File System Object Storage 使用 ceph 存儲的方法? SUSE 領先提供 iSCSI Remote Cluster Data Encrypted at Rest Monitor Nodes Management Node Heterogeneous OS Access RADOS gateway RESTful api iSCSI
  12. 12. 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始動
  13. 13. Public Network OSD1 OSD2 OSD3 OSD4 iSCSI RBD沒有驅動前… Target System RBD Block LIO to ISCSI Initiator System
  14. 14. iSCSI 加 LIO 有什麼問題? 缺少一些功能 LIO over RBD: ‒ 不支持 “atomic compare and write” ‒ 不支持 “persistent group reservations” iSCSI: ‒ 不支持 iSCSI Active/Active Multiple Path MPIO
  15. 15. iSCSI LIO 在 RBD 驅動上的優點 支持更多的系統平台連接 ceph: ‒ 不需要成為叢集的一部份像 radosgw 一樣 標準 iSCSI 介面: ‒ 大部份操集系統支持 iSCSI Initiators LIO Linux IO Target: ‒ Linux 核心實作 iSCSI Target 靈活的組態: ‒ Targetcli 經過 lrbd 工具動態設定
  16. 16. 設定 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
  17. 17. 19 Public Network OSD1 OSD2 OSD3 OSD4 Multiple Path 支持 iSCSI RBD Cluster Network iSCSI Gateway RBD Module iSCSI Gateway RBD Module iSCSI Initiator RBD image
  18. 18. 如何管理 ceph 存儲的增長和費用? Easily scale and manage data storage Control storage growth and manage costs Support today’s investment and adapt to the future $
  19. 19. 介紹 openATTIC Easily scale and manage data storage
  20. 20. SUSE Enterprise Storage 管理工具 前景 開源項目: ‒ 替代專用存儲管理系統 企業級應用: ‒ 支持傳統存儲管理, 使用統一介面 e.g. NAS, SAN SDS 支持: ‒ 支持 ceph 的管理和監視叢集狀態, 簡化 ceph 複雜的操作
  21. 21. openATTIC 功能 現有功能 現在的網頁介面 RESTful API ‒ Software Defined Storage 統一存儲 ‒ NAS (NFS, CIFS, HTTP) ‒ SAN (iSCSI, Fiber Channel) 卷鏡像 ‒ DRBD 文件系統 ‒ LVM, XFS, Btrfs, ext3/4 監控 ‒ 內置Nagios / Icinga ‒ ceph 管理 (WIP)
  22. 22. 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
  23. 23. openATTIC 架構 概述 Django Linux OS Tools openATTIC SYSTEMD RESTful API PostgreSQL DBUS Shell librados/li brbd Web UI REST Client HTTP NoDB
  24. 24. 如何管理 ceph 的費用? Control storage growth and manage costs $
  25. 25. 最低硬體建議 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
  26. 26. SUSE 存儲價格 JBOD Storage Mid-range Array Mid-range NAS High-end Disk Array SUSE企業存儲 Fully Featured NAS Device Entry-level Disk Array
  27. 27. Thin Provisioning 隨需配置 傳統存儲配置 SDS隨需配置 Data Allocated Data Allocated Volume A Volume B Data Data Available Storage Volume A Volume B
  28. 28. 多層次的使用 ceph 存儲 需要快寫的應用: • e.g. 視像數據 • e.g. 很多IoT數據 需要快讀的應用: • e.g.視像流傳播 • e.g.大數據分析 快寫層 Hot Pool 一般層 Cold Pool 快讀層 Hot Pool SUSE Enterprise Storage Cluster 一般層 Cold Pool
  29. 29. 如何計算多個存儲價格? 1000$ = 1000G 2000MB rw 4 PCIe = 4000$ = 8000MB rw 4T Storage 400,000 IOPS 4$ per G 250$ = 1000G, 500MB rw 16 Driver = 4000$ = 8000MB rw 16T Storage 100,000 IOPS 1$ per G 250$ = 8000G 150MB rw 16 Driver = 4000$ = 2400MB rw 128T Storage 2000 IOPS 0.1$ per G
  30. 30. Control Costs 如何使用EC減低存儲費用? $ Copy Copy Copy Replication Pool SES CEPH CLUSTSER Control Costs Erasure Coded Pool SES CEPH CLUSTSER 多點複製數據 • 300%數據空間使用 • 低延遲,快恢復 一份數據加奇偶校驗數據 • 120%數據空間使用 • CPU差換數據恢復 Data Data Data Data Parity Parity Data Data Data Data Data Data
  31. 31. 公有雲對比私有雲 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大約等於250T 2500用戶使用100GB 2$存儲= 5000$ 8個月= 40000$
  32. 32. ceph 開發者 / POC OSD1 OSD2 OSD3 OSD4 MON1 OSD5 OSD6 OSD7 OSD8 MON2 OSD9 OSD10 OSD11 OSD12 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$
  33. 33. DevOps的故事? 介紹salt Support today’s investment and adapt to the future
  34. 34. 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
  35. 35. 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) 系統清除硬碟分區及預備OSD 7) Crushmap及RADOSGW設定
  36. 36. SUSE Enterprise Storage減低存儲用費用和 管理成本 減低管理 加快相容 控制成本

×