ユーザ用ツール

サイト用ツール


01_linux:01_net:32_1_spdk

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:01_net:32_1_spdk [2019/11/21 06:45] matsui01_linux:01_net:32_1_spdk [2020/03/11 23:51] (現在) matsui
行 8: 行 8:
 ===== 環境 ===== ===== 環境 =====
 CentOS7 CentOS7
 +
 +===== 参考ページ=====
 +
 +[[https://software.intel.com/en-us/articles/accelerating-your-nvme-drives-with-spdk]]
  
 ===== 1.事前準備 ===== ===== 1.事前準備 =====
  
 +<code>
 # sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config # sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
 # systemctl status tgtd.service # systemctl status tgtd.service
 +</code>
  
 ===== 2.Grubの用意 ===== ===== 2.Grubの用意 =====
行 25: 行 30:
 保存後、grubに反映 保存後、grubに反映
 # grub2-mkconfig -o /etc/grub2.cfg # grub2-mkconfig -o /etc/grub2.cfg
 +</code>
 +
 +===== 3.必要なパッケージ追加 =====
 +
 +<code>
 +# yum -y install numactl-devel openssl-devel git
 +</code>
 +
 +===== 4.再起動 =====
 +
 +再起動後、設定変更を確認
 +
 +<code>
 +# grep ^Huge /proc/meminfo 
 +HugePages_Total:       4
 +HugePages_Free:        3
 +HugePages_Rsvd:        0
 +HugePages_Surp:        0
 +Hugepagesize:    1048576 kB
 +</code>
 +
 +
 +===== 5.SPDKのビルド =====
 +<code>
 +# cd /usr/src
 +# git clone https://github.com/spdk/spdk
 +# cd spdk
 +# git submodule update --init
 +# scripts/pkgdep.sh
 +# ./configure
 +# make
 +</code>
 +
 +==== RDMAに対応 ====
 +
 +RDMA(Remote Direct Memory Access)
 +リモート先のメモリにCPUを介さず読み書き可能な規格。
 +
 +参考サイト
 +[[https://metonymical.hatenablog.com/entry/2018/07/22/094004]]
 +
 +<code>
 +./configure --with-rdma
 +</code>
 +===== 6.モジュールのテスト =====
 +
 +「All unit tests passed」表示でOK
 +<code>
 +./test/unit/unittest.sh
 +=====================
 +All unit tests passed
 +=====================
 +WARN: lcov not installed or SPDK built without coverage!
 +WARN: neither valgrind nor ASAN is enabled!
 +</code>
 +
 +
 +====== 6.spdkのiscsi.confファイル設定 ======
 +<code>
 +# cd /usr/src/spdk/app/iscsi_tgt
 +# vi iscsi.conf
 +
 +[global]
 + ReactorMask 0x1
 + LogFacility "local7"
 +
 +[iSCSI]
 + NodeBase "iqn.2016-06.io.spdk"
 + AuthFile /usr/local/etc/spdk/auth.conf
 + MinConnectionsPerCore 1
 + MinConnectionIdleInterval 5000
 + Timeout 30
 + DiscoveryAuthMethod Auto
 + DefaultTime2Wait 2
 + DefaultTime2Retain 60
 + ImmediateData Yes
 + ErrorRecoveryLevel 0
 +
 +[Rpc]
 + #AIO(Asynchronous I/O)が生成されなかったためRPCを有効化しています。
 + Enable Yes
 + Listen 127.0.0.1
 +
 +[AIO]
 + #追加した200GBのHDDを指定しています。   
 + AIO /dev/sdb1 AIO0 512
 +
 +[PortalGroup1]
 + #自身のIPアドレス or 0.0.0.0:3260でも大丈夫です。
 + Portal DA1 0.0.0.0:3260
 +
 +[InitiatorGroup1]
 + InitiatorName ANY
 + #アクセス許可するNWアドレスを指定します。
 + Netmask 192.168.11.0/24
 +
 +[TargetNode1]
 + TargetName disk1
 + TargetAlias "Data Disk1"
 + Mapping PortalGroup1 InitiatorGroup1
 + AuthMethod Auto
 + AuthGroup AuthGroup1
 + UseDigest Auto
 + #AIO0をLUN0としてTargetNodeを起動します。
 + LUN0 AIO0
 + QueueDepth 128
 +</code>
 +
 +====== 7.起動 ======
 +
 +<code>
 +# ./iscsi_tgt -c iscsi.conf
 +Starting SPDK v20.01-pre git sha1 f924c94 / DPDK 19.08.0 initialization...
 +[ DPDK EAL parameters: iscsi --no-shconf -c 0x1 --log-level=lib.eal:6 --log-level=lib.cryptodev:5 --log-level=user1:6 --base-virtaddr=0x200000000000 --match-allocations --file-prefix=spdk_pid44396 ]
 +app.c: 642:spdk_app_start: *NOTICE*: Total cores available: 1
 +reactor.c: 344:_spdk_reactor_run: *NOTICE*: Reactor started on core 0
 +</code>
 +
 +
 +
 +====== シンプルなベンチマーク ======
 +OpneNebulaでVM作成して簡単にdbenchでベンチマーク
 +
 +我が家の検証環境ではLVM, NFS に比べて、30%~40%ほどパフォーマンスが上がっていました。
 +ローカルディスクやHVでの結果にはさすがに及ばず。
 +<code>
 +vm Cent7 LVM
 +Throughput 334.049 MB/sec  4 clients  4 procs  max_latency=13.623 ms
 +
 +vm Cent7 NFS
 +Throughput 389.693 MB/sec  4 clients  4 procs  max_latency=11.988 ms
 +
 +vm Cent7 LVM(spdk)
 +Throughput 479.421 MB/sec  4 clients  4 procs  max_latency=12.321 ms
 +
 +vm Cent7 System(local disk)
 +Throughput 655.964 MB/sec  4 clients  4 procs  max_latency=9.218 ms
 +
 +HV
 +Throughput 1471.72 MB/sec  4 clients  4 procs  max_latency=1.655 ms
 </code> </code>
  
 {{tag>iscsi}} {{tag>iscsi}}
01_linux/01_net/32_1_spdk.1574318744.txt.gz · 最終更新: 2019/11/21 06:45 by matsui