把已经配置好的单 IP iSCSI 改成 多路径,来利用多网卡提高吞吐量。下面是一个完整流程(Ceph iSCSI 网关 + Linux 客户端):
前提条件
- Ceph iSCSI 网关已经配置了至少一个 portal(IP + 3260)。
- 客户端有多块网卡或者你打算给网关增加额外 IP。
- 安装了 device-mapper-multipath 工具。
步骤 1:在 Ceph iSCSI 网关增加 Portal
登录到 Ceph Dashboard 或使用 gwcli:
ceph iscsi gateway list ceph iscsi target list
找到你要增加 portal 的 target。
在 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
确认新增 portal:
/iscsi-targets/iqn.20xx-xx.com.ceph:target1/tpg1/portals ls
你应该看到两个 IP 都在列表中。
等待网关生效:
ceph orch ps | grep iscsi
容器重启或网关自动生效。
步骤 2:客户端安装 multipath 工具
sudo yum install device-mapper-multipath -y
sudo systemctl enable multipathd
sudo systemctl start multipathd
步骤 3:发现所有 portal 并登录
- 发现 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
- 登录所有路径:
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
- 查看登录状态:
sudo iscsiadm -m session -o show
你应该看到 两个不同 portal 都登录了同一个 target。
步骤 4:配置 Linux multipath
- 编辑
/etc/multipath.conf
:
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
}
- 重启 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 自动切换