启用iscsi gateway需要满足以下条件:
- 正在运行的Ceph Luminous(12.2.x)集群或更高版本
- CentOS 7.5(或更高版本);Linux内核v4.16(或更高版本)
- 该ceph-iscsi软件包安装在所有iSCSI网关节点上
- 如果Ceph iSCSI网关未位于OSD节点上,则将位于中的Ceph配置文件/etc/ceph/从存储集群中正在运行的Ceph节点复制到iSCSI Gateway节点。Ceph配置文件必须存在于iSCSI网关节点下的/etc/ceph/。
iscsi gw示意图如下:
1、安装环境
已经部署好ceph集群
主机 | IP | OS |
---|---|---|
ceph01 | 10.0.21.213(内部) 10.0.4.213 (外部) |
Centos 7.6 |
ceph02 | 10.0.21.214(内部) 10.0.4.213(外部) |
Centos 7.6 |
ceph03 | 10.0.21.215(内部) 10.0.4.213(外部) |
Centos 7.6 |
2、配置ceph-iscsi YUM源
在所有iscsi gw节点上配置ceph-iscsi yum源
echo '[ceph-iscsi]
name=ceph-iscsi noarch packages
baseurl=http://download.ceph.com/ceph-iscsi/3/rpm/el7/noarch
enabled=1
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
type=rpm-md
[ceph-iscsi-source]
name=ceph-iscsi source packages
baseurl=http://download.ceph.com/ceph-iscsi/3/rpm/el7/SRPMS
enabled=0
gpgcheck=1
gpgkey=https://download.ceph.com/keys/release.asc
type=rpm-md
[tcmu-runner]
name=tcmu-runner
baseurl=https://3.chacra.ceph.com/r/tcmu-runner/master/eef511565078fb4e2ed52caaff16e6c7e75ed6c3/centos/7/flavors/default/x86_64/
priority=1
gpgcheck=0
[ceph-iscsi-conf]
name=ceph-iscsi-config
baseurl=https://3.chacra.ceph.com/r/ceph-iscsi-config/master/7496f1bc418137230d8d45b19c47eab3165c756a/centos/7/flavors/default/noarch/
priority=1
gpgcheck=0
' > /etc/yum.repos.d/ceph-iscsi.repo
温馨提醒
tcmul软件包没有包括在常用的第三方的yum源中,只有redhat官方的源,但没有订阅的话不能使用,所以有个人用户搞了tcmu-runner 源,但个人源不能保证一直有效。
3、安装ceph-iscsi
在每个iSCSI网关节点上安装ceph-iscsi-tools软件包,安装ceph-iscsi会自动安装tcmu-runner 包
yum -y install ceph-iscsi
重启tcmu-runner
systemctl start tcmu-runner.service
systemctl status tcmu-runner.service
systemctl enable tcmu-runner.service
创建image pool
ceph osd pool create iscsi-images 128 128 replicated
ceph osd pool application enable iscsi-images rbd
编辑iscsi gateway配置文件
配置每一个iscsi gw节点上iscsi gateway配置文件,cluster_client_name为client.admin用户,trusted_ip_list 为所有iscsi gateway IP地址,api端口为5000,user为admin。
echo '[config]
cluster_client_name = client.admin
pool = iscsi-images
minimum_gateways = 1
fqdn_enabled=true
api_port = 5000
api_user = admin
api_password = admin
api_secure = false
#Log level
logger_level = WARNING
trusted_ip_list = 10.0.4.213,10.0.4.214,10.0.4.215 ' >/etc/ceph/iscsi-gateway.cfg
重启rbd-target服务并设置开机启动
systemctl start rbd-target-api.service
systemctl status rbd-target-api.service
systemctl enable rbd-target-api.service
4、配置ceph-iscsi
执行gwcli命令
gwcli
进入icsi-target创建一个target
> cd iscsi-targets
/iscsi-targets> create iqn.2003-01.com.redhat.iscsi-gw:iscsi-images
创建iSCSI网关。以下使用的IP是用于iSCSI数据传输的IP,它们可以与trusted_ip_list中列出的用于管理操作的IP相同,也可以不同,看有没有做多网卡分离
/iscsi-targets> cd /iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:iscsi-images/gateways/
/iscsi-target...ages/gateways> create ceph01 10.0.4.213 skipchecks=true
/iscsi-target...ages/gateways> create ceph02 10.0.4.214 skipchecks=true
/iscsi-target...ages/gateways> create ceph02 10.0.4.215 skipchecks=true
添加客户端 iqn值必须跟客户端的wwn保持一直
/iscsi-target...:iscsi-images> cd hosts/
/iscsi-target...-images/hosts> create client_iqn=iqn.1998-01.com.vmware:59a6f0cd-ca36-101c-a551-d485644bc7d8-03fccdb9
创建chap的用户名密码,由于用户名密码都有特殊要求,如果你不确定,就按我给的去设置,并且chap必须设置,否则服务端是禁止连接的
/iscsi-target...-images/hosts> cd iqn.1998-01.com.vmware:59a6f0cd-ca36-101c-a551-d485644bc7d8-03fccdb9/
/iscsi-target...c7d8-03fccdb9> auth username=ceph-iscsi password=p@ssw0rdp@ssw0rd
创建一个rbd设备disk_hdd_1
/iscsi-target...c7d8-03fccdb9> cd /disks/
/disks> create pool=iscsi-images image=disk_hdd_1 size=1700G
/disks> ls
o- disks ................................................ [1796G, Disks: 1]
o- iscsi-images .................................. [iscsi-images (1796G)]
o- disk_hdd_1 ....................... [iscsi-images/disk_hdd_1 (1796G)]
/disks> cd /iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:iscsi-images/hosts/iqn.1998-01.com.vmware:59a6f0cd-ca36-101c-a551-d485644bc7d8-03fccdb9/
/iscsi-target...c7d8-03fccdb9> disk disk=iscsi-images/disk_hdd_1
验证 ceph-iscsi存储作为vMware ESXi的后端共享存储
ESXi 添加方法
注意:
成功后会多出三条路径
添加存储器
这样我们就可以在创建虚拟机的时候磁盘就可以选择ceph存储磁盘了
实现节点故障切换
选择ceph存储器右键属性-管理路径-将路径选择更改为循环模式 这样就可以实现节点故障切换了。