Ceph - αž–αžΈ "αž“αŸ…αž›αžΎαž‡αž„αŸ’αž‚αž„αŸ‹" αž‘αŸ… "αž•αž›αž·αžαž€αž˜αŸ’αž˜"

αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ CEPH αŸ” αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž™αžΎαž„αž˜αžΆαž“αžšαŸ‰αžΆαž€αŸ‚αžαž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΆαŸ† αž€αž»αž„αžαžΆαž€αŸ‹αž’αž»αž”αž‘αž·αž€αž…αŸ†αž“αž½αž“αžŠαž”αŸ‹ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ BGP αž–αžΈαžšαž”αž½αž“αžŠαž”αŸ‹ SSDs αž“αž·αž„αžαžΆαžŸ SAS αž‚αŸ’αžšαž”αŸ‹αž–αžŽαŸŒ αž“αž·αž„αž‘αŸ†αž αŸ† αž–αŸ’αžšαž˜αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΌαž€αž˜αŸ‰αžΌαž€ αž“αž·αž„αž”αŸ†αžŽαž„αž”αŸ’αžšαžΆαžαŸ’αž“αžΆαžŠαžΎαž˜αŸ’αž”αžΈαžŠαžΆαž€αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‹αž·αžαž·αžœαž“αŸ’αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αž•αŸ’αž‘αž»αž€ S3 αžšαž”αžŸαŸ‹αž™αžΎαž„αž•αŸ’αž‘αžΆαž›αŸ‹αŸ” αž˜αž·αž“αž˜αŸ‚αž“αžαžΆαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž“αž·αž˜αŸ’αž˜αž·αžαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎ opensource αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αžœαžΎαžαžΆαž˜αž…αŸ†αžŽαž„αŸ‹αž…αŸ†αžŽαžΌαž›αž…αž·αžαŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžšαž αžΌαžαžŠαž›αŸ‹αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αŸ” αžšαžΏαž„αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αžšαŸ†αžαžΆαž“αžαŸ’αž‰αž»αŸ†αž‚αžΊ BGP αŸ” αž˜αž·αž“αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž›αŸ„αž€αžŠαŸ‚αž›αž’αžŸαŸ‹αžŸαž„αŸ’αžƒαžΉαž˜ αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœ αž“αž·αž„αž’αžŸαžΈαž›αž’αž˜αŸŒαž‡αžΆαž„αž€αžΆαžšαžŠαžΉαž€αž“αžΆαŸ† BGP αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž‘αŸαŸ” αž αžΎαž™β€‹αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αžŠαžΉαž„β€‹αžαžΆβ€‹αž”αž“αŸ’αžαž·αž…β€‹αž‘αŸ€αžβ€‹αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž…αžΌαž›β€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αžœαžΆαŸ”

Ceph - αž–αžΈ "αž“αŸ…αž›αžΎαž‡αž„αŸ’αž‚αž„αŸ‹" αž‘αŸ… "αž•αž›αž·αžαž€αž˜αŸ’αž˜"

αž€αž·αž…αŸ’αž…αž€αžΆαžšαž‚αžΊαžαžΌαž…αžαžΆαž… - αž˜αžΆαž“ CEPH αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž‘αŸαŸ” αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎ "αž›αŸ’αž’" αŸ”
αž…αž„αŸ’αž€αŸ„αž˜β€‹αžŠαŸ‚αž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž‘αž‘αž½αž›β€‹αž‚αžΊβ€‹αžαž»αžŸβ€‹αž‚αŸ’αž“αžΆβ€‹αž™αŸ‰αžΆαž„β€‹αž›αžΏαž“β€‹αžŸαž˜αŸ’αžšαž½αž›β€‹αž“αž·αž„β€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžŸαž˜αŸ’αžšαž½αž›αŸ” αžœαžΆαž˜αžΆαž“αž–αžΈαžšαž€αŸ’αžšαž»αž˜αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αžŠαŸ„αž™αž€αŸ’αžšαž‘αžΆαž…αžαŸ’αžšαž„αŸ’αž‚αž’αž˜αŸ’αž˜αžαžΆαž˜αž½αž™αžŠαžΎαžšαžαž½αž‡αžΆαž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αž”αžŽαŸ’αžαžΆαž‰αžŸαžΆαž’αžΆαžšαžŽαŸˆαŸ” αžαŸ’αž“αžΆαŸ†αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αŸαž‰αžŠαŸ„αž™αžαžΆαžŸαž”αž½αž“αž”αŸ’αžšαž—αŸαž‘ - αž”αŸ’αžšαž—αŸαž‘ SSD αž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ’αž”αžΆαž”αŸ‹αžŠαžΆαž€αŸ‹αž–αžΈαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž“αž·αž„αž”αŸ’αžšαž—αŸαž‘ HDD αž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αžŠαŸ‚αž›αž˜αžΆαž“αž‘αŸ†αž αŸ†αžαž»αžŸαŸ—αž‚αŸ’αž“αžΆ αž”αŸ’αžšαž˜αžΌαž›αž”αžΆαž“αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž‘αžΈαž”αžΈαŸ” αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž‘αŸ†αž αŸ†αžαž»αžŸαŸ—αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ„αž™αž‘αž˜αŸ’αž„αž“αŸ‹ OSD αžαž»αžŸαŸ—αž‚αŸ’αž“αžΆαŸ”

αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αžαŸ’αž›αž½αž“αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆαž–αžΈαžšαž•αŸ’αž“αŸ‚αž€ - αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš ΠΈ αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœ CEPH αžαŸ’αž›αž½αž“αž―αž„ αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž€αŸ†αž–αž»αž„αžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš

αž”αžŽαŸ’αžαžΆαž‰

αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαžαŸ’αž–αžŸαŸ‹αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž€αžΆαžšαžαž αž“αž·αž„αžαž»αž›αŸ’αž™αž—αžΆαž–αŸ” αž“αŸ…αž–αŸαž›αžαž - αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž“αžΉαž„αž˜αž·αž“αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž’αŸ†αž–αžΈαž€αžΆαžšαžαžαžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αžŠαžΆαž€αŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΈαž—αžΆαž–αž‡αŸ„αž‚αž‡αŸαž™αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž…αŸ’αž”αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ‚αž“αž‘αžΈ CRUSH αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αž…αž˜αŸ’αž›αž„αž˜αž½αž™αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αž”αžŽαŸ’αžαžΆαž‰αžαŸ‚αž„αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αž αŸαžαž»αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžšαžΏαž„αžŠαŸ†αž”αžΌαž„αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž’αŸ’αžœαžΎαž‚αžΊαž€αŸ‚αž”αŸ’αžšαŸ‚αž”αžŽαŸ’αžαžΆαž‰αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž”αž“αŸ’αžαž·αž… αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž‰αŸ’αž…αž»αŸ‡αž”αž‰αŸ’αž…αžΌαž›αžαŸ’αž‰αž»αŸ†αž±αŸ’αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž”αžŽαŸ’αžαžΆαž‰αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸƒαž€αžΆαžαž”αžŽαŸ’αžαžΆαž‰αŸ” αžαŸ’αž‰αž»αŸ†αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αžšαŸ€αž”αž…αŸ†αž‡αž½αžšαŸ–

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αŸ–

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 αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαžΆαž„αž›αžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜

αž†αŸ’αž˜αžΆ / αž› / αž”αžŽαŸ’αžαžΆαž‰ / αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹

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 αŸ” αžŠαŸ„αž™αž–αž·αž…αžΆαžšαžŽαžΆαžαžΆαžαŸ’αž“αžΆαŸ†αž„αž˜αžΆαž“ RAM 128G αž™αžΎαž„αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž’αŸαžŸαžŸαŸŠαžΈαž›

αž†αŸ’αž˜αžΆ /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 αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αž•αŸ’αž‘αŸ‡αž›αŸ’αžœαŸ‚αž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž–αžΆαž€αŸ‹αžŠαŸ„αž™αž€αžΆαžαž”αžŽαŸ’αžαžΆαž‰αž…αŸ’αžšαž€αž–αžΈαžš αž˜αŸαž‘αžΆαžŽαž»αž€ 10/25 Gbps, αžŠαŸ„αžαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΆαž€αŸ‹ 10Gbps αž–αžΈαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ” αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎ OSPF αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™ lacp αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αžŸαžšαž»αž”αž’αžαž·αž”αžšαž˜αžΆ 16 Gbps αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž› ospf αž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž‘αžΆαŸ†αž„αžŠαž”αŸ‹αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αžΈαž˜αž½αž™αŸ—αŸ” αž•αŸ‚αž“αž€αžΆαžšαž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž‘αžΆαž‰αž™αž€αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž–αžΈ ROCE αž“αŸ…αž›αžΎ melanoxes αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαŸ” αžšαž”αŸ€αž”αžαŸ†αž‘αžΎαž„αž•αŸ’αž“αŸ‚αž€αž“αŸƒαž”αžŽαŸ’αžαžΆαž‰αž“αŸαŸ‡αŸ–

  1. αžŠαŸ„αž™αžŸαžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ’αž›αž½αž“αž―αž„αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžαžΆαž„αž€αŸ’αžšαŸ…αž“αŸ…αž›αžΎ BGP αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ - (αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž‚αžΊαž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ frr=6.0-1 ) αž”αžΆαž“αžˆαžšαžšαž½αž…αž αžΎαž™αŸ”
  2. αžŸαžšαž»αž”αž˜αž€ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž–αžΈαžš αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž–αžΈαžš - αž…αŸ’αžšαž€αžŸαžšαž»αž”αž…αŸ†αž“αž½αž“ 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

αžŠαŸ‚αž›αžšαžαž™αž“αŸ’αžαž˜αžΎαž›αžƒαžΎαž‰αž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€αŸ”

ឌីស

αž‡αŸ†αž αžΆαž“αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžαžΆαžŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SSD αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αŸ’αžαžΌαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž‘αŸ… αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ HDD - αž•αž»αžαž€αŸ†αžŽαžαŸ‹. αžŠαžΎαž˜αŸ’αž”αžΈαž“αž·αž™αžΆαž™αžŠαŸ„αž™αžαŸ’αžšαž„αŸ‹αŸ— NOOP αž’αŸ’αžœαžΎαž€αžΆαžšαž›αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒ "first in, first out" αžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆαž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸαžŸαŸ’αžαžΆαž”αŸ‹αž‘αŸ…αžŠαžΌαž…αž‡αžΆ "FIFO (First In, First Out)"αŸ” αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αžαž˜αŸ’αžšαž„αŸ‹αž‡αž½αžšαž“αŸ…αž–αŸαž›αž–αž½αž€αž‚αŸαž˜αž€αžŠαž›αŸ‹αŸ” DEADLINE αž‚αžΊβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžαž˜αŸ’αžšαž„αŸ‹β€‹αž‘αž·αžŸβ€‹αž’αžΆαž“β€‹αž…αŸ’αžšαžΎαž“β€‹αž‡αžΆαž„ αž”αžΌαž€β€‹αž“αžΉαž„β€‹αžŠαŸ†αžŽαžΎαžšβ€‹αž€αžΆαžšβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžŠαžΆαž€αŸ‹β€‹αž‡αžΆβ€‹αž‡αž½αžšβ€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž€αžΆαžšβ€‹αž…αžΌαž›β€‹αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹β€‹αžŸαŸ’αž‘αžΎαžšαžαŸ‚β€‹αž•αŸ’αžαžΆαž…αŸ‹β€‹αž˜αž»αžβ€‹αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αžαžΆαžŸβ€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αž“αŸαŸ‡αž‚αžΊαž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž™αžΎαž„ - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ‚αž˜αž½αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžαžΆαžŸαž“αžΈαž˜αž½αž™αŸ— - αžŠαŸαž˜αž·αž“ OSD αŸ”
(αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αž„αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž› I/O αž’αžΆαž…αž’αžΆαž“αž’αŸ†αž–αžΈαžœαžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ–
http://www.admin-magazine.com/HPC/Articles/Linux-I-O-Schedulers

αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΌαž›αž…αž·αžαŸ’αžαž’αžΆαž“αž‡αžΆαž—αžΆαžŸαžΆαžšαž»αžŸαŸ’αžŸαžΈαŸ– https://www.opennet.ru/base/sys/linux_shedulers.txt.html)

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž›αŸƒαžαž˜αŸ’αžšαžΌαžœαž›αžΈαž“αž»αž… αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž•αž„αžŠαŸ‚αžšαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“ nr_request

αž‚αŸ’αž˜αžΆαž“_αžŸαŸ†αžŽαžΌαž˜αž–αžš
αžαž˜αŸ’αž›αŸƒαž“αŸƒ nr_requests αž€αŸ†αžŽαžαŸ‹αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαžŸαŸ†αžŽαžΎ I/O αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž’αžΆαž€ αž˜αž»αž“αž–αŸαž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž› I/O αž•αŸ’αž‰αžΎ/αž‘αž‘αž½αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž§αž”αž€αžšαžŽαŸαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαž€αžΆαž RAID / αž§αž”αž€αžšαžŽαŸαž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αž½αžšαž’αŸ†αž‡αžΆαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ† αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž› /O αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ… αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αžαž˜αŸ’αž›αŸƒαž“αŸƒ nr_requests αž’αžΆαž…αž‡αž½αž™αž€αŸ‚αž›αž˜αŸ’αž’ αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž…αŸ†αž“αž½αž“αžŠαŸαž’αŸ†αž“αŸƒ I/O αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎ Deadline ឬ CFQ αž‡αžΆαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž–αŸαž› αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αžαžΆαž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒ nr_request αž‘αŸ… 2 αžŠαž„αž“αŸƒαžαž˜αŸ’αž›αŸƒαž“αŸƒαž‡αŸ†αžšαŸ…αž‡αž½αžšαŸ”

αžαŸ‚! αž”αŸ’αžšαž‡αžΆαž–αž›αžšαžŠαŸ’αž‹αžαŸ’αž›αž½αž“αž―αž„αž‡αžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ CEPH αž”αž‰αŸ’αž…αž»αŸ‡αž”αž‰αŸ’αž…αžΌαž›αž™αžΎαž„αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αžΆαž‘αž·αž—αžΆαž–αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž˜αž»αž“αŸ”

Ceph - αž–αžΈ "αž“αŸ…αž›αžΎαž‡αž„αŸ’αž‚αž„αŸ‹" αž‘αŸ… "αž•αž›αž·αžαž€αž˜αŸ’αž˜"

WBThrottle αž“αž·αž„/ឬ nr_requests

WBThrottle αž“αž·αž„/ឬ nr_requests
αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž―αž€αžŸαžΆαžšαž”αŸ’αžšαžΎ I/O αž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαŸ” αžœαžΆαž“αžΆαŸ†αž˜αž€αž“αžΌαžœαž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž•αŸ’αž‘αž»αž€αž―αž€αžŸαžΆαžšαž“αŸ…αž›αžΎαž˜αŸαžŒαŸ€αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“αŸ” αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΌαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžαžΆαžŸαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž›αžΈαž“αž»αž…αŸ” αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ spindle OSDs αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„ SSDs αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž‡αžΆαžŠαž»αŸ†αžαžΌαž…αŸ—αŸ” αž€αžΆαžšαžŸαžšαžŸαŸαžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αžŠαŸ‚αž›αž–αž“αŸ’αž™αžΆαžšαž–αŸαž›αž“αŸαŸ‡αž€αŸαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžαžΊαžŽαŸ‚αž›αžαŸ’αž›αž½αž“αžœαžΆαžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαžŸαŸ†αžŽαžΎ I/O αžšαž”αžŸαŸ‹αžŒαžΈαžŸ αžŠαŸ„αž™αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž“αžΉαž„αž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž›αž–αž½αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆ αž¬αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αŸ’αž”αžΆαž›αžαžΆαžŸαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž•αŸ’αž›αžΌαžœαžŠαŸαž”αŸ’αžšαžŸαžΎαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž›αžΎαž…αžΆαž“αžšαžΆαž„αžŸαŸ†αž”αŸ‰αŸ‚αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž₯αž‘αŸ’αž’αž·αž–αž›αžŸαž»αž‘αŸ’αž’αž‚αžΊαžαžΆαž’αŸ’αž“αž€αž’αžΆαž…αž…αŸ’αžšαž”αžΆαž…αŸ‹ I/O αž…αŸαž‰αž–αžΈαžŒαžΈαžŸαž“αžΈαž˜αž½αž™αŸ—αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž€αžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž‡αžΆαž˜αž½αž™ I/O αž•αŸ’αž‘αžΆαž›αŸ‹αž¬αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αŸ”

αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž…αž„αŸ’αž€αŸ„αž˜ Ceph αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž›αžΎαžŸαž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαžαžΆαžŸαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž“αŸαŸ‡ αž…αŸ†αž“αž½αž“αžŸαžšαž»αž”αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš I/O αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αžŠαŸ‚αž›αžšαž„αŸ‹αž…αžΆαŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αžαžΆαžŸαž’αžΆαž…αž€αžΎαž“αž‘αžΎαž„αžŠαŸ„αž™αž˜αž·αž“αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αžΆαž“ αž αžΎαž™αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžš I/O αž”αŸ†αž–αŸαž‰αž‡αž½αžšαžŒαžΈαžŸ αž“αž·αž„ Ceph αž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αžŸαŸ†αžŽαžΎβ€‹αž’αžΆαž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹β€‹αž‡αžΆβ€‹αž–αž·αžŸαŸαžŸβ€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αž‡αžΆαž”αŸ‹β€‹αž‚αžΆαŸ†αž„β€‹αžšαžœαžΆαž„β€‹αžŸαŸ†αžŽαžΎβ€‹αžŸαžšαžŸαŸαžš αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž…αŸ†αžŽαžΆαž™β€‹αž–αŸαž›β€‹αž…αŸ’αžšαžΎαž“β€‹αžœαž·αž“αžΆαž‘αžΈβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αž‰αŸ’αž…αŸ„αž‰β€‹αž‘αŸ…β€‹αžαžΆαžŸβ€‹αž…αž˜αŸ’αž”αž„αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž˜αŸ’αž“αŸ‡αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ Ceph αž˜αžΆαž“αž™αž“αŸ’αžαž€αžΆαžšαž”αž·αž‘αž”αžΎαž€αž€αžΆαžšαžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž αŸ…αžαžΆ WBThrottle αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž…αŸ†αž“αž½αž“αžŸαžšαž»αž”αž“αŸƒ I/O αžŠαŸ‚αž›αžαŸ’αž‡αž·αž›αžŸαžšαžŸαŸαžš αžŠαŸ‚αž›αž’αžΆαž…αžαž˜αŸ’αžšαž„αŸ‹αž‡αž½αžš αž“αž·αž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš flush αžšαž”αžŸαŸ‹αžœαžΆαž›αžΏαž“αž‡αžΆαž„αž€αžΆαžšαž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž’αž˜αŸ’αž˜αž‡αžΆαžαž· αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ„αž™αžαžΊαžŽαŸ‚αž›αžαŸ’αž›αž½αž“αž―αž„αŸ” αž‡αžΆαž’αž€αž»αžŸαž› αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž„αŸ’αž αžΆαž‰αžαžΆαžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž’αžΆαž…αž“αŸ…αžαŸ‚αž˜αž·αž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž₯αžšαž·αž™αžΆαž”αž‘αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αžŠαž›αŸ‹αž€αž˜αŸ’αžšαž·αžαžŠαŸ‚αž›αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž“αŸαŸ‡αž‘αŸ…αž›αžΎαž€αžΆαžšαž’αžΆαž“αžšαž™αŸˆαž–αŸαž›αž™αžΊαžαŸ” αž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž₯αžšαž·αž™αžΆαž”αžαž“αŸαŸ‡ αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž”αŸ’αžšαžœαŸ‚αž„αž‡αž½αžšαžŸαžšαžŸαŸαžšαž‘αžΆαŸ†αž„αž˜αžΌαž› αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž•αž›αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αž“αŸαŸ‡αž˜αž·αž“αžŸαžΌαžœαž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžšαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž˜αžΆαž“αž€αžΆαžšαžŠαŸ„αŸ‡αžŠαžΌαžšαž˜αž½αž™αŸ– αžŠαŸ„αž™αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž’αžαž·αž”αžšαž·αž˜αžΆαž“αŸƒαž’αžΆαžαž»αžŸαžšαž»αž”αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŠαžΆαž€αŸ‹αž‡αžΆαž‡αž½αžš αž’αŸ’αž“αž€αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹αžαžΊαžŽαŸ‚αž›αžαŸ’αž›αž½αž“αžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αžŸαŸ†αžŽαžΎαž…αžΌαž›αŸ” αžœαžΆαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž‚αž·αžαž”αž“αŸ’αžαž·αž…αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžšαžŽαžΈαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžš αž“αž·αž„αž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αžŸαž˜αž“αžΉαž„αž–αž½αž€αž‚αŸαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‡αž˜αŸ’αžšαŸ…αž“αŸƒαž‡αž½αžšαžŸαžšαžŸαŸαžš-backlog αž”αŸ‚αž”αž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž’αžαž·αž”αžšαž·αž˜αžΆαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš I/O αžŠαŸ‚αž›αž˜αž·αž“αž‘αžΆαž“αŸ‹αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ WBThrottle αž¬αž’αŸ’αž“αž€αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžαž˜αŸ’αž›αŸƒαž’αžαž·αž”αžšαž˜αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αŸ„αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž”αŸ’αž›αž»αž€αž“αŸƒαžαžΊαžŽαŸ‚αž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αž‘αžΆαž›αŸ‹αŸ” αž‘αžΆαŸ†αž„αž–αžΈαžšαž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž₯αžšαž·αž™αžΆαž”αžαžŠαžΌαž…αž‚αŸ’αž“αžΆαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž αžΎαž™αž…αŸ†αžŽαžΌαž›αž…αž·αžαŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸαŸ‡αŸ”
αž‚αž½αžšαž€αžαŸ‹αžŸαŸ†αž‚αžΆαž›αŸ‹αž•αž„αžŠαŸ‚αžšαžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αžΆαž‘αž·αž—αžΆαž–αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹ Ceph αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαž½αžšαžαŸ’αž›αžΈαŸ—αž“αŸ…αž€αž˜αŸ’αžšαž·αžαžŒαžΈαžŸαŸ” αžŠαŸ„αž™αž”αž„αŸ’αžšαž½αž‰αž‡αž½αžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αž‘αŸ…αžαžΆαžŸαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž‘αžΈαžαžΆαŸ†αž„αž…αž˜αŸ’αž”αž„αž“αŸƒαž‡αž½αžšαž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ… Ceph αžŠαŸ‚αž›αžœαžΆαž˜αžΆαž“αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‡αžΆαž’αžΆαž‘αž·αž—αžΆαž–αžŠαŸ‚αž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš I/O αž˜αžΆαž“αŸ” αž–αž·αž…αžΆαžšαžŽαžΆαž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

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

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

COMMON αŸ”

αž“αž·αž„αž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αžαžΊαžŽαŸ‚αž›αž–αžΈαžšαž”αžΈαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžšαžαž™αž“αŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αž“αŸ‹ αž“αž·αž„αžšαž›αŸ„αž„ αž αžΎαž™αž…αŸ’αžšαž”αžΆαž…αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸαž‰αž–αžΈαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”

αž†αŸ’αž˜αžΆ /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

αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ QA αž“αŸ…αž›αžΎαž€αŸ†αžŽαŸ‚ 12.2.12 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΆαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ ceph αž€αŸ†αžŽαŸ‚ 12.2.2 αž§αž‘αžΆαž αžšαžŽαŸ osd_recovery_threads αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž•αŸ‚αž“αž€αžΆαžšαž“αŸαŸ‡αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž›αžΎαž€αžΆαžšαž•αž›αž·αžαž‘αŸ… 12.2.12 αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαžšαžœαžΆαž„αž€αŸ†αžŽαŸ‚ 12.2.2 αž“αž·αž„ 12.2.12 αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžαŸ‚αž˜αž½αž™ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžœαž·αž›αž‡αž»αŸ†αŸ”

αž…αž„αŸ’αž€αŸ„αž˜αžŸαžΆαž€αž›αŸ’αž”αž„

αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„ αžœαžΆαž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αžŽαŸ‚αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž˜αžšαž—αžΌαž˜αž· αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžαŸ’αž‰αž»αŸ†αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž…αž„αŸ’αž€αŸ„αž˜ αž˜αžΆαž“αžαŸ‚αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž‡αžΆαž„αž“αŸαŸ‡αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αŸ” αžŠαŸ„αž™β€‹αž”αžΆαž“β€‹αž˜αžΎαž›β€‹αž‘αŸ…β€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž™αž›αŸ‹β€‹αžƒαžΎαž‰β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αŸ†αžŽαŸ‚β€‹αž’αž“αžΈαžαž·αž‡αž“β€‹αž‚αžΊβ€‹αž˜αž·αž“β€‹αž’αŸ†β€‹αžŽαžΆαžŸαŸ‹ (1393 αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„ 1436 αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈ) αž™αžΎαž„αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ’αž˜αžΈ (αž’αžΆαž”αŸ‹αžŠαŸαžαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž αŸαžαž»αž’αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž‘αŸ…αž‡αžΆαž˜αž½αž™αžŸαŸ†αžšαžΆαž˜αž…αžΆαžŸαŸ‹)

αžšαžΏαž„αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž…αžΆαž€αž…αŸαž‰αž–αžΈαž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αž‚αžΊαž€αž‰αŸ’αž…αž”αŸ‹ ceph-αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“ (αž“αž·αž„αž“αž·αž™αŸ„αž‡αž·αžαžαŸ’αž›αŸ‡) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžαžΆαž˜αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž‚αžΊαžαž»αžŸαž‚αŸ’αž“αžΆαžαŸ’αž›αžΆαŸ†αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αž›αž½αž“αž―αž„αž‘αŸ αž αžΎαž™αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚ 1.5.39

αžŠαŸ„αž™αžŸαžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ ceph-disk αž“αž·αž™αžΆαž™αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’ αž“αž·αž„αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ ceph-volume αž‡αžΆαž‘αžΈαžŸαŸ’αžšαž‘αžΆαž‰αŸ‹ αž™αžΎαž„αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αž„αŸ’αž€αžΎαž OSD αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡ αžŠαŸ„αž™αž˜αž·αž“αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž–αŸαž›αžœαŸαž›αžΆαž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž αž½αžŸαžŸαž˜αŸαž™αž“αŸ„αŸ‡αž‘αŸαŸ”

αž•αŸ‚αž“αž€αžΆαžšαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž€αž‰αŸ’αž…αž€αŸ‹αž“αŸƒαžŠαŸ’αžšαžΆαž™ SSD αž–αžΈαžšαžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžŠαžΆαž€αŸ‹αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» OSD αžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžœαŸαž“αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž›αžΎ 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 αž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαŸ‚ cluster 12.2.12 αž‚αžΊαž‡αžΆαž€αŸ†αž αž»αžŸαž“αŸ…αž–αŸαž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž€αžΎαž OSD αž‡αžΆαž˜αž½αž™ db αž›αžΎαž€αžΆαžšαžœαžΆαž™αž†αŸ’αž˜αž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ -

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 αž˜αŸ’αžαž„αž‘αŸ€αž αž αžΎαž™αž‘αž‘αž½αž›αž”αžΆαž“αž€αŸ†αž αž»αžŸαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ (αžŠαŸ‚αž›αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡ αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžœαž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž˜αžšαž—αžΌαž˜αž·αž‘αŸ)

αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž OSD αž“αŸƒαž”αŸ’αžšαž—αŸαž‘ bluestore αžŠαŸ„αž™αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž•αŸ’αž›αžΌαžœαž‘αŸ…αž€αžΆαž“αŸ‹ WAL αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ 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 αž αžΎαž™αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžœαžΆαž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαž 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 pancakesαŸ”

αž§αž”αž˜αžΆαžαžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΆαž“ 20 ថអស αžŠαž”αŸ‹αžŠαŸ†αž”αžΌαž„αž‚αžΊαž˜αž½αž™αž”αŸ’αžšαž—αŸαž‘ αž‘αžΈαž–αžΈαžšαž‚αžΊαž˜αž½αž™αž‘αŸ€αžαŸ”
αž€αžΆαžαžŠαŸ†αž”αžΌαž„ αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

ដើមឈើ ceph osd

root@ceph01-q:~# ceph osd tree
ID CLASS WEIGHT TYPE STATUS REWEIGHT PRI-AFF
-1 14.54799 αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‡αžΆ root
-3 9.09200 αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡ 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 αž‘αžΎαž„ 1.00000 1.00000
5 hdd 0.27299 osd.5 αž‘αžΎαž„ 1.00000 1.00000
6 hdd 0.27299 osd.6 αž‘αžΎαž„ 1.00000 1.00000
7 hdd 0.27299 osd.7 αž‘αžΎαž„ 1.00000 1.00000
8 hdd 0.27299 osd.8 αž‘αžΎαž„ 1.00000 1.00000
9 hdd 0.27299 osd.9 αž‘αžΎαž„ 1.00000 1.00000
10 hdd 0.27299 osd.10 αž‘αžΎαž„ 1.00000 1.00000
11 hdd 0.27299 osd.11 αž‘αžΎαž„ 1.00000 1.00000
12 hdd 0.27299 osd.12 αž‘αžΎαž„ 1.00000 1.00000
13 hdd 0.27299 osd.13 αž‘αžΎαž„ 1.00000 1.00000
14 hdd 0.27299 osd.14 αž‘αžΎαž„ 1.00000 1.00000
15 hdd 0.27299 osd.15 αž‘αžΎαž„ 1.00000 1.00000
16 hdd 0.27299 osd.16 αž‘αžΎαž„ 1.00000 1.00000
17 hdd 0.27299 osd.17 αž‘αžΎαž„ 1.00000 1.00000
18 hdd 0.27299 osd.18 αž‘αžΎαž„ 1.00000 1.00000
19 hdd 0.27299 osd.19 αž‘αžΎαž„ 1.00000 1.00000
-5 5.45599 αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡ 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 αž‘αžΎαž„ 1.00000 1.00000
25 hdd 0.27299 osd.25 αž‘αžΎαž„ 1.00000 1.00000
26 hdd 0.27299 osd.26 αž‘αžΎαž„ 1.00000 1.00000
27 hdd 0.27299 osd.27 αž‘αžΎαž„ 1.00000 1.00000
28 hdd 0.27299 osd.28 αž‘αžΎαž„ 1.00000 1.00000
29 hdd 0.27299 osd.29 αž‘αžΎαž„ 1.00000 1.00000
30 hdd 0.27299 osd.30 αž‘αžΎαž„ 1.00000 1.00000
31 hdd 0.27299 osd.31 αž‘αžΎαž„ 1.00000 1.00000
32 hdd 0.27299 osd.32 αž‘αžΎαž„ 1.00000 1.00000
33 hdd 0.27299 osd.33 αž‘αžΎαž„ 1.00000 1.00000
34 hdd 0.27299 osd.34 αž‘αžΎαž„ 1.00000 1.00000
35 hdd 0.27299 osd.35 αž‘αžΎαž„ 1.00000 1.00000
36 hdd 0.27299 osd.36 αž‘αžΎαž„ 1.00000 1.00000
37 hdd 0.27299 osd.37 αž‘αžΎαž„ 1.00000 1.00000
38 hdd 0.27299 osd.38 αž‘αžΎαž„ 1.00000 1.00000
39 hdd 0.27299 osd.39 αž‘αžΎαž„ 1.00000 1.00000
-7 6.08690 αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡ 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 αž‘αžΎαž„ 1.00000 1.00000
45 hdd 0.27299 osd.45 αž‘αžΎαž„ 1.00000 1.00000
46 hdd 0.27299 osd.46 αž‘αžΎαž„ 1.00000 1.00000
47 hdd 0.27299 osd.47 αž‘αžΎαž„ 1.00000 1.00000
48 hdd 0.27299 osd.48 αž‘αžΎαž„ 1.00000 1.00000
49 hdd 0.27299 osd.49 αž‘αžΎαž„ 1.00000 1.00000
50 hdd 0.27299 osd.50 αž‘αžΎαž„ 1.00000 1.00000
51 hdd 0.27299 osd.51 αž‘αžΎαž„ 1.00000 1.00000
52 hdd 0.27299 osd.52 αž‘αžΎαž„ 1.00000 1.00000
53 hdd 0.27299 osd.53 αž‘αžΎαž„ 1.00000 1.00000
54 hdd 0.27299 osd.54 αž‘αžΎαž„ 1.00000 1.00000
55 hdd 0.27299 osd.55 αž‘αžΎαž„ 1.00000 1.00000
56 hdd 0.27299 osd.56 αž‘αžΎαž„ 1.00000 1.00000
57 hdd 0.27299 osd.57 αž‘αžΎαž„ 1.00000 1.00000
58 hdd 0.27299 osd.58 αž‘αžΎαž„ 1.00000 1.00000
59 hdd 0.89999 osd.59 αž‘αžΎαž„ 1.00000 1.00000

αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαž rack αž“αž·αž„ servers αž“αž·αž˜αŸ’αž˜αž·αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αž½αž™ blackjack αž“αž·αž„αžšαž”αžŸαŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ–

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

αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡ αž€αžΆαžšαž”αŸ’αžšαž™αž»αž‘αŸ’αž’ cluster αž“αŸ…αž–αŸαž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ’αž˜αžΈ αž αžΎαž™αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžœαžΆαž‘αŸ… rack αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ - αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ ceph osd crush αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈ ceph01-host root=rack01 αž”αž„αŸ’αž€αž€ αž αžΎαž™αž˜αŸ‰αžΌαž“αžΈαž‘αŸαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž˜αŸ’αžαž„αž˜αž½αž™αŸ—αŸ” αž€αžΆαžšαž”αŸ„αŸ‡αž”αž„αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ CTRL + C αžŸαžΆαž˜αž‰αŸ’αž‰αž”αžΆαž“αžαŸ’αžšαž‘αž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αž‘αŸ…αž€αžΆαž“αŸ‹αž–αž·αž—αž–αž“αŸƒαž€αžΆαžšαžšαžŸαŸ‹αž“αŸ…αŸ”

αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ– https://tracker.ceph.com/issues/23386

αžŠαŸ†αžŽαŸ„αŸ‡β€‹αžŸαŸ’αžšαžΆαž™β€‹αž”αžΆαž“β€‹αž”αŸ’αžšαŸ‚β€‹αž€αŸ’αž›αžΆαž™β€‹αž‘αŸ…β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž›αž»αž”β€‹αž•αŸ‚αž“αž‘αžΈβ€‹αž€αŸ†αž‘αŸαž…β€‹αž…αŸ„αž› αž αžΎαž™β€‹αž™αž€β€‹αž•αŸ’αž“αŸ‚αž€β€‹αž…αŸαž‰β€‹αž–αžΈβ€‹αž‘αžΈαž“αŸ„αŸ‡ rule 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 #Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π² кластСр

αž’αžΆαž€αž‘αž»αž„αŸ– αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸαŸ‡αž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž–αž‘αžΎαž„αžœαž·αž‰αž“αŸƒαž€αŸ’αžšαž»αž˜αžŠαžΆαž€αŸ‹αžšαžœαžΆαž„ OSDs αŸ” αžœαžΆβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€β€‹αžšαžΏαž„β€‹αž“αŸαŸ‡β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž™αžΎαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαž·αž…αžαž½αž…β€‹αžŽαžΆαžŸαŸ‹αŸ”

αž αžΎαž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž…αž˜αŸ’αž›αŸ‚αž€αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŸαžΆαž€αž›αŸ’αž”αž„αž“αŸ„αŸ‡αž‚αžΊαžαžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ OSD αž‘αžΎαž„αžœαž·αž‰ αž–αž½αž€αž‚αŸαž—αŸ’αž›αŸαž…αžαžΆαž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„ rack αžαŸ’αž˜αžΈ αž αžΎαž™αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αž‡αžΆ root αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžœαž·αž‰αŸ”
αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αžŠαŸ„αž™αž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž«αžŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ’αžšαžΆαž™ ssd αž“αž·αž„αž˜αž½αž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ’αžšαžΆαž™ spindle αž™αžΎαž„αž”αžΆαž“αž™αž€ OSD αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž‡αžΆ racks αž αžΎαž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž›αž»αž”αž«αžŸαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ OSD αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž“αžΉαž„αž€αž“αŸ’αž›αŸ‚αž„αŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž‡αžΈαž€αž™αž€αž―αž€αžŸαžΆαžšαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αž™αžΎαž„αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαž“αŸαŸ‡αŸ” αž’αŸ†αž–αžΈαž‚αžΆαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž‘αžΈαž–αžΈαžš

αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαž»αž˜αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαžαžΆαž˜αž”αŸ’αžšαž—αŸαž‘αžαžΆαžŸαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž«αžŸαž–αžΈαžš - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ssd αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ hdd

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

αžŠαŸ„αž™αžŸαžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„ racks αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž rack αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸ…αž€αŸ’αž“αž»αž„αž–αž½αž€αžœαžΆ

# Π‘Ρ‚ΠΎΠΉΠΊΠΈ:
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

αž“αž·αž„αž…αŸ‚αž€αž…αžΆαž™αžŒαžΈαžŸαžαžΆαž˜αž”αŸ’αžšαž—αŸαž‘αžšαž”αžŸαŸ‹αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αžŸαŸαž„αŸ—

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 αž™αžΎαž„αž”αžΆαž“αž‘αž»αž€ root-default αž‘αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž’αžΆαž…αž›αž»αž”αžœαžΆαž”αžΆαž“

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

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‘αŸ€αž αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž…αŸ’αž”αžΆαž”αŸ‹αž…αŸ‚αž€αž…αžΆαž™αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž…αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž“αžΉαž„αž’αžΆαž„αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž - αž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ’αž”αžΆαž”αŸ‹αž™αžΎαž„αž“αžΉαž„αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αžαžΆαžαžΎαž«αžŸαžŽαžΆαž˜αž½αž™αž’αžΆαž…αžŠαžΆαž€αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžΆαž„αžšαž”αžŸαŸ‹αž™αžΎαž„ αž“αž·αž„αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž—αžΆαž–αž”αŸ’αž›αŸ‚αž€αž“αŸƒαžœαžαŸ’αžαž»αž…αž˜αŸ’αž›αž„ - αž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ” αž¬αž“αŸ…αž€αŸ’αž“αž»αž„ racks αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ (αž’αŸ’αž“αž€αž’αžΆαž…αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž«αžŸαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž”αŸ‚αž”αž“αŸαŸ‡)

αž˜αž»αž“αž–αŸαž›αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αŸ’αžšαž—αŸαž‘ αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αž―αž€αžŸαžΆαžšαŸ–
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

αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž’αžΆαž„αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžšαžΌαž”αž—αžΆαž–αžαžΆαžŸαž“αŸƒαž“αž·αž˜αŸ’αž˜αž·αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αž - 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

αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαž…αŸ†αž“αž½αž“αž€αŸ’αžšαž»αž˜αžŠαžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαž·αžαž‡αž·αžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αž€αŸ’αžαž»αžœαž·αžŸαŸαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ - αž”αŸ’αžšαž αŸ‚αž›αž…αŸ†αž“αž½αž“ OSDs αž“αžΉαž„αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αžαžΎαž…αŸ†αž“αž½αž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“ (αž‚αž·αžαž‡αžΆαž—αžΆαž‚αžšαž™αž“αŸƒαž”αžšαž·αž˜αžΆαžŽαžŸαžšαž»αž”) αž“αžΉαž„αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαž„ αžαžΎαž’αŸ’αžœαžΈαž‡αžΆ αž…αŸ†αž“αž½αž“αžŸαžšαž»αž”αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”

αžŸαžšαž»αž”αž˜αž€ αž˜αž·αž“αž‚αž½αžšαž˜αžΆαž“αž€αŸ’αžšαž»αž˜αžŠαžΆαž€αŸ‹αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 300 αž“αŸ…αž›αžΎαžαžΆαžŸαž“αŸ„αŸ‡αž‘αŸ αž αžΎαž™αžœαžΆαž“αžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΆαž“αžαž»αž›αŸ’αž™αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αžŠαžΆαž€αŸ‹αžαžΌαž…αŸ— αž–αŸ„αž›αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžΆαž„αž‘αžΆαŸ†αž„αž˜αžΌαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΎαž„ 10 Tb αž αžΎαž™αž˜αžΆαž“ 10 PG αž“αŸ…αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡ - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αžœαžΎαžŸαž˜αžαž»αž›αŸ’αž™αŸ” αžŠαŸ„αž™αž€αžΆαžšαž”αŸ„αŸ‡αž₯αžŠαŸ’αž‹ terabyte (αž‘αŸ†αŸ” ) αž“αžΉαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆ - αž…αžΆαž€αŸ‹αžαŸ’αžŸαžΆαž…αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžŸαžΆαž…αŸ‹αž‘αŸ†αž αŸ†αžαžΌαž…αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž»αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž„αž“αž·αž„αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆ) αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž…αž„αž…αžΆαŸ†αžαžΆαž…αŸ†αž“αž½αž“ PGs αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“ αž’αž“αž’αžΆαž“αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž›αžΎαž€αžΆαžšαž‚αžŽαž“αžΆαž‘αžΈαžαžΆαŸ†αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ - αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αžŸαŸŠαžΈαž—αžΈαž™αžΌαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž’αžΆαž… αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžαŸ’αž‰αž»αŸ†αž“αžΌαžœαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‚αž·αžαž›αŸαžαž•αŸ’αžαž›αŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž―αž€αžŸαžΆαžš 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/

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹