22 Ceph iSCSI 网关 #
本章重点介绍与 iSCSI 网关相关的管理任务。有关部署过程,请参见第 5.4.3.5 节 “部署 iSCSI 网关”。
22.1 ceph-iscsi
管理的目标 #
本节介绍如何从运行 Linux、Microsoft Windows 或 VMware 的客户端连接到
ceph-iscsi
管理的目标。
22.1.1 连接 open-iscsi
#
使用 open-iscsi
连接
ceph-iscsi
支持的 iSCSI
目标需要执行两个步骤。首先,发起程序必须发现网关主机上可用的 iSCSI 目标,然后,必须登录并映射可用的逻辑单元 (LU)。
这两个步骤都需要 open-iscsi
守护进程处于运行状态。启动
open-iscsi
守护进程的方式取决于您的 Linux 发行套件:
在 SUSE Linux Enterprise Server (SLES) 和 Red Hat Enterprise Linux (RHEL) 主机上,运行
systemctl start iscsid
(如果systemctl
不可用,请运行service iscsid start
)。在 Debian 和 Ubuntu 主机上,运行
systemctl start open-iscsi
(或service open-iscsi start
)。
如果发起程序主机运行 SUSE Linux Enterprise Server,请参见 https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-iscsi.html#sec-iscsi-initiator 了解有关如何连接 iSCSI 目标的详细信息。
对于支持 open-iscsi
的任何其他 Linux 发行套件,请继续发现
ceph-iscsi
网关上的目标(本示例使用
iscsi1.example.com 作为端口地址;对于多路径访问,请使用 iscsi2.example.com 重复这些步骤):
root #
iscsiadm -m discovery -t sendtargets -p iscsi1.example.com
192.168.124.104:3260,1 iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
然后登录该端口。如果登录成功完成,则端口中所有基于 RBD 的逻辑单元将立即在系统 SCSI 总线上变为可用:
root #
iscsiadm -m node -p iscsi1.example.com --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol, portal: 192.168.124.104,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol, portal: 192.168.124.104,3260] successful.
针对其他端口 IP 地址或主机重复此过程。
如果系统上已安装 lsscsi
实用程序,您可以使用它来枚举系统上可用的 SCSI 设备:
lsscsi [8:0:0:0] disk SUSE RBD 4.0 /dev/sde [9:0:0:0] disk SUSE RBD 4.0 /dev/sdf
在多路径配置(其中两个已连接的 iSCSI 设备代表一个相同的 LU)中,您还可以使用
multipath
实用程序检查多路径设备状态:
root #
multipath -ll
360014050cf9dcfcb2603933ac3298dca dm-9 SUSE,RBD
size=49G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 8:0:0:0 sde 8:64 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
`- 9:0:0:0 sdf 8:80 active ready running
现在,可根据需要,将此多路径设备用作任何块设备。例如,可将该设备用作 Linux 逻辑卷管理 (LVM) 的物理卷,或者直接在该设备上创建文件系统。下面的示例说明如何在新连接的多路径 iSCSI 卷上创建 XFS 文件系统:
root #
mkfs -t xfs /dev/mapper/360014050cf9dcfcb2603933ac3298dca
log stripe unit (4194304 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/mapper/360014050cf9dcfcb2603933ac3298dca isize=256 agcount=17, agsize=799744 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=12800000, imaxpct=25
= sunit=1024 swidth=1024 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=6256, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
请注意,由于 XFS 是非集群文件系统,无论何时,您都只能将它装入到单个 iSCSI 发起程序节点上。
任何时候如果要停止使用与特定目标关联的 iSCSI LU,请运行以下命令:
root #
iscsiadm -m node -p iscsi1.example.com --logout
Logging out of session [sid: 18, iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol, portal: 192.168.124.104,3260]
Logout of [sid: 18, target: iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol, portal: 192.168.124.104,3260] successful.
与执行发现和登录时一样,必须针对所有端口 IP 地址或主机名重复注销步骤。
22.1.1.1 配置多路径 #
多路径配置保留在客户端或发起程序上,并不依赖于任何
ceph-iscsi
配置。在使用块存储之前,请选择一个策略。编辑
/etc/multipath.conf
之后,请使用以下命令重启动
multipathd
root #
systemctl restart multipathd
对于包含友好名称的主动/被动配置,请将
defaults { user_friendly_names yes }
添加到 /etc/multipath.conf
。成功连接目标后,请运行
root #
multipath -ll
mpathd (36001405dbb561b2b5e439f0aed2f8e1e) dm-0 SUSE,RBD
size=2.0G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 2:0:0:3 sdl 8:176 active ready running
|-+- policy='service-time 0' prio=1 status=enabled
| `- 3:0:0:3 sdj 8:144 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
`- 4:0:0:3 sdk 8:160 active ready running
注意每个链路的状态。对于主动/主动配置,请将
defaults { user_friendly_names yes } devices { device { vendor "(LIO-ORG|SUSE)" product "RBD" path_grouping_policy "multibus" path_checker "tur" features "0" hardware_handler "1 alua" prio "alua" failback "immediate" rr_weight "uniform" no_path_retry 12 rr_min_io 100 } }
添加到 /etc/multipath.conf
。重启动
multipathd
并运行
root #
multipath -ll
mpathd (36001405dbb561b2b5e439f0aed2f8e1e) dm-3 SUSE,RBD
size=2.0G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
|- 4:0:0:3 sdj 8:144 active ready running
|- 3:0:0:3 sdk 8:160 active ready running
`- 2:0:0:3 sdl 8:176 active ready running
22.1.2 连接 Microsoft Windows(Microsoft iSCSI 发起程序) #
要从 Windows 2012 服务器连接 SUSE Enterprise Storage iSCSI 目标,请执行以下步骤:
打开 Windows 服务器管理器。在仪表盘中,选择
› 。 对话框随即显示。选择 选项卡:图 22.1︰ iSCSI 发起程序属性 #在
对话框中的 字段内,输入目标的主机名或 IP 地址,然后单击 :图 22.2︰ 发现目标门户 #针对所有其他网关主机名或 IP 地址重复此过程。完成后,查看
列表:图 22.3︰ 目标门户 #接下来,切换到
选项卡并查看已发现的目标。图 22.4︰ 目标 #在
选项卡中单击 。 对话框随机显示。选中 复选框以启用多路径 I/O (MPIO),然后单击 :- 图 22.5︰ iSCSI 目标属性 #
选择
,然后单击 查看多路径 I/O 配置:图 22.6︰ 设备详细信息 #默认的
为 。如果您偏向于单纯的故障转移配置,请将策略更改为 。
iSCSI 发起程序的配置到此结束。现在,可以像使用任何其他 SCSI 设备一样使用 iSCSI 卷,并可将其初始化,使其可用作卷和驱动器。单击
关闭 对话框,然后继续在 仪表板中配置 角色。观察新连接的卷。该卷标识为 iSCSI 总线上的 SUSE RBD SCSI 多路径驱动器,并且最初标记为脱机状态,其分区表类型为未知。如果新卷未立即显示,请从 下拉框中选择 ,以重新扫描 iSCSI 总线。
右键单击 iSCSI 卷,然后从上下文菜单中选择
。 随即显示。单击 ,突出显示新连接的 iSCSI 卷,然后单击 开始创建新卷。图 22.7︰ 新建卷向导 #该设备最初是空的,不包含任何分区表。当出现对话框指出将要使用 GPT 分区表初始化卷时,确认该操作:
图 22.8︰ 脱机磁盘提示 #选择卷大小。通常,用户会使用设备的全部容量。然后,指定新建卷将在其上变为可用状态的驱动器盘符或目录名称。接下来,选择要在新卷上创建的文件系统。最后,单击
确认所做的选择并完成卷的创建:图 22.9︰ 确认选择的卷设置 #完成该过程后,请检查结果,然后单击
结束驱动器初始化。完成初始化后,便可以像使用新初始化的本地驱动器一样使用该卷(及其 NTFS 文件系统)。
22.1.3 连接 VMware #
要连接到
ceph-iscsi
管理的 iSCSI 卷,需要有配置好的 iSCSI 软件适配器。如果 vSphere 配置中未提供此类适配器,请选择 › › › 来创建一个适配器。如果适用,请通过右键单击该适配器并从上下文菜单中选择
,来选择该适配器的属性:图 22.10︰ iSCSI 发起程序属性 #在
对话框中,单击 按钮。然后转到 选项卡并选择 。输入
ceph-iscsi
iSCSI 网关的 IP 地址或主机名。如果在故障转移配置中运行多个 iSCSI 网关,请针对要运行的所有网关重复此步骤。图 22.11︰ 添加目标服务器 #输入所有 iSCSI 网关后,请在对话框中单击
,启动 iSCSI 适配器的重新扫描。重新扫描完成后,新的 iSCSI 设备会显示在
窗格中的 列表下。对于多路径设备,现在可以右键单击该适配器,然后从上下文菜单中选择 :图 22.12︰ 管理多路径设备 #您现在应该会看到,所有路径的
下面都带有绿灯。其中一个路径应已标记为 ,其他所有路径只是标记为 :图 22.13︰ 多路径的路径列表 #现在,可以从
切换到标有 的项目。在窗格右上角选择 打开 对话框。然后选择 并单击 。新添加的 iSCSI 设备会显示在 列表中。选择该设备,然后单击 继续:图 22.14︰ “添加储存”对话框 #单击
接受默认的磁盘布局。在
窗格中,为新数据储存指派名称,然后单击 。接受将卷的整个空间用于数据储存的默认设置,或者选择 以创建较小的数据储存:图 22.15︰ 自定义空间设置 #单击
以完成数据储存的创建。新数据存储现在即会显示在数据存储列表中,您可以选择它来检索详细信息。现在,您可以像使用任何其他 vSphere 数据存储一样使用
ceph-iscsi
支持的 iSCSI 卷。图 22.16︰ iSCSI 数据存储概述 #
22.2 结论 #
ceph-iscsi
是 SUSE Enterprise Storage
7 的一个关键组件,使用它可以从任何支持 iSCSI 协议的服务器或客户端访问高度可用的分布式块存储。在一个或多个 iSCSI 网关主机上使用
ceph-iscsi
可将 Ceph RBD 映像用作与 iSCSI
目标关联的逻辑单元 (LU),并可根据需要以负载平衡且高度可用的方式来访问该逻辑单元。
由于所有 ceph-iscsi
配置都存储在 Ceph RADOS
对象存储中,ceph-iscsi
网关主机先天就不具有持久性状态,因而可以任意对其进行更换或者增减。因此,借助 SUSE Enterprise Storage 7,SUSE
客户可在市售硬件和完全开源的平台上运行真正的分布式、高度可用、有弹性且可自我修复的企业存储技术。