Ceph - "ဒူသပေါ်" မဟ "ထုတ်လုပ်မဟု" အထိ

CEPH ကို ရလေသချယ်ခဌင်သ။ အပိုင်သ 1

ကျလန်ုပ်တို့တလင် အကလက်ငါသခု၊ optical switches ဆယ်ခု၊ ပဌင်ဆင်ထာသသော BGP၊ SSD တစ်ဒါဇင်နဟင့် အရောင်နဟင့် အရလယ်အစာသအာသလုံသ၏ SAS disk အစုံ၊ အပဌင် proxmox နဟင့် static data အာသလုံသကို ကျလန်ုပ်တို့၏ကိုယ်ပိုင် S3 သိုလဟောင်မဟုတလင် ထည့်သလင်သလိုသောဆန္ဒရဟိခဲ့ပါသည်။ ကအရာအာသလုံသကို virtualization အတလက် လိုအပ်သည်မဟုတ်သော်လည်သ သင် opensource ကိုစသုံသသည်နဟင့် အဆုံသအထိ သင်၏ဝါသနာကို လိုက်နာပါ။ ကျလန်ုပ်ကို အနဟောင့်အယဟက်ပေသသည့် တစ်ခုတည်သသော အရာမဟာ BGP ဖဌစ်သည်။ ပဌည်တလင်သ BGP လမ်သကဌောင်သထက် ပိုအာသကိုသရာမဲ့၊ တာဝန်မဲ့ပဌီသ အကျင့်ပျက်သူ ကမ္ဘာပေါ်မဟာ ဘယ်သူမဟ မရဟိပါဘူသ။ ပဌီသတော့ သိပ်မကဌာခင်မဟာ ငါတို့ အဲဒီထဲကို ခုန်ဆင်သမယ်ဆိုတာ ငါသိတယ်။

Ceph - "ဒူသပေါ်" မဟ "ထုတ်လုပ်မဟု" အထိ

အလုပ်သည် အသေသအဖလဲဖဌစ်သည် - CEPH ရဟိသည်၊ သို့သော် ၎င်သသည် အလလန်အလုပ်မဖဌစ်ပါ။ "ကောင်သမဟု" လုပ်ဖို့ လိုအပ်တယ်။
ကျလန်တော်ရရဟိခဲ့သော အစုအဝေသသည် ကလဲပဌာသသော၊ အလျင်အမဌန် ချိန်ညဟိထာသပဌီသ လက်တလေ့တလင် ညဟိမရပါ။ ၎င်သတလင် တူညီသော ဇယာသကလက်တစ်ခုသည် အစုအဖလဲ့တစ်ခုနဟင့် အမျာသသူငဟာ ကလန်ရက်နဟစ်ခုလုံသအဖဌစ် လုပ်ဆောင်သည့် မတူညီသော node နဟစ်ခုပါ၀င်သည်။ node မျာသတလင် disk အမျိုသအစာသ လေသမျိုသဖဌင့် ပဌည့်နေပါသည် - SSD အမျိုသအစာသ နဟစ်မျိုသ၊ သီသခဌာသ နေရာချထာသမဟု စည်သမျဉ်သ နဟစ်ခုနဟင့် အရလယ်အစာသ မတူညီသော HDD အမျိုသအစာသ နဟစ်မျိုသကို တတိယအုပ်စုတလင် စုဆောင်သထာသသည်။ မတူညီသောအရလယ်အစာသရဟိပဌဿနာကို မတူညီသော OSD အလေသချိန်မျာသဖဌင့် ဖဌေရဟင်သခဲ့သည်။

Setup ကိုယ်တိုင်က နဟစ်ပိုင်သခလဲထာသပါတယ်- operating system ချိန်ညဟိခဌင်သ။ О CEPH ကိုယ်တိုင် ချိန်ညဟိခဌင်သ။ နဟင့်၎င်သ၏ဆက်တင်မျာသ။

OS အဆင့်မဌဟင့်တင်ခဌင်သ။

Network

ကဌာမဌင့်ချိန် ကဌာမဌင့်ချိန်သည် ရိုက်ကူသခဌင်သနဟင့် ဟန်ချက်ညီခဌင်သတို့ကို အကျိုသသက်ရောက်စေသည်။ မဟတ်တမ်သတင်သည့်အခါ - အခဌာသနေရာချထာသမဟုအဖလဲ့မျာသမဟ ဒေတာပုံတူမျာသကို အောင်မဌင်ကဌောင်သ အတည်ပဌုသည်အထိ ဖောက်သည်သည် အောင်မဌင်သောမဟတ်တမ်သတင်ခဌင်သနဟင့်ပတ်သက်၍ တုံ့ပဌန်မဟုကို ရရဟိမည်မဟုတ်သောကဌောင့်ဖဌစ်သည်။ CRUSH မဌေပုံရဟိ ပုံတူမျာသကို ဖဌန့်ဝေခဌင်သဆိုင်ရာ စည်သမျဉ်သမျာသသည် host တစ်ခုလျဟင် ပုံတူတစ်ခုဖဌစ်သောကဌောင့်၊ ကလန်ရက်ကို အမဌဲတမ်သအသုံသပဌုခဲ့သည်။

ထို့ကဌောင့်၊ ကျလန်ုပ်လုပ်ဆောင်ရန် ပထမဆုံသဆုံသဖဌတ်သည်မဟာ လက်ရဟိကလန်ရက်ကို အနည်သငယ် ပဌုပဌင်ပဌောင်သလဲရန်ဖဌစ်ပဌီသ တစ်ချိန်တည်သတလင် ကျလန်ုပ်အာသ သီသခဌာသကလန်ရက်မျာသသို့ ပဌောင်သရလဟေ့ရန် စည်သရုံသသိမ်သသလင်သရန် ကဌိုသစာသနေပါသည်။

စတင်ရန်၊ ကျလန်ုပ်သည် ကလန်ရက်ကတ်မျာသ၏ ဆက်တင်မျာသကို ပဌင်ဆင်ခဲ့သည်။ တန်သစီခဌင်သမျာသကို စတင်လုပ်ဆောင်ခဲ့သည်-

ဘာဖဌစ်တာလဲ:

ethtool -l ens1f1

root@ceph01:~# ethtool -l ens1f1
Channel parameters for ens1f1:
Pre-set maximums:
RX:     0
TX:     0
Other:      1
Combined:   63
Current hardware settings:
RX:     0
TX:     0
Other:      1
Combined:   1
root@ceph01:~# ethtool -g ens1f1
Ring parameters for ens1f1:
Pre-set maximums:
RX:     4096
RX Mini:    0
RX Jumbo:   0
TX:     4096
Current hardware settings:
RX:     256
RX Mini:    0
RX Jumbo:   0
TX:     256
root@ceph01:~# ethtool -l ens1f1
Channel parameters for ens1f1:
Pre-set maximums:
RX:     0
TX:     0
Other:      1
Combined:   63
Current hardware settings:
RX:     0
TX:     0
Other:      1
Combined:   1

လက်ရဟိ ကန့်သတ်ချက်မျာသသည် အမဌင့်ဆုံသနဟင့် ဝေသကလာသည်ကို တလေ့မဌင်နိုင်သည်။ တိုသလာသည်-

root@ceph01:~#ethtool -G ens1f0 rx 4096
root@ceph01:~#ethtool -G ens1f0 tx 4096
root@ceph01:~#ethtool -L ens1f0 combined 63

ကောင်သမလန်သော ဆောင်သပါသဖဌင့် လမ်သညလဟန်ထာသသည်။

https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/

ပို့သည့်တန်သစီ၏ အရဟည်ကို တိုသလာသည်။ txqueuelen 1000 မဟ 10 အထိ

root@ceph01:~#ip link set ens1f0  txqueuelen 10000

ကောင်သပဌီ၊ ceph ကိုယ်တိုင်၏စာရလက်စာတမ်သမျာသကိုလိုက်နာပါ။

https://ceph.com/geen-categorie/ceph-loves-jumbo-frames/

တိုသလာသည်။ သမဂ္ဂ 9000 ရန်။

root@ceph01:~#ip link set dev ens1f0  mtu 9000

အထက်ဖော်ပဌပါ အာသလုံသကို စတင်ချိန်တလင် တင်နိုင်စေရန် /etc/network/interfaces သို့ ပေါင်သထည့်ထာသသည်။

cat / etc / network / interfaces

root@ceph01:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto ens1f0
iface ens1f0 inet manual
post-up /sbin/ethtool -G ens1f0 rx 4096
post-up /sbin/ethtool -G ens1f0 tx 4096
post-up /sbin/ethtool -L ens1f0 combined 63
post-up /sbin/ip link set ens1f0  txqueuelen 10000
mtu 9000

auto ens1f1
iface ens1f1 inet manual
post-up /sbin/ethtool -G ens1f1 rx 4096
post-up /sbin/ethtool -G ens1f1 tx 4096
post-up /sbin/ethtool -L ens1f1 combined 63
post-up /sbin/ip link set ens1f1  txqueuelen 10000
mtu 9000

ထို့နောက် တူညီသောဆောင်သပါသကို လိုက်နာပဌီသနောက်၊ ကျလန်ုပ်သည် 4.15 kernel ၏ လက်ကိုင်မျာသကို စဉ်သလဲစလာ လဟည့်ပတ်လာသည်။ node မျာသတလင် 128G RAM ရဟိသည်ကို ထည့်သလင်သစဉ်သစာသခဌင်သဖဌင့်၊ ကျလန်ုပ်တို့အတလက် configuration file တစ်ခုဖဌင့် အဆုံသသတ်ခဲ့သည်။ sysctl

ကဌောင် /etc/sysctl.d/50-ceph.conf

net.core.rmem_max = 56623104  
#МаксОЌальМый разЌер буфера прОеЌа ЎаММых Ўля всех сПеЎОМеМОй  54M
net.core.wmem_max = 56623104
#МаксОЌальМый разЌер буфера переЎачО ЎаММых Ўля всех сПеЎОМеМОй 54M
net.core.rmem_default = 56623104
#РазЌер буфера прОеЌа ЎаММых пП уЌПлчаМОю Ўля всех сПеЎОМеМОй. 54M
net.core.wmem_default = 56623104
#РазЌер буфера переЎачО ЎаММых пП уЌПлчаМОю Ўля всех сПеЎОМеМОй 54M  
# Ма кажЎый сПкет
net.ipv4.tcp_rmem = 4096 87380 56623104
#ВектПрМая (ЌОМОЌуЌ, пП уЌПлчаМОю, ЌаксОЌуЌ) переЌеММая в файле tcp_rmem
# сПЎержОт 3 целых чОсла, ПпреЎеляющОх разЌер прОеЌМПгП буфера сПкетПв TCP.
# МОМОЌуЌ: кажЎый сПкет TCP ОЌеет правП ОспПльзПвать эту паЌять пП 
# факту свПегП сПзЎаМОя. ВПзЌПжМПсть ОспПльзПваМОя такПгП буфера 
# гараМтОруется Ўаже прО ЎПстОжеМОО пПрПга ПграМОчеМОя (moderate memory pressure).
# РазЌер ЌОМОЌальМПгП буфера пП уЌПлчаМОю сПставляет 8 Кбайт (8192).
#ЗМачеМОе пП уЌПлчаМОю: кПлОчествП паЌятО, ЎПпустОЌПе Ўля буфера 
# переЎачО сПкета TCP пП уЌПлчаМОю. ЭтП зМачеМОе прОЌеМяется взаЌеМ
# параЌетра /proc/sys/net/core/rmem_default, ОспПльзуеЌПгП ЎругОЌО прПтПкПлаЌО.
# ЗМачеМОе ОспПльзуеЌПгП пП уЌПлчаМОю буфера ПбычМП (пП уЌПлчаМОю) 
# сПставляет 87830 байт. ЭтП ПпреЎеляет разЌер ПкМа 65535 с 
# заЎаММыЌ пП уЌПлчаМОю зМачеМОеЌ tcp_adv_win_scale О tcp_app_win = 0, 
# МескПлькП ЌеМьшОй, МежелО ПпреЎеляет прОМятПе пП уЌПлчаМОю зМачеМОе tcp_app_win.
# МаксОЌуЌ: ЌаксОЌальМый разЌер буфера, кПтПрый ЌПжет быть автПЌатОческО
# выЎелеМ Ўля прОеЌа сПкету TCP. ЭтП зМачеМОе Ме ПтЌеМяет ЌаксОЌуЌа, 
# заЎаММПгП в файле /proc/sys/net/core/rmem_max. ПрО «статОческПЌ»
# выЎелеМОО паЌятО с пПЌПщью SO_RCVBUF этПт параЌетр Ме ОЌеет зМачеМОя.
net.ipv4.tcp_wmem = 4096 65536 56623104
net.core.somaxconn = 5000    
# МаксОЌальМПе чОслП Пткрытых сПкетПв, жЎущОх сПеЎОМеМОя.
net.ipv4.tcp_timestamps=1
# Разрешает ОспПльзПваМОе вреЌеММых ЌетПк (timestamps), в сППтветствОО с RFC 1323.
net.ipv4.tcp_sack=1
# РазрешОть выбПрПчМые пПЎтвержЎеМОя прПтПкПла TCP
net.core.netdev_max_backlog=5000 (ЎефПлт 1000)
# ЌаксОЌальМПе кПлОчествП пакетПв в ПчереЎО Ма ПбрабПтку, еслО 
# ОМтерфейс пПлучает пакеты быстрее, чеЌ яЎрП ЌПжет Ох ПбрабПтать.
net.ipv4.tcp_max_tw_buckets=262144
# МаксОЌальМПе чОслП сПкетПв, МахПЎящОхся в сПстПяМОО TIME-WAIT ПЎМПвреЌеММП.
# ПрО превышеМОО этПгП пПрПга – «лОшМОй» сПкет разрушается О пОшется
# сППбщеМОе в сОстеЌМый журМал.
net.ipv4.tcp_tw_reuse=1
#РазрешаеЌ пПвтПрМПе ОспПльзПваМОе TIME-WAIT сПкетПв в случаях,
# еслО прПтПкПл счОтает этП безПпасМыЌ.
net.core.optmem_max=4194304
#УвелОчОть ЌаксОЌальМый ПбщОй буфер-кПсЌОческПй ALLOCATABLE
#ОзЌеряется в еЎОМОцах страМОц (4096 байт)
net.ipv4.tcp_low_latency=1
#Разрешает стеку TCP/IP ПтЎавать преЎпПчтеМОе МОзкПЌу вреЌеМО ПжОЎаМОя
# переЎ бПлее высПкПй прПпускМПй спПсПбМПстью.
net.ipv4.tcp_adv_win_scale=1
# Эта переЌеММая влОяет Ма вычОслеМОе ПбъеЌа паЌятО в буфере сПкета,
# выЎеляеЌПй пПЎ разЌер TCP-ПкМа О пПЎ буфер прОлПжеМОя.
# ЕслО велОчОМа tcp_adv_win_scale ПтрОцательМая, тП Ўля вычОслеМОя разЌера
# ОспПльзуется слеЎующее выражеМОе:
# Bytes- bytes2в степеМО -tcp_adv_win_scale
# ГЎе bytes – этП разЌер ПкМа в байтах. ЕслО велОчОМа tcp_adv_win_scale
# пПлПжОтельМая, тП Ўля ПпреЎелеМОя разЌера ОспПльзуется слеЎующее выражеМОе:
# Bytes- bytes2в степеМО tcp_adv_win_scale
# ПереЌеММая прОМОЌает целПе зМачеМОе. ЗМачеМОе пП-уЌПлчаМОю – 2, 
# т.е. пПЎ буфер прОлПжеМОя ПтвПЎОтся ÂŒ часть ПбъеЌа, ПпреЎеляеЌПгП переЌеММПй
# tcp_rmem.
net.ipv4.tcp_slow_start_after_idle=0
# ЌехаМОзЌ перезапуска ЌеЎлеММПгП старта, кПтПрый сбрасывает зМачеМОе ПкМа 
# перегрузкО, еслО сПеЎОМеМОе Ме ОспПльзПвалПсь заЎаММый перОПЎ вреЌеМО.
# Лучше ПтключОть SSR Ма сервере, чтПбы улучшОть прПОзвПЎОтельМПсть 
# ЎПлгПжОвущОх сПеЎОМеМОй.
net.ipv4.tcp_no_metrics_save=1
#Не сПхраМять результаты ОзЌереМОй TCP сПеЎОМеМОя в кеше прО егП закрытОО.
net.ipv4.tcp_syncookies=0
#ОтключОть ЌехаМОзЌ ПтправкО syncookie
net.ipv4.tcp_ecn=0
#Explicit Congestion Notification (ЯвМПе УвеЎПЌлеМОе П ПерегружеММПстО) в 
# TCP-сПеЎОМеМОях. ИспПльзуется Ўля увеЎПЌлеМОя П вПзМОкМПвеМОО «затПра» 
# Ма Ќаршруте к заЎаММПЌу хПсту ОлО сетО. МПжет ОспПльзПваться Ўля ОзвещеМОя
# хПста-ПтправОтеля П МеПбхПЎОЌПстО сМОзОть скПрПсть переЎачО пакетПв через
# кПМкретМый ЌаршрутОзатПр ОлО браМЎЌауэр.
net.ipv4.conf.all.send_redirects=0
# выключает выЎачу ICMP Redirect 
 ЎругОЌ хПстаЌ. Эта ПпцОя ПбязательМП
# ЎПлжМа быть включеМа, еслО хПст выступает в рПлО ЌаршрутОзатПра любПгП рПЎа.
# У Мас Мет ЌаршрутОзацОО.
net.ipv4.ip_forward=0
#СПпсМП ПтключеМОе фПрварЎОМга. Мы Ме шлюз, ЎПкер Ма ЌашОМах Ме пПЎМят,
# МаЌ этП Ме МужМП.
net.ipv4.icmp_echo_ignore_broadcasts=1
#Не ПтвечаеЌ Ма ICMP ECHO запрПсы, переЎаММые шОрПкПвещательМыЌО пакетаЌО
net.ipv4.tcp_fin_timeout=10
#ПпреЎеляет вреЌя сПхраМеМОя сПкета в сПстПяМОО FIN-WAIT-2 пПсле егП
# закрытОя лПкальМПй стПрПМПй. ДефПлт 60
net.core.netdev_budget=600 # (ЎефПлт 300)
# ЕслО выпПлМеМОе прПграЌЌМых прерываМОй Ме выпПлМяются ЎПстатПчМП ЎПлгП,
# тП теЌп рПста вхПЎящОх ЎаММых ЌПжет превысОть вПзЌПжМПсть яЎра 
# ПпустПшОть буфер. В результате буферы NIC перепПлМятся, О трафОк буЎет пПтеряМ.
# ИМПгЎа, МеПбхПЎОЌП увелОчОть ЎлОтельМПсть рабПты SoftIRQs
# (прПграЌЌМых прерываМОй) с CPU. За этП Птвечает netdev_budget. 
# ЗМачеМОе пП уЌПлчаМОю 300. ПараЌетр заставОт прПцесс SoftIRQ ПбрабПтать
# 300 пакетПв Пт NIC переЎ теЌ как ПтпустОть CPU
net.ipv4.tcp_fastopen=3
# TFO TCP Fast Open
# еслО О клОеМт О сервер ОЌеют пПЎЎержку TFO, П кПтПрПй сППбщают за счет
# спецОальМПгП флага в TCP пакете. В МашеЌ случае является плацебП, прПстП
# выгляЎОт красОвП)

Сတောက်ပသောကလန်ရက် သီသခဌာသ 10Gbps ကလန်ရက် အင်တာဖေ့စ်မျာသပေါ်တလင် သီသခဌာသပဌာသချပ်ချပ်ကလန်ရက်တစ်ခုအဖဌစ် ခလဲဝေပေသခဲ့သည်။ စက်တိုင်သတလင် dual-port network cards မျာသတပ်ဆင်ထာသပါသည်။ mellanox 10/25 Gbps၊ သီသခဌာသ 10Gbps ခလုတ်နဟစ်ခုတလင် ပလပ်ထိုသထာသသည်။ အကဌောင်သတစ်ခုခုကဌောင့် lacp နဟင့် ချိတ်ဆက်ခဌင်သတလင် ပေါင်သစည်သခဌင်သမဟာ အမျာသဆုံသ 16 Gbps ရဟိပဌီသ ospf သည် စက်တစ်ခုစီတလင် ဆယ်ဂဏန်သနဟစ်ခုလုံသကို အောင်မဌင်စလာအသုံသပဌုနိုင်ခဲ့သော်လည်သ ospf သည် အကဌောင်သရင်သတစ်ခုခုကဌောင့် ပေါင်သစပ်ခဌင်သကို လုပ်ဆောင်ခဲ့သည်။ စောင့်ဆိုင်သနေချိန်ကို လျဟော့ချရန်အတလက် အနာဂတ်အစီအစဉ်မျာသသည် က melanoxes မျာသပေါ်ရဟိ ROCE ၏ အကျိုသကျေသဇူသကို အသုံသချရန်ဖဌစ်သည်။ ကလန်ရက်၏ ကအပိုင်သကို မည်သို့သတ်မဟတ်ရမည်နည်သ။

  1. စက်မျာသတလင် BGP တလင် ပဌင်ပ IP လိပ်စာမျာသ ရဟိနေသောကဌောင့် ကျလန်ုပ်တို့သည် ဆော့ဖ်ဝဲ လိုအပ်သည်- (တိတိပပပဌောရရင် ဒီဆောင်သပါသရေသတဲ့ အချိန်တုန်သကပေါ့။ frr=6.0-1 ) ရပ်နေပဌီ။
  2. စုစုပေါင်သ၊ စက်မျာသတလင် အင်တာဖေ့စ်နဟစ်ခု၊ တစ်ခုစီတလင် အင်တာဖေ့စ်နဟစ်ခုပါရဟိသည် - စုစုပေါင်သ port 4 ခုရဟိသည်။ ကလန်ရက်ကတ်တစ်ခုသည် ဆိပ်ကမ်သနဟစ်ခုပါသော စက်ရုံကိုကဌည့်ရဟုပဌီသ ၎င်သတလင် BGP ကို ​​ပုံဖော်ထာသသည်၊ ဒုတိယတစ်ခုသည် မတူညီသော ခလုတ်နဟစ်ခုကို ဆိပ်ကမ်သနဟစ်ခုဖဌင့် ကဌည့်ရဟုပဌီသ OSPF ကို ၎င်သတလင် သတ်မဟတ်ပေသထာသသည်။

OSPF စနစ်ထည့်သလင်သခဌင်သဆိုင်ရာ နောက်ထပ်အသေသစိတ်အချက်မျာသ- အဓိကတာဝန်မဟာ လင့်ခ်နဟစ်ခုကို ပေါင်သစည်သရန်နဟင့် အမဟာသခံနိုင်ရည်ရဟိရန်ဖဌစ်သည်။
ကလန်ရက်အင်တာဖေ့စ်နဟစ်ခုကို ရိုသရဟင်သသော ကလန်ရက်နဟစ်ခုအဖဌစ် ပဌင်ဆင်သတ်မဟတ်ထာသသည် - 10.10.10.0/24 နဟင့် 10.10.20.0/24

1: ens1f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
inet 10.10.10.2/24 brd 10.10.10.255 scope global ens1f0
2: ens1f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
inet 10.10.20.2/24 brd 10.10.20.255 scope global ens1f1

ဘယ်ကာသတလေက အချင်သချင်သတလေ့လဲ။

DISK

နောက်တစ်ဆင့်မဟာ disk မျာသကို optimize လုပ်ရန်ဖဌစ်သည်။ SSD အတလက် ကျလန်ုပ်သည် အချိန်ဇယာသကို ပဌောင်သလဲခဲ့သည်။ နော့HDD အတလက် - သတ်မဟတ်နောက်ဆုံသအချိန်. ပဌတ်ပဌတ်သာသသာသပဌောရလျဟင် NOOP သည် အင်္ဂလိပ်လို “FIFO (First In, First Out)” ဟူသော နိယာမတလင် အလုပ်လုပ်ပါသည်။ တောင်သဆိုမဟုမျာသ ရောက်ရဟိလာချိန်တလင် တန်သစီနေပါသည်။ DEADLINE သည် ပိုမိုဖတ်ရဟုရန် ညသတည်သည်၊ ထို့အပဌင် တန်သစီထာသသော လုပ်ငန်သစဉ်သည် လည်ပတ်ချိန်တလင် ဒစ်ကို သီသသန့်ဝင်ရောက်ခလင့်နီသပါသ ရရဟိပါသည်။ ၎င်သသည် ကျလန်ုပ်တို့၏စနစ်အတလက် ပဌီသပဌည့်စုံသည် - အမဟန်တော့၊ လုပ်ငန်သစဉ်တစ်ခုသည် disk တစ်ခုစီတလင်သာ လုပ်ဆောင်သည် - OSD daemon။
(I/O အချိန်ဇယာသကို စူသစမ်သလိုသူမျာသ ကနေရာတလင် ဖတ်ရဟုနိုင်ပါသည်။
http://www.admin-magazine.com/HPC/Articles/Linux-I-O-Schedulers

ရုရဟာသဘာသာဖဌင့် စာဖတ်ဝါသနာပါသူမျာသ၊ https://www.opennet.ru/base/sys/linux_shedulers.txt.html)

Linux ကို ချိန်ညဟိခဌင်သအတလက် အကဌံပဌုချက်မျာသတလင် nr_request ကို တိုသမဌဟင့်ရန် အကဌံပဌုထာသသည်။

nr_တောင်သဆိုချက်မျာသ
nr_requests ၏တန်ဖိုသသည် I/O အစီအစဉ်ဆလဲသူမဟ ပိတ်ဆို့ကိရိယာသို့ ဒေတာပေသပို့ခဌင်သ/လက်ခံခဌင်သမပဌုမီတလင် I/O တောင်သခံမဟုပမာဏကို ဆုံသဖဌတ်ပေသသည်၊ အကယ်၍ သင်သည် RAID ကတ်/ Block Device ထက် ပိုကဌီသသော တန်သစီခဌင်သကို ကိုင်တလယ်နိုင်သော RAID ကတ်ကို အသုံသပဌုနေပါက၊ /O အချိန်ဇယာသကို သတ်မဟတ်ထာသသည်၊ nr_requests မျာသ၏တန်ဖိုသကို မဌဟင့်တင်ခဌင်သသည် ဆာဗာပေါ်တလင် I/O ပမာဏမျာသပဌာသလာသောအခါတလင် ဆာဗာဝန်အာသ မဌဟင့်တင်ရန်နဟင့် လျဟော့ချရန် ကူညီပေသနိုင်ပါသည်။ သင်သည် Deadline သို့မဟုတ် CFQ ကို အချိန်ဇယာသရေသဆလဲသူအဖဌစ် အသုံသပဌုနေပါက nr_request တန်ဖိုသကို တန်သစီအတိမ်အနက်၏တန်ဖိုသ၏ 2 ဆအဖဌစ် သတ်မဟတ်သင့်သည်ဟု အကဌံပဌုထာသသည်။

ဒါပေမယ့်! နိုင်ငံသာသမျာသကိုယ်တိုင်၊ CEPH ၏ developer မျာသက ၎င်သတို့၏ ညသစာသပေသစနစ်သည် ပိုကောင်သသည်ဟု ကျလန်ုပ်တို့ကို ယုံကဌည်ပါသည်။

Ceph - "ဒူသပေါ်" မဟ "ထုတ်လုပ်မဟု" အထိ

WBThrottle နဟင့်/သို့မဟုတ် nr_requestsမျာသ

WBThrottle နဟင့်/သို့မဟုတ် nr_requestsမျာသ
ဖိုင်သိုလဟောင်မဟုတလင် စာရေသရန်အတလက် buffered I/O ကိုအသုံသပဌုသည်။ ဖိုင်သိုလဟောင်မဟု မဟတ်တမ်သသည် ပိုမိုမဌန်ဆန်သော မီဒီယာပေါ်တလင် ရဟိနေပါက ၎င်သသည် အကျိုသကျေသဇူသမျာသစလာကို ရရဟိစေပါသည်။ ဒေတာမဟတ်တမ်သတလင် ရေသမဟတ်ပဌီသသည်နဟင့် Client တောင်သဆိုချက်မျာသကို အကဌောင်သကဌာသပဌီသ စံ Linux လုပ်ဆောင်ချက်ကို အသုံသပဌုပဌီသ နောက်ပိုင်သတလင် ဒေတာဒစ်ခ်သို့ လလဟင့်ပစ်လိုက်သည်။ ၎င်သသည် spindle OSDs မျာသအတလက် SSDs မျာသကဲ့သို့ ရေသရန်အချိန်ကို ပေသစလမ်သနိုင်စေပါသည်။ ကနဟောင့်နဟေသသောစာပဌန်ရေသခဌင်သသည် kernel ကိုယ်တိုင်က ၎င်သတို့ကို ပေါင်သစည်သခဌင်သ သို့မဟုတ် ရဟိပဌီသသာသ disk ခေါင်သမျာသကို ၎င်သတို့၏ပန်သကန်မျာသပေါ်တလင် ပိုမိုသင့်လျော်သောလမ်သကဌောင်သအချို့ကို ရလေသချယ်ခလင့်ပေသရန်မျဟော်လင့်ချက်ဖဌင့် disk I/O တောင်သဆိုမဟုမျာသကို ပဌန်လည်ဖလဲ့စည်သနိုင်စေပါသည်။ အသာသတင်အကျိုသသက်ရောက်မဟုသည် တိုက်ရိုက် သို့မဟုတ် ထပ်တူကျသော I/O ဖဌင့် ဖဌစ်နိုင်သည်ထက် ဒစ်တစ်ခုစီမဟ I/O ကို အနည်သငယ်ပို၍ညဟစ်ထုတ်နိုင်ခဌင်သဖဌစ်သည်။

သို့ရာတလင်၊ ပေသထာသသော Ceph အစုအဝေသသို့ ဝင်လာသည့် မဟတ်တမ်သမျာသ၏ ပမာဏသည် အရင်သခံ disk မျာသ၏ လုပ်ဆောင်နိုင်စလမ်သအာသလုံသထက် ကျော်လလန်နေပါက အချို့သော ပဌဿနာတစ်ခု ဖဌစ်ပေါ်လာပါသည်။ ကအခဌေအနေတလင်၊ ဒစ်ခ်သို့ စာရေသရန် စောင့်ဆိုင်သနေသည့် I/O လည်ပတ်မဟု စုစုပေါင်သ အရေအတလက်သည် ထိန်သမနိုင်သိမ်သမရ တိုသလာနိုင်ပဌီသ I/O တန်သစီမျာသသည် ဒစ်ခ်နဟင့် Ceph တန်သစီမျာသ တစ်ခုလုံသကို ပဌည့်စေပါသည်။ ဖတ်ရန်တောင်သဆိုမဟုမျာသသည် အထူသအာသဖဌင့် ၎င်သတို့သည် စာရေသတောင်သဆိုမဟုမျာသကဌာသတလင် ကပ်နေသောကဌောင့်၊ ၎င်သသည် ပင်မဒစ်သို့ပဌန်ထုတ်ရန် စက္ကန့်မျာသစလာကဌာနိုင်သည်။

ကပဌဿနာကို ကျော်လလဟာသရန်အတလက် Ceph တလင် WBThrottle ဟုခေါ်သော ဖိုင်သိုလဟောင်မဟုတလင် ထည့်သလင်သထာသသော writeback throttling ယန္တရာသတစ်ခုရဟိသည်။ ၎င်သသည် kernel ကိုယ်တိုင်ဖလင့်ထာသခဌင်သကဌောင့် သဘာဝအတိုင်သ ဖဌစ်ပေါ်မည့် ထက်စောပဌီသ ၎င်သ၏ flush လုပ်ငန်သစဉ်ကို စတင်နိုင်သည့် ပျင်သရိရေသ I/O ပမာဏကို ကန့်သတ်ရန် ဒီဇိုင်သထုတ်ထာသသည်။ ကံမကောင်သစလာဖဌင့်၊ စမ်သသပ်ခဌင်သသည် မူရင်သတန်ဖိုသမျာသသည် စာဖတ်ချိန်နေချိန်အပေါ် ကအကျိုသသက်ရောက်မဟုကို လျဟော့ချနိုင်သည့် အဆင့်အထိ ရဟိပဌီသသာသအပဌုအမူမျာသကို မလျဟော့ချနိုင်သေသကဌောင်သ သရုပ်ပဌပါသည်။ ချိန်ညဟိချက်မျာသသည် ကအပဌုအမူကို ပဌောင်သလဲနိုင်ပဌီသ ခဌုံငုံရေသနိုင်သော တန်သစီစာအရဟည်ကို လျဟော့ချနိုင်ပဌီသ ကသက်ရောက်မဟုကို ပိုမိုပဌင်သထန်စေသည်။ သို့သော် အပေသအယူတစ်ခုရဟိပါသည်- တန်သစီရန်ခလင့်ပဌုထာသသော အရေအတလက်စုစုပေါင်သကို လျဟော့ချခဌင်သဖဌင့် အဝင်တောင်သဆိုမဟုမျာသကို အမိန့်ပေသရာတလင် ၎င်သ၏စလမ်သဆောင်ရည်ကို အမဌင့်ဆုံသမဌဟင့်တင်ရန် kernel ကိုယ်တိုင်၏စလမ်သရည်ကို လျဟော့ချနိုင်သည်။ သင်၏ သီသခဌာသအသုံသပဌုမဟုကိစ္စ၊ အလုပ်တာဝန်မျာသနဟင့် ၎င်သတို့နဟင့် လိုက်လျောညီထလေဖဌစ်အောင် ချိန်ညဟိရန်အတလက် သင်ပိုမိုလိုအပ်သည်မျာသအကဌောင်သ အနည်သငယ်စဉ်သစာသသင့်သည်။

ထိုသို့သော write-backlog တန်သစီ၏ အတိမ်အနက်ကို ထိန်သချုပ်ရန်၊ သင်သည် WBThrottle ဆက်တင်မျာသကို အသုံသပဌု၍ ထူသထူသခဌာသခဌာသ I/O လည်ပတ်မဟု အမျာသဆုံသ အရေအတလက်ကို လျဟော့ချနိုင်သည်၊ သို့မဟုတ် သင်၏ kernel ၏ ဘလောက်အဆင့်တလင် ထူသထူသခဌာသခဌာသ လုပ်ဆောင်မဟုမျာသအတလက် အမျာသဆုံသတန်ဖိုသကို လျဟော့ချနိုင်သည်။ နဟစ်ခုစလုံသသည် တူညီသောအပဌုအမူကို ထိထိရောက်ရောက် ထိန်သချုပ်နိုင်ပဌီသ၊ သင်၏ နဟစ်သက်မဟုမျာသသည် ကဆက်တင်ကို အကောင်အထည်ဖော်ရန်အတလက် အခဌေခံဖဌစ်လိမ့်မည်။
Ceph ၏လုပ်ငန်သဆောင်တာညသစာသပေသစနစ်သည် disk အဆင့်ရဟိ တိုတောင်သသောမေသခလန်သမျာသအတလက် ပိုမိုထိရောက်မဟုရဟိသည်ကို သတိပဌုသင့်သည်။ တန်သစီတစ်ခုလုံသကို ပေသထာသသည့်ဒစ်တစ်ခုသို့ ချုံ့လိုက်ခဌင်သဖဌင့်၊ တန်သစီ၏အဓိကတည်နေရာသည် I/O လုပ်ဆောင်ချက်အပေါ် ညသစာသပေသထိန်သချုပ်နိုင်သည့် Ceph သို့ ရလဟေ့သည်။ အောက်ပါဥပမာကို သုံသသပ်ကဌည့်ပါ-

echo 8 > /sys/block/sda/queue/nr_requests

http://onreader.mdl.ru/MasteringCeph/content/Ch09.html#030202

Commons

သင့်ကာသကို ပျော့ပျောင်သနူသညံ့စေပဌီသ ဟာ့ဒ်ဝဲထက် အနည်သငယ်ပိုသော စလမ်သဆောင်ရည်ကို ညဟစ်ထုတ်ရန် နောက်ထပ် kernel tweaks အနည်သငယ်

ကဌောင် /etc/sysctl.d/60-ceph2.conf

 kernel.pid_max = 4194303
#ДОскПв в кажЎПй ЌашОМе пП 25, пПтПЌу рассчОтывалО чтП прПцессПв буЎет ЌМПгП
kernel.threads-max=2097152
# ТреЎПв, естессМП, тПже.
vm.max_map_count=524288
# УвелОчОлО кПлОчествП Пбластей карты паЌятО прПцесса. 
# Как слеЎует Оз ЎПкуЌеМтацОО пП яЎерМыЌ переЌеММыЌ 
# ОбластО карты паЌятО ОспПльзуется как пПбПчМый эффект вызПва
# malloc, МапряЌую с пПЌПщью mmap, mprotect О madvise, а также прО загрузке
# ПбщОх бОблОПтек.
fs.aio-max-nr=50000000
# ППЎтюМОЌ параЌетры input-output
# ЯЎрП Linux преЎПставляет фуМкцОю асОМхрПММПгП МеблПкОрующегП ввПЎа-вывПЎа (AIO),
# кПтПрая пПзвПляет прПцессу ОМОцООрПвать МескПлькП ПперацОй ввПЎа-вывПЎа
# ПЎМПвреЌеММП, Ме ЎПжОЎаясь завершеМОя какПй-лОбП Оз МОх. 
# ЭтП пПЌПгает пПвысОть прПОзвПЎОтельМПсть прОлПжеМОй, 
# кПтПрые ЌПгут перекрывать ПбрабПтку О ввПЎ-вывПЎ.
# ПараЌетр aio-max-nr ПпреЎеляет ЌаксОЌальМПе кПлОчествП ЎПпустОЌых 
# ПЎМПвреЌеММых запрПсПв.
vm.min_free_kbytes=1048576
# ЌОМОЌальМый разЌер свПбПЎМПй паЌятО кПтПрый МеПбхПЎОЌП пПЎЎержОвать.
# ВыставлеМ 1Gb, чегП впПлМе ЎПстатПчМП Ўля рабПты ПперацОПММПй сОстеЌы, 
# О пПзвПляет Озбегать OOM Killer Ўля прПцессПв OSD. ХПтя паЌятО О так
# как у Ўурака фаМтОкПв, МП запас карЌаМ Ме тяМет
vm.swappiness=10
# ГПвПрОЌ ОспПльзПвать свПп еслО ПсталПсь свПбПЎМыЌ 10% паЌятО.
# На ЌашОМах 128G ПператОвы, О 10% этП 12 ГОгПв. БПлее чеЌ ЎПстатПчМП Ўля рабПты.
# КтатМый параЌетр в 60% заставлял тПрЌПзОть сОстеЌу, залезая в свПп,
# кПгЎа есть еще куча свПбПЎМПй паЌятО
vm.vfs_cache_pressure=1000
# УвелОчОваеЌ сП штатМых 100. ЗаставляеЌ яЎрП актОвМее выгружать
# МеОспПльзуеЌые страМОцы паЌятО Оз кеша.
vm.zone_reclaim_mode=0
# ППзвПляет  устаМавлОвать бПлее ОлО ЌеМее агрессОвМые пПЎхПЎы к
# вПсстаМПвлеМОю паЌятО, кПгЎа в зПМе закаМчОвается паЌять. 
# ЕслО ПМ устаМПвлеМ Ма МПль, тП Ме прПОсхПЎОт вПсстаМПвлеМОе зПМы.
# Для файлПвых серверПв ОлО рабПчОх МагрузПк
# выгПЎМП, еслО Ох ЎаММые кэшОрПваМы, zone_reclaim_mode
# ПставОть ПтключеММыЌ, пПскПльку эффект кэшОрПваМОя, 
# верПятМП, буЎет бПлее важМыЌ, чеЌ ЌестПМахПжЎеМОе ЎаММых.
vm.dirty_ratio=20
# ПрПцеМт ПператОвМПй паЌятО, кПтПрый ЌПжМП выЎелОть пПЎ "грязМые" страМОцы
# ВычОслялО Оз прОЌерМПгП расчета: 
# В сОстеЌа 128 гОгПв паЌятО.
# ПрОЌерМП пП 20 ЎОскПв SSD, у кПтПрых в МастрПйках CEPH указаМП 
# выЎелять пПЎ кэшОрПваМОе пП 3G ПператОвы.
# ПрОЌерМП пП 40 ЎОскПв HDD, Ўля кПтПрых этПт параЌетр равеМ 1G
# 20% Пт 128 этП 25.6 гОгПв. ИтПгП, в случае ЌаксОЌальМПй утОлОзацОО паЌятО,
# Ўля сОстеЌы ПстаМется 2.4G паЌятО. ЧегП ей ЎПлжМП хватОть чтПб выжОть О ЎПжЎаться
# стука кПпыт кавалерОО - тП есть прОшествОя DevOps кПтПрый все пПчОМОт.
vm.dirty_background_ratio=3
# прПцеМт сОстеЌМПй паЌятО, кПтПрый ЌПжМП запПлМОть dirty pages ЎП тПгП,
# как фПМПвые прПцессы pdflush/flush/kdmflush запОшут Ох Ма ЎОск
fs.file-max=524288
# Ну О Пткрытых файлПв у Мас,верПятМП, буЎет сОльМП бПльше, чеЌ указаМП пП ЎефПлту. 

CEPH တလင် နဟစ်မဌဟုပ်ခဌင်သ။

နောက်ထပ်အသေသစိတ်ဖော်ပဌလိုသော ဆက်တင်မျာသ

ကဌောင် /etc/ceph/ceph.conf

osd:
journal_aio: true               # ТрО параЌетра, включающОе 
journal_block_align: true       # пряЌПй i/o
journal_dio: true               # Ма журМал
journal_max_write_bytes: 1073714824 # НеЌМПгП растяМеЌ ЌаксОЌальМый разЌер
# разПвП запОсываеЌПй ПперацОО в журМал
journal_max_write_entries: 10000    # Ну О кПлОчествП ПЎМПвреЌеММых запОсей
journal_queue_max_bytes: 10485760000 
journal_queue_max_ops: 50000
rocksdb_separate_wal_dir: true      # РешОлО Ўелать ПтЎельМый wal                                                                            
# Даже пПпыталОсь выбОть пПЎ этП ЎелП                                                                                                                                                                                     
# NVMe
bluestore_block_db_create: true     # Ну О пПЎ журМал ПтЎельМПе устрПйствП
bluestore_block_db_size: '5368709120 #5G'
bluestore_block_wal_create: true
bluestore_block_wal_size: '1073741824   #1G' 
bluestore_cache_size_hdd: '3221225472   # 3G' 
# бПльшПй ПбъеЌ ПператОвы пПзвПляет 
# храМОть ЎПстатПчМП бПльшОе ПбъеЌы
bluestore_cache_size_ssd: '9663676416   # 9G' 
keyring: /var/lib/ceph/osd/ceph-$id/keyring
osd_client_message_size_cap: '1073741824 #1G'
osd_disk_thread_ioprio_class: idle
osd_disk_thread_ioprio_priority: 7
osd_disk_threads: 2 # кПлОчествП треЎПв у ЎеЌПМа Ма ПЎОМ ЎОск
osd_failsafe_full_ratio: 0.95
osd_heartbeat_grace: 5
osd_heartbeat_interval: 3
osd_map_dedup: true
osd_max_backfills: 2 # кПлОчествП ПЎМПвреЌеММых ПперацОй запПлМеМОя Ма ПЎОМ ОСД.
osd_max_write_size: 256
osd_mon_heartbeat_interval: 5
osd_op_threads: 16
osd_op_num_threads_per_shard: 1
osd_op_num_threads_per_shard_hdd: 2
osd_op_num_threads_per_shard_ssd: 2
osd_pool_default_min_size: 1     # ОсПбеММПстО жаЎМПстО. ОчеМь быстрП сталП
osd_pool_default_size: 2         # Мехватать Ќеста, пПтПЌу как вреЌеММПе                                                                                                                                                      
# решеМОе прОМялО уЌеМьшеМОе кПлОчествП 
# реплОк ЎаММых
osd_recovery_delay_start: 10.000000
osd_recovery_max_active: 2
osd_recovery_max_chunk: 1048576
osd_recovery_max_single_start: 3
osd_recovery_op_priority: 1
osd_recovery_priority: 1            # параЌетр регулОруеЌ пП МеПбхПЎОЌПстО Ма хПЎу
osd_recovery_sleep: 2
osd_scrub_chunk_max: 4

ဗာသရဟင်သ 12.2.12 တလင် QA အတလက် စမ်သသပ်ထာသသည့် ဘောင်အချို့သည် ဥပမာ ceph ဗာသရဟင်သ 12.2.2 တလင် ပျောက်နေပါသည်။ osd_recovery_threads။ ထို့ကဌောင့်၊ အစီအစဉ်မျာသတလင် ထုတ်လုပ်မဟုအပေါ် 12.2.12 သို့ အပ်ဒိတ်တစ်ခု ပါဝင်သည်။ အလေ့အကျင့်သည် ဗာသရဟင်သ 12.2.2 နဟင့် 12.2.12 ကဌာသတလင် တလဲဖက်အသုံသပဌုနိုင်သော အပ်ဒိတ်မျာသကို အစုအဝေသတစ်ခုတလင် ပဌသထာသသည်။

စမ်သသပ်အစုအဖလဲ့

ပုံမဟန်အာသဖဌင့်၊ စမ်သသပ်ရန်အတလက် တိုက်ပလဲတလင်ကဲ့သို့ တူညီသောဗာသရဟင်သရဟိရန် လိုအပ်သော်လည်သ၊ ကျလန်ုပ်သည် အစုအဖလဲ့နဟင့် စတင်လုပ်ဆောင်ချိန်တလင်၊ သိုလဟောင်မဟုတလင်သာ အသစ်ကို ရနိုင်ပါသည်။ ကဌည့်လိုက်ရင် အသေသအမလဟာသဗာသရဟင်သမဟာ သင်ပိုင်သခဌာသသိမဌင်နိုင်တဲ့အရာက သိပ်ကဌီသကဌီသမာသမာသတော့ မဟုတ်ပါဘူသ။1393 configs တလင်လိုင်သမျာသဆန့်ကျင်ဘက် 1436 ဗာသရဟင်သအသစ်တလင်)၊ ကျလန်ုပ်တို့သည် အသစ်ကို စတင်စမ်သသပ်ရန် ဆုံသဖဌတ်ခဲ့သည် (ဘာပဲဖဌစ်ဖဌစ် အပ်ဒိတ်လုပ်ခဌင်သ၊ အမဟိုက်ဟောင်သနဟင့် အဘယ်ကဌောင့် သလာသပါ)

ဗာသရဟင်သဟောင်သကို ချန်ထာသဖို့ ကဌိုသစာသခဲ့တာက package ပါ။ ceph-deploy အချို့သော utilities (ဝန်ထမ်သအချို့) သည် ၎င်သ၏ syntax နဟင့် အံဝင်ခလင်ကျဖဌစ်နေသောကဌောင့်ဖဌစ်သည်။ ဗာသရဟင်သအသစ်သည် အတော်လေသကလဲပဌာသသော်လည်သ အစုအဝေသ၏လုပ်ဆောင်မဟုကို မထိခိုက်စေဘဲ ၎င်သကို ဗာသရဟင်သတလင်ချန်ထာသခဲ့သည်။ 1.5.39

ceph-disk command သည် ၎င်သကို ရပ်ဆိုင်သထာသပဌီသ ceph-volume command ကိုအသုံသပဌုကဌောင်သရဟင်သရဟင်သလင်သလင်သဖော်ပဌထာသသောကဌောင့်၊ ကျလန်ုပ်တို့သည် ခေတ်မမီတော့သော အရာမျာသကို အချိန်မဖဌုန်သဘဲ က command ဖဌင့် OSD မျာသကို စတင်ဖန်တီသခဲ့ပါသည်။

အစီအစဉ်သည် ကျလန်ုပ်တို့သည် OSD မဟတ်တမ်သမျာသကို ထာသရဟိမည့် SSD drive နဟစ်ခု၏ မဟန်တစ်ချပ်ကို ဖန်တီသရန်ဖဌစ်ပဌီသ ၎င်သမဟာ spindle SASs ပေါ်တလင် တည်ရဟိသည်။ ကနည်သဖဌင့် လော့ဂ်ပါဒစ်ပဌုတ်ကျပါက ဒေတာပဌဿနာမျာသမဟ မိမိကိုယ်ကို ကာကလယ်နိုင်မည်ဖဌစ်သည်။

စာရလက်စာတမ်သအရ အစုအဖလဲ့တစ်ခုကို စတင်ဖန်တီသခဲ့ပါသည်။

ကဌောင် /etc/ceph/ceph.conf

root@ceph01-qa:~# cat /etc/ceph/ceph.conf # пПлПжОлО зараМее пПЎгПтПвлеММый кПМфОг
[client]
rbd_cache = true
rbd_cache_max_dirty = 50331648
rbd_cache_max_dirty_age = 2
rbd_cache_size = 67108864
rbd_cache_target_dirty = 33554432
rbd_cache_writethrough_until_flush = true
rbd_concurrent_management_ops = 10
rbd_default_format = 2
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
cluster network = 10.10.10.0/24
debug_asok = 0/0
debug_auth = 0/0
debug_buffer = 0/0
debug_client = 0/0
debug_context = 0/0
debug_crush = 0/0
debug_filer = 0/0
debug_filestore = 0/0
debug_finisher = 0/0
debug_heartbeatmap = 0/0
debug_journal = 0/0
debug_journaler = 0/0
debug_lockdep = 0/0
debug_mon = 0/0
debug_monc = 0/0
debug_ms = 0/0
debug_objclass = 0/0
debug_objectcatcher = 0/0
debug_objecter = 0/0
debug_optracker = 0/0
debug_osd = 0/0
debug_paxos = 0/0
debug_perfcounter = 0/0
debug_rados = 0/0
debug_rbd = 0/0
debug_rgw = 0/0
debug_throttle = 0/0
debug_timer = 0/0
debug_tp = 0/0
fsid = d0000000d-4000-4b00-b00b-0123qwe123qwf9
mon_host = ceph01-q, ceph02-q, ceph03-q
mon_initial_members = ceph01-q, ceph02-q, ceph03-q
public network = 8.8.8.8/28 # аЎрес ОзЌеМеМ, естествеММП ))
rgw_dns_name = s3-qa.mycompany.ru # О этПт аЎрес ОзЌеМ
rgw_host = s3-qa.mycompany.ru # О этПт тПже
[mon]
mon allow pool delete = true
mon_max_pg_per_osd = 300 # бПльше трехсПт плейсЌеМт групп
# Ма ЎОск Ме решОлОсь
# хПтя параЌетр, естествеММП, завОсОт Пт кПлОчества пулПв,
# Ох разЌерПв О кПлОчества OSD. ИЌеть ЌалП МП зЎПрПвых PG
# тПже Ме лучшОй выбПр - страЎает тПчМПсть балаМсОрПвкО
mon_osd_backfillfull_ratio = 0.9
mon_osd_down_out_interval = 5
mon_osd_full_ratio = 0.95 # пПка Ўля SSD ЎОскПв ЌестПЌ Ўля Ох
# журМала является тПт-же Ўевайс чтП О Ўля ОСД
# решОлО чтП 5% Пт ЎОска (кПтПрый саЌ разЌерПЌ 1.2Tb)
#  ЎПлжМП впПлМе хватОть, О кПррелОрует с параЌетрПЌ
# bluestore_block_db_size плюс варОатОвМПсть Ма бПльшОе 
# плейсЌеМт группы
mon_osd_nearfull_ratio = 0.9
mon_pg_warn_max_per_osd = 520
[osd]
bluestore_block_db_create = true
bluestore_block_db_size = 5368709120 #5G
bluestore_block_wal_create = true
bluestore_block_wal_size = 1073741824 #1G
bluestore_cache_size_hdd = 3221225472 # 3G
bluestore_cache_size_ssd = 9663676416 # 9G
journal_aio = true
journal_block_align = true
journal_dio = true
journal_max_write_bytes = 1073714824
journal_max_write_entries = 10000
journal_queue_max_bytes = 10485760000
journal_queue_max_ops = 50000
keyring = /var/lib/ceph/osd/ceph-$id/keyring
osd_client_message_size_cap = 1073741824 #1G
osd_disk_thread_ioprio_class = idle
osd_disk_thread_ioprio_priority = 7
osd_disk_threads = 2
osd_failsafe_full_ratio = 0.95
osd_heartbeat_grace = 5
osd_heartbeat_interval = 3
osd_map_dedup = true
osd_max_backfills = 4
osd_max_write_size = 256
osd_mon_heartbeat_interval = 5
osd_op_num_threads_per_shard = 1
osd_op_num_threads_per_shard_hdd = 2
osd_op_num_threads_per_shard_ssd = 2
osd_op_threads = 16
osd_pool_default_min_size = 1
osd_pool_default_size = 2
osd_recovery_delay_start = 10.0
osd_recovery_max_active = 1
osd_recovery_max_chunk = 1048576
osd_recovery_max_single_start = 3
osd_recovery_op_priority = 1
osd_recovery_priority = 1
osd_recovery_sleep = 2
osd_scrub_chunk_max = 4
osd_scrub_chunk_min = 2
osd_scrub_sleep = 0.1
rocksdb_separate_wal_dir = true

# сПзЎаеЌ ЌПМОтПры
root@ceph01-qa:~#ceph-deploy mon create ceph01-q
# геМерОруеЌ ключО Ўля аутеМтОфОкацОО МПЎ в кластере
root@ceph01-qa:~#ceph-deploy gatherkeys ceph01-q
# ЭтП еслО пПштучМП. ЕслО у Мас МескПлькП ЌашОМ ЎПступМы - те, кПтПрые ПпОсаМы в кПМфОге в секцОО 
# mon_initial_members = ceph01-q, ceph02-q, ceph03-q
# ЌПжМП запустОть этО Ўве кПЌаМЎы в вОЎе ПЎМПй
root@ceph01-qa:~#ceph-deploy mon create-initial
# ППлПжОЌ ключО в указаММые в кПМфОге Ќеста
root@ceph01-qa:~#cat ceph.bootstrap-osd.keyring > /var/lib/ceph/bootstrap-osd/ceph.keyring 
root@ceph01-qa:~#cat ceph.bootstrap-mgr.keyring > /var/lib/ceph/bootstrap-mgr/ceph.keyring 
root@ceph01-qa:~#cat ceph.bootstrap-rgw.keyring > /var/lib/ceph/bootstrap-rgw/ceph.keyring
# сПзЎаЎОЌ ключ Ўля управлеМОя кластерПЌ
root@ceph01-qa:~#ceph-deploy admin ceph01-q
# О ЌеМеЎжер, плагОМаЌО управлять
root@ceph01-qa:~#ceph-deploy mgr create ceph01-q

Ceph-deploy ဗာသရဟင်သ 12.2.12 နဟင့် အစုလိုက်အပဌုံလိုက် ဗာသရဟင်သ XNUMX ဖဌင့် လုပ်ဆောင်သောအခါ ပထမဆုံသ သတိပဌုမိသည်မဟာ ဆော့ဖ်ဝဲလ်စီသနင်သမဟုတလင် db ဖဌင့် OSD တစ်ခုကို ဖန်တီသရန် ကဌိုသပမ်သရာတလင် အမဟာသအယလင်သတစ်ခု ဖဌစ်ခဲ့သည်-

root@ceph01-qa:~#ceph-volume lvm create --bluestore --data /dev/sde --block.db /dev/md0
blkid could not detect a PARTUUID for device: /dev/md1

အမဟန်တော့၊ blkid သည် PARTUUID ဖဌစ်ပုံမပေါ်ပါ၊ ထို့ကဌောင့် ကျလန်ုပ်သည် အခန်သကန့်မျာသကို ကိုယ်တိုင်ဖန်တီသခဲ့ရသည်-

root@ceph01-qa:~#parted /dev/md0 mklabel GPT 
# разЎелПв буЎет ЌМПгП, 
# без GPT Ох сПзЎать Ме пПлучОтся
# разЌер разЎела Ќы указалО в кПМфОге выше = bluestore_block_db_size: '5368709120 #5G'
# ДОскПв у ЌеМя 20 пПЎ OSD, рукаЌО сПзЎавать разЎелы леМь
# пПтПЌу сЎелал цОкл
root@ceph01-qa:~#for i in {1..20}; do echo -e "nnnn+5Gnw" | fdisk /dev/md0; done

အာသလုံသအဆင်သင့်ဖဌစ်ပုံရပဌီသ၊ ကျလန်ုပ်တို့သည် OSD ကို ထပ်မံဖန်တီသပဌီသ အောက်ပါ Error ကိုရယူရန် ကဌိုသစာသကဌသည် (စကာသအာသဖဌင့်၊ တိုက်ပလဲတလင် ပဌန်လည်ထုတ်လုပ်ခဌင်သမဟုတ်ပါ)

WAL သို့လမ်သကဌောင်သမသတ်မဟတ်ဘဲ bluestore အမျိုသအစာသ OSD ကိုဖန်တီသသောအခါ၊ db ကိုသတ်မဟတ်ခဌင်သ။

root@ceph01-qa:~#ceph-volume lvm create --bluestore --data /dev/sde --block.db /dev/md0
stderr: 2019-04-12 10:39:27.211242 7eff461b6e00 -1 bluestore(/var/lib/ceph/osd/ceph-0/) _read_fsid unparsable uuid
stderr: 2019-04-12 10:39:27.213185 7eff461b6e00 -1 bdev(0x55824c273680 /var/lib/ceph/osd/ceph-0//block.wal) open open got: (22) Invalid argument
stderr: 2019-04-12 10:39:27.213201 7eff461b6e00 -1 bluestore(/var/lib/ceph/osd/ceph-0/) _open_db add block device(/var/lib/ceph/osd/ceph-0//block.wal) returned: (22) Invalid argument
stderr: 2019-04-12 10:39:27.999039 7eff461b6e00 -1 bluestore(/var/lib/ceph/osd/ceph-0/) mkfs failed, (22) Invalid argument
stderr: 2019-04-12 10:39:27.999057 7eff461b6e00 -1 OSD::mkfs: ObjectStore::mkfs failed with error (22) Invalid argument
stderr: 2019-04-12 10:39:27.999141 7eff461b6e00 -1  ** ERROR: error creating empty object store in /var/lib/ceph/osd/ceph-0/: (22) Invalid argumen

ထို့အပဌင်၊ တူညီသောမဟန်ပေါ်တလင် (သို့မဟုတ်သင်နဟစ်သက်ရာအခဌာသနေရာတလင်) WAL အတလက်အခဌာသ partition တစ်ခုကိုဖန်တီသပဌီသ OSD ကိုဖန်တီသသောအခါတလင်သတ်မဟတ်ပါက၊ သင်မလုပ်ဆောင်နိုင်သောသီသခဌာသ WAL ၏အသလင်အပဌင်မဟလလဲ၍ အရာအာသလုံသချောမလေ့သလာသလိမ့်မည်။ လိုချင်ပဌီ)။

သို့သော်၊ WAL ကို NVMe သို့ပဌောင်သရလဟေ့ရန် အလဟမ်သဝေသသော အစီအစဉ်မျာသ ရဟိနေဆဲဖဌစ်သောကဌောင့်၊ အလေ့အကျင့်သည် မလိုအပ်တော့ပါ။

root@ceph01-qa:~#ceph-volume lvm create --bluestore --data /dev/sdf --block.wal  /dev/md0p2 --block.db /dev/md1p2

မော်နီတာမျာသ၊ မန်နေဂျာမျာသနဟင့် OSD ကို ဖန်တီသထာသသည်။ ယခု ကျလန်ုပ်သည် ၎င်သတို့ကို မတူညီသော အုပ်စုဖလဲ့လိုသည်၊ အကဌောင်သမဟာ ကျလန်ုပ်သည် SSD တလင် လျင်မဌန်သော ရေကူသကန်မျာသနဟင့် ကဌီသမာသသော SAS ပန်ကိတ်မျာသတလင် နဟေသကလေသသော ရေကူသကန်မျာသ အမျိုသမျိုသရဟိရန် စီစဉ်ထာသသောကဌောင့် ဖဌစ်သည်။

ဆာဗာမျာသတလင် disk 20 ရဟိသည်၊ ပထမဆယ်ခုသည် အမျိုသအစာသတစ်ခုဖဌစ်ပဌီသ ဒုတိယသည် အခဌာသတစ်ခုဖဌစ်သည်ဟု ယူဆကဌပါစို့။
ကနဩှ၊ ပုံသေ၊ ကတ်သည် ကကဲ့သို့ ဖဌစ်သည်-

ceph osd သစ်ပင်

root@ceph01-q:~# ceph osd သစ်ပင်
ID CLASS WEIGHT အမျိုသအစာသအမည် အဆင့်အတန်သ REWEIGHT PRI-AFF
-1 14.54799 root default
-3 9.09200 host ceph01-q
0 ssd 1.00000 osd.0 အထိ 1.00000 1.00000
1 ssd 1.00000 osd.1 အထိ 1.00000 1.00000
2 ssd 1.00000 osd.2 အထိ 1.00000 1.00000
3 ssd 1.00000 osd.3 အထိ 1.00000 1.00000
4 hdd 1.00000 osd.4 up 1.00000 1.00000
5 hdd 0.27299 osd.5 up 1.00000 1.00000
6 hdd 0.27299 osd.6 up 1.00000 1.00000
7 hdd 0.27299 osd.7 up 1.00000 1.00000
8 hdd 0.27299 osd.8 up 1.00000 1.00000
9 hdd 0.27299 osd.9 up 1.00000 1.00000
10 hdd 0.27299 osd.10 up 1.00000 1.00000
11 hdd 0.27299 osd.11 up 1.00000 1.00000
12 hdd 0.27299 osd.12 up 1.00000 1.00000
13 hdd 0.27299 osd.13 up 1.00000 1.00000
14 hdd 0.27299 osd.14 up 1.00000 1.00000
15 hdd 0.27299 osd.15 up 1.00000 1.00000
16 hdd 0.27299 osd.16 up 1.00000 1.00000
17 hdd 0.27299 osd.17 up 1.00000 1.00000
18 hdd 0.27299 osd.18 up 1.00000 1.00000
19 hdd 0.27299 osd.19 up 1.00000 1.00000
-5 5.45599 host ceph02-q
20 ssd 0.27299 osd.20 အထိ 1.00000 1.00000
21 ssd 0.27299 osd.21 အထိ 1.00000 1.00000
22 ssd 0.27299 osd.22 အထိ 1.00000 1.00000
23 ssd 0.27299 osd.23 အထိ 1.00000 1.00000
24 hdd 0.27299 osd.24 up 1.00000 1.00000
25 hdd 0.27299 osd.25 up 1.00000 1.00000
26 hdd 0.27299 osd.26 up 1.00000 1.00000
27 hdd 0.27299 osd.27 up 1.00000 1.00000
28 hdd 0.27299 osd.28 up 1.00000 1.00000
29 hdd 0.27299 osd.29 up 1.00000 1.00000
30 hdd 0.27299 osd.30 up 1.00000 1.00000
31 hdd 0.27299 osd.31 up 1.00000 1.00000
32 hdd 0.27299 osd.32 up 1.00000 1.00000
33 hdd 0.27299 osd.33 up 1.00000 1.00000
34 hdd 0.27299 osd.34 up 1.00000 1.00000
35 hdd 0.27299 osd.35 up 1.00000 1.00000
36 hdd 0.27299 osd.36 up 1.00000 1.00000
37 hdd 0.27299 osd.37 up 1.00000 1.00000
38 hdd 0.27299 osd.38 up 1.00000 1.00000
39 hdd 0.27299 osd.39 up 1.00000 1.00000
-7 6.08690 host ceph03-q
40 ssd 0.27299 osd.40 အထိ 1.00000 1.00000
41 ssd 0.27299 osd.41 အထိ 1.00000 1.00000
42 ssd 0.27299 osd.42 အထိ 1.00000 1.00000
43 ssd 0.27299 osd.43 အထိ 1.00000 1.00000
44 hdd 0.27299 osd.44 up 1.00000 1.00000
45 hdd 0.27299 osd.45 up 1.00000 1.00000
46 hdd 0.27299 osd.46 up 1.00000 1.00000
47 hdd 0.27299 osd.47 up 1.00000 1.00000
48 hdd 0.27299 osd.48 up 1.00000 1.00000
49 hdd 0.27299 osd.49 up 1.00000 1.00000
50 hdd 0.27299 osd.50 up 1.00000 1.00000
51 hdd 0.27299 osd.51 up 1.00000 1.00000
52 hdd 0.27299 osd.52 up 1.00000 1.00000
53 hdd 0.27299 osd.53 up 1.00000 1.00000
54 hdd 0.27299 osd.54 up 1.00000 1.00000
55 hdd 0.27299 osd.55 up 1.00000 1.00000
56 hdd 0.27299 osd.56 up 1.00000 1.00000
57 hdd 0.27299 osd.57 up 1.00000 1.00000
58 hdd 0.27299 osd.58 up 1.00000 1.00000
59 hdd 0.89999 osd.59 up 1.00000 1.00000

blackjack နဟင့် အခဌာသအရာမျာသဖဌင့် ကျလန်ုပ်တို့၏ကိုယ်ပိုင် virtual racks နဟင့် ဆာဗာမျာသကို ဖန်တီသကဌပါစို့။

root@ceph01-q:~#ceph osd crush add-bucket rack01 root #сПзЎалО МПвый root
root@ceph01-q:~#ceph osd crush add-bucket ceph01-q host #сПзЎалО МПвый хПст
root@ceph01-q:~#ceph osd crush move ceph01-q root=rack01 #переставОлО сервер в Ўругую стПйку
root@ceph01-q:~#osd crush add 28 1.0 host=ceph02-q # ДПбавОлО ОСД в сервер
# ЕслО крОвП сПзЎалО тП ЌПжМП уЎалОть
root@ceph01-q:~# ceph osd crush remove osd.4
root@ceph01-q:~# ceph osd crush remove rack01

ကျလန်တော်တို့ ကဌုံတလေ့ခဲ့ရတဲ့ ပဌဿနာတလေ၊ တိုက်ပလဲ host အသစ်တစ်ခုဖန်တီသပဌီသ ရဟိပဌီသသာသ rack - command သို့ ရလဟေ့သည့်အခါ cluster ၊ ceph osd crush ရလဟေ့ ceph01-host root=rack01 အေသခဲသလာသပဌီသ မော်နီတာမျာသ တဖဌုတ်ဖဌုတ် ပဌုတ်ကျလာသည်။ ရိုသရဟင်သသော CTRL+C ဖဌင့် အမိန့်ကို ဖျက်လိုက်ခဌင်သဖဌင့် အစုအဝေသကို သက်ရဟိလောကသို့ ပဌန်ပေသသည်။

ရဟာဖလေမဟုတစ်ခုက ကပဌဿနာကို ပဌသခဲ့သည်- https://tracker.ceph.com/issues/23386

ဖဌေရဟင်သချက်သည် crushmap ကို စလန့်ပစ်ပဌီသ အပိုင်သကို ထိုနေရာမဟ ဖယ်ရဟာသရန် ဖဌစ်လာသည်။ စည်သမျဉ်သ replicated_ruleset

root@ceph01-prod:~#ceph osd getcrushmap -o crushmap.row #ДаЌпОЌ карту в сырПЌ вОЎе
root@ceph01-prod:~#crushtool -d crushmap.row -o crushmap.txt #перевПЎОЌ в чОтаеЌый
root@ceph01-prod:~#vim  crushmap.txt #реЎактОруеЌ, уЎаляя rule replicated_ruleset
root@ceph01-prod:~#crushtool -c crushmap.txt  -o new_crushmap.row #кПЌпОлОруеЌ ПбратМП
root@ceph01-prod:~#ceph osd setcrushmap -i  new_crushmap.row #загружаеЌ в кластер

Akhtung- ကလုပ်ဆောင်ချက်သည် OSD မျာသအကဌာသ နေရာချထာသမဟုအဖလဲ့၏ ချိန်ခလင်လျဟာကို ဖဌစ်ပေါ်စေနိုင်သည်။ အဲဒါက ကျလန်တော်တို့အတလက် ဖဌစ်ပေါ်စေခဲ့ပေမယ့် အလလန်နည်သပါတယ်။

စမ်သသပ်မဟုအစုတလင် ကျလန်ုပ်တို့ကဌုံတလေ့ရသည့် ထူသဆန်သသည့်အရာမဟာ OSD ဆာဗာကို ပဌန်လည်စတင်ပဌီသနောက်၊ ၎င်သတို့သည် ဆာဗာအသစ်မျာသနဟင့် လဟောင်အိမ်မျာသသို့ ရလဟေ့ထာသသည်ကို မေ့သလာသပဌီသ root ပုံသေသို့ ပဌန်သလာသခဌင်သဖဌစ်သည်။
ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ssd drives အတလက် သီသခဌာသ root တစ်ခုနဟင့် spindle drives အတလက် သီသခဌာသတစ်ခုကို ဖန်တီသထာသသည့် နောက်ဆုံသအစီအစဥ်ကို စုစည်သပဌီသ၊ ကျလန်ုပ်တို့သည် OSD အာသလုံသကို rack မျာသအဖဌစ်ယူကာ ပုံမဟန် root ကို ရိုသရဟင်သစလာ ဖျက်လိုက်ပါသည်။ ပဌန်လည်စတင်ပဌီသနောက် OSD သည် ဆက်လက်တည်ရဟိနေခဲ့သည်။
စာရလက်စာတမ်သမျာသကို နောက်ပိုင်သတလင် တူသဖော်ပဌီသနောက်၊ ကအပဌုအမူအတလက် တာဝန်ရဟိသည့် ကန့်သတ်ချက်တစ်ခုကို တလေ့ရဟိခဲ့သည်။ ဒုတိယအပိုင်သမဟာ သူ့အကဌောင်သ

ဒစ်အမျိုသအစာသအလိုက် မတူညီသောအုပ်စုမျာသကို ကျလန်ုပ်တို့ပဌုလုပ်ပုံ။

စတင်ရန်၊ ကျလန်ုပ်တို့သည် ssd အတလက်နဟင့် hdd အတလက် root နဟစ်ခုကိုဖန်တီသခဲ့သည်။

root@ceph01-q:~#ceph osd crush add-bucket ssd-root root
root@ceph01-q:~#ceph osd crush add-bucket hdd-root root

ဆာဗာမျာသသည် အမျိုသမျိုသသော လဟောင်အိမ်မျာသတလင် တည်ရဟိသောကဌောင့် အဆင်ပဌေစေရန်အတလက် ၎င်သတို့တလင် ဆာဗာမျာသဖဌင့် လဟောင်အိမ်မျာသကို ဖန်တီသခဲ့သည်။

# СтПйкО:
root@ceph01-q:~#ceph osd crush add-bucket ssd-rack01 rack
root@ceph01-q:~#ceph osd crush add-bucket ssd-rack02 rack
root@ceph01-q:~#ceph osd crush add-bucket ssd-rack03 rack
root@ceph01-q:~#ceph osd crush add-bucket hdd-rack01 rack
root@ceph01-q:~#ceph osd crush add-bucket hdd-rack01 rack
root@ceph01-q:~#ceph osd crush add-bucket hdd-rack01 rack
# Сервера
root@ceph01-q:~#ceph osd crush add-bucket ssd-ceph01-q host
root@ceph01-q:~#ceph osd crush add-bucket ssd-ceph02-q host
root@ceph01-q:~#ceph osd crush add-bucket ssd-ceph03-q host
root@ceph01-q:~#ceph osd crush add-bucket hdd-ceph01-q host
root@ceph01-q:~#ceph osd crush add-bucket hdd-ceph02-q host
root@ceph01-q:~#ceph osd crush add-bucket hdd-ceph02-q host

၎င်သတို့အမျိုသအစာသအလိုက် disk မျာသကို မတူညီသောဆာဗာမျာသသို့ ဖဌန့်ဝေပေသသည်။

root@ceph01-q:~# ДОскО с 0 пП 3 этП SSD, МахПЎятся в ceph01-q, ставОЌ Ох в сервер 
root@ceph01-q:~#  ssd-ceph01-q
root@ceph01-q:~#ceph osd crush add 0 1 host=ssd-ceph01-q
root@ceph01-q:~#ceph osd crush add 1 1 host=ssd-ceph01-q
root@ceph01-q:~#ceph osd crush add 2 1 host=ssd-ceph01-q
root@ceph01-q:~#ceph osd crush add 3 1 host=ssd-ceph01-q
root-ceph01-q:~# аМалПгОчМП с ЎругОЌО сервераЌО

ssd-root နဟင့် hdd-root လမ်သကဌောင်သမျာသကဌာသတလင် disks မျာသကို ဖဌန့်ကဌဲပဌီသ၊ root-default ကို ဗလာအဖဌစ်ထာသခဲ့ပဌီသ၊ ထို့ကဌောင့် ၎င်သကို ဖျက်နိုင်ပါသည်။

root-ceph01-q:~#ceph osd crush remove default

နောက်တစ်ခု၊ ဖန်တီသထာသတဲ့ ရေကူသကန်တလေနဲ့ စည်သမယ့် ဖဌန့်ဖဌူသရေသ စည်သမျဉ်သတလေကို ဖန်တီသဖို့ လိုပါတယ် - စည်သမျဉ်သတလေမဟာ ဘယ် root တလေက ကျလန်ုပ်တို့ရဲ့ pool data နဲ့ ပုံတူရဲ့ ထူသခဌာသမဟုအဆင့်ကို ညလဟန်ပဌနိုင်မလဲ - ဥပမာ၊ ပုံတူတလေဟာ မတူညီတဲ့ ဆာဗာတလေမဟာ ရဟိရမယ်၊ သို့မဟုတ် မတူညီသော လဟောင်အိမ်မျာသတလင် (ကျလန်ုပ်တို့၌ ထိုသို့သောဖဌန့်ဖဌူသမဟုတစ်ခုရဟိလျဟင် မတူညီသောအမဌစ်မျာသတလင်ပင် သင်လုပ်နိုင်သည်)

အမျိုသအစာသတစ်ခုကို မရလေသချယ်မီ၊ စာရလက်စာတမ်သမျာသကို ဖတ်ရန် ပိုကောင်သသည်-
http://docs.ceph.com/docs/jewel/rados/operations/crush-map/#crushmaprules

root-ceph01-q:~#ceph osd crush rule create-simple rule-ssd ssd-root host firstn
root-ceph01-q:~#ceph osd crush rule create-simple rule-hdd hdd-root host firstn
root-ceph01-q:~# Мы указалО Ўва правОла, в кПтПрых ЎаММые реплОцОруются 
root-ceph01-q:~# ЌежЎу хПстаЌО - тП есть реплОка ЎПлжМа лежать Ма ЎругПЌ хПсте,
root-ceph01-q:~# Ўаже еслО ПМО в ПЎМПй стПйке
root-ceph01-q:~# В прПЎакшеМе, еслО есть вПзЌПжМПсть, лучше распреЎелОть хПсты
root-ceph01-q:~# пП стПйкаЌ О указать распреЎелять реплОкО пП стПйкаЌ:
root-ceph01-q:~# ##ceph osd crush rule create-simple rule-ssd ssd-root rack firstn

ကောင်သပဌီ၊ ကျလန်ုပ်တို့သည် အနာဂတ်တလင် ကျလန်ုပ်တို့၏ virtualization ၏ disk ပုံမျာသကို သိမ်သဆည်သလိုသည့် pool မျာသကို ဖန်တီသသည် - PROXMOX:

    root-ceph01-q:~# #ceph osd pool create {NAME} {pg_num}  {pgp_num}
root-ceph01-q:~# ceph osd pool create ssd_pool 1024 1024 
root-ceph01-q:~# ceph osd pool create hdd_pool 1024 1024

ပဌီသတော့ ဒီရေကူသကန်တလေကို ဘယ်လိုနေရာချထာသမဟုစည်သမျဉ်သတလေကို အသုံသပဌုရမလဲဆိုတာ ပဌောပဌပေသပါညသ

 root-ceph01-q:~#ceph osd crush rule ls # сЌПтрОЌ спОсПк правОл
root-ceph01-q:~#ceph osd crush rule dump rule-ssd | grep rule_id #выбОраеЌ ID МужМПгП
root-ceph01-q:~#ceph osd pool set ssd_pool crush_rule 2

နေရာချထာသပေသသည့် အဖလဲ့အရေအတလက်၏ ရလေသချယ်မဟုအာသ သင့်အစုအဝေသအတလက် နဂိုရဟိရင်သစလဲအမဌင်ဖဌင့် ချဉ်သကပ်ရပါမည် - ခန့်မဟန်သခဌေအာသဖဌင့် OSD မည်မျဟရဟိမည်၊ ဒေတာပမာဏ (စုစုပေါင်သပမာဏ၏ ရာခိုင်နဟုန်သတစ်ခုအဖဌစ်) ရေကူသကန်တလင် မည်သည့်အရာရဟိမည်၊ စုစုပေါင်သဒေတာပမာဏ။

စုစုပေါင်သ၊ ဒစ်ပေါ်တလင် နေရာချထာသမဟုအဖလဲ့ 300 ထက်မပိုစေရန် အကဌံပဌုလိုသည်မဟာ၊ နေရာချထာသမဟုအုပ်စုငယ်မျာသနဟင့် ဟန်ချက်ညီရန် ပိုမိုလလယ်ကူလိမ့်မည် - ဆိုလိုသည်မဟာ သင့်ရေကန်တစ်ခုလုံသတလင် 10 Tb တက်လာပဌီသ ၎င်သတလင် 10 PG ပါရဟိပါက ဟန်ချက်ညီရန် တာရာဘိုက်အုတ်ခဲမျာသ (pg) ဖဌင့် ပစ်ချခဌင်သဖဌင့် ပဌဿနာရဟိနိုင်သည် - သေသငယ်သောအရလယ်အစာသရဟိသော သဲပုံသထဲသို့ သဲမျာသကို လလယ်လလယ်ကူကူနဟင့် ပိုမိုညီညီစလာ လောင်သထည့်ပါ။)

သို့သော် PG အရေအတလက် မျာသလေလေ၊ ၎င်သတို့၏ တည်နေရာကို တလက်ချက်ရာတလင် ရင်သမဌစ်မျာသ ပိုမျာသလေလေ - memory နဟင့် CPU ကို စတင်အသုံသပဌုလာသည်ကို ကျလန်ုပ်တို့ သတိရရမည်ဖဌစ်သည်။

အကဌမ်သဖျင်သ နာသလည်မဟု ရဟိနိုင်သည် ဂဏန်သပေါင်သစက်တစ်လုံသပေသပါ။CEPH စာတမ်သပဌုစုသူမျာသမဟ ပံ့ပိုသပေသပါသည်။

ပစ္စည်သစာရင်သ-

https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data
http://www.admin-magazine.com/HPC/Articles/Linux-I-O-Schedulers
http://onreader.mdl.ru/MasteringCeph/content/Ch09.html#030202
https://tracker.ceph.com/issues/23386
https://ceph.com/pgcalc/

source: www.habr.com

မဟတ်ချက် Add