Ceph分布式存儲解決方案匯總


混合硬件架構方案建議

考慮成本,選擇SSD與HDD混合硬件架構

  • 方案一:使主本數據放在SSD OSD,副本數據放在HDD OSD,編寫新的crush rule
  • 方案二:存儲池分配優先級,通過編寫crush rule來實現,冷熱數據分離
  • 方案三:分層存儲,ceph緩存代理技術
  • 方案四:SSD固態盤分配block_db和block_wal分區做加速

參考:Ceph分布式存儲混合硬件架構方案

Ceph最佳實踐

節點硬件配置

OSD節點配置

針 IOPS 密集型場景,服務器配置建議如下:
OSD:每個 NVMe SSD 上配置四個 OSD(lvm)。
Controller:使用 Native PCIe 總線。
網絡:12osd/萬兆口
內存:16G + 2G/osd
CPU:5c/ssd

針對高吞吐量型,服務器配置建議如下:
OSD: HDD/7200轉
網絡:12osd/萬兆口
內存:16G + 2G/osd
CPU:1c/hdd

針對高容量型,服務器配置建議如下:
OSDs: HDD/7200轉
網絡:12osd/萬兆口
內存:16G + 2G/osd
CPU:1c/hdd

CPU中的1C = 1GHz

其它各節點配置:
MDS:4C/2G/10Gbps
Monitor:2C/2G/10Gbps
Manager:2C/2G/10Gbps
Bluestore 下:slow、 DB 和 WAL 的配比
slow(SATA):DB(SSD):WAL(NVMe SSD)=100:1:1

ceph集群實踐方案

硬件推薦

以1PB為例,高吞吐量型

OSD節點
數量:21
CPU:16c
內存:64G
網絡:10Gbps * 2
硬盤:7200轉HDD/4T * 12 (12個OSD + 1個系統)
系統:Ubuntu 18.04

Monitor節點
數量:3
CPU:2c
內存:2G
網絡:10Gbps * 2
硬盤:20G
系統:Ubuntu 18.04

Manager節點
數量:2
CPU:2c
內存:2G
網絡:10Gbps * 2
硬盤:20G
系統:Ubuntu 18.04

MDS(對於cephFS)
數量:2
CPU:4c
內存:2G
網絡:10Gbps * 2
硬盤:20G
系統:Ubuntu 18.04

Intel硬件方案白皮書

PCIe/NVMe固態盤: 機械硬盤 1:12。英特爾PCIe/NVMe P3700用作日志盤

SATA固態盤: 機械硬盤 1:4。英特爾SATA P3700用作日志盤

良好配置 更好配置 最好配置
CPU 英特爾至強處理器 E5-2650v3 英特爾至強處理器 E5-2690 英特爾至強處理器 E5-2699v3
網卡 10GbE 10GbE * 2 10GbE*4 + 2 * 40GbE
驅動器 1 * 1.6TB P3700 + 12 * 4T SAS(1:12)(P3700用於日志和高速緩存驅動器) 1 * 800GB P3700 + 4*1.6TB S510(P3700用於日志和高速緩存驅動器) 4-6 個 2TB P3700
內存 64GB 128GB >=128GB

PCIe/NVMe固態盤可用作日志驅動器,大容量低成本SATA固態盤用作OSD數據驅動器。對於需要較高性能、尤其使需要較高IOPS和SLA且具有中等存儲容量要求的用例/應用,該配置最為經濟高效

參考: 面向Ceph部署的英特爾解決方案

Ceph性能優化的新方法和思路

redhat官網給出不同應用場景時,其推薦的Ceph集群服務器硬件配置(包括CPU/Memory/Disk/Network)。僅作為服務器配置選擇時參考,不做推薦使用。

場景包含如下:

場景:一側重IOPS的(IOPS低延遲),例如實時性要求高的,但數據量不大的。比如訂單的生成。

場景二:側重Throughput的 (吞吐量優先),吞吐量大,但IOPS延時性要求適當。例如,實時流。

場景三:側重容量和價格Cost/Capacity的(大存儲量),例如大文件的存儲。

Red Hat CEPH 部署硬件配置指導

企業ceph 應用版本選擇以及采用ssd+sata 應用bulestore引擎的建議

(1)一般LTS版本是當前年份往過去退2年左右,所以,現在的穩定版是M版mimic。
(2)wal 是 RocksDB 的write-ahead log, 相當於之前的 journal 數據,db 是 RocksDB 的metadata 信息。在磁盤選擇原則是 block.wal > block.db > block。當然所有的數據也可以放到同一塊盤上。
(3)默認情況下, wal 和 db 的大小分別是 512 MB 和 1GB, 官方建議調整block.db 是主設備 4% ,而block.wal分為6%左右,2個加起來10%左右。

ceph 分布式存儲硬件規划以及運維的考慮

https://www.talkwithtrend.com/Question/433987?order=rec

關於Ceph性能優化與硬件選型|萬字長文

http://vlambda.com/wz_x6mXhhxv3M.html

SSD固態硬盤的接口類型

  • SATA
  • PCI-E
  • NVMe

https://blog.csdn.net/shuai0845/article/details/98330290

推薦SSD型號

  • Seagate Nytro 1351/1551
  • HGST SN260
  • Intel P4500
  • Intel P3700
  • Intel S3500
  • Intel S4500
  • Intel SSD 730 series
  • Intel D3-S4510 SSD
  • Micron 5100/5200和soon 5300

Intel S37系列或者S46系列,有錢上Intel P系列

配置表1

為了使ceph集群運行的更穩定,綜合性價比,做出如下的硬件配置:

名稱 數量 說明
OS Disk 2*600G SAS (SEAGATE 600GB SAS 6Gbps 15K 2.5英寸) 根據預算選擇SSD、SAS、SATA。RAID 1 ,防止系統盤故障,引發ceph集群問題
OSD Disk 8*4T SAS (SEAGATE 4T SAS 7200) 根據預算選擇SAS或者SATA盤,每台物理機配置8塊4T磁盤,用於存放數據。NoRAID
Monitor Disk 1*480G SSD (Intel SSD 730 series) 用於monitor 進程的磁盤,選擇ssd,速度更快
Journal Disk 2*480G SSD (Intel SSD 730 series) ssd磁盤,每塊分4個區,對應4個osd,一台節點總計8個journal分區,對應8個osd。NoRAID
CPU E5-2630v4 * 2 綜合預算,選擇cpu,越高越好
Memory >=64G 綜合預算,不差錢上128G內存
NIC 40GB * 2 光口 + 公網IP 40GB網卡可以保證數據同步速度(前端網絡和后端網絡)

CPU

每一個osd守護進程至少有一個cpu核
計算公式如下:

((cpu sockets * cpu cores per socket * cpu clock speed in GHZ)/No. of OSD) >= 1
 
Intel Xeon Processor E5-2630 V4(2.2GHz,10 core)計算:
  1 * 10 * 2.2 / 8 = 2.75  #大於1, 理論上能跑20多個osd進程,我們考慮到單節點的osd過多,引發數據遷移量的問題,所以限定了8個osd進程

內存

1個osd進程至少需要1G的內存,不過考慮到數據遷移內存占用,建議1個osd進程預配2G內存。
在作數據恢復時1TB數據大概需要1G的內存,所以內存越多越好

磁盤

系統盤

根據預算選擇ssd、sas、sata磁盤,必須做raid,以防因為磁盤引發的宕機

OSD 磁盤

綜合性價比,選擇sas或者sata磁盤,每塊大小4T。如果有io密集型的業務,也可單獨配備性能更高的ssd作為osd磁盤,然后單獨划分一個region

Journal 磁盤

用於日志寫入,選擇ssd磁盤,速度快

Monitor 磁盤

用於運行監控進程的磁盤,建議選擇ssd磁盤。如果ceph的monitor單獨運行在物理機上,則需要2塊ssd磁盤做raid1,如果monitor與osd運行在同一個節點上,則單獨准備一塊ssd作為monitor的磁盤

NIC

一個osd節點是配置2塊10GB網卡,一個作為public網絡用於管理,一個作為cluster網絡用於osd之間的通信

參考:

ceph-硬件配置

ceph 硬件選型、性能調優

1、應用場景挑選

  • IOPS低延遲——塊存儲
  • 吞吐量優先——塊存儲、文件系統、對象存儲
  • 大存儲量——對象存儲、文件系統

2、硬件選型建議與調優

  • CPU:一個OSD進程分配一個CPU核【((cpu sockets * cpu cores per soket * cpu clock speed in GHZ) /No.Of OSD)>=1】

  • 內存:一個OSD進程至少分配1GB,恢復數據時1TB占1GB內存,所以最好是分配2G RAM;節點上有mon和mds進程需要考慮分配2GB以上或更多的內存空間。RAM越高,cephfs性能越好

  • 網卡:大型集群(數十個節點)應使用萬兆網卡。數據恢復和重新平衡期間,網絡很重要,如果有10G的網絡會縮短集群恢復的時間。集群節點內,建議使用雙網卡,考慮分離cilent和cluster網絡

  • 硬盤:SSD做日志盤,10-20GB;建議4個OSD數據盤配一個SSD;SSD選擇:Intel SSD DC S3500 Series。

    在sata/sas ssd上獲取高性能,ssd和osd的比例應該為1:4,也就是說4個OSD數據硬盤可共享一個ssd

    PCIe或者NVMe閃存設備的情況取決也設備性能,ssd和osd壁壘可以達到1:12或者1:18

  • OSD節點密度。osd數據分區Ceph osd節點的密度也是影響集群性能、可用容量和TCO的一個重要因素,一般來說大量的小容量量節點比少量的大容量節點要好

  • BIOS開啟VT和HT;關閉節能;關閉NUMA

3、操作系統調優

  • read_ahead, 通過數據預讀並且記載到隨機訪問內存方式提高磁盤讀操作
  • 最大進程數調整
  • 關閉交換分區
  • SSD的IO調度使用:NOOP 機械的IO調度使用:deadline
  • CPU頻率
  • cgroups——使用cgroup綁定ceph的CPU,以及限制內存

4、網絡調優

  • MTU設置9000
  • 手動設置中斷親和或者使用irqbalance
  • 打開TOE:ethtool -K ens33 tso on
  • RDMA
  • DPDK

5、ceph調優

  • PG數調整【Total_PGs=(Total_numbers_of_OSD * 100) / max_replication_count】

  • client參數

  • OSD參數

  • -recovery tuning參數

Ceph性能優化總結v0.94

配置表2

適用場景:熱數據應用/虛擬化場景

設備 具體配置 數量
CPU Intel Xeon E5-2650 v3 2
內存 64G DDR4 4
OS盤 2.5英寸Intel S3500系列 240GB SSD(RAID1) 2
SSD盤 Intel S3700 400GB 12
萬兆網卡 Intel 雙口萬兆 (含多模模塊) 2

選型考慮

Ceph軟件版本對比

版本號具有三個組成部分xyzx標識釋放周期(例如,模仿為13)。 y標識發布類型:

  • x.0.z-開發版本(面向早期測試者)
  • x.1.z-候選發布版(對於測試集群用戶)
  • x.2.z-穩定/錯誤修正版本(針對用戶)
luminous 12 mimic 13 nautilus 14 Octopus 15
date 2017.10 2018.5 2019.3 2020.3
version 12.2.x 13.2.x 14.2.x 15.2.x
dashboard v1 沒有管理功能 v2 具有基本的管理功能 v2 具備更多的管理功能 Restful-API需要Python3支持
bluestore 支持 穩定支持 穩定支持 有改進和性能提升
kernel 4.4.z 4.9.z 4.9.z 4.14.z 4.9.z 4.14.z CentOS8 4.14以上

注:每一個Ceph社區穩定版本(TLS版本)的發布更新周期一般為當前年份往過去退2年左右,也就是說2020年最新的穩定版本應該為mimic 13版本。生成環境建議使用mimic 13.2.x

Ceph O版本升級概況

硬件選型方案1

以服務器PowerEdge R720為例

設備 配置 數量 說明
CPU Intel Xeon E5-2650 v3/E5-2630v4/E5-2690/Intel Xeon E5-2683 v4 2 英特爾至強系列處理器 每個OSD守護進程分配1 cores
Memory >=64G 每個OSD守護進程分配1G-2G,進程占用和數據遷移恢復占用內存,內存越大越好
OS Disk Intel DC S3500 240GB 2.5英寸 2 RAID1(系統盤鏡像冗余,防止系統盤故障,引發ceph集群問題
OSD Disk Intel DC S4500 1.9TB 2.5英寸 12 NORAID bluestore部署
NIC 千兆網卡+雙口萬兆(多模光纖) 3 1個公網IP+前端網絡(Public Network)+后端網絡(Cluster Network)

注:針 IOPS 密集型場景,全部基於SSD進行構建,保證性能最優的同時並充分發揮bluestore針對於SSD的特性優化,而且利於部署和后期集群的維護,且有效降低運維的難度。另外全閃存的應用場景還必須考慮使用到更高性能的CPU。不過因為全部用SSD固態硬盤部署,預算的硬件成本會很高

硬件選型方案2

設備 配置 數量 說明
CPU Intel Xeon E5-2650 v3/E5-2630v4/E5-2690/Intel Xeon E5-2683 v4 2 英特爾至強系列處理器 每個OSD守護進程分配1 cores
Memory >=64G 每個OSD守護進程分配1G-2G,守護進程和數據遷移恢復占用內存,內存越大越好
OS Disk SSD / HDD 240GB 2.5英寸 2 RAID1(系統盤的鏡像冗余)
SSD Disk Intel DC P3700 2TB (1:12) 2 bulestore日志和高速緩存驅動器;cache pool緩沖存儲池
HDD Disk 4T SAS / SATA HDD 2.5英寸 12 NORAID,用於OSD的數據存儲
NIC 千兆網卡+雙口萬兆(多模光纖) 3 1個公網IP+前端網絡(Public Network)+后端網絡(Cluster Network)

注:針 IOPS 密集型場景,由於使用選擇SSD與HDD混合硬件方案,硬件成本會降低,但是性能上由於是混合硬盤方案,bluestore帶來的性能優化特性可能不會很明顯,還需要考慮混合架構的優化。且使用PCIe物理接口的固態硬盤,后期的硬件更換也是一個問題,也會導致Ceph集群運維難度的大大增加。

硬件選型方案3

設備 配置 數量 說明
CPU Intel Xeon E5-2650 v3/E5-2630v4/E5-2690/Intel Xeon E5-2683 v4 2 英特爾至強系列處理器 每個OSD守護進程分配1 cores
Memory >=64G 每個OSD守護進程分配1G-2G,進程占用和數據遷移恢復占用內存,內存越大越好
OS Disk Intel DC S3500 240GB 2.5英寸 2 RAID1(系統盤鏡像冗余,防止系統盤故障,引發ceph集群問題
HDD Disk 7200轉 4T SAS / SATA HDD 2.5英寸 12 NORAID,組成OSD的數據存儲
NIC 千兆網卡+雙口萬兆(多模光纖) 3 1個公網IP+前端網絡(Public Network)+后端網絡(Cluster Network)

注:以1PB為例,高吞吐量型。OSD全部用HDD部署,系統盤SSD做RAID1保障冗余

硬件選型方案4

設備 配置 數量 說明
CPU Intel Xeon E5-2650 v3/E5-2630v4/E5-2690 2 英特爾至強系列處理器 每個OSD守護進程分配1 cores
Memory >=64G 每個OSD守護進程分配1G-2G,進程占用和數據遷移恢復占用內存,內存越大越好
OS Disk Intel DC S3500 240GB 2.5英寸 2 RAID1(系統盤鏡像冗余,防止系統盤故障,引發ceph集群問題
SSD Disk PCIe/NVMe 4T 2 一塊用於創建cache pool,另一塊分區用於給osd disk分配wal和db
HDD Disk 7200轉 4T SAS / SATA HDD 2.5英寸 12 NORAID,組成data pool。用於OSD的數據存儲
NIC 千兆網卡+雙口萬兆(多模光纖) 3 1個公網IP+前端網絡(Public Network)+后端網絡(Cluster Network)

注:使用混合硬盤方案,SSD 盤組成cache pool,HDD組成data pool。利用SSD性能優勢,還可以用於部署bluestore時指定wal和db,給HDD osd disk提升性能。

硬件選型方案5

數據參考:鯤鵬分布式存儲解決方案

Linux塊層SSD cache方案:Bcache

bcache技術+bluestore引擎提升HDD+SSD混合存儲的最大性能

  • 安裝bcache-tool
  • Linux升級到4.14.x內核
  • 創建后端設備 make-bcache -B /dev/sdx
    • 格式化bcache0
  • 創建前端設備 make-bcache -C /dev/sdx
  • 建立映射關系

bcache配置使用

OSD存儲池啟用壓縮功能

ceph osd pool set compression_

硬件調優

NVMe SSD調優

  • 目的

    為減少數據跨片開銷。

  • 方法

    將NVMe SSD與網卡插在統一Riser卡。

內存插法調優

  • 目的

    內存按1dpc方式插將獲得最佳性能,即將DIMM0插滿,此時內存帶寬最大。

  • 方法

    優先插入DIMM 0,即插入DIMM 000、010、020、030、040、050、100、110、120、130、140、150插槽。三位數字中,第一位代表所屬CPU,第二位代表內存通道,第三位代表DIMM,優先將第三位為0的插槽按內存通道從小到大依次插入。

系統調優

OS配置參數

參數名稱 參數含義 優化建議 配置方法
vm.swappiness swap為系統虛擬內存,使用虛擬內存會導致性能下降,應避免使用。 默認值:60修改完后是否需要重啟:否現象:用到swap時性能明顯下降修改建議:關閉swap內存的使用,將該參數設定為0。 執行命令sudo sysctl vm.swappiness=0
MTU 網卡所能通過的最大數據包的大小,調大后可以減少網絡包的數量以提高效率。 默認值:1500 Bytes修改完后是否需要重啟:否現象:可以通過ip addr命令查看修改建議:網卡所能通過的最大數據包的大小設置為9000 Bytes。 執行命令vi /etc/sysconfig/network-scripts/ifcfg-$(Interface),並增加MTU="9000"****說明:${Interface}為網口名稱。完成后重啟網絡服務。service network restart
pid_max 系統默認的“pid_max”值為32768,正常情況下是夠用的,但跑重量任務時會出現不夠用的情況,最終導致內存無法分配的錯誤。 默認值:32768修改完后是否需要重啟:否現象:通過cat /proc/sys/kernel/pid_max查看修改建議:設置系統可生成最大線程數為4194303。 執行命令echo 4194303 > /proc/sys/kernel/pid_max
file-max “file-max”是設置系統所有進程一共可以打開的文件數量。同時一些程序可以通過setrlimit調用,設置每個進程的限制。如果得到大量使用完文件句柄的錯誤信息,則應該增加這個值。 默認值:13291808修改完后是否需要重啟:否現象:通過cat /proc/sys/fs/file-max查看修改建議:設置系統所有進程一共可以打開的文件數量,設置為cat /proc/meminfo | grep MemTotal | awk '{print $2}' 所查看到的值。 執行命令echo ${file-max} > /proc/sys/fs/file-max****說明:${file-max}為cat /proc/meminfo | grep MemTotal | awk '{print $2}' 所查看到的值。
read_ahead Linux的文件預讀readahead,指Linux系統內核將指定文件的某區域預讀進頁緩存起來,便於接下來對該區域進行讀取時,不會因缺頁(page fault)而阻塞。鑒於從內存讀取比從磁盤讀取要快很多,預讀可以有效的減少磁盤的尋道次數和應用程序的I/O等待時間,是改進磁盤讀I/O性能的重要優化手段之一。 默認值:128 kb修改完后是否需要重啟:否現象:預讀可以有效的減少磁盤的尋道次數和應用程序的I/O等待時間。通過/sbin/blockdev --getra /dev/sdb查看修改建議:通過數據預讀並且記載到隨機訪問內存方式提高磁盤讀操作,調整為8192 kb。 執行命令/sbin/blockdev --setra /dev/sdb****說明:此處以“/dev/sdb”為例,對所有服務器上的所有數據盤都要修改。
I/O Scheduler Linux I/O 調度器是Linux內核中的一個組成部分,用戶可以通過調整這個調度器來優化系統性能。 默認值:CFQ修改完后是否需要重啟:否現象:要根據不同的存儲器來設置Linux I/O 調度器從而達到優化系統性能。修改建議:I/O調度策略,HDD設置為deadline,SSD設置為noop。 執行命令echo deadline > /sys/block/sdb/queue/scheduler****說明:此處以“/dev/sdb”為例,對所有服務器上的所有數據盤都要修改。
nr_requests 在Linux系統中,如果有大量讀請求,默認的請求隊列或許應付不過來,幸好Linux 可以動態調整請求隊列數,默認的請求隊列數存放在“/sys/block/hda/queue/nr_requests”文件中 默認值:128修改完后是否需要重啟:否現象:通過適當的調整nr_requests 參數可以提升磁盤的吞吐量修改建議:調整硬盤請求隊列數,設置為512。 執行命令echo 512 > /sys/block/sdb/queue/nr_requests****說明:此處以“/dev/sdb”為例,對所有服務器上的所有數據盤都要修改。

網絡性能參數調優

注意具體的網卡型號來進行適度調優

  • irqbalance:關閉系統中斷均衡服務;網卡中斷綁核
  • rx_buff
  • ring_buff:增加網卡吞吐量
    • 查看當前buffer大小:ethtool -g <網卡名稱>
    • 調整buffer大小:ethtool -G rx 4096 tx 4096
  • 打開網卡lro功能

網卡中斷綁核的步驟

# 查詢網卡歸屬於哪個numa節點
cat /sys/class/net/<網口名>/device/numa_node

# lscpu命令查詢該numa節點對應哪些CPU core

# 查看網卡中斷號
cat /proc/interrupts | grep <網口名> | awk -F ':' '{print $1}'

# 將軟中斷綁定到該numa節點對應的core上
echo <core編號> > /proc/irq/<中斷號>/smp_affinity_list

注:NUMA的功能最好一開始就在BIOS設置中關閉,可減少不必要的綁核操作!

Ceph調優

Ceph配置調優

ceph.conf

[global]#全局設置
fsid = xxxxxxxxxxxxxxx                           #集群標識ID 
mon host = 10.0.1.1,10.0.1.2,10.0.1.3            #monitor IP 地址
auth cluster required = cephx                    #集群認證
auth service required = cephx                           #服務認證
auth client required = cephx                            #客戶端認證
osd pool default size = 3                             #最小副本數 默認是3
osd pool default min size = 1                           #PG 處於 degraded 狀態不影響其 IO 能力,min_size是一個PG能接受IO的最小副本數
public network = 10.0.1.0/24                            #公共網絡(monitorIP段) 
cluster network = 10.0.2.0/24                           #集群網絡
max open files = 131072                                 #默認0#如果設置了該選項,Ceph會設置系統的max open fds
mon initial members = node1, node2, node3               #初始monitor (由創建monitor命令而定)
##############################################################
[mon]
mon data = /var/lib/ceph/mon/ceph-$id
mon clock drift allowed = 1                             #默認值0.05#monitor間的clock drift
mon osd min down reporters = 13                         #默認值1#向monitor報告down的最小OSD數
mon osd down out interval = 600      #默認值300      #標記一個OSD狀態為down和out之前ceph等待的秒數
##############################################################
[osd]
osd data = /var/lib/ceph/osd/ceph-$id
osd journal size = 20000 #默認5120                      #osd journal大小
osd journal = /var/lib/ceph/osd/$cluster-$id/journal #osd journal 位置
osd mkfs type = xfs                                     #格式化系統類型
osd max write size = 512 #默認值90                   #OSD一次可寫入的最大值(MB)
osd client message size cap = 2147483648 #默認值100    #客戶端允許在內存中的最大數據(bytes)
osd deep scrub stride = 131072 #默認值524288         #在Deep Scrub時候允許讀取的字節數(bytes)
osd op threads = 16 #默認值2                         #並發文件系統操作數
osd disk threads = 4 #默認值1                        #OSD密集型操作例如恢復和Scrubbing時的線程
osd map cache size = 1024 #默認值500                 #保留OSD Map的緩存(MB)
osd map cache bl size = 128 #默認值50                #OSD進程在內存中的OSD Map緩存(MB)
osd mount options xfs = "rw,noexec,nodev,noatime,nodiratime,nobarrier" #默認值rw,noatime,inode64  #Ceph OSD xfs Mount選項
osd recovery op priority = 2 #默認值10              #恢復操作優先級,取值1-63,值越高占用資源越高
osd recovery max active = 10 #默認值15              #同一時間內活躍的恢復請求數 
osd max backfills = 4  #默認值10                  #一個OSD允許的最大backfills數
osd min pg log entries = 30000 #默認值3000           #修建PGLog是保留的最大PGLog數
osd max pg log entries = 100000 #默認值10000         #修建PGLog是保留的最大PGLog數
osd mon heartbeat interval = 40 #默認值30            #OSD ping一個monitor的時間間隔(默認30s)
ms dispatch throttle bytes = 1048576000 #默認值 104857600 #等待派遣的最大消息數
objecter inflight ops = 819200 #默認值1024           #客戶端流控,允許的最大未發送io請求數,超過閥值會堵塞應用io,為0表示不受限
osd op log threshold = 50 #默認值5                  #一次顯示多少操作的log
osd crush chooseleaf type = 0 #默認值為1              #CRUSH規則用到chooseleaf時的bucket的類型
filestore xattr use omap = true                         #默認false#為XATTRS使用object map,EXT4文件系統時使用,XFS或者btrfs也可以使用
filestore min sync interval = 10                        #默認0.1#從日志到數據盤最小同步間隔(seconds)
filestore max sync interval = 15                        #默認5#從日志到數據盤最大同步間隔(seconds)
filestore queue max ops = 25000                        #默認500#數據盤最大接受的操作數
filestore queue max bytes = 1048576000      #默認100   #數據盤一次操作最大字節數(bytes
filestore queue committing max ops = 50000 #默認500     #數據盤能夠commit的操作數
filestore queue committing max bytes = 10485760000 #默認100 #數據盤能夠commit的最大字節數(bytes)
filestore split multiple = 8 #默認值2                  #前一個子目錄分裂成子目錄中的文件的最大數量
filestore merge threshold = 40 #默認值10               #前一個子類目錄中的文件合並到父類的最小數量
filestore fd cache size = 1024 #默認值128              #對象文件句柄緩存大小
filestore op threads = 32  #默認值2                    #並發文件系統操作數
journal max write bytes = 1073714824 #默認值1048560    #journal一次性寫入的最大字節數(bytes)
journal max write entries = 10000 #默認值100         #journal一次性寫入的最大記錄數
journal queue max ops = 50000  #默認值50            #journal一次性最大在隊列中的操作數
journal queue max bytes = 10485760000 #默認值33554432   #journal一次性最大在隊列中的字節數(bytes)
##############################################################
[client]
rbd cache = true #默認值 true      #RBD緩存
rbd cache size = 335544320 #默認值33554432           #RBD緩存大小(bytes)
rbd cache max dirty = 134217728 #默認值25165824      #緩存為write-back時允許的最大dirty字節數(bytes),如果為0,使用write-through
rbd cache max dirty age = 30 #默認值1                #在被刷新到存儲盤前dirty數據存在緩存的時間(seconds)
rbd cache writethrough until flush = false #默認值true  #該選項是為了兼容linux-2.6.32之前的virtio驅動,避免因為不發送flush請求,數據不回寫
              #設置該參數后,librbd會以writethrough的方式執行io,直到收到第一個flush請求,才切換為writeback方式。
rbd cache max dirty object = 2 #默認值0              #最大的Object對象數,默認為0,表示通過rbd cache size計算得到,librbd默認以4MB為單位對磁盤Image進行邏輯切分
      #每個chunk對象抽象為一個Object;librbd中以Object為單位來管理緩存,增大該值可以提升性能
rbd cache target dirty = 235544320 #默認值16777216    #開始執行回寫過程的臟數據大小,不能超過 rbd_cache_max_dirty

PG分布調優

參數名稱 參數說明 優化建議
pg_num Total PGs = (Total_number_of_OSD * 100) / max_replication_count,得出的結果向上取到最近的2的整數次冪。 默認值:8修改完后是否需要重啟:否現象:pg數量太少的話會有warning提示。修改建議:根據計算公式具體計算得到的值
pgp_num pgp數量設置為與pg相同。 默認值:8修改完后是否需要重啟:否現象:pgp數量建議與pg數量相同修改建議:根據計算公式具體計算得到的值
ceph balancer mode 使能balancer均衡器插件,並設置均衡器插件模式為“upmap”。 默認值:none修改完后是否需要重啟:否現象:若PG數量不均衡會出現個別OSD負載較大而成為瓶頸。修改建議:upmap

OSD綁核

在BIOS關閉NUMA,可跳過此步驟 https://blog.csdn.net/qq_34065508/article/details/103358812

綁核方法:

  • numactl
  • cgroup
  • taskset

Bcache使能調優

Bcache是Linux內核塊層cache,它使用SSD來作為HDD硬盤的cache,從而起到加速作用。Bcache內核模塊需要重新編譯內核使能。

zlib硬件加速調優

硬件選型方案6

計算 CentOS7 最新版 存儲 CentOS8 最新版

硬件推薦列表

計算節點: R630 雙CPU 1系統盤

存儲節點內存根據所配容量計算 每TB容量2GB內存 + 16GB緩存 1系統盤

存儲節點3.5(SAS/SATA): R730/R720 (單CPU適用SATA/雙CPU適用於多NVME高性能)
存儲節點2.5(SATA/U2): R630(10盤位 SATAx6 U2x4)

硬盤推薦

HDD(企業級): 希捷或西數HDD
SATA-SSD(企業級): 英特爾S3610/S3710(MLC) 三星PM883 鎂光5200MAX
高性能 U2(可做存儲盤): 英特爾P4600/P4500/P3700/P3600/P3500 三星PM963
高性能 PCI-E NVME(可做緩存盤): 傲騰905P/900P 英特爾/P4700/P3700 三星1725a/1725b

網卡:Mellanox ConnectX-3(支持RDMA)

計算節點

雲平台,給客戶虛擬機提供計算資源

節點數量:三台

硬件 配置
服務器 Dell R730
CPU E5-2650 v3 * 2
內存 128GB
硬盤 系統盤(RAID1) + 對接后端的Ceph分布式存儲
網卡 40G ib網卡(存儲管理網絡) + G口板載網卡雙綁(出口網絡)
OS CentOS 7 最新版本
Kernel 默認內核

存儲節點

對接雲平台,提供分布式存儲

節點數量:三台

硬件 配置
服務器 Dell R630
CPU E5-2609 v3 * 2
內存 128GB
硬盤 系統盤(RAID1) + SSD(NVMe/PCI-E/SATA3) + HDD(SAS) 2.5英寸
網卡 40G萬兆 ib網卡 * 2 (前端管理網絡+后端存儲網絡)+ 公網IP * 1
OS CentOS 7 最新版本
Kernel 默認內核
Ceph v14.2.10 (nautilus) OSD+MON+MDS+MGR

三節點,三副本

方案一:Bluestore-Bluefs(block_db+block_wal) + HDD數據盤

intel DC S3700/S3710 * 1(400G) 【¥3000】 + 5 * HDD(2T) 【¥2000】

total:10T

方案二:SSD做cache池 + Bluestore-Bluefs(block_db+block_wal) + HDD數據盤做volume池

intel DC S4600/S4500 * 2 (480G) 【¥2000】 + intel DC S3700/S3710(200G) 【¥3000】* 1 + 3 * HDD(2T) 【¥2000】

total:cache(1T)+volume(6T)

方案三:純HDD數據盤

DeLL SAS HDD(2T) * 6 【¥2000】

total:12T

方案四:純SSD數據盤

intel DC S4600/S4500 * 6 (480G) 【¥2000】

total:2.4T


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM