Linux ISCSI服务器搭建

Linux ISCSI服务器搭建

1. iscsi服务器简述

iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

iSCSI:Internet 小型计算机系统接口 (iSCSI:Internet SmallComputer System Interface)。

Internet 小型计算机系统接口(iSCSI)是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。

SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装 SCSI 命令,且运行在 TCP 上。

iSCSI的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI initiator层被封装成ISCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI target层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI target层时被封装成ISCSI响应PDU,通过TCP/IP网络传送给主机的ISCSI initiator层,iSCSI initiator会从ISCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。

2. iscsi服务器搭建

2.1  物理环境准备


Server


172.20.100.100


4C 8G


client1


172.20.100.101


4C 8G


client2


172.20.100.202


4C 8G

2.1.1  Server服务器配置

Server服务器三块硬盘,硬盘1是系统盘,硬盘2、硬盘3分别作为ISCSI服务端,提供给客户端访问

2.1.2  Client服务器配置

2.2  Server端配置

2.2.1  安装scsi-target-utils服务器包


[[email protected] ~]# yum list |grep scsi*


[[email protected] ~]# yum install  scsi-target-utils

安装完毕后,查看scsi-target-utils具体安装位置


[[email protected] ~]# rpm -ql  scsi-target-utils

2.2.2  设置服务开机自启动


[[email protected] ~]# service tgtd start

[[email protected] ~]# chkconfig tgtd on

[[email protected] ~]# netstat -tunpl |grep  3260

2.2.3  tgtadm命令常用选项

NAME

tgtadm - Linux SCSI TargetAdministration Utility

SYNOPSIS

tgtadm [OPTIONS]... [-C --control-port<port>] [-L --lld <driver>]

[-o --op<operation>] [-m --mode <mode>] [-t --tid <id>]

[-T --targetname<targetname>] [-Y --device-type <type>]

[-l --lun<lun>] [-b --backing-store <path>]

[-E --bstype <type>][-I --initiator-address <address>]

[-Q --initiator-name<name>] [-n --name <parameter>]

[-v --value<value>]

[-P --params<param=value[,param=value...]>] [-F --force]

[-h --help]

tgtadm常用于管理三类对象:

target:创建new,删除,查看

lun:创建,查看,删除

account:创建用户,绑定,解绑定,删除,查看

常用选项:

-L: --lld <driver>

<driver> iscsi

-m:--mode <mode>

<mode>:target,logicalunit等

-o:--op<operation>

<operation>:new,show,delete,bind,unbind

-t:--tid <id>:指定target的ID

-T:--targetname<targetname>:指定target的名称

Target的命名机制:为了保证全局唯一,命名要遵循iqn规则

Iqn:iqn.yyyy-mm.reverse_domain.STRING[:substring]

Iqn.2017-08.com.test.web:server1

-l: --lun <lun>:指定LUN的号码

-b: --backing-store<path>:关联到某指定LUN上的后端存储设备,可以是磁盘,分区,建议使用磁盘

-I –initiator-address<address>:指定授权访问某target的IP地址:

语法:tgtadm--lld [driver] --op [operation] --mode [mode] [OPTION]...

(1)、添加一个新的 target 且其ID为 [id], 名字为 [name].

--lld[driver] --op new --mode target --tid=[id] --targetname [name]

如:创建一个target

tgtadm --lld iscsi --op new --mode target --tid 1 –T iqn.2013-05.com.magedu:tsan.disk1

(2)、显示所有或某个特定的target:

--lld[driver] --op show --mode target [--tid=[id]]

如:显示所有

tgtadm--lld iscsi --op show --mode target

(3)、向某ID为[id]的设备上添加一个新的LUN,其号码为[lun],且此设备提供给initiator使用。[path]是某“块设备”的路径,此块设备也可以是raid或lvm设备。lun0已经被系统预留。

--lld[driver] --op new --mode=logicalunit --tid=[id] --lun=[lun] --backing-store[path]

如:显示刚创建的target

tgtadm--lld iscsi --op show --mode target --tid 1

(4)、删除ID为[id]的target:

--lld[driver] --op delete --mode target --tid=[id]

如:创建LUN,号码为1

tgtadm--lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sda1

(5)、删除target [id]中的LUN[lun]:

-lld[driver] --op delete --mode=logicalunit --tid=[id] --lun=[lun]

如:开放给192.168.0.0/24网络中的主机访问(其中的-I相当于--initiator-address):

tgtadm--lld iscsi --op bind --mode target --tid 1 -I 192.168.85.0/24

(6)、定义某target的基于主机的访问控制列表,其中[address]表示允许访问此target的initiator客户端的列表

--lld[driver] --op bind --mode=target --tid=[id] --initiator-address=[address]

如:Create anew account

tgtadm--lld iscsi --op new --mode account --user administrator --password 123456

tgtadm--lld iscsi --op show --mode account

Assignthis account to a target:

tgtadm--lld iscsi --op bind --mode account --tid 1 --user administrator

tgtadm--lld iscsi --op show --mode target

(7)、解除target [id]的访问控制列表中[address]的访问控制权限:

--lld[driver] --op unbind --mode=target --tid=[id] --initiator-address=[address]

如:Set up anoutgoing account. First, you need to create a new account like the previousexample

tgtadm--lld iscsi --op new --mode account --user abc --password 123456

tgtadm--lld iscsi --op show --mode account

tgtadm--lld iscsi --op bind --mode account --tid 1 --user abc --outgoing

tgtadm--lld iscsi --op show --mode target

2.2.4 创建target

1.  创建一个target


[[email protected]  ~]# tgtadm --lld iscsi --op new --mode target --tid 1 -T  iqn.2017-08.com.test.web:server1

2.  显示所有target


[[email protected] ~]# tgtadm --lld iscsi --op  show --mode target

3.  创建LUN1


[[email protected]  ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b  /dev/sdb

[[email protected]  ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 2 -b  /dev/sdc

4.  开放172.20.0.0/16网络中的主机访问权限


[[email protected]  ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address  172.20.0.0/16

3. iscsi客户端配置

3.1  安装iscsi-initiator-utils


[[email protected]  ~]# yum install iscsi-initiator-utils

[[email protected]  ~]# rpm -ql iscsi-initiator-utils

3.2  更改客户端iqn名称


[[email protected] ~]# cat  /etc/iscsi/initiatorname.iscsi


[[email protected]  ~]# echo "InitiatorName=iqn.2017-08.com.test.web:client1" >  /etc/iscsi/initiatorname.iscsi

[[email protected]  ~]# cat /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2017-08.com.test.web:client1

生成iscsi名称,这个名称后面字符串唯一


[[email protected]  ~]# iscsi-iname -p iqn.2018-08.com.test

iqn.2018-08.com.test:df34e78608a

3.3  客户端常用命令选项

# yuminstall iscsi-initiator-utils

# echo"InitiatorName=`iscsi-iname -p iqn.2013-05.com.magedu`" >/etc/iscsi/initiatorname.iscsi

# echo"InitiatorAlias=initiator1" >> /etc/iscsi/initiatorname.iscsi

iscsiadm工具的使用:

iscsiadm是个模式化的工具,其模式可通过-m或--mode选项指定,常见的模式有discovery、node、fw、session、host、iface几个,如果没有额外指定其它选项,则discovery和node会显示其相关的所有记录;session用于显示所有的活动会话和连接,fw显示所有的启动固件值,host显示所有的iSCSI主机,iface显示/var/lib/iscsi/ifaces目录中的所有ifaces设定。

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

iscsiadm-m node [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -Uall,manual,automatic ] [ [ -T tar-getname -p ip:port -I iface ] [ -l | -u | -R| -s] ] [ [ -o operation ]

-d,--debug=debug_level   显示debug信息,级别为0-8;

-l,--login

-t,--type=type  这里可以使用的类型为sendtargets(可简写为st)、slp、fw和 isns,此选项仅用于discovery模式,且目前仅支持st、fw和isns;其中st表示允许每个iSCSI target发送一个可用target列表给initiator;

-p,--portal=ip[:port]  指定target服务的IP和端口;

-m,--mode op  可用的mode有discovery, node, fw, host iface 和 session

-T,--targetname=targetname  用于指定target的名字

-u,--logout

-o,--op=OPEARTION:指定针对discoverydb数据库的操作,其仅能为new、delete、update、show和nonpersistent其中之一;

-I,--interface=[iface]:指定执行操作的iSCSI接口,这些接口定义在/var/lib/iscsi/ifaces中;

#iscsiadm -m discovery -t sendtargets -p 172.20.100.100

# iscsiadm-m node -T iqn.2017-08.com.test.web:server1 -p 172.20.100.100:3260 -l

#iscsiadm -m node -T iqn.2017-08.com.test.web:server1 -p 172.20.100.100:3260 -u

#iscsiadm -m node -T iqn.2017-08.com.test.web:server1 -p 172.20.100.100:3260 -odelete

查看会话相关信息:

#iscsiadm -m session -s

挂载时使用_netdev作为选项

创建服务端谁所需要的帐号,并实现单方向的认证:

1、在target端创建帐号christina,并为其授予访问某tid的权限:

#tgtadm --lld iscsi --op new --mode account --user mageedu --password 123456

接下来还要将用户与某target进行绑定:

#tgtadm --lld iscsi --op bind --mode account --tid 1 --user mageedu

#tgtadm --lld iscsi --op show --mode account

2、编辑initiator端主配置文件,配置客户端登录target时使用此帐号和密码:

# vim/etc/iscsi/iscsid.conf

取消如下项的注释:

#node.session.auth.authmethod = CHAP

#node.session.auth.username = username

# node.session.auth.password= password

而后,将后两项的用户名密码设置为target端设置的用户名和密码:

node.session.auth.username= mageedu

node.session.auth.password= 123456

哪果此前尚未登录过此target,接下来直接发现并登入即可。否则,则需要按照下面的第三步实现认证的启用。

3、如果initiator端已经登录过此target,此时还需要先注销登录后重启iscsid服务,并在删除此前生成的database后重新发现target,并重新登入,过程如下:

#iscsiadm -m session -r sid -u

#iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -u

#iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -odelete

# rm-rf -rf /var/lib/iscsi/send_targets/192.168.0.11,3260

#service iscsid restart

#iscsiadm -m discovery -t sendtargets -p 192.168.0.11

#iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -l

说明:其中的target名字和target主机地址可能需要按照您的实际情况修改。

3.4  设置开机自启动


[[email protected]  ~]# service iscsi start

[[email protected]  ~]# chkconfig iscsi on

[[email protected]  ~]# service iscsid start

[[email protected]  ~]# chkconfig iscsid on

3.5  客户端发现


[[email protected]  ~]# iscsiadm -m discovery -t sendtargets -p 172.20.100.100

3.6  客户端登录


[[email protected]  ~]# iscsiadm -m node -T iqn.2017-08.com.test.web:server1 -p 172.20.100.100 -l

3.7  分区格式化挂载


[[email protected]  ~]# mkfs.ext4 /dev/sdb

[[email protected]  ~]# mkdir /data1

[[email protected]  ~]# mount /dev/sdb  /data1

3.8  client2同样的方法操作,挂载/dev/sdc


yum  install iscsi-initiator-utils

iscsiadm  -m discovery -t sendtargets -p 172.20.100.100

service  iscsi start

service  iscsid start

chkconfig  iscsi on

chkconfig  iscsid on

iscsiadm  -m node -I iqn.2017-08.com.test.web:server1 -p 172.20.100.100 -l

iscsiadm  -m node -T iqn.2017-08.com.test.web:server1 -p 172.20.100.100 -l

fdisk  -l

mkdir  /data1

mkfs.ext4  /dev/sdc

mount  /dev/sdc  /data1

cd  /data1

3.9  卸载


[[email protected] ~]# umount /data1

[[email protected] ~]# iscsiadm -m node -T  iqn.2017-08.com.test.web:server1 -p 172.20.100.100 -u

3.10  删除

节点发现登录之后,信息缓存到这里,下次启动会自动登录,要彻底消失,可直接把目录删掉,也可用命令删除


[[email protected] iscsi]# iscsiadm -m node -T  iqn.2017-08.com.test.web:server1 -p 172.20.100.100 -o delete

再删除目录

3.11  服务器解除IP绑定


[[email protected] ~]# tgtadm --lld iscsi --op  unbind -m target -t 1 -I 172.20.0.0/16

3.12  服务器删除LUN2


[[email protected] ~]# tgtadm --lld iscsi --op  delete --mode logicalunit --tid 1 --lun 2

3.13  服务器删除target


[[email protected] ~]# tgtadm --lld iscsi --op  delete -m target -t 1

4. 服务器端基于文件配置

4.1   配置文件


[[email protected] tgt]# vi  /etc/tgt/targets.conf

<target  iqn.2017-08.com.test.web:server1>

backing-store /dev/sdb

</target>


[[email protected] tgt]# service tgtd restart

[[email protected] tgt]# tgtadm --lld iscsi  --op show  --mode target


[[email protected] tgt]# vi  /etc/tgt/targets.conf

<target  iqn.2017-08.com.test.web:server1>

backing-store /dev/sdb

initiator-address 172.20.0.0/16

</target>

客户端挂载,根上述方法一样。

综上:就是iscsi服务器搭建的全过程。

时间: 2024-12-21 13:29:47

Linux ISCSI服务器搭建的相关文章

Linux NTP 服务器搭建

Linux时间同步服务器搭建 NTP(Network Time Protocol)是用来使计算机时间同步化的一种协议,它使用UDP协议123号端口对外提供服务,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做时间的同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击.时间按NTP服务器的等级传播.按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中. 今天做一个项目需要配置一台NTP时间同步服

linux ftp服务器搭建

linux ftp服务 主动模式port:服务器主动发起数据连接.客户端向服务器21端口建立ftp数据连接.服务器从20端口向客户端随机端口发送数据. 被动模式pasv:服务器被动等待数据连接.如果客户机防火墙禁止主动模式,会采用被动模式.客户端向服务器21端口建立ftp数据连接.需要传输数据时,客户端向服务器设定范围内的端口(非20)建立数据连接. 开始: 关闭安全系统 setenforce  0 关闭防火墙 service  iptables stop 1.  安装软件包 mount   /

Linux dhcp服务器搭建

Dhcp就是动态主机配置协议,可以自动的去分配IP地址.子网掩码.网关以及DNS等tcp/ip信息. 服务器 ip 192.168.1.201 试验要求:要求linux dhcp 服务器实现给linux客户机分配ip地址. 首先: yum install dhcp -y  安装dhcp包 cd /etc/dhcp   进入dhcp文件夹 我们可以看到dhcpd.conf 文件的内容   接下来 拷贝一份 来本目录 vi dhcpd.conf   修改成下面这样就行(简单的) 红框内 第一行是 名

linux svn服务器搭建、客户端操作、备份与恢复

Subversion(SVN)是一个开源的版本控制系統,管理着随时间改变的数据.这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,它会记住每一次文件的变动,这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史. 本文目录: linux svn服务器部署 linux svn客户端命令操作 linux svn备份与恢复 一.linux svn服务器部署 1.安装svn [[email protected]~]#yum install -y subversion [[email

Linux NTP服务器搭建精讲

Linux NTP服务器  (时间服务器) Date –s 22:12:30   # 设置时间 闰秒  7月1日07:59:60秒 在这个时候,要关闭ntp服务 1.1. 软件安装 所需软件:默认已安装 yum install ntp -y ntpdate-4.2.6p5-1.el6.centos.i686 fontpackages-filesystem-1.41-1.1.el6.noarch ntp-4.2.6p5-1.el6.centos.i686 1.2. 配置NTP 配置文件:   vi

LINUX时间服务器搭建

一. 因 为工作需要,偶需要将搭建一个NTP服务器来进行时间同步的测试,在公司里一直以为非常的难搭建,也是刚刚工作的缘故,就等正导师给帮着弄一台服务器,结 果导师给了我一个系统叫Fedora,让我偶自己搭建,在公司折腾了一下午,没弄出来,回到家里自己 研究用centos 6.0来搭建NTP服务器,最 后终于党建成功,感觉centos系统真棒,因为许多东西都安装好了,不用自己安了,真是服务器系统的最佳系统. 先只说步骤不说原理,搭建的过程都是在Vmware下完成的,我的组件步骤是: 1. 先安装好

Linux CentOS 服务器搭建与初始化配置图文详解

这几天对服务器兴趣贼为浓厚,在虚拟机上装了一个CentOS7玩了玩,遇到过很多问题,比如网卡驱动设置,不能ping 等等问题,然后掏钱买个ECS搭服务器玩玩,下面就开始谢谢我的心路历程吧. 首先 买服务器,什么阿里云,百度云.腾讯云等等,随便买一个低配就好了,我买的学生机,9.9一个月,便宜的不能再便宜了,廉价的不能再廉价了. (自带mysql数据库,php Apache运行环境,FTP,VSftpd,这让我省了很多事) 第一步:安装jdk 去官网下载jdk(官网:http://www.orac

CentOS iSCSI服务器搭建------Initiator篇

服务器信息: [[email protected] ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [[email protected] ~]# uname -a Linux initiator 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# ifconfig

linux日志服务器搭建

1.日志服务器简介 日志服务器的主要作用是为了收集网络环境中的各种主机.服务器.交换机.路由器等设备的日志.对于一个大型的公司来说,其网络环境中的服务器.主机等各种设备会分散在各处,而为了维护好网络,管理员必需及时了解到什么时候什么设备出了什么样的问题,并及时解决,才能保证网络的整体运行,那么日志服务器就给管理员提供了一个这样的管理平台,它可以收集到管理员需要了解的日志信息,并以web页面的方式使管理员能够便捷的管理各种设备. 2.实验环境: 1).操作系统:CentOS-6.5-i386 2)