ceph-iscsi

发布时间 2023-07-27 21:49:34作者: A57

1.安装服务

  • 服务端可有多个,可以选择多个节点安装
apt install -y ceph-iscsi ceph-common

2.配置ceph-iscsi

  • 创建iSCSI存储池
ceph osd pool create iscsi-images 16 16 replicated
ceph osd pool application enable iscsi-images rbd
  • 注意在服务端配置
vim /etc/ceph/iscsi-gateway.cfg
[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.0.11,10.0.0.12

3.启动iscsi

systemctl daemon-reload
systemctl enable --now rbd-target-gw
systemctl enable --now rbd-target-api

4.iSCSI操作

4.1 使用流程

  • iSCSI(Internet Small Computer System Interface)是一种用于在IP网络上传输SCSI指令的协议,允许将SCSI(Small Computer System Interface)命令封装在TCP/IP数据包中,从而实现在网络上传输块级别的存储。在iSCSI中,每个iSCSI设备(或称为iSCSI Target,iSCSI Initiator)都被赋予一个唯一标识符,这个标识符就是iqn(iSCSI Qualified Name)。

  • iqn的格式通常为:

iqn.<year>-<month>.<reverse domain name>:<identifier>

# 如
iqn.2003-01.com.ang.iscsi-gw:iscsi-igw

其中:

  • <year><month> 表示创建iqn的年份和月份。这个字段是一个日期标识,用于指示iqn的创建时间,方便进行版本控制。
  • <reverse domain name> 是一个反转的域名,用于唯一标识iSCSI设备的所有者或组织。这通常是设备所属组织的域名的逆序形式。
  • <identifier> 是设备的名称或其他标识符,用于在同一组织中唯一标识iSCSI设备。

这种格式的iqn有一定的意义和用途:

  1. 唯一性: iqn的格式保证了每个iSCSI设备都有一个唯一的标识符。这对于标识和区分不同的设备是非常重要的。
  2. 易读性: iqn中包含了日期和组织的信息,使得人们可以更容易地理解和识别设备。
  3. 版本控制: 由于iqn包含了日期信息,因此可以在设备更新或更换时方便进行版本控制。
  4. 域名反转: 反转域名的做法是为了确保不同组织的iqn在相同的设备名称情况下不会冲突。

总体而言,iqn的格式是为了在iSCSI设备之间建立唯一性标识,同时提供一定的易读性和版本控制能力,使得在iSCSI网络中更容易管理和定位设备。

  • 操作创建指令
# 进入iSCSI
gwcli

# 查看当前存储状态
ls

# 进入iSCSI的targets
cd iscsi-targets

# 创建target名称,格式有要求
create iqn.2023-07.com.redhat.iscsi-gw:ceph

# 进入到创建好的iqn
cd iqn.2023-07.com.redhat.iscsi-gw:ceph/

# 再加入到网关代理
cd gateways

# 创建服务端节点IP,创建网关操作
create ceph02 10.0.0.11

create ceph03 10.0.0.12

# 创建磁盘
cd /disks

create pool=iscsi-images image=disk01 size=60G


#########################删除磁盘#########################
cd /iscsi-targets/iqn.2023-07.com.redhat.iscsi-gw:ceph/disks

delete disk=iscsi-images/disk02
  • 使用操作指令
    • 注意,所有需要向ceph-iSCSI连接的都需要注册对应客户端的iqn
# 客户端操作。。。注册前端主机,到客户端查看iSCSI名字。注意,如果是Redhat系统则需要安装yum install -y iscsi-initiator-utils
cat /etc/iscsi/initiatorname.iscsi
iqn.2004-10.com.ubuntu:01:70bb35cbb955

# 到服务器操作
cd /iscsi-targets/iqn.2023-07.com.redhat.iscsi-gw:ceph/hosts

create iqn.2004-10.com.ubuntu:01:70bb35cbb955

# 添加disk
disk add iscsi-images/disk01

4.2 客户端挂载

# 如果是Redhat系统则需要安装:yum install -y device-mapper-multipath

# 查看是否有此模块
root@ubuntu:~# lsmod | grep dm
dm_multipath           40960  0

# iSCSI发现
iscsiadm -m discovery -t st -p 10.0.0.11

# 登录
iscsiadm -m node -l

#######指定登录#########
iscsiadm -m node -p 10.0.0.11:3260 -l
#####################

# 登出 #
iscsiadm -m node -p 10.0.0.11 -u
######

# 获取保存id
root@ubuntu:~# multipath -ll
mpatha (36001405bc1fdc56c4ed4e2988756251b) dm-0 LIO-ORG,TCMU device

# 配置multipath文件
root@ubuntu:~# cat /etc/multipath.conf 
defaults {
    user_friendly_names yes
}
multipaths {
    multipath {
        wwid 36001405bc1fdc56c4ed4e2988756251b
        alias disk01
        path_grouping_policy multibus
        failback immediate
        rr_weight priorities
        no_path_retry 5
    }
}

systemctl reload multipathd

# 查看是否成功
root@ubuntu:~# multipath -ll
disk01 (36001405bc1fdc56c4ed4e2988756251b) dm-0 LIO-ORG,TCMU device

mkfs.xfs /dev/mapper/disk01

mount /dev/mapper/disk01 /mnt/