Proxmox VE 6.1 + Cephで速度計測 各ノードSSD1台の記録
最初に
今回はSSDのみで構成したパターンを計測していきます
計測環境
以前の記事にスペックや計測方法を掲載してますのでそちらをご覧ください
Proxmox VE 6.1 + Cephで速度計測:HDDx1 | fefcc.net
https://fefcc.net/archives/1040
今回のCeph構成
各ノードに登録しているOSDは
SSD SATA Crucial MX500 500GB(CT500MX500SSD1/JP)を1台
Pool01という名でCeph/RBD形式のプール作成
Pool01のPG値は128
OSDやプール情報
各ノードSSD1台のみで3ノード3OSD構成になります
OSD登録はディスクのみ設定です
SSDなのでDB/WALは指定せずにディスク内(OSD Disk)で利用します
3ノード全てOSD登録した様子がこちら
クラスがssdになっているのが確認できます
各SSD1台:計3OSDでの計測結果
Proxmox起動直後のメモリ使用状況
pve01は1.74GiB、pve01は1.71GiB、pve03は1.59GiB
CentOS7のVMから計測
[root@centos7-bench ~]# ./fio_cdm.sh /root Testing in /root Configuration: Size:1024m Loops:5 Write Only Zeroes:0 Running Benchmark, please wait... Results: Sequential Read: 166MB/s IOPS=0 Sequential Write: 109MB/s IOPS=0 512KB Read: 208MB/s IOPS=416 512KB Write: 41MB/s IOPS=83 Sequential Q32T1 Read: 166MB/s IOPS=5 Sequential Q32T1 Write: 108MB/s IOPS=3 4KB Read: 4MB/s IOPS=1250 4KB Write: 1MB/s IOPS=357 4KB Q32T1 Read: 3MB/s IOPS=1000 4KB Q32T1 Write: 1MB/s IOPS=333 4KB Q8T8 Read: 32MB/s IOPS=8250 4KB Q8T8 Write: 8MB/s IOPS=2181 [root@centos7-bench ~]#
Windows10のVMから計測
------------------------------------------------------------------------------ CrystalDiskMark 7.0.0 x64 (C) 2007-2019 hiyohiyo Crystal Dew World: https://crystalmark.info/ ------------------------------------------------------------------------------ * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes [Read] Sequential 1MiB (Q= 8, T= 1): 177.020 MB/s [ 168.8 IOPS] < 46914.17 us> Sequential 1MiB (Q= 1, T= 1): 147.665 MB/s [ 140.8 IOPS] < 7094.34 us> Random 4KiB (Q= 32, T=16): 167.852 MB/s [ 40979.5 IOPS] < 12454.53 us> Random 4KiB (Q= 1, T= 1): 7.044 MB/s [ 1719.7 IOPS] < 580.64 us> [Write] Sequential 1MiB (Q= 8, T= 1): 84.737 MB/s [ 80.8 IOPS] < 98051.34 us> Sequential 1MiB (Q= 1, T= 1): 47.391 MB/s [ 45.2 IOPS] < 22094.71 us> Random 4KiB (Q= 32, T=16): 47.960 MB/s [ 11709.0 IOPS] < 43324.00 us> Random 4KiB (Q= 1, T= 1): 2.373 MB/s [ 579.3 IOPS] < 1724.08 us> [Mix] Read 70%/Write 30% Sequential 1MiB (Q= 8, T= 1): 191.494 MB/s [ 182.6 IOPS] < 43521.77 us> Sequential 1MiB (Q= 1, T= 1): 90.192 MB/s [ 86.0 IOPS] < 11569.74 us> Random 4KiB (Q= 32, T=16): 131.776 MB/s [ 32171.9 IOPS] < 15736.57 us> Random 4KiB (Q= 1, T= 1): 4.251 MB/s [ 1037.8 IOPS] < 962.23 us> Profile: Default Test: 1 GiB (x5) [Interval: 5 sec] <DefaultAffinity=DISABLED> Date: 2020/02/13 8:14:53 OS: Windows 10 Professional [10.0 Build 18363] (x64)
rados benchで計測
ブロックサイズ1M&16スレッドで60秒間書き込み
結果は104.131MB/s
root@pve01:~# rados bench -p Pool01 -t 16 -b 1M 60 write --no-cleanup hints = 1 Maintaining 16 concurrent writes of 1048576 bytes to objects of size 1048576 for up to 60 seconds or 0 objects Object prefix: benchmark_data_pve01_9299 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 0 0 0 0 0 0 - 0 1 16 113 97 96.9959 97 0.101623 0.153618 2 16 220 204 101.994 107 0.146775 0.149036 3 16 319 303 100.993 99 0.18342 0.153095 4 16 420 404 100.992 101 0.163802 0.154625 5 16 528 512 102.392 108 0.144278 0.153968 6 16 622 606 100.992 94 0.146628 0.155528 7 16 727 711 101.563 105 0.189087 0.155094 8 16 837 821 102.616 110 0.138062 0.15451 9 16 934 918 101.991 97 0.222539 0.15527 10 16 1044 1028 102.791 110 0.175019 0.154583 11 16 1148 1132 102.9 104 0.0980474 0.154559 12 16 1253 1237 103.074 105 0.193466 0.154085 13 16 1356 1340 103.068 103 0.196999 0.154252 14 16 1463 1447 103.348 107 0.134215 0.153884 15 16 1561 1545 102.991 98 0.159883 0.154241 16 16 1662 1646 102.866 101 0.161245 0.154447 17 16 1770 1754 103.167 108 0.113477 0.154364 18 16 1876 1860 103.324 106 0.165983 0.153955 19 16 1988 1972 103.78 112 0.0957413 0.15346 2020-02-13 08:19:33.196799 min lat: 0.0413498 max lat: 0.312155 avg lat: 0.152992 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 20 16 2097 2081 104.041 109 0.16463 0.152992 21 16 2205 2189 104.229 108 0.128714 0.15298 22 16 2319 2303 104.673 114 0.123089 0.15251 23 16 2421 2405 104.556 102 0.185228 0.152412 24 16 2531 2515 104.782 110 0.118034 0.152364 25 16 2627 2611 104.431 96 0.187671 0.152563 26 16 2731 2715 104.414 104 0.0767467 0.152487 27 16 2827 2811 104.102 96 0.20499 0.153296 28 16 2928 2912 103.991 101 0.103055 0.153359 29 16 3035 3019 104.094 107 0.146182 0.153142 30 16 3138 3122 104.058 103 0.181228 0.153362 31 16 3235 3219 103.83 97 0.166326 0.153772 32 16 3327 3311 103.46 92 0.187884 0.15414 33 16 3436 3420 103.627 109 0.170913 0.154091 34 16 3545 3529 103.785 109 0.15661 0.15376 35 16 3645 3629 103.677 100 0.194915 0.154003 36 16 3751 3735 103.741 106 0.200039 0.153867 37 16 3859 3843 103.856 108 0.103414 0.1537 38 16 3958 3942 103.728 99 0.141074 0.153865 39 16 4060 4044 103.683 102 0.166272 0.153955 2020-02-13 08:19:53.198583 min lat: 0.0401179 max lat: 0.354302 avg lat: 0.154059 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 40 16 4163 4147 103.666 103 0.136394 0.154059 41 16 4269 4253 103.722 106 0.159946 0.153938 42 16 4374 4358 103.753 105 0.202911 0.153885 43 16 4480 4464 103.805 106 0.162961 0.153863 44 16 4584 4568 103.809 104 0.112182 0.15385 45 16 4688 4672 103.813 104 0.126135 0.153878 46 16 4789 4773 103.752 101 0.171424 0.15385 47 16 4892 4876 103.735 103 0.167658 0.153972 48 16 4997 4981 103.762 105 0.136829 0.154016 49 16 5089 5073 103.521 92 0.230527 0.154199 50 16 5200 5184 103.671 111 0.175394 0.154141 51 16 5296 5280 103.52 96 0.245941 0.154218 52 16 5406 5390 103.645 110 0.210188 0.154089 53 16 5511 5495 103.67 105 0.12645 0.154066 54 16 5628 5612 103.917 117 0.133548 0.153772 55 16 5736 5720 103.991 108 0.151489 0.153629 56 16 5842 5826 104.026 106 0.228813 0.153532 57 16 5945 5929 104.008 103 0.14261 0.153591 58 16 6046 6030 103.956 101 0.188947 0.153702 59 16 6147 6131 103.906 101 0.184282 0.153654 2020-02-13 08:20:13.200426 min lat: 0.0401179 max lat: 0.354302 avg lat: 0.153646 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 60 16 6256 6240 103.991 109 0.182513 0.153646 Total time run: 60.0876 Total writes made: 6257 Write size: 1048576 Object size: 1048576 Bandwidth (MB/sec): 104.131 Stddev Bandwidth: 5.2947 Max bandwidth (MB/sec): 117 Min bandwidth (MB/sec): 92 Average IOPS: 104 Stddev IOPS: 5.2947 Max IOPS: 117 Min IOPS: 92 Average Latency(s): 0.153629 Stddev Latency(s): 0.0435504 Max latency(s): 0.354302 Min latency(s): 0.03994 root@pve01:~#
先ほど書き込んだデータを16スレッドでシーケンシャル読み込み
結果は173.472MB/s
root@pve01:~# rados bench -p Pool01 -t 16 60 seq hints = 1 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 0 0 0 0 0 0 - 0 1 16 195 179 178.973 179 0.142258 0.0836326 2 16 367 351 175.478 172 0.0626151 0.0871466 3 16 530 514 171.315 163 0.100195 0.0907407 4 16 716 700 174.981 186 0.226395 0.0895295 5 16 909 893 178.582 193 0.00311578 0.0876636 6 16 1091 1075 179.149 182 0.050167 0.0876747 7 16 1273 1257 179.554 182 0.00318335 0.0878851 8 16 1447 1431 178.858 174 0.0716306 0.0883545 9 16 1628 1612 179.095 181 0.245536 0.0883356 10 16 1807 1791 179.082 179 0.00323566 0.0884847 11 16 1978 1962 178.346 171 0.0351657 0.0887875 12 16 2153 2137 178.066 175 0.232243 0.0891396 13 16 2323 2307 177.444 170 0.103653 0.0895916 14 16 2496 2480 177.125 173 0.00300411 0.0896614 15 16 2653 2637 175.781 157 0.00321472 0.0903309 16 16 2815 2799 174.919 162 0.213373 0.0908339 17 16 2974 2958 173.981 159 0.133065 0.0915153 18 16 3174 3158 175.425 200 0.0534679 0.0906762 19 16 3356 3340 175.77 182 0.202616 0.0905008 2020-02-13 08:20:46.642014 min lat: 0.00280234 max lat: 0.271998 avg lat: 0.090647 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 20 16 3527 3511 175.53 171 0.0031167 0.090647 21 16 3701 3685 175.456 174 0.00314629 0.0908307 22 16 3865 3849 174.933 164 0.00318317 0.091103 23 16 4054 4038 175.543 189 0.00304817 0.0906784 24 16 4223 4207 175.27 169 0.209053 0.0909412 25 16 4393 4377 175.059 170 0.00314478 0.0909514 26 16 4558 4542 174.671 165 0.178407 0.0912783 27 16 4732 4716 174.646 174 0.00307134 0.0912575 28 16 4906 4890 174.622 174 0.00308914 0.0913517 29 16 5092 5076 175.014 186 0.124676 0.0911531 30 16 5258 5242 174.712 166 0.208926 0.0912444 31 16 5425 5409 174.463 167 0.174936 0.0914302 32 16 5601 5585 174.511 176 0.219943 0.0913841 33 16 5763 5747 174.131 162 0.00315016 0.0915442 34 16 5934 5918 174.038 171 0.00304122 0.0916203 35 16 6115 6099 174.236 181 0.0208273 0.0915038 36 16 6257 6241 173.34 142 0.00313087 0.0917626 Total time run: 36.0692 Total reads made: 6257 Read size: 1048576 Object size: 1048576 Bandwidth (MB/sec): 173.472 Average IOPS: 173 Stddev IOPS: 10.9679 Max IOPS: 200 Min IOPS: 142 Average Latency(s): 0.0921633 Max latency(s): 0.365315 Min latency(s): 0.00280234 root@pve01:~#
ブロックサイズ4K&16スレッドで60秒間書き込み
結果は19.1632MB/s 4905IOPS
root@pve01:~# rados bench -p Pool01 -t 16 -b 4K 60 write --no-cleanup hints = 1 Maintaining 16 concurrent writes of 4096 bytes to objects of size 4096 for up to 60 seconds or 0 objects Object prefix: benchmark_data_pve01_9891 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 0 0 0 0 0 0 - 0 1 16 5091 5075 19.8232 19.8242 0.00202852 0.00314738 2 16 9906 9890 19.3152 18.8086 0.00254383 0.00323292 3 16 15009 14993 19.5209 19.9336 0.00228122 0.00319956 4 16 19683 19667 19.2048 18.2578 0.00231901 0.00325327 5 16 24426 24410 19.0691 18.5273 0.004227 0.00327704 6 16 29539 29523 19.2194 19.9727 0.00305614 0.00325098 7 16 34653 34637 19.3274 19.9766 0.00300416 0.00323294 8 16 39675 39659 19.3634 19.6172 0.00307695 0.00322707 9 16 44947 44931 19.5 20.5938 0.00378423 0.00320426 10 16 50217 50201 19.6084 20.5859 0.0019656 0.00318694 11 15 55354 55339 19.6503 20.0703 0.00268881 0.00318009 12 16 60279 60263 19.6155 19.2344 0.0035913 0.00318545 13 16 65445 65429 19.6588 20.1797 0.00339836 0.00317838 14 16 70247 70231 19.5943 18.7578 0.00326386 0.00318918 15 16 75476 75460 19.6497 20.4258 0.00281272 0.00318029 16 16 80790 80774 19.7188 20.7578 0.00312423 0.00316907 17 16 86022 86006 19.761 20.4375 0.00312649 0.00316229 18 16 91081 91065 19.761 19.7617 0.00287143 0.00316231 19 16 96186 96170 19.7704 19.9414 0.00252392 0.00316091 2020-02-13 08:21:49.137108 min lat: 0.00145129 max lat: 0.0614853 avg lat: 0.00316 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 20 16 101269 101253 19.7746 19.8555 0.00385618 0.00316 21 16 106382 106366 19.7839 19.9727 0.00335568 0.00315864 22 16 111378 111362 19.7717 19.5156 0.00247474 0.00316069 23 16 116222 116206 19.7347 18.9219 0.00282293 0.0031666 24 16 121323 121307 19.7426 19.9258 0.0027193 0.00316532 25 16 126400 126384 19.7461 19.832 0.00287255 0.00316476 26 16 131617 131601 19.7704 20.3789 0.00382174 0.00316092 27 16 136695 136679 19.7728 19.8359 0.00296593 0.00316061 28 16 141886 141870 19.7907 20.2773 0.00294972 0.00315769 29 16 146962 146946 19.792 19.8281 0.0024176 0.00315742 30 16 152023 152007 19.7912 19.7695 0.00331491 0.00315759 31 16 157068 157052 19.7884 19.707 0.00278012 0.00315805 32 16 161955 161939 19.7665 19.0898 0.00384426 0.00316159 33 16 166968 166952 19.7609 19.582 0.00281064 0.00316248 34 16 171966 171950 19.7539 19.5234 0.00355322 0.00316366 35 16 177209 177193 19.7746 20.4805 0.00389516 0.0031603 36 16 182346 182330 19.7827 20.0664 0.00326595 0.00315907 37 16 187419 187403 19.7835 19.8164 0.00298003 0.00315886 38 16 192600 192584 19.7955 20.2383 0.00263925 0.00315696 39 16 197671 197655 19.7958 19.8086 0.0022337 0.003157 2020-02-13 08:22:09.138505 min lat: 0.00140331 max lat: 0.0635851 avg lat: 0.00315773 sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s) 40 16 202688 202672 19.7908 19.5977 0.00302086 0.00315773 41 16 207818 207802 19.7968 20.0391 0.00239314 0.00315671 42 16 212814 212798 19.7901 19.5156 0.00353715 0.00315778 43 16 217941 217925 19.7956 20.0273 0.0046202 0.00315701 44 16 223142 223126 19.8074 20.3164 0.00301591 0.0031551 45 16 228136 228120 19.8007 19.5078 0.00259068 0.00315618 46 16 230175 230159 19.5433 7.96484 0.00367894 0.00319595 47 16 232083 232067 19.2861 7.45312 0.00321743 0.00324036 48 16 233645 233629 19.0114 6.10156 0.00362935 0.00328719 49 16 237687 237671 18.9456 15.7891 0.00458541 0.00329851 50 16 242964 242948 18.9789 20.6133 0.00301673 0.00329285 51 16 248197 248181 19.0076 20.4414 0.00270577 0.00328792 52 16 253216 253200 19.019 19.6055 0.00283014 0.00328592 53 16 258411 258395 19.0431 20.293 0.00414087 0.00328175 54 16 263434 263418 19.0537 19.6211 0.00255559 0.0032799 55 16 268645 268629 19.0774 20.3555 0.00274701 0.00327586 56 16 273898 273882 19.1031 20.5195 0.00299015 0.00327147 57 16 279099 279083 19.1244 20.3164 0.00332653 0.0032678 58 16 284185 284169 19.1371 19.8672 0.00358146 0.00326555 59 16 289419 289403 19.1593 20.4453 0.00219076 0.00326183 Total time run: 60.0022 Total writes made: 294357 Write size: 4096 Object size: 4096 Bandwidth (MB/sec): 19.1632 Stddev Bandwidth: 2.9011 Max bandwidth (MB/sec): 20.7578 Min bandwidth (MB/sec): 6.10156 Average IOPS: 4905 Stddev IOPS: 742.683 Max IOPS: 5314 Min IOPS: 1562 Average Latency(s): 0.00326127 Stddev Latency(s): 0.0047999 Max latency(s): 0.332502 Min latency(s): 0.00137815 root@pve01:~#
クリーンアップ
root@pve01:~# rados -p Pool01 cleanup Removed 294357 objects root@pve01:~#
rbd benchで計測
プール内に20GBでイメージを作成
root@pve01:~# rbd create --size=20G --pool=Pool01 Test01 root@pve01:~#
ブロックサイズ1M&16スレッドで1024MBをシーケンシャル書き込み&読み込みを計測
結果はWrite:13秒 約82MB/s・Read:6秒 約175MB/s
root@pve01:~# rbd bench Test01 --io-type write --io-size 1M --io-threads 16 --io-total 1024M --io-pattern seq --pool=Pool01 bench type write io_size 1048576 io_threads 16 bytes 1073741824 pattern sequential SEC OPS OPS/SEC BYTES/SEC 1 96 143.59 150562391.67 2 176 105.26 110374685.80 3 256 98.41 103186754.29 4 336 92.83 97334638.99 5 416 89.33 93667848.18 6 496 78.74 82563742.27 7 576 79.18 83021340.63 8 640 76.74 80465000.40 9 736 77.04 80782707.41 10 800 77.48 81244323.22 11 864 75.41 79071703.87 12 944 74.49 78111319.17 elapsed: 13 ops: 1024 ops/sec: 78.45 bytes/sec: 82265167.81 root@pve01:~# rbd bench Test01 --io-type read --io-size 1M --io-threads 16 --io-total 1024M --io-pattern seq --pool=Pool01 bench type read io_size 1048576 io_threads 16 bytes 1073741824 pattern sequential SEC OPS OPS/SEC BYTES/SEC 1 192 202.33 212159925.35 2 336 181.07 189862649.69 3 480 168.25 176419803.07 4 672 171.48 179812819.34 5 848 172.94 181336174.82 elapsed: 6 ops: 1024 ops/sec: 166.77 bytes/sec: 174873790.62 root@pve01:~#
ブロックサイズ4K&16スレッドで512MBをランダム書き込み&読み込みを計測
結果はWrite:16秒 約32.3MB/s・Read:3秒 約142MB/s
root@pve01:~# rbd bench Test01 --io-type write --io-size 4K --io-threads 16 --io-total 512M --io-pattern rand --pool=Pool01 bench type write io_size 4096 io_threads 16 bytes 536870912 pattern random SEC OPS OPS/SEC BYTES/SEC 1 6176 6118.48 25061304.74 2 7232 3616.71 14814046.73 3 8560 2862.44 11724550.65 4 10064 2519.96 10321760.68 5 12128 2430.71 9956176.21 6 15136 1794.84 7351681.44 7 20080 2573.68 10541786.10 8 26112 3510.35 14378376.65 9 35136 5018.34 20555109.80 10 46688 6911.89 28311115.57 11 59104 8779.42 35960493.70 12 71488 10281.44 42112784.71 13 85232 11683.61 47856084.92 14 98480 12638.27 51766366.34 15 112592 13170.06 53944569.85 16 128400 13892.33 56902976.46 elapsed: 16 ops: 131072 ops/sec: 7897.68 bytes/sec: 32348917.66 root@pve01:~# rbd bench Test01 --io-type read --io-size 4K --io-threads 16 --io-total 512M --io-pattern rand --pool=Pool01 bench type read io_size 4096 io_threads 16 bytes 536870912 pattern random SEC OPS OPS/SEC BYTES/SEC 1 35168 35324.76 144690219.51 2 70016 35085.64 143710762.85 3 102960 34370.64 140782123.63 elapsed: 3 ops: 131072 ops/sec: 34748.14 bytes/sec: 142328392.96 root@pve01:~#
計測後のメモリ使用状況
ピーク値で4.6GiB
VM-OSインストール所要時間
前記事のおまけ項で紹介したCentOSとWin10のインストール所要時間を
今回も計測してみました
計測部分は以前と同じ自動処理されるプロセスです
結果はCentOS7が3分40秒、Windows10が7分13秒
まとめ
今回の計測環境において最速パターンとなるSSDのみの構成でした
シーケンシャルの読み書きについてはGbEの限界値でしょうから
HDD構成とそこまで変わらないはずでしたが
VM内Win10からの計測結果では大きくシーケンシャル書き込みが伸びました
そしてランダムアクセスにおいてはかなり快適で
一般向けのSATA SSDを使っているとはいえHDDとは比較になりません
これはSSD本体の実速度も当然ですがSSD特有の低レイテンシのおかげでもあります
比較用に全てHDD ST1000DM010 1TB 7200rpmでベンチマーク中のレイテンシが150ms
最後に
サーバ向けストレージ&10GbEが当たり前の世界なCephを使って
一般向けパーツ&GbE環境だとどの程度のパフォーマンスになるのか?を
検証する為に始まったProxmox VE 6.1 + Cephの速度計測は以上になります
全体的な印象としては
CPUもPentium G4620だったpve03でもボトルネックになることなく動いてくれましたし
CPU使用率でも10%を超えることはなかったのでVMもある程度は動かせられる感じでした
メモリは他のプロセス込でシステム用に10GBぐらい確保して
それ以外をVMに割り当てれば今回の環境であれば問題ないような雰囲気です
パフォーマンスについては実際試すまでは特にHDD構成においてもっとひどい結果だと
思っていたのでBlueStore導入などでCephが進化しているのを実感できました
個人的な環境でいうとVMデータが既に実データで10TB以上あるので
オールSSDにするにはまだ難しい状態なのですが
SSD1TBぐらいまでなら安いですしSSD4枚×3ノードで12OSD・4TB構成ぐらいだと
CoW分を考慮しても実データで2.5TBぐらいまで許容できるので
容量を必要としないけど単一障害点を回避したいVM群にはいいかもしれません
SSDであればDB/WALを別デバイスに設定する必要もないのでOSD交換も楽ですし
RAID同様に計画的な事前交換でTBW管理さえ気を付ければ問題ないと思います
(3ノード構成はRAID同様に全ディスクの書き込み量がほぼ同量になります)
こんなシステムが無料で利用できるなんて素晴らしい以外に言葉がありません
コメント
お疲れ様でした。
やはり予想どおり稼働環境のスケールにはCephの事をある程度理解した上で、、って感じですね。大変参考になりました。