Iscsi configureation

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
文件存储 NAS,50GB 3个月
简介:

Internet iStorage Name Service Server


The Internet Storage Name Service (iSNS) protocol is used for interaction between iSNS servers and iSNS clients. iSNS clients are computers, also known as initiators, that are attempting to discover storage devices, also known as targets, on an Ethernet network. iSNS facilitates automated discovery, management, and configuration of iSCSI and Fibre Channel devices (using iFCP gateways) on a TCP/IP network.


iscsi drvier feature:

支持数据报文首部或数据验证;CHAP认证;MultiPath;动态target discover


Target(目标):

1.准备要共享的设备,这里使用本地磁盘上的新分区:

1
  #fdisk -l


建立所需要的分区

1
2
  #fdisk /dev/sda
  #partprobe


2.安装iscsi服务端:

1
2
3
4
  #yum -y install scsi-target-utils
  #service tgtd start
  #chkconfig tgtd on
  #netstat -tnlp | grep 3260


3.服务器端配置管理工具tgtadm的使用:

1
  tgtadm --lld [driver] -- op  [operation] --mode [mode] [Option]...


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

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


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

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


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

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


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

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


(5)输出target[id]中的LUN [lun]:

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


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

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


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

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



例如:

(1)创建一个target:

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


(2)显示所有:

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


(3)显示刚创建的target:

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


(4)创建LUN,号码为1:

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


(5)开放给192.168.0.0/24网络中的主机访问:

1
# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 172.16.0.0/16


其中的-I相当于--initiator-address

(6)Create a new account:

1
2
# tgtadm --lld iscsi --op new --mode account --user christina --password 123456
# tgtadm --lld iscsi --op show --mode account


Assign this account to a target:

1
2
# tgtadm --lld iscsi --op bind --mode account --tid 1 --user christina
# tgtadm --lld iscsi --op show --mode target


(7)Set up an outgoing account. First, you need to create a new account like the previous example

1
2
3
4
# tgtadm --lld iscsi --op new --mode account --user clyde --password 123456
# tgtadm --lld iscsi --op show --mode account
# tgtadm --lld iscsi --op bind --mode account --tid 1 --user clyde --outgoing
# tgtadm --lld iscsi --op show --mode target



客户端配置:

1
2
3
4
5
  #yum install iscsi-initiator-utils
  #echo "InitiatorName=`iscsi-iname -p iqn.2013-05.com.magedu`" > /etc/iscsi/initiatorname.iscsi
  #echo "InitiatorAlias=initiator1" >> /etc/iscsi/initiatorname.iscsi
  #service iscsi start
  #chkconfig iscsi on


2.iscsiadm工具的使用:

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

1
2
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 ] [ -U all,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中;

1
2
3
4
# 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
# 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 -o delete



查看会话相关信息:

1
# iscsiadm -m session -s



挂载时使用_netdev作为选项


CHAP认证启用:(单向)

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

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

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


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

1
2
  #tgtadm --lld iscsi --op bind --mode account --tid 1 --user christina
  #tgtadm --lld iscsi --op show --mode account


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

1
  #vim /etc/iscsi/iscsid.conf


取消如下项的注释:

1
2
3
  #node.session.auth.authmethod = CHAP
  #node.session.auth.username = username
  #node.session.auth.password = password


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

1
2
  node.session.auth.username = christina
  node.session.auth.password = 123456



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

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

1
2
3
4
5
6
7
8
  #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 -o delete
  #rm -rf /var/lib/iscsi/nodes/iqn.2010-08.com.example.tgt:disk1
  #rm -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主机地址可能需要按照您的实际情况修改。



FreeNAS:

reeNAS是一套免费的NAS服务器,它能将一部普通PC变成网络存储服务器。该软件基于FreeBSD,Samba 及PHP,支持CIFS (samba), FTP, NFS protocols, Software RAID (0,1,5) 及 web 界面的设定工具


Openfiler:

Openfiler 由rPath Linux驱动,它是一个基于浏览器的免费网络存储管理实用程序,可以在单一框架中提供基于文件的网络连接存储 (NAS) 和基于块的存储区域网 (SAN)。整个软件包与开放源代码应用程序(例如 Apache、Samba、LVM2、ext3、Linux NFS 和 iSCSI Enterprise Target)连接。Openfiler 将这些随处可见的技术组合到一个易于使用的小型管理解决方案中,该解决方案通过一个基于 Web 且功能强大的管理界面实现。

Openfiler 支持 CIFS、NFS、HTTP/DAV 和 FTP,但是,我仅使用它的 iSCSI 功能为 Oracle10g RAC 需要的共享存储组件实现低成本的 SAN。我们将通过 USB 2.0 接口将一个 500GB 的外置硬盘驱动器连接到 Openfiler 服务器。Openfiler 服务器将配置为使用该磁盘进行基于 iSCSI 的存储,并且将在 Oracle10g RAC 配置中用于存储 Oracle 集群件所需的共享文件以及所有 Oracle ASM 卷。



fence_manual

lvmconf --enable-cluster

cman

rgmanager

clvmd



GFS:

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。

创建一个GFS文件系统:

需要提供的信息:

1.锁类型:

    lock_nolock

    lock_dlm

2.锁文件的名字,通常即文件系统名

    cluster_name:fs:name

3.日志的个数,通常一个节点对应一个日志文件,但建议提供比节点数更多的日志数目,以提供冗余;

4.日志文件大小

5.文件系统大小


Syntax: gfs_mkfs -p lock_dlm -t ClusterName:FSName -j Number -b block_size -J journal_size BlockDevice


如:

1
#gfs_mkfs -p lock_dlm -t gfscluster:gfslv -j 5 /dev/vg0/gfslv



可以通过其对应挂载点查看gfs文件系统属性信息;

1
#gfs_tool df /mount_point



挂载GFS文件系统:

1
mount  -o StdMountOpts,GFSOptions -t gfs DEVICE MOUNTPOINT



前提:挂载GFS文件的主机必须是对应集群中的节点;

挂载GFS文件系统文件时有如下常用选项可用:

1
2
lockproto=[locl_dlm,lock_nolock]
locktable=clustername:fsname


upgrade #GFS版本升级时有用

acl

如果不想每一次启用GFS时都得指定某选项,也可以通过类似如下命令为其一次性指定:

1
#gfs_tool margs "lockproto=lock_dlm,acl"



载入相应的gfs模块,并查看lv是否成功

1
2
3
4
5
6
7
8
9
#modprobe gfs
#modprobe gfs2
#chkconfig gfs on
#chkconfig gfs2 on
#chkconfig clvmd on
#/etc/init.d/gfs restart
#/etc/init.d/gfs2 restart
#/etc/init.d/clvmd restart
#lvscan

lvmconf --enale-cluster


Openfiler,NAS,SAN

FreeBSD,AIX,Power


/lib64


Openfiler:CentOS

    NAS:nfs,Samba

    SAN:IPSAN

webGUI


FreeNAS:

FreeBSD

tgtd

iscsitarget


1
2
3
4
5
6
7
8
tgtadm --lld iscsi -- op  new --mode account --user iscsiuser --password mypass
tgtadm --lld iscsi -- op  new --mode account --user myuser --password mypass
tgtadm --lld iscsi -- op  bind --mode account --tid 1 --user iscsiuser
tgtadm --lld iscsi -- op  bind --mode account --tid 1 --user myuser --outgoing
<target iqn.2012-11.com.magedu:tgt.target1>
    backing-store  /dev/sdb
    incominguser iscsiuser mypass
    outgoinguser myusermypass


/etc/iscsi/iscsid.conf


MySQL: HA










本文转自 SoulMio 51CTO博客,原文链接:http://blog.51cto.com/bovin/1837323,如需转载请自行联系原作者
相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
7月前
|
数据安全/隐私保护
|
7月前
|
存储 运维 网络协议
ISCSI详解(二)——ISCSI基础知识
ISCSI详解(二)——ISCSI基础知识
136 4
|
7月前
|
存储 缓存 运维
ISCSI详解(三)——ISCSI原理和架构
ISCSI详解(三)——ISCSI原理和架构
314 2
|
3月前
|
存储 网络协议 固态存储
ubutu上配置iscsi
ubutu上配置iscsi
|
Linux Shell 开发工具
|
Shell Linux 开发工具
|
存储 网络协议 IDE
|
存储 网络协议 开发工具