iSCSI協(xié)議、架構(gòu)及其安裝配置

2017年3月1日22:59:42 發(fā)表評論 4,639 ℃

scsi特點(diǎn)

設(shè)備無關(guān)性

多設(shè)備并行

高帶寬

地系統(tǒng)開銷

iSCSI Target: scsi-target-utils

3260

客戶端認(rèn)證方式

基于IP

基于用戶,CHAP

iSCSI Initiator: iscsi-initiator-utils

open-iscsi

tgtadm模式化的命令

--mode

常用模式:target、logicalunit、account

target --op

new、delete、show、update、bind、unbind

logicalunit --op

new、delete

account --op

new、delete、bind、unbind

--lld, -L

--tid, -t

--lun, -l

--backing-store <path>, -b

--initiator-address <address>, -I

-T, --targetname <targetname>

targetname:

iqn.yyyy-mm.<reversed domain name>[:identifier]

iqn.2013-05.com.magedu:tstore.disk1

iscsiadm模式化的命令

-m {discovery|node|session|iface}

discovery: 發(fā)現(xiàn)某服務(wù)器是否有target輸出,以及輸出了哪些target;

node: 管理跟某target的關(guān)聯(lián)關(guān)系;

session: 會話管理

iface: 接口管理

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

-d:有效范圍0-8

-I:接口

-t type:SendTargets(st), SLP, and iSNS

-p : IP:port 默認(rèn)3260

iscsiadm -m discovery -d 2 -t st -p 172.16.100.100

iscsiadm -m node  [ -d debug_level ]  [ -L all,manual,automatic ] | [ -U all,manual,automatic ]

iscsiadm -m node  [ -d debug_level ]  [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u ] ] [ [ -o  operation  ] [ -n name ] [ -v value ] ]

iscsi-initiator-utils:

不支持discovery認(rèn)證;

如果使用基于用戶的認(rèn)證,必須首先開放基于IP的認(rèn)證;

服務(wù)端

#yum -y install scsi-target-utils

#tgtadm --lld iscsi --mode target --op new --targetname iqn.2017-01.cn.atang:teststore.disk1 --tid 1 創(chuàng)建target

#tgtadm --lld iscsi --mode target --op show 查看tgtadm

#tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sda5 添加lun

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

客戶端

#yum -y install   iscsi-initiator-utils

#echo "InitiatorName=`iiscsi-iname -p iqn.2017-01.cn.atang">/dec/iscsi/initiatorname.iscsi 也可以定義別名InitiatorAlias=node1.atang.cn

#iscsiadm -m discovery -d 2 -t st -p 172.16.100.100 發(fā)現(xiàn)target

#iscsiadm -m node -T iqn.2017-01.cn.atang:teststore.disk1  -p 172.16.100.100 -l 登錄

#fdisk -l  發(fā)現(xiàn)硬盤后可以進(jìn)行分區(qū)格式化

基于用戶名登錄

客戶端

#iscsiadm -m node -T iqn.2017-01.cn.atang:teststore.disk1 -p 172.16.100.100 -u 登出

#iscsiadm -m node -T iqn.2017-01.cn.atang:teststore.disk1 -p 172.16.100.100 -o  delete 刪除相關(guān)數(shù)據(jù)庫

#tgtadm --lld iscsi -m target --op unbind --tid 1 --initiator-address 172.16.0.0/16

服務(wù)端

#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

 

cman, rgmanger, gfs2-utils

mkfs.gfs2

-j #: 指定日志區(qū)域的個數(shù),有幾個就能夠被幾個節(jié)點(diǎn)所掛載;
-J #: 指定日志區(qū)域的大小,默認(rèn)為128MB; 
-p {lock_dlm|lock_nolock}: 
-t <name>: 鎖表的名稱,格式為clustername:locktablename, clustername為當(dāng)前節(jié)點(diǎn)所在的集群的名稱,locktablename要在當(dāng)前集群惟一;

cLVM: 共享存儲做成LVM

借用HA的機(jī)制

/etc/lvm/lvm.conf

locking_type = 3

ISCSI安裝配置

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:

支持?jǐn)?shù)據(jù)報文首部或數(shù)據(jù)驗正;

CHAP認(rèn)證

MultiPATH

動態(tài)target discover

 

Target:

1、準(zhǔn)備要共享的設(shè)備,這里使用本地磁盤上的新分區(qū):

# fdisk -l 

建立所需要的新分區(qū)

# fdisk /dev/sda

# partprobe 

 

2、安裝iscsi服務(wù)端:

# yum -y install scsi-target-utils

 

# service tgtd start

# chkconfig tgtd on

# netstat -tnlp | grep 3260

3、服務(wù)端配置管理工具tgtadm的使用:

tgtadm --lld [driver] --op [operation] --mode [mode] [OPTION]...

 

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

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

 

(2)、顯示所有或某個特定的target:

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

 

(3)、向某ID為[id]的設(shè)備上添加一個新的LUN,其號碼為[lun],且此設(shè)備提供給initiator使用。[path]是某“塊設(shè)備”的路徑,此塊設(shè)備也可以是raid或lvm設(shè)備。lun0已經(jīng)被系統(tǒng)預(yù)留。

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

(4)、刪除ID為[id]的target:

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

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

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

(6)、定義某target的基于主機(jī)的訪問控制列表,其中,[address]表示允許訪問此target的initiator客戶端的列表:

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

 

(7)、解除target [id]的訪問控制列表中[address]的訪問控制權(quán)限:

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

 

例如:

 

(1)創(chuàng)建一個target:

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

(2)顯示所有:

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

 

(3)顯示剛創(chuàng)建的target:

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

 

(4)創(chuàng)建LUN,號碼為1:

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

 

(5)開放給192.168.0.0/24網(wǎng)絡(luò)中的主機(jī)訪問:

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

其中的-I相當(dāng)于--initiator-address

 

(6)Create a new account:

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

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

 

Assign this account to a target:

 

# 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

 

# 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

客戶端配置:

 

# yum install iscsi-initiator-utils

 

# echo "InitiatorName=`iscsi-iname -p iqn.2013-05.cn.amd5`" > /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會顯示其相關(guān)的所有記錄;session用于顯示所有的活動會話和連接,fw顯示所有的啟動固件值,host顯示所有的iSCSI主機(jī),iface顯示/var/lib/iscsi/ifaces目錄中的所有ifaces設(shè)定。

 

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發(fā)送一個可用target列表給initiator;

-p, --portal=ip[:port]  指定target服務(wù)的IP和端口;

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

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

-u, --logout 

-o, --op=OPEARTION:指定針對discoverydb數(shù)據(jù)庫的操作,其僅能為new、delete、update、show和nonpersistent其中之一;

-I, --interface=[iface]:指定執(zhí)行操作的iSCSI接口,這些接口定義在/var/lib/iscsi/ifaces中;

# 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

   

查看會話相關(guān)信息:

# iscsiadm -m session -s

 

掛載時使用_netdev作為選項

 

CHAP: 單向

 

創(chuàng)建服務(wù)端誰所需要的帳號,并實現(xiàn)單方向的認(rèn)證:

 

1、在target端創(chuàng)建帳號christina,并為其授予訪問某tid的權(quán)限:

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

 

接下來還要將用戶與某target進(jìn)行綁定:

# 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

而后,將后兩項的用戶名密碼設(shè)置為target端設(shè)置的用戶名和密碼:

node.session.auth.username = christina

node.session.auth.password = 123456

 

哪果此前尚未登錄過此target,接下來直接發(fā)現(xiàn)并登入即可。否則,則需要按照下面的第三步實現(xiàn)認(rèn)證的啟用。

 

3、如果initiator端已經(jīng)登錄過此target,此時還需要先注銷登錄后重啟iscsid服務(wù),并在刪除此前生成的database后重新發(fā)現(xiàn)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 -o delete

# rm -rf /var/lib/iscsi/nodes/iqn.2010-08.com.example.tgt:disk1

# 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主機(jī)地址可能需要按照您的實際情況修改。 

FreeNAS

Openfiler

 

fence_manual

lvmconf --enable-cluster

cman

rgmanager

clvmd

 

創(chuàng)建一個GFS文件系統(tǒng):

需要提供的信息:

1、鎖類型:

 lock_nolock

 lock_dlm

2、鎖文件的名字,通常即文件系統(tǒng)名

 cluster_name:fs_name

3、日志的個數(shù),通常一個節(jié)點(diǎn)對應(yīng)一個日志文件,但建議提供比節(jié)點(diǎn)數(shù)更多的日志數(shù)目,以提供冗余;

4、日志文件大小

5、文件系統(tǒng)大小

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

如:

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

 

可以通過其對應(yīng)掛載點(diǎn)查看gfs文件系統(tǒng)屬性信息;

# gfs_tool df /mount_point

 

掛載GFS文件系統(tǒng):

mount -o StdMountOpts,GFSOptions -t gfs DEVICE MOUNTPOINT

前提:掛載GFS文件的主機(jī)必須是對應(yīng)集群中的節(jié)點(diǎn);

 

掛載GFS文件時有如下常用選項可用:

lockproto=[locl_dlm,lock_nolock]

locktable=clustername:fsname

upgrade # GFS版本升級時有用

acl

如果不想每一次啟用GFS時都得指定某選項,也可以通過類似如下命令為其一次性指定:

# gfs_tool margs "lockproto=lock_dlm,acl"

載入相應(yīng)的gfs模塊,并查看lv是否成功

 

# 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

 

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.cn.amd5:tgt.target1>

   backing-store /dev/sdb

   incominguser iscsiuser mypass

   outgoinguser myuser mypass

</target>

/etc/iscsi/iscsid.conf

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: