failt 发表于 2013-7-24 08:52:39

iscsi配置共享存储高级应用

本文系统Centos6.0本文主要是iscsi存储配置及安全验证方面的应用;关于iscsi方面的介绍大家去查询很多资料;这里就不废话了;直接进入主题iscsi target一个可以被用于存储数据的iscsi磁盘阵列或者具有iscsi功能的设备都可以被称为iscsi target利用iscsi target软件,可以将服务器的存储空间分配给客户机使用,客户机就可以像使用本地硬盘一样使用iscsi磁盘相关软件;比如linux平台的iscsi enterprise targetIscsi initiatorIscsi initiator是一个安装在计算机上的一个软件或是一个硬件设备,它负责处理同iscsi存储设备进行通信。相关软件;linux平台的iscsi initiator。Windows平台也有,比如win7自带的Iscsi发起程序;下面会分别介绍;关于Iscsi存储数据过程;会先进行封装iscsi协议加tcp/ip协议头进行传输一、下面就是简单展示案例拓扑了:
Linux iscsi target         : ServerA : 192.168.182.132linux iscsi initiator         : Client A:192.168.182.133Windows7                  :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;接下来配置主配置文件:(先实验将sdb共享,让linux client和windows client发现 )

# 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.<reversed domain name>:
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,主要用来对一个磁盘进行存储共享。接下来在Windows client进行操作:: (客户端过程大概就是:发现>>连接)我的windows os 是win7,使用其自带的iscsi initiator程序;双击后;点击“发现”选项卡切换到“目标”选项卡后;你会发现我们共享出来的sdb点击确定后;状态更换为“已连接”状态现在你去右键电脑管理,发现一块2G的硬盘进行格式化;你会发现一个2G的盘;我这里将他格式化为FAT32的一个分区;在里面写了一个test的文件,内容是test;
接下来在linux client进行操作

1
# yum install iscsi-initiator* -y




你会发现启动 service iscsid start 是无效的;这也是当时让我很郁闷的一件事情;我们就直接进行discovery吧,他会自动启动程序自动启动了iscsid;接下来我们进行启动iscsiPs:每次成功执行一次targets发现后,iscsi initiator就会将查询记录写到/var/lb/iscsi/send_targets对应的目录下。因此,只需成功一次discovery即可;里面会记录一下信息,可以去cat下里面记录了很多的信息;通过iscsiadm 指令与iscsi targets建立关联iscsiadm是用来管理(更新、删除、插入、查询)iscsi配置数据库文件的命令行工具,用户能够用他对iscsi nodes、sessions、connections和discovery records进行一系列的操作;1、登录 iscsi target; 也就是上面说的“连接”;因为上面已经discovery过了
1
# iscsiadm -m node -T iqn.2013-07.com.lansgg:storage.disk2.sdb -p192.168.182.131 -l




Ps:这里的“-T”后面跟target名称,“ip-address”是target主机的ip地址,“port”是target主机的端口号,默认是3260 -l 代表 --login现在我们进行fdisk查看注意后面的System标识为FAT32;因为本盘已经在windows进行了格式化,并且创建了test文件;见上面。现在来看看这个test文件:成功看到~
2、如何我们不想使用想断开呢?
1
# iscsiadm -m node -T iqn.2013-07.com.lansgg:storage.disk2.sdb -p192.168.182.131 -u




现在你fdisk就看不到sdb了;3、查看iscsi session和设备信息
1
2
3
# iscsiadm -m session
###就会提示如下#####
tcp: 192.168.182.131:3260,1 iqn.2013-07.com.lansgg:storage.disk2.sdb




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




4、查看有那些target记录在了数据库中;
1
# iscsiadm -m node





5、查看target存储端相关配置信息;
1
# iscsiadm -m node -T iqn.2013-07.com.lansgg:storage.disk2.sdb -p192.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.135sdc ; iqn.2013-07.com.lansgg:storage.disk2.sdc    (linux使用) ip:192.168.182.133
1
2
3
4
# 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端
1
2
3
4
5
6
7
8
# 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然后进行login操作最后查看连接成功:然后在linux客户端验证:
1
2
3
4
5
6
7
8
9
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文件系统的一个特性,对某个分区mount、umount很多次后会或者隔一个固定的时间后,系统会对该分区进行检测,这就会导致硬盘反映速度很慢,影响业务,本操作的目地就是去掉文件系统自动检查的属性;Tune2fs 修改文件系统的属性,去掉自动检查的属性:
1
Tune2fs -c -1 -i 0 /dev/sdb5   # /dev/sdb5为挂载的共享磁盘





2》设定文件系统的自动挂载使用uid标识进行挂载
1
2
3
Tune2fs -l /dev/sdb5
Vim /etc/fstab
UUID=uuid/dataext3   _netdev00





磁盘设备的名称可能会发生变化,从而引起文件系统不能挂载上来或者不能正确挂载,使用_netdev 是针对iscsi设备的特殊mount选项,此挂载选择指示将在网络启动后挂载改卷,在关闭网络前卸载改卷。

obeckham 发表于 2013-7-24 17:25:08

人生自古谁无死,啊个拉屎不用纸!

11lxm 发表于 2013-7-24 19:02:33

你的丑和你的脸没有关系。。。。。。

link 发表于 2013-7-24 23:56:45

关羽五绺长髯,风度翩翩,手提青龙偃月刀,江湖人送绰号——刀郎。

sunbird 发表于 2013-7-25 01:22:35

路过,学习下

houbin 发表于 2013-7-25 03:25:20

解释就系掩饰,掩饰等于无出色,无出色不如回家休息!!!

小乔 发表于 2013-7-25 04:19:16

你的丑和你的脸没有关系。。。。。。
页: [1]
查看完整版本: iscsi配置共享存储高级应用