返回到文章

采纳

编辑于 26天前

单IP iSCSI改成多路径

ceph
iscsi

把已经配置好的单 IP iSCSI 改成 多路径,来利用多网卡提高吞吐量。下面是一个完整流程(Ceph iSCSI 网关 + Linux 客户端):

前提条件

  1. Ceph iSCSI 网关已经配置了至少一个 portal(IP + 3260)。
  2. 客户端有多块网卡或者你打算给网关增加额外 IP。
  3. 安装了 device-mapper-multipath 工具。

步骤 1:在 Ceph iSCSI 网关增加 Portal

  1. 登录到 Ceph Dashboard 或使用 gwcli

    ceph iscsi gateway list
    ceph iscsi target list
    

    找到你要增加 portal 的 target。

  2. 在 target 下增加新的 portal:

    gwcli
    > /iscsi-targets/iqn.20xx-xx.com.ceph:target1/tpg1/portals create 192.168.1.1
    > saveconfig
    
    • 192.168.1.1 是网关另一块网卡或虚拟 IP
    • 默认端口 3260
  3. 确认新增 portal:

    /iscsi-targets/iqn.20xx-xx.com.ceph:target1/tpg1/portals ls
    

    你应该看到两个 IP 都在列表中。

  4. 等待网关生效:

    ceph orch ps | grep iscsi
    

    容器重启或网关自动生效。

步骤 2:客户端安装 multipath 工具

sudo yum install device-mapper-multipath -y
sudo systemctl enable multipathd
sudo systemctl start multipathd

步骤 3:发现所有 portal 并登录

  1. 发现 iSCSI target(注意每个 portal 都会被发现):

    sudo iscsiadm -m discovery -t sendtargets -p 192.168.0.1:3260
    sudo iscsiadm -m discovery -t sendtargets -p 192.168.0.2:3260
    
  2. 登录所有路径:

    sudo iscsiadm -m node -T iqn.20xx-xx.com.ceph:target1 -p 192.168.0.1 --login
    sudo iscsiadm -m node -T iqn.20xx-xx.com.ceph:target1 -p 192.168.0.2 --login
    
  3. 查看登录状态:

    sudo iscsiadm -m session -o show
    

    你应该看到 两个不同 portal 都登录了同一个 target。

步骤 4:配置 Linux multipath

  1. 编辑 /etc/multipath.conf

    defaults {
     user_friendly_names yes
     find_multipaths yes
    }
    
    blacklist {
    }
    
  2. 重启 multipath:

    sudo systemctl restart multipathd
    sudo multipath -ll
    
    • 你应该能看到一个 multipath device(比如 /dev/mapper/mpathX),下面有两条路径对应两个 portal IP。
  3. 使用 multipath device

    • 应用直接访问 /dev/mapper/mpathX
    • 内核会自动做负载均衡和故障切换

总结

  • Ceph 网关:多 portal → 多路径
  • 客户端:登录所有 portal → 配置 multipath → 使用 /dev/mapper/mpathX
  • 效果:吞吐提高 + 冗余,如果一条网卡或路径挂掉,I/O 自动切换