在 RHEL/CentOS/Fedora 上使用 iSCSI Target 创建集中式安全存储 -I
iSCSI 是一种块级协议,用于通过 TCP/IP 网络共享原始存储设备,通过 iSCSI 共享和访问存储,可与现有 IP 和以太网(例如 NIC)一起使用、交换式、路由器等。 iSCSI 目标是从远程 iSCSI 服务器(或)目标呈现的远程硬盘。
我们不需要大量资源来实现客户端的稳定连接和性能。 iSCSI 服务器称为目标,此共享是服务器的存储。 iSCSI 客户端称为Initiator,它将访问目标服务器共享的存储。市场上有适用于大型存储服务(例如 SAN 存储)的 iSCSI 适配器。
为什么我们需要 iSCSI 适配器来实现大存储区域?
以太网适配器 (NIC) 旨在在系统、服务器和 NAS 存储等存储设备之间传输打包文件级数据,它们无法通过互联网传输块级数据。
iSCSI目标的特点
- 可以在一台机器上运行多个 iSCSI 目标。
- 一台机器在 iSCSI SAN 上提供多个 iSCSI 目标
- 目标是存储并使其可通过网络供发起者(客户端)使用
- 这些存储汇集在一起,以提供给网络使用的 iSCSI LUN(逻辑单元号)。
- iSCSI 支持同一会话内的多个连接
- iSCSI启动器发现网络中的目标,然后通过LUN进行身份验证和登录,以在本地获取远程存储。
- 我们可以在这些本地安装的 LUN 中安装任何操作系统,就像我们在基本系统中安装的那样。
为什么需要 iSCSI?
在虚拟化中,我们需要高冗余、高稳定性的存储,而iSCSI以低成本提供了这些。与光纤通道 SAN 相比,以低廉的价格创建 SAN 存储,我们可以使用标准设备来使用现有硬件(例如 NIC、以太网交换等)构建 SAN。
让我们开始使用 iSCSI Target 安装和配置集中式安全存储。在本指南中,我使用了以下设置。
- 我们需要单独的 1 个系统来设置 iSCSI 目标服务器和启动器(客户端)。
- 在大型存储环境中可以添加多个硬盘,但我们这里仅使用除基本安装盘外的 1 个附加驱动器。
- 这里我们仅使用 2 个驱动器,一个用于基本服务器安装,另一个用于存储 (LUN),我们将在本系列的第二部分中创建该驱动器。
主服务器设置
- 操作系统 – CentOS 版本 6.5(最终版)
- iSCSI 目标 IP – 192.168.0.200
- 使用的端口:TCP 860、3260
- 配置文件:/etc/tgt/targets.conf
本系列的标题为“使用 iSCSI 设置集中式安全存储的准备工作”至第 1-3 部分,涵盖以下主题。
安装 iSCSI 目标
打开终端并使用 yum 命令搜索 iscsi 目标需要安装的包名称。
yum search iscsi
样本输出
========================== N/S matched: iscsi =======================
iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs
iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils
lsscsi.x86_64 : List SCSI devices (or hosts) and associated information
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs
我们得到了如上的搜索结果,选择Target包并安装来玩一下。
yum install scsi-target-utils -y
列出已安装的软件包以了解默认配置、服务和手册页位置。
rpm -ql scsi-target-utils.x86_64
让我们启动iSCSI服务,并检查服务的启动和运行状态,iSCSI服务名为tgtd。
/etc/init.d/tgtd start
/etc/init.d/tgtd status
现在我们需要将其配置为在系统启动时自动启动。
chkconfig tgtd on
接下来,验证 tgtd 服务的运行级别配置是否正确。
chkconfig --list tgtd
让我们使用 tgtadm 列出我们当前在服务器中配置的目标和 LUN。
tgtadm --mode target --op show
tgtd已安装并正在运行,但上述命令没有输出,因为我们尚未在目标服务器中定义 LUN。对于手册页,运行“man”命令。
man tgtadm
最后,如果您的目标服务器部署了 iptables,我们需要为 iSCSI 添加 iptables 规则。首先,使用以下 netstat 命令查找 iscsi 目标的端口号,该目标始终侦听 TCP 端口 3260。
netstat -tulnp | grep tgtd
接下来添加以下规则以允许 iptables 广播 iSCSI 目标发现。
iptables -A INPUT -i eth0 -p tcp --dport 860 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3260 -m state --state NEW,ESTABLISHED -j ACCEPT
注意:规则可能会根据您的默认 CHAIN 政策而有所不同。然后保存 iptables 并重新启动 iptables。
iptables-save
/etc/init.d/iptables restart
在这里,我们部署了一个目标服务器,将 LUN 共享给通过 TCP/IP 与目标进行身份验证的任何启动器,这也适用于小型到大型生产环境。
在我接下来的文章中,我将向您展示如何在目标服务器中使用 LVM 创建 LUN 以及如何在客户端计算机上共享 LUN,在此之前请继续关注 TecMint 以获取更多此类更新,并且不要忘记提供宝贵的意见。