单IP iSCSI改成多路径

半兽人 发表于: 2025-09-25   最后更新时间: 2025-09-25 21:05:04  
{{totalSubscript}} 订阅, 64 游览

把已经配置好的单 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.16
    > saveconfig
    
    • 192.168.1.16 是网关另一块网卡或虚拟 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.16:3260
sudo iscsiadm -m discovery -t sendtargets -p 192.168.0.17:3260
  1. 登录所有路径:
sudo iscsiadm -m node -T iqn.20xx-xx.com.ceph:target1 -p 192.168.0.16 --login
sudo iscsiadm -m node -T iqn.20xx-xx.com.ceph:target1 -p 192.168.0.17 --login
  1. 查看登录状态:
sudo iscsiadm -m session -o show

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

步骤 4:配置 Linux multipath

  1. 编辑 /etc/multipath.conf
defaults {
    user_friendly_names yes
    find_multipaths yes
}

blacklist {
}
  1. 重启 multipath:
sudo systemctl restart multipathd
sudo multipath -ll
  • 你应该能看到一个 multipath device(比如 /dev/mapper/mpathX),下面有两条路径对应两个 portal IP。

  • 使用 multipath device

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

总结

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

查看ceph更多相关的文章或提一个关于ceph的问题,也可以与我们一起分享文章