RocksDB+ZenFS的安装及测试(Fedora 37)
<p><img src="https://img2023.cnblogs.com/blog/1570177/202304/1570177-20230417165259255-1107882566.png"></p><p> </p>
<p><strong>安装</strong></p>
<ul>
<li>安装libzbd依赖库及libzbd:
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">依赖</span>
<span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> m4
</span><span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> autoconf
</span><span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> libtool
</span><span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)"> automake
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">下载libzbd库</span>
git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/westerndigitalcorporation/libzbd.git
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">编译</span>
<span style="color: rgba(0, 0, 255, 1)">sh</span> ./autogen.<span style="color: rgba(0, 0, 255, 1)">sh</span><span style="color: rgba(0, 0, 0, 1)">
.</span>/<span style="color: rgba(0, 0, 0, 1)">configure
</span><span style="color: rgba(0, 0, 255, 1)">make<br></span>
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">安装</span>
<span style="color: rgba(0, 0, 255, 1)">sudo</span> <span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p> </p>
</li>
<li>安装gflags:https://github.com/gflags/gflags/blob/master/INSTALL.md
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/gflags/gflags.git</span>
<span style="color: rgba(0, 0, 0, 1)">cd gflags
</span><span style="color: rgba(0, 0, 255, 1)">mkdir</span> build &&<span style="color: rgba(0, 0, 0, 1)"> cd build
ccmake ..
</span>- Press <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">c</span><span style="color: rgba(128, 0, 0, 1)">'</span> to configure the build system and <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">e</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> to ignore warnings.
</span>-<span style="color: rgba(0, 0, 0, 1)"> Set CMAKE_INSTALL_PREFIX and other CMake variables and options.
</span>- Continue pressing <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">c</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">until</span> the option <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">g</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> is available.
</span>- Then press <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">g</span><span style="color: rgba(128, 0, 0, 1)">'</span> to generate the configuration files <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> GNU Make.
</span><span style="color: rgba(0, 0, 255, 1)">make</span>
<span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span></pre>
</div>
<p> </p>
</li>
<li>安装snappy:
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">yum</span> <span style="color: rgba(0, 0, 255, 1)">install</span> snappy-devel</pre>
</div>
<p> </p>
</li>
<li>rocksdb+zenfs:https://github.com/westerndigitalcorporation/zenfs
<div class="cnblogs_code">
<pre>git clone https:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/facebook/rocksdb.git</span>
<span style="color: rgba(0, 0, 0, 1)">cd rocksdb
git clone https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">github.com/westerndigitalcorporation/zenfs plugin/zenfs</span>
DEBUG_LEVEL=<span style="color: rgba(128, 0, 128, 1)">0</span> ROCKSDB_PLUGINS=zenfs <span style="color: rgba(0, 0, 255, 1)">make</span> -j48 db_bench <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)">
cd plugin</span>/zenfs/<span style="color: rgba(0, 0, 0, 1)">util
</span><span style="color: rgba(0, 0, 255, 1)">make</span></pre>
</div>
<p>修改scheduler</p>
<div class="cnblogs_code">
<pre>echo deadline > /sys/class/block/nvme0n2/queue/scheduler</pre>
</div>
</li>
<li>create zenfs:
<div class="cnblogs_code">
<pre># ./zenfs mkfs --zbd=nvme0n2 --aux_path=/home/yao/files/<span style="color: rgba(0, 0, 0, 1)">locklog
ZenFS </span><span style="color: rgba(0, 0, 255, 1)">file</span> system created. Free space: <span style="color: rgba(128, 0, 128, 1)">970377</span> MB</pre>
</div>
<p> </p>
</li>
<li>测试:
<div class="cnblogs_code">
<pre># ./db_bench --fs_uri=zenfs:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">dev:nvme0n2 --benchmarks=fillrandom --use_direct_io_for_flush_and_compaction</span>
Set seed to <span style="color: rgba(128, 0, 128, 1)">1681386400373723</span> because --seed was <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
Initializing RocksDB Options from the specified </span><span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Initializing RocksDB Options from command</span>-<span style="color: rgba(0, 0, 0, 1)">line flags
Integrated BlobDB: blob cache disabled
RocksDB: version </span><span style="color: rgba(128, 0, 128, 1)">8.2</span>.<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
Date: Thu Apr </span><span style="color: rgba(128, 0, 128, 1)">13</span> <span style="color: rgba(128, 0, 128, 1)">19</span>:<span style="color: rgba(128, 0, 128, 1)">46</span>:<span style="color: rgba(128, 0, 128, 1)">45</span> <span style="color: rgba(128, 0, 128, 1)">2023</span><span style="color: rgba(0, 0, 0, 1)">
CPU: </span><span style="color: rgba(128, 0, 128, 1)">12</span> * Intel(R) Core(TM) i5-<span style="color: rgba(128, 0, 128, 1)">10400</span> CPU @ <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">.90GHz
CPUCache: </span><span style="color: rgba(128, 0, 128, 1)">12288</span><span style="color: rgba(0, 0, 0, 1)"> KB
Keys: </span><span style="color: rgba(128, 0, 128, 1)">16</span> bytes each (+ <span style="color: rgba(128, 0, 128, 1)">0</span> bytes user-<span style="color: rgba(0, 0, 0, 1)">defined timestamp)
Values: </span><span style="color: rgba(128, 0, 128, 1)">100</span> bytes each (<span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)"> bytes after compression)
Entries: </span><span style="color: rgba(128, 0, 128, 1)">1000000</span><span style="color: rgba(0, 0, 0, 1)">
Prefix: </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> bytes
Keys per prefix: </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
RawSize: </span><span style="color: rgba(128, 0, 128, 1)">110.6</span><span style="color: rgba(0, 0, 0, 1)"> MB (estimated)
FileSize: </span><span style="color: rgba(128, 0, 128, 1)">62.9</span><span style="color: rgba(0, 0, 0, 1)"> MB (estimated)
Write rate: </span><span style="color: rgba(128, 0, 128, 1)">0</span> bytes/<span style="color: rgba(0, 0, 0, 1)">second
Read rate: </span><span style="color: rgba(128, 0, 128, 1)">0</span> ops/<span style="color: rgba(0, 0, 0, 1)">second
Compression: Snappy
Compression sampling rate: </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
Memtablerep: SkipListFactory
Perf Level: </span><span style="color: rgba(128, 0, 128, 1)">1</span>
------------------------------------------------<span style="color: rgba(0, 0, 0, 1)">
Initializing RocksDB Options from the specified </span><span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
Initializing RocksDB Options from command</span>-<span style="color: rgba(0, 0, 0, 1)">line flags
Integrated BlobDB: blob cache disabled
DB path:
fillrandom : </span><span style="color: rgba(128, 0, 128, 1)">1.721</span> micros/op <span style="color: rgba(128, 0, 128, 1)">581101</span> ops/sec <span style="color: rgba(128, 0, 128, 1)">1.721</span> seconds <span style="color: rgba(128, 0, 128, 1)">1000000</span> operations; <span style="color: rgba(128, 0, 128, 1)">64.3</span> MB/s</pre>
</div>
<p> </p>
</li>
<li>zenfs performance test
<div class="cnblogs_code">
<pre>cd /home/yao/files/rocksdb/plugins/zenfs/util/tests<br>./zenfs_base_performance.<span style="color: rgba(0, 0, 255, 1)">sh</span> nvme0n2[ <zonefs mountpoint> ]</pre>
</div>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/freckley/p/17312869.html
頁:
[1]