このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 7 / 昨日: 0
総計: 1198
- Dokuwiki.fl8.jp(243)
- 13 CentOS6メール設定(14)
- 02 ProFTPD(12)
- 34 UnboundでHA構成(11)
- FreeBSD カーネル再構築(11)
最近の更新
このページへのアクセス
今日: 7 / 昨日: 0
総計: 1198
Storage Performance Development Kit
tgt(32_CentOSでiSCSI環境構築)よりも良いパフォーマンスで動作します。
CentOS7
# sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config # systemctl status tgtd.service
# vi /etc/default/grub GRUB_CMDLINE_LINUX=の行末に追加 default_hugepagesz=1G hugepagesz=1G hugepages=4 保存後、grubに反映 # grub2-mkconfig -o /etc/grub2.cfg
# yum -y install numactl-devel openssl-devel git
再起動後、設定変更を確認
# grep ^Huge /proc/meminfo HugePages_Total: 4 HugePages_Free: 3 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 1048576 kB
# cd /usr/src # git clone https://github.com/spdk/spdk # cd spdk # git submodule update --init # scripts/pkgdep.sh # ./configure # make
RDMA(Remote Direct Memory Access)
リモート先のメモリにCPUを介さず読み書き可能な規格。
参考サイト
https://metonymical.hatenablog.com/entry/2018/07/22/094004
./configure --with-rdma
「All unit tests passed」表示でOK
./test/unit/unittest.sh ===================== All unit tests passed ===================== WARN: lcov not installed or SPDK built without coverage! WARN: neither valgrind nor ASAN is enabled!
# 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
# ./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
OpneNebulaでVM作成して簡単にdbenchでベンチマーク
我が家の検証環境ではLVM, NFS に比べて、30%~40%ほどパフォーマンスが上がっていました。
ローカルディスクやHVでの結果にはさすがに及ばず。
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