crimson: Add support for bench osd command
this commit adds support for the 'bench' admin command in the OSD,
allowing administrators to perform benchmark tests on the OSD. The
'bench' command accepts 4 optional parameters with the following
default values:
1. count - Total number of bytes to write (default: 1GB).
2. size - Block size for each write operation (default: 4MB).
3. object_size - Size of each object to write (default: 0).
4. object_num - Number of objects to write (default: 0).
The results of the benchmark are returned in a JSON formatted output,
which includes the following fields:
1. bytes_written - Total number of bytes written during the benchmark.
2. blocksize - Block size used for each write operation.
3. elapsed_sec - Total time taken to complete the benchmark in seconds.
4. bytes_per_sec - Write throughput in bytes per second.
5. iops - Number of input/output operations per second.
Example JSON output:
```json
{
"osd_bench_results": {
"bytes_written":
1073741824,
"blocksize":
4194304,
"elapsed_sec": 0.5,
"bytes_per_sec":
2147483648,
"iops": 512
}
}
Fixes: https://tracker.ceph.com/issues/66380
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>