本文系统Centos6.0

本文主要是iscsi存储配置及安全验证方面的应用;

关于iscsi方面的介绍大家去查询很多资料;这里就不废话了;直接进入主题

iscsi target

一个可以被用于存储数据的iscsi磁盘阵列或者具有iscsi功能的设备都可以被称为iscsi target

利用iscsi target软件,可以将服务器的存储空间分配给客户机使用,客户机就可以像使用本地硬盘一样使用iscsi磁盘

相关软件;比如linux平台的iscsi enterprise target

Iscsi initiator

Iscsi initiator是一个安装在计算机上的一个软件或是一个硬件设备,它负责处理同iscsi存储设备进行通信。

相关软件;linux平台的iscsi initiatorWindows平台也有,比如win7自带的Iscsi发起程序;下面会分别介绍;

关于Iscsi存储数据过程;会先进行封装iscsi协议加tcp/ip协议头进行传输

iscsi配置共享存储高级应用_第1张图片

一、下面就是简单展示案例拓扑了:

iscsi配置共享存储高级应用_第2张图片

Linux iscsi target           : ServerA : 192.168.182.132

linux iscsi initiator         : Client A:192.168.182.133

Windows7                    :Client B:192.168.182.134

1、Server A 安装target程序:

wget http://nchc.dl.sourceforge.net/project/iscsitarget/iscsitarget/1.4.20.2/iscsitarget-1.4.20.2.tar.gz
cd iscsitarget-1.4.20.2
make
make install

然后你就可以使用service 进行管理

事先提醒:本Server端有三块硬盘,sda,sdb,sdc;sdb为2G;sdc为3G;

iscsi配置共享存储高级应用_第3张图片

接下来配置主配置文件:(先实验将sdb共享,让linux client和windows client发现 )

[root@centos iet]# vim ietd.conf
Target iqn.2013-07-17.com.lansgg:storage.disk2.sdb
Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz

注释:

Target iqn.2013-07.com.lansgg:storage.disk2.sdb
Iqn.yyyy-mm.:[identifier]
Iqn:表示iscsi squalfled name 简称iqn
Yyyy-mmm:表示年份-月份。
Reversed domain name:表示倒过来的域名。
Identifier:标识识别代码。这里是storage.disk2.sdb
Lun 0 path=/dev/sdb.Type=fileio,scsild=xyz,SisiSN=xyz
Lun 0 Path=/dev/sdb 表示块设备号为0,映射的磁盘为/dev/sdb,type 值fileio是默认的可以用于磁盘、file和lvm,这里设定的的是fileio,主要用来对一个磁盘进行存储共享。

iscsi配置共享存储高级应用_第4张图片

接下来在Windows client进行操作:: (客户端过程大概就是:发现>>连接)

我的windows os 是win7,使用其自带的iscsi initiator程序;

iscsi配置共享存储高级应用_第5张图片

双击后;点击“发现”选项卡

iscsi配置共享存储高级应用_第6张图片

切换到“目标”选项卡后;你会发现我们共享出来的sdb

iscsi配置共享存储高级应用_第7张图片

点击确定后;状态更换为“已连接”状态

现在你去右键电脑管理,发现一块2G的硬盘

iscsi配置共享存储高级应用_第8张图片

进行格式化;

你会发现一个2G的盘;我这里将他格式化为FAT32的一个分区;在里面写了一个test的文件,内容是test;

iscsi配置共享存储高级应用_第9张图片


接下来在linux client进行操作

[root@centos ~]# yum install iscsi-initiator* -y

你会发现启动 service iscsid start 是无效的;这也是当时让我很郁闷的一件事情;

我们就直接进行discovery吧,他会自动启动程序

自动启动了iscsid;接下来我们进行启动iscsi

Ps:每次成功执行一次targets发现后,iscsi initiator就会将查询记录写到/var/lb/iscsi/send_targets对应的目录下。因此,只需成功一次discovery即可;

里面会记录一下信息,可以去cat

iscsi配置共享存储高级应用_第10张图片

里面记录了很多的信息;

通过iscsiadm 指令与iscsi targets建立关联

iscsiadm是用来管理(更新、删除、插入、查询)iscsi配置数据库文件的命令行工具,用户能够用他对iscsi nodessessionsconnectionsdiscovery records进行一系列的操作;

1、登录 iscsi target; 也就是上面说的“连接”;因为上面已经discovery过了

[root@centos ~]# iscsiadm -m node -T iqn.2013-07.com.lansgg:storage.disk2.sdb -p 192.168.182.131 -l

Ps:这里的“-T”后面跟target名称,“ip-address”是target主机的ip地址,“port”是target主机的端口号,默认是3260 -l 代表 --login

现在我们进行fdisk查看

iscsi配置共享存储高级应用_第11张图片

注意后面的System标识为FAT32;因为本盘已经在windows进行了格式化,并且创建了test文件;见上面。

现在来看看这个test文件:

iscsi配置共享存储高级应用_第12张图片

成功看到~

2、如何我们不想使用想断开呢?

[root@centos ~]# iscsiadm -m node -T iqn.2013-07.com.lansgg:storage.disk2.sdb -p 192.168.182.131 -u

现在你fdisk就看不到sdb了;

3、查看iscsi session和设备信息

[root@centos ~]# iscsiadm -m session
###就会提示如下#####
tcp: [5] 192.168.182.131:3260,1 iqn.2013-07.com.lansgg:storage.disk2.sdb

如果一个target下新增了一个卷,在服务器上使用iscsiadm -m session -R 命令可以刷新当前连接的session以看到新增的卷;

[root@centos ~]# iscsiadm -m session -R

4、查看有那些target记录在了数据库中;

[root@centos ~]# iscsiadm -m node


5、查看target存储端相关配置信息;

[root@centos ~]# iscsiadm -m node -T iqn.2013-07.com.lansgg:storage.disk2.sdb -p 192.168.182.131


二、基于安全验证的共享存储配置;

其实,在上面已经发现了,我们将硬盘共享出去后,谁都可以发现,连接,使用,这就不能保证自己的数据安全,不方便管理,上面的文件内容可能不只你自己的;

现在我们进行基于安全验证的配置;

比如:sdb硬盘共享出去给Windows主机使用,sdc给linux主机使用;

(只允许客户端主机A连接target共享出来的磁盘分区一,而客户端主机B只允许连接target共享出来的磁盘分区二)

在安全控制上有两个手段,一个就是我们指定某个ip使用某个共享区域;另一个就是账户、密码验证;


方式一:指定授权ip访问共享磁盘

sdb;  iqn.2013-07.com.lansgg:storage.disk2.sdb  (windows使用) ip:192.168.182.135

sdc ; iqn.2013-07.com.lansgg:storage.disk2.sdc    (linux使用) ip:192.168.182.133

[root@centos iet]# vim /etc/iet/initiators.allow
#ALL ALL     #将默认的注释掉
iqn.2013-07.com.lansgg:storage.disk2.sdb 192.168.182.135
iqn.2013-07.com.lansgg:storage.disk2.sdc 192.168.182.133

重启server端iscsi-target服务,你会发现sdb归135所有使用权,sdc归133所有使用权

在client端重启iscsi进行触发即可;

方式二:client主机以密码认证获取iscsi target资源;

配置server端

[root@centos iet]# vim /etc/iet/ietd.conf
IncomingUser discoveryuser discoverysecret
##第一个“IncomingUser”是个全局参数,用来指定discovery查询认证所使用的帐号和密码
Target iqn.2013-07.com.lansgg:storage.disk2.sdb
IncomingUser lansgg lansggsecret
Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
##第二个IncomingUser是login认证;
关于sdc的认证是一样的配置

Ps:ip验证和密码验证不能共存;

这里用windows来验证下;


首先进行discovery

iscsi配置共享存储高级应用_第13张图片

然后进行login操作

iscsi配置共享存储高级应用_第14张图片

最后查看连接成功:

iscsi配置共享存储高级应用_第15张图片

然后在linux客户端验证:

vim /etc/iscsi/iscsid.conf
#以下三个是针对discovery的
Discovery.sendtargets.auth.authmethod=chap #表示discovery时启用chap验证
Discovery.sendtargets.auth.username=discoveryuser #验证用户名称,可以是任意字符,但必须与target端的incominguser配置的名称一致。
Discovery.sendtargets.auth.password=discoverysecret #验证密码,必须与target对应的incominguser选择设置的密码一致;
#以下三个是针对login的
Node.session.auth.authmethod=chap #表示在login时启用chap验证。
Node.session.auth.username=lansgg #验证用户名称,可以是任意字符,但必须与target端的incominguser配置的名字一致。
Node.session.auth.password=lansggsecret #验证密码,必须与target端对应的incominguser选项配置的密码一致。

继续安装上面linux client进行discovery、login即可;然后格式化就可以使用了;

友情提示:

管理共享磁盘:

Linux 上的ext文件系统的一个特性,对某个分区mountumount很多次后会或者隔一个固定的时间后,系统会对该分区进行检测,这就会导致硬盘反映速度很慢,影响业务,本操作的目地就是去掉文件系统自动检查的属性;

Tune2fs 修改文件系统的属性,去掉自动检查的属性:

Tune2fs -c -1 -i 0 /dev/sdb5   # /dev/sdb5为挂载的共享磁盘


2》设定文件系统的自动挂载

使用uid标识进行挂载

Tune2fs -l /dev/sdb5
Vim /etc/fstab
UUID=uuid  /data  ext3   _netdev  0  0


磁盘设备的名称可能会发生变化,从而引起文件系统不能挂载上来或者不能正确挂载,使用

_netdev 是针对iscsi设备的特殊mount选项,此挂载选择指示将在网络启动后挂载改卷,在关闭网络前卸载改卷。