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


