注意
本文档适用于 Ceph 开发版本。
带状存储支持
存储区域是一种存储设备类别,它使主机和存储设备能够合作以实现更高的存储容量、增加吞吐量和降低延迟。当前的叠瓦式磁记录(SMR)硬盘通过SCSI存储区域命令(ZBC)和存储区域ATA命令集(ZAC)标准提供存储区域接口,并且即将采用NVMe Zoned Namespaces(ZNS)标准用于NVMe固态硬盘。
该项目旨在使Ceph能够在存储区域驱动器上运行,同时探索与此新接口采用相关的研究问题。第一个目标是使主机管理的SMR(HM-SMR)驱动器上的非覆盖工作负载(例如RGW)运行,并探索清理(垃圾回收)策略。HM-SMR驱动器是具有ZBC/ZAC接口的高容量硬盘。更长远的目标是支持ZNS SSD,随着它们变得可用,以及覆盖工作负载。
这些系列中的第一个补丁实现了向HM-SMR驱动器写入数据。此补丁引入了ZonedFreelistManger,这是一个FreelistManager实现,它向ZonedAllocator传递足够的信息,通过跟踪写入指针和每个区域的死字节数来正确初始化区域的状态。我们必须引入一个新的FreelistManager实现,因为在使用存储区域设备时,磁盘区域可以处于三种状态(空、使用和死亡),而当前的BitmapFreelistManager仅跟踪两种状态(空和使用)。仅通过跟踪两种状态不可能准确初始化ZonedAllocator中的区域状态。第三计划补丁将引入一个基本的清理器,为进一步研究形成一个基准。
目前我们可以在运行在HM-SMR驱动器上的OSD上执行基本的RADOS基准测试,重启OSD,并读取写入的数据,以及写入新数据,如下所示。
如有问题,请联系Abutalib Aghayev <d20927: agayevagayev@psu.edu>。
$ sudo zbd report -i -n /dev/sdc
Device /dev/sdc:
Vendor ID: ATA HGST HSH721414AL T240
Zone model: host-managed
Capacity: 14000.520 GB (27344764928 512-bytes sectors)
Logical blocks: 3418095616 blocks of 4096 B
Physical blocks: 3418095616 blocks of 4096 B
Zones: 52156 zones of 256.0 MB
Maximum number of open zones: no limit
Maximum number of active zones: no limit
52156 / 52156 zones
$ MON=1 OSD=1 MDS=0 sudo ../src/vstart.sh --new --localhost --bluestore --bluestore-devs /dev/sdc --bluestore-zoned
<snipped verbose output>
$ sudo ./bin/ceph osd pool create bench 32 32
pool 'bench' created
$ sudo ./bin/rados bench -p bench 10 write --no-cleanup
hints = 1
Maintaining 16 concurrent writes of 4194304 bytes to objects of size 4194304 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_h0.cc.journaling712.narwhal.p_29846
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 45 29 115.943 116 0.384175 0.407806
2 16 86 70 139.949 164 0.259845 0.391488
3 16 125 109 145.286 156 0.31727 0.404727
4 16 162 146 145.953 148 0.826671 0.409003
5 16 203 187 149.553 164 0.44815 0.404303
6 16 242 226 150.621 156 0.227488 0.409872
7 16 281 265 151.384 156 0.411896 0.408686
8 16 320 304 151.956 156 0.435135 0.411473
9 16 359 343 152.401 156 0.463699 0.408658
10 15 396 381 152.356 152 0.409554 0.410851
Total time run: 10.3305
Total writes made: 396
Write size: 4194304
Object size: 4194304
Bandwidth (MB/sec): 153.333
Stddev Bandwidth: 13.6561
Max bandwidth (MB/sec): 164
Min bandwidth (MB/sec): 116
Average IOPS: 38
Stddev IOPS: 3.41402
Max IOPS: 41
Min IOPS: 29
Average Latency(s): 0.411226
Stddev Latency(s): 0.180238
Max latency(s): 1.00844
Min latency(s): 0.108616
$ sudo ../src/stop.sh
$ # Notice the lack of "--new" parameter to vstart.sh
$ MON=1 OSD=1 MDS=0 sudo ../src/vstart.sh --localhost --bluestore --bluestore-devs /dev/sdc --bluestore-zoned
<snipped verbose output>
$ sudo ./bin/rados bench -p bench 10 rand
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 61 45 179.903 180 0.117329 0.244067
2 16 116 100 199.918 220 0.144162 0.292305
3 16 174 158 210.589 232 0.170941 0.285481
4 16 251 235 234.918 308 0.241175 0.256543
5 16 316 300 239.914 260 0.206044 0.255882
6 15 392 377 251.206 308 0.137972 0.247426
7 15 458 443 252.984 264 0.0800146 0.245138
8 16 529 513 256.346 280 0.103529 0.239888
9 16 587 571 253.634 232 0.145535 0.2453
10 15 646 631 252.254 240 0.837727 0.246019
Total time run: 10.272
Total reads made: 646
Read size: 4194304
Object size: 4194304
Bandwidth (MB/sec): 251.558
Average IOPS: 62
Stddev IOPS: 10.005
Max IOPS: 77
Min IOPS: 45
Average Latency(s): 0.249385
Max latency(s): 0.888654
Min latency(s): 0.0103208
$ sudo ./bin/rados bench -p bench 10 write --no-cleanup
hints = 1
Maintaining 16 concurrent writes of 4194304 bytes to objects of size 4194304 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_h0.aa.journaling712.narwhal.p_64416
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 46 30 119.949 120 0.52627 0.396166
2 16 82 66 131.955 144 0.48087 0.427311
3 16 123 107 142.627 164 0.3287 0.420614
4 16 158 142 141.964 140 0.405177 0.425993
5 16 192 176 140.766 136 0.514565 0.425175
6 16 224 208 138.635 128 0.69184 0.436672
7 16 261 245 139.967 148 0.459929 0.439502
8 16 301 285 142.468 160 0.250846 0.434799
9 16 336 320 142.189 140 0.621686 0.435457
10 16 374 358 143.166 152 0.460593 0.436384
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.