如何使用 Ceph iSCSI 服务,包括配置客户端以连接到 iSCSI 目标并挂载块存储设备。以下是详细步骤。
在开始使用前,确认所有守护进程正常:
ceph orch ps | grep iscsi
node01
、node02
、node03
的状态都是 running
,且有有效的容器 ID 和运行时间。ceph orch ls --service-name iscsi.iscsi
确认 running
字段为 3,表示三个节点都正常。ceph health
应返回 HEALTH_OK
或无 iSCSI 相关警告。Ceph iSCSI 服务通过 iSCSI 协议提供块存储,客户端(如 Linux、Windows 或 VMware)可以连接到 iSCSI 目标(target)并将其挂载为本地磁盘。以下是配置客户端的基本步骤,以 Linux 客户端为例。
安装 iSCSI 客户端工具:
open-iscsi
(适用于 Ubuntu/CentOS 等):# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y open-iscsi
# CentOS/RHEL
sudo yum install -y iscsi-initiator-utils
iscsiadm --version
设置客户端 initiator 名称:
sudo vi /etc/iscsi/initiatorname.iscsi
示例内容:InitiatorName=iqn.1993-08.org.debian:01:client1
client1
为您的客户端标识,确保唯一。sudo systemctl restart open-iscsi
发现 Ceph iSCSI 目标:
iscsiadm
发现 Ceph iSCSI 目标:iscsiadm -m discovery -t sendtargets -p <node-ip>:5000
<node-ip>
为 node01
、node02
或 node03
的 IP 地址(建议使用集群网络的 IP)。192.168.1.101:5000,1 iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
。检查发现结果:
iscsiadm -m node
确认目标信息(如 IQN 和 IP)正确。iscsi.yml
配置了认证(如 api_user: admin
, api_password: admin
),需要设置 CHAP 认证。iscsiadm -m node -T <target-iqn> -p <node-ip>:5000 --op=update -n node.session.auth.authmethod -v CHAP
iscsiadm -m node -T <target-iqn> -p <node-ip>:5000 --op=update -n node.session.auth.username -v admin
iscsiadm -m node -T <target-iqn> -p <node-ip>:5000 --op=update -n node.session.auth.password -v admin
<target-iqn>
为发现的 IQN,<node-ip>
为节点 IP。api_secure: false
且未配置 CHAP,可跳过此步。iscsiadm -m node -T <target-iqn> -p <node-ip>:5000 --login
iscsiadm -m session
应显示类似:tcp: [1] 192.168.1.101:5000,1 iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw (non-flash)
查找 iSCSI 磁盘:
lsblk
示例输出:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 10G 0 disk
sdb
是 iSCSI 磁盘(大小取决于 Ceph RBD 映像配置)。格式化和挂载:
sudo mkfs.ext4 /dev/sdb
sudo mkdir /mnt/iscsi
sudo mount /dev/sdb /mnt/iscsi
df -h /mnt/iscsi
持久化挂载(可选):
/etc/fstab
:sudo vi /etc/fstab
添加:/dev/sdb /mnt/iscsi ext4 defaults,_netdev 0 0
sudo systemctl enable open-iscsi
rbd create iscsi/image1 --size 10G
iscsi
是池名,image1
是映像名,大小为 10GB(可调整)。gwcli
(iSCSI 网关 CLI)配置目标和 LUN:gwcli
在 gwcli 中:/> cd /iscsi-targets
/> create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
/> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/disks
/> create rbd iscsi/image1
/> cd /iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
/> create node01 192.168.1.101
/> create node02 192.168.1.102
/> create node03 192.168.1.103
rbd ls iscsi
sudo yum install -y device-mapper-multipath # CentOS/RHEL
sudo apt-get install -y multipath-tools # Ubuntu/Debian
/etc/multipath.conf
:defaults {
user_friendly_names yes
find_multipaths yes
}
sudo systemctl enable multipathd
sudo systemctl start multipathd
multipath -ll
ceph orch ps | grep iscsi
ceph -s
rbd snap create iscsi/image1@snap1
rbd export iscsi/image1@snap1 /backup/image1.snap
ping <node-ip>
telnet <node-ip> 5000
iscsi.yml
中的 trusted_ip_list
是否包含客户端 IP 网段。api_user
和 api_password
)。ceph -W iscsi
gwcli
配置:gwcli ls
node01
、node02
、node03
上运行正常。open-iscsi
)。gwcli
配置目标。相关命令及日志:
iscsiadm -m discovery -t sendtargets -p <node-ip>:5000
的输出。gwcli ls
的输出(如果使用了 gwcli
)。journalctl -u iscsid
。