You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含双LUN的iSCSI Target能否采用多线程并发执行磁盘读写?

iSCSI Target多LUN读写的线程分配问题

创建包含两个LUN(bdev)的iSCSI Target后,两个LUN会映射为本地两块磁盘。使用fio对这两块磁盘同时进行读写操作时,发现iSCSI Target仅通过单个线程(或核心)处理请求。我自行添加了日志标注,观察到同时读写两块磁盘时,处理线程并未切换。请问这两块磁盘的读写操作能否分配到两个不同的线程上执行?

操作命令

./scripts/rpc.py bdev_malloc_create -b Malloc0 64 512
./scripts/rpc.py bdev_malloc_create -b Malloc1 64 512

./scripts/rpc.py --verbose DEBUG iscsi_create_portal_group 1 172.20.20.156:3261
./scripts/rpc.py --verbose DEBUG iscsi_create_initiator_group 2 ANY 172.20.20.156/24

./scripts/rpc.py --verbose DEBUG iscsi_create_target_node disk1 "Data Disk1" "Malloc0:0 Malloc1:1" 1:2 64 -d

iscsiadm -m discovery -t sendtargets -p 172.20.20.156:3261

iscsiadm -m node --targetname iqn.2016-06.io.spdk:disk1 --portal 172.20.20.156:3261 --login

fio -ioengine=libaio -bs=512B -direct=1 -thread -numjobs=2 -size=64M -rw=write -filename=/dev/sdd -name="BS 512B read test" -iodepth=2
fio -ioengine=libaio -bs=512B -direct=1 -thread -numjobs=2 -size=64M -rw=write -filename=/dev/sde -name="BS 512B read test" -iodepth=2

解答

可以让两块LUN的读写操作在不同线程执行,SPDK的iSCSI Target支持通过调整线程模型和LUN与线程的绑定策略实现并行处理,具体方案如下:

  • 启动SPDK时指定多核心线程:默认SPDK可能仅启动单个IO线程,启动iSCSI Target应用时通过-c参数指定要使用的CPU核心列表,例如:

    ./app/iscsi_tgt/iscsi_tgt -c 0x3
    

    (0x3表示启用核心0和核心1,对应两个IO线程)

  • 创建Target Node时指定多IO线程:修改创建Target Node的RPC命令,添加--num-io-threads参数指定线程数量,例如:

    ./scripts/rpc.py --verbose DEBUG iscsi_create_target_node disk1 "Data Disk1" "Malloc0:0 Malloc1:1" 1:2 64 -d --num-io-threads=2
    
  • 绑定LUN到不同线程:通过RPC命令将每个LUN绑定到指定的IO线程,实现请求的线程隔离:

    # 将LUN0(对应Malloc0)绑定到线程0
    ./scripts/rpc.py iscsi_target_node_set_lun_thread iqn.2016-06.io.spdk:disk1 0 0
    # 将LUN1(对应Malloc1)绑定到线程1
    ./scripts/rpc.py iscsi_target_node_set_lun_thread iqn.2016-06.io.spdk:disk1 1 1
    

原理:SPDK iSCSI Target默认采用单线程共享处理所有LUN请求,配置多IO线程并绑定LUN后,不同LUN的读写请求会被分发到对应的线程执行,利用多核心资源提升并行处理能力。

内容的提问来源于stack exchange,提问作者happyzyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:41:06