天天看点

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

iscsi 是一种块级别的协议,用于通过tcp/ip网络共享原始存储设备,可以用已经存在的ip和以太网如网卡、交换机、路由器等通过iscsi协议共享和访问存储。iscsi target是一种由远程iscsi服务器(target)提供的远程硬盘。

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

在linux中安装iscsi target

我们不需要占用很大的资源就可以为客户端提供稳定的连接和性能。iscsi服务器称为“target(目标器)”,它提供服务器上的存储共享。iscsi客户端称为“initiator(发起程序)”,它访问目标器共享的存储。市场中有卖的用于大型存储服务如san的iscsi适配器。

我们为什么要在大型存储领域中使用iscsi适配器

以太网适配器(nic)被设计用于在系统、服务器和存储设备如nas间传输分组数据,它不适合在internet中传输块级数据。

<a target="_blank"></a>

可以在一台机器上运行几个iscsi 目标器

一台机器可以提供多个iscsi 目标器用于iscsi san访问

一个目标器就是一块存储,并且可以通过网络被发起程序(客户端)访问

把这些存储汇聚在一起让它们在网络中可以访问的是iscsi lun(逻辑单元号)

iscsi支持在同一个会话中使用多个连接

iscsi发起程序在网络中发现目标接着用lun验证并登录,这样就可以本地访问远程存储。

我们可以在本地挂载的lun上安装任何操作系统,就像我们安装我们本地的操作系统一样。

在虚拟化中,我们需要存储拥有高度的冗余性、稳定性,iscsi以低成本的方式提供了这些特性。与使用光纤通道的san比起来,我们可以使用已经存在的设备比如nic、以太网交换机等建造一个低成本的san。

现在我开始使用iscsi 目标器安装并配置安全存储。本篇中,我们遵循下面的步骤:

我们需要隔离一个系统来设置iscsi 目标器和发起程序(客户端)。

在大型存储环境中可以添加多个硬盘,但是这里我们除了基本的安装盘之外只使用了一个额外的驱动器。

这里我们只使用了2块硬盘,一个用于基本的服务器安装,另外一个用于存储(lun),这个我们会在这个系列的第二篇描述。

操作系统 – centos 6.5 (final)

iscsi 目标器 ip – 192.168.0.200

使用的端口 : tcp 860, 3260

配置文件 : /etc/tgt/targets.conf

打开终端并使用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

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

安装iscsi工具

列出安装的包里面的内容来了解默认的配置、服务和man页面的位置。

# rpm -ql scsi-target-utils.x86_64

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

列出所有的iscsi包里面的文件

让我们启动iscsi服务,并检查服务运行的状态,iscsi的服务名是tgtd。

# /etc/init.d/tgtd start

# /etc/init.d/tgtd status

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

启动iscsi服务

现在我们需要配置开机自动启动。

# chkconfig tgtd on

现在验证tgtd服务的运行级别是否配置正确。

# chkconfig --list tgtd

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

开机启动iscsi

现在使用tgtadm来列出在我们的服务器上已经配置了哪些target和lun。

# tgtadm --mode target --op show

tgtd已经安装并在运行了,但是上面的命令没有输出因为我们还没有在target服务器上定义lun。要查看手册,可以运行‘man‘命令。

# man tgtadm

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

iscsi man 页面

如果你的目标器上有iptable的话,那么我们需要为iscsi添加iptable规则。首先使用netstat命令找出iscsi target的端口号,目标器总是监听tcp端口3260。

# netstat -tulnp | grep tgtd

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

找出iscsi端口

下面加入如下规则让iptable允许广播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

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

打开iscsi端口

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

添加iscsi端口到iptable中

注意: 规则可能根据你的默认链策略而不同。接着保存iptable并重启该服务。

# iptables-save

# /etc/init.d/iptables restart

使用iSCSI Target创建集中式安全存储(一)使用iSCSI Target创建集中式安全存储(一)

重启iptable

现在我们已经部署了一个目标器来共享lun给通过tcp/ip认证的发起程序。这也适用于从小到大规模的生产环境。

----------------------------------------------------------------------------------------------------------------------------

继续阅读