admin 管理员组

文章数量: 887021


2024年3月13日发(作者:format记忆方法)

Iscsi简介及linux下实现

信息时代的到来,给人们带来了更多的方便及享受。同时,它也成为了组成这个时代的

主要元素之一,谁缺了它或离开了它,那么谁就会被这个时代所抛弃。以前照相一般使用的

是胶片式相机,通过暗房冲印把照片洗出来。而现在,基本上家家户户都有了自家的数码照

相机。当然,照出来的相片也是数码的了。影视行业亦是如此。时代总是随着时间在不断的

向前发展着。现在,让我们站在普通公司的角度,去回顾一下他们对数据处理及存储的经历。

2003年左右,国内开始进入了全面信息化阶段。影像数据可以通过数码设备(如数码

照相机、摄像机、手机等)来采集。并且,为了得到更好的效果,把数据导入到电脑上,使

用位图处理软件(如photoshop等)来进行后期的修善。最后用打印机或喷绘机输出实质性

的图像,至此还不算完成。为了日后的可重复利用,还需把所有数据保留下来,存放在硬盘

当中。日复一日,时间过的很快,没过多长时间,80G主流配置的硬盘空间已所剩无几了。

同时,市场的需求也越来越大,从原来一台计算机增加到两台、三台、四台或更多。那么这

样,问题就会随之而来。

数据被分散在多个独立的机器上,像素材类的资源,每个设平面设计师都会使用到,若

每台机器都存放海量的、重复的素材资源,那么在一个店中,数据的重复量有多大呢,而且

每台计算机的硬盘也需要很大。这时候,NAS就随之而生了。

NAS(Network Attached Storage:网络附属存储):说起它,也许大家会比较陌生。但是

我相信使用过计算机的朋友,对于它的工作原理是一点也不陌生。NAS说白了就是一台专业

的数据共享服务器,它支持的协议有NFS、CIFS、FTP、HTTP等,普通的操作系统都有支持

这些协议的客户端程序。可以直接映射、挂载使用。这样,重复、大量的数据就可以保存到

NAS中,每个需要资源的计算机都可以共同使用这些素材。而且,客户机只需拥有原有的本

地硬盘,所有的生产数据都存放到NAS中,日后存放数据的空间的增加,也只在NAS端完

成便可。可是,当需要存取本地资源的时候该如何实现呢?比如数据库,它只可以存放在本

地硬盘中,任何共享方式的协议它都不支持。

SAN存储域网络(Storage Area Network):当911事件发生之后,由于该事件致使很多

公司宣布破产或倒闭,其多数原因是因为在该事件中,很多公司的业务数据被毁,从而一蹶

不振。接着,人们就在思考,如何才能更好的保护数据。SAN存储区域网络,它刚好能解决

这一问题,它的数据传输方式是以光纤为载体。由于信号传输延迟时间小、没有失真的特点,

故它可以长距离传输数据,一般都在10公里以上。由于这个网络是专门用于数据存储之用,

所以整个结构叫做存储区域网络。就如同把硬盘线从数米延长至数公里一样。对数据极度敏

感的大企业到无所谓,可是对小点的企业来说,构建这么一个存储网络的费用是及其昂贵的。

可以说公司现有的所有信息设备都需更换或整改成以光纤传输的方式。比如以前的双绞线改

为现在的光纤;RJ45网卡改为光纤网卡;交换路由器都需更换为光纤交换、路由器;管理

人员需专门培训等等;总之没有数百万是拿不下来的。

ISCSI:当前网速越来越快,光从家庭用户就能看的出来,从原先的512k到1M,再到

2M、4M、8M等,发达国家的网络带宽会更高。ISCSI的出现,使得光纤SAN产生的费用贵

的问题迎刃而解。它是基于现有的ip网络,对scsi协议进行数据封装,使得原本只能在本

地传输的scsi硬盘数据,可以通过网络来传输。若存放ISCSI数据的机房为私有本地专用机

房,那么,在千兆网络的环境中,其性能绝不会影响使用需求。

目前iscsi的后端存储架构一般分为三种:

一、 控制器架构:它的所有控制、转换节点,都是由硬件芯片或嵌入式设备组成,

它们都是由开发商根据iscsi协议,自己编写、设计出来的。由于各个芯片工

二、

三、

作的单一性,使得这种架构的整体数据处理性能很高,而且运行更稳定。

PC架构:由一台性能高效稳定的普通计算机(服务器),通过iSCSI Target软件

实现iscsi功能。

PC+TOE架构:这种架构就是在PC架构上,加入协议卸载网卡。把原本用CPU

包装、拆解iscsi数据到tcp协议包的操作,转由网卡中的专用芯片来完成,从

而减轻CPU的压力。

由于iscsi所涉及到的内容太多,即使花三天三夜也整理不完。但是为了更好的理解,

下面我们通过手头所拥有的设备,实做一下简单的iscsi实验。

服务器端:

一、安装target软件;

二、创建要输出的设备;

可输出的设备有如下几种:

1、 lvm卷设备;

2、 由文件组成的块设备(经过tgtimg工具处理过的);

3、 单一的分区;

4、 整个磁盘;

5、 RAID组成的卷设备;

这里我们只使用lvm卷来做演示。

三、修改配置文件(/etc/tgt/);

配置文件选项可以参考:/

配置文件的语法及经常会使用到的几个选项(默认配置文件是/etc/tgt/,也

可以包含其他,如:/etc/tgt/xen/*等)

选项

……

功能描述

Iscsi目标输出,配置域的开始及结束;

e:

参考链接:/wiki/ISCSI

Backing-store

Direct-store

Initiator-address

incominguser

OutgoingUsername

后备存储,一般指非实际的物理盘,如lvm卷、某个分区、

文件组成的块设备等;

直接存储,与backing-store想对,指实际的物理磁盘,如整

个硬盘等,系统中一般表示为sdb、sdc等;

发起者地址,指定该资源只允许某些客户机使用;格式可以

是ip地址,也可以为192.168.1.0/24格式来描述一个网段;

使用chap认证协议,由target来认证initiator端,格式

为”incominguser username userpassword”;

使用chap认证协议,由initiator来认证target端,格式

为”outgoingusername username userpassword”,较少使用;

iSCSI Qualified Name (IQN) 输出的iscsi限定名称,格式为:

四、配置&重启服务;

五、查看输出状态

客户机端:

一、安装iscsi发起端套件(iscsi-initiator-utils)

二、查看服务器设备的输出

三、链接设备

四、分区并格式

五、使之开机自动挂载

六、断开链接及卸载

进阶篇:

服务器端:

一、修改配置文件

二、重启服务

三、查看输出

客户机端:

一、修改配置文件

二、查看输出及链接设备

附表:

表一:服务器端主要命令及配置文件

位置

/etc/rc.d/init.d/tgtd

/etc/sysconfig/tgtd

/etc/tgt/

/usr/sbin/tgt-admin

/usr/sbin/tgt-setup-lun

/usr/sbin/tgtadm

/usr/sbin/tgtd

作用

Target服务控制脚本

可以指定target的配置文件位置

Target的配置文件

用perl语言写的脚本,主要调用tgtadm命令,简化了操作参数,

使管理员用起来更为方便

设置iscsi逻辑单元号的程序

管理target的工具,通过它,可以直接修改配置文件里面的内容

Target的服务守护程序,当服务开启时,该服务的进程由它创建

及提供

/usr/sbin/tgtimg

Tgt-admin命令语法

-e, --execute 读取/etc/tgt/文件中的配置信息,根据配置内容,通过tgtadmin

命令来添加或删除target,若target已存在,则不处理该记录,可以参考

—update;

-d, --delete

可以删除所有或指定的,不被发起者(initiator)链接的target;如果想删除

被使用中的target,可以加上—force参数;

Example usage:

--delete ALL - 删除所有targets

--delete tid=4 - 删除第四个target (target with tid 4)

--delete e: - 删除指定target

使所有的或指定的target处于离线状态;处于离线状态的target,在发起者端

(initiator)是无法使用的;

Example usage:

--offline ALL - 使所有target离线

--offline tid=4 - 使第四个target离线 (target with tid 4)

--offline e: - 让指定target离线

把磁带创建成target可用的镜像文件

表二:服务器端命令tgt-admin用法

--offline

--ready

让所有的或指定的target处于就绪状态(即在线状态),与—offline功能相反;

Example usage:

--ready ALL - 让所有target处于在线状态

--ready tid=4 - 让第四个target处于在线状态(target with tid 4)

--ready e: -让指定target处于在线状态

--update

-s, --show

-c, --conf

on file>

--ignore-err

ors

-f, --force

-p,

更新所有的或指定的不被链接的target配置;用法与—delete相似,若想更新

被链接中的target,可以加上—force参数;

Example usage:

--update ALL - ready all targets

--update tid=4 - ready target 4 (target with tid 4)

--update e: - update this target

查看所有target当前的状态;

指定一个备用的配置文件;

跳过所有错误,继续执行;

一般跟在操作动作后面,表示强制执行某操作;

只显示该操作后的结果信息,并不真的执行该操作,有点像-v选项;

--pretend

一般在执行某个不太确定的操作前,先搭配该选项看看会输出什么样的结果;

Example usage:

Tgt-admin –e –p

--dump

显示文件中的有效配置信息;

Example usage:

Tgt-admin –dump > -若想转存,请使用重定向符号;

-v, --verbose

显示详细信息,可以看到tgt-admin让tgtadm命令执行了什么样的操作;

-h, --help

位置

/etc/iscsi/

/etc/rc.d/init.d/iscsi

/etc/rc.d/init.d/iscsid

/sbin/brcm_iscsiuio

/sbin/iscsi-iname

/sbin/iscsiadm

/sbin/iscsid

/sbin/iscsistart

Iscsiadm命令语法

iscsiadm -m discoverydb [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I iface -t type –p ip:port

[ -lD ] ] | [ [ -p ip:port -t type ] [ -o operation ] [ -n name ] [ -v value ] [ -lD] ]

iscsiadm -m discovery [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I iface -t type –p ip:port

[ -l ] ] | [ [ -p ip:port ] [ -l | -D ] ] #探测模式及可用的参数;

iscsiadm -m node [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U

查看帮助信息

作用

Iscsi发起者(initiator)配置文件;

登录到target的服务控制程序;

使客户机成为发起者(initiator)的服务控制程序;

Broadcom的iscsi设备驱动监测、调试器;

Iscsi发起者名称生成工具

发起者端的管理控制程序;

成为发起者的守护服务程序;

Iscsi会话启动程序;

表三:客户端主要命令及配置文件

表四:客户端命令iscsiadm用法

all,manual,automatic ] [ -S ] [ [ -T targetname -p ip:port -I iface ] [ -l | -u | -R |

-s] ] [ [ -o operation ] [ -n name ] [ -v value ] [ -p ip:port ] ] #节点模式及可用参

数;

iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -r sessionid | sysfsdir [-R ] [ -u |

-s ] ] #会话模式及可用参数;

iscsiadm -m iface [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I ifacename ] [ [ -o

operation ] [ -n name ] [ -v value ] ] #接口模式及可用参数;

iscsiadm -m fw [-l] #固件模式;

iscsiadm -m host [ -P printlevel ] [ -H hostno ] #主机模式;

iscsiadm -k priority #如同”killall iscsid”命令;

-d, --debug=debug_level

-h, --help

-I, --interface[iface]

-k, --killiscsid

-D, --discover

-l, --login

打印调试等级,等级可从0至8;

显示帮助信息;

接口绑定操作;

如同命令"killall iscsid";

只能使用在discoverydb模式下,用来探测target信息;

登录,该选择只能用在discovery和node模式,若在

discovery模式使用,它将登录所有探测到的target;

参考链接

-L,

--loginall==[all|manual|automati

c]

-m, --mode

-n, --name=name

-o, --op=op

-p, --portal=ip[:port]

-P, --print=printlevel

模式选择;

指定名称;

选项,可以是new新建、delete删除、update更新、show

显示等;

Target发布地址;

只能用在node模式;

-T, --targetname=targetname

-r, --sid=sid | sysfsdir

-R, --rescan

-s, --stats

Target名称;

重新扫描;

显示会话状态;

-S, --show 查看信息,可用于多种模式;

-t, --type=type

-u, --logout

-U,

指定类型,可以是st,、slp,、isns 、fw

卸载或登出;

登出所有会话;

--logoutall==[all,manual,automat

ic]

探测类型

iSCSI定义了三种探测类型:SendTargets, SLP,iSNS;

SendTargets:

本地iscsi协议,当发起者端(initiator)向target端询问可用资源时,target端把本地

可用的target资源信息发送给它;

SLP:

通过服务定位协议SLP(Service Location Protocol)发现可用target资源;

iSNS:

通过iSNS (Internet 存储名称服务协议)发现可用target资源;

Fw:

写在固件中的程序;

参考链接:

相关指导文件请查阅如下链接——

/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administra

tion_Guide/23章处;

/wiki/Scsi-target-utils_Quickstart_Guide

/

/

/

/linux_server/

/blog/static//


本文标签: 数据 使用 协议 设备 服务