日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

V 6 iSCSI

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 V 6 iSCSI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

V 6 iSCSI

?

一、相關概念:

computer architecture計算機體系結構

如圖:

north bridge以上是核心系統(核心單元)

south bridge以下是外圍總線(I/O系統,提供輔助×××)

USB deviceIDE device能提供持久性存儲,若從這些設備上讀寫數據時,要先加載至內存中,CPU是在內存中進行處理

IDE存儲總線(連接設備的數量少,一個控制器上只能連接一主一從兩個設備,主板上提供的IDE口也很難有很多,IDE在設計上實現協議數據單元PDU封裝的能力很差,并且經此總線將數據以塊方式傳輸至設備上時需要大量的CPU時鐘周期參與(CPU要花大量時間進行讀或寫的操作)在非常繁忙的服務器上這并不適合)

SCSI工業總線(總體性能比IDE及SATA要快,連接總線的適配器adapterHBA卡,host base adapter),這個卡內置的控制芯片,來完成協議數據單元的封裝,這樣大大降低了對CPU時鐘周期的占用,使得CPU解脫出來可完成其它工作)

?

SCSIsmall computersystem interfaceSCSI是一種IO技術;規范了一種并行的I/O總線和相關的協議;數據傳輸是以塊的方式進行;實現了設備無關性、多設備并行、高帶寬、低系統開銷)

SCSI總線通過SCSI控制器來和硬盤之類的設備進行通信;SCSI控制器邏輯上可分為一個任務管理單元和多個邏輯單元(LUlogical unit);LUNLU number是為了使用和描述更多設備及對象而引進的一個方法,每個target上最多有32LUN,一個LUN對應一個邏輯設備

SCSI總線(寬總線(16個口,15個連接設備,最后一個連接終結器terminate);窄總線(共8口,7個口連接設備,另一個口用于terminate))

SCSI總線和SAS總線的區別:

SCSI總線(并行,一根線纜供多個設備連接(多個設備共享同一根線纜),以ultra320為例速率320MB/s

SAS總線(串行,serial attachedSCSI,適配器上有多個口,每個口連接一個設備,另還有擴展口expander可連接多個設備(類似邏輯分區的概念),速率達到6Gbps0.75GB/s

?

注:SCSI總線,線纜長度有限,僅能共享有限個主機

SANstorage area network,有些場景需要多個設備為多個主機同時使用,且要能傳輸更長的距離,能夠傳輸SCSI報文并能路由到目標設備并存儲,這種網絡結構叫SAN

?

SANhigh performance)和NASlow performance)的區別:

FSSANFS在本地(可創建分區、格式化);NASFSserver-side(是文件服務器))

block I/OSANclient-sideserver-side都有;NASserver-side有)

SCSI協議是分層的(分層的好處,某一個層次可以隨意替換,而不至影響全局),從上至下依次為:

common access method

scsi device-type specific command set;(不同設備類型的特有命令集,如光盤、硬盤等)

shared command set;(公共命令集,如存儲、讀取等)

transport protocol

physical interconnects;(將SCSI報文通過某一種線纜傳輸(從源到目的所用的傳輸介質,所傳輸的報文格式))

注:SCSI報文(從上至下依次封裝各種首部,如在數據上封裝特有命令集、公共命令集)通過線纜傳輸(早期使用ATAPi);物理介質不同,傳輸的方式就不同,只要將相應的物理層替換為其它介質類型即可,如將ATAPi替換為iSCSIFCFCoE

FC代價高昂(fiber channel,不能利用現有網絡,需重建光網絡,主機的光口要與FC SWITCH的光口綁定,工作機制不是IP這種方式,是光網絡傳輸機制,另需要專門的管理人員學習相關協議及設備管理知識,整套設備及各部件價格不菲)

FCoEFC over ethernet,基于以太網的FC,且僅能在以太網上傳輸(雙絞線)不能在公網上傳輸,報文(dataSCSI封裝-->FC封裝-->FCoE封裝-->轉為以太網幀)在ethernet上傳輸,注意不經TCP/IP封裝,商業,symmetix公司,非開源,使用此種方式要求以太網至少是10Gbps(萬兆))

iSCSIinternet SCSI,開源,利用現有的TCP/IP網絡傳輸SCSI報文,基于IP報文實現分組傳送,通過某個服務監聽在某個socket上,c/s架構,clientinitiator)發起請求,servertarget)隨時接收請求并給予響應)

注:iSCSIFCoE傳輸性能差別不大

注:storage protocolFCiSCSIFCoESAS

client-side

如圖:SCSI driver封裝SCSI CmdsiSCSI driver封裝iSCSI指令,這些驅動可以以硬件(不占用CPU時間,性能高,OS內核直接交由設備驅動處理,而不經由軟件方式工作的內核模塊)或軟件(性能差)方式運作,適合client上安裝的基于iSCSITCP/IP網卡有(性能從高到低依次為):

iSCSI HBA卡(內建SCSI指令及TOE引擎的ASIC芯片的適配卡,性能最佳,價格昂貴,CPU占用率10%

iSCSI TOE卡(內建TOE引擎的ASIC芯片適配卡,但SCSI指令由軟件方式運行,iSCSI指令在硬件中完成,CPU占用率40%

iSCSI initiator驅動程序(完全軟件方式運作,性能最差)

?

server-side

iSCSI協議的服務(用戶空間的守護進程)監聽在某個socket上(tcp/3260port

iSCSI session(同ssh一樣,連接建立后通道會一直存在)

iSCSI connection(每發送一次數據就是一個iSCSI connection

注:server-side只需提供iscsi功能(很多公司銷售的iscsi設備是極簡化的OS,僅提供iscsi的基本功能和管理工具,OSTCP/IP網絡和iscsi方面做了各種優化,所以性能好)

注:若報文由client-->serverserver查看ip首部是否本機,若是則接收,再查看tcp首部的目標port是否3260,若是則交由用戶空間的scsi服務,scsi服務(iscsi驅動)接收到報文查看指令發現是個存儲指令,調用本地的硬件設備驅動程序進行存儲(這里特殊的是為提高scsi的工作性能,scsi服務工作在內核中)

注:scsi指令只是由iscsiscsi完成數據存取控制機制的,若本地的設備不是scsi設備,則調用或交由對應的硬盤驅動程序來完成

?

?

二、操作(環境rhel5.8 32bit 2.6.18):

scsi-target-utilsserver-side工具,target,只是工具,真正服務是在內核中完成)

iscsi-initiator-utilsclient-side驅動,initiator

?

1server-side(node4)建立共享,client-side(node{1,2})使用共享存儲(基于IP認證)

server-sidenode4):

[root@node4 ~]# fdisk /dev/sdb+5G,不要格式化)

[root@node4 ~]# partprobe /dev/sdb

[root@node4 ~]# yum -y install scsi-target-utils

[root@node4 ~]# rpm -ql scsi-target-utils

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

/etc/sysconfig/tgtd

/etc/tgt/targets.conf

/usr/sbin/tgt-adminLinux SCSI Target Configuration Tool,直接用于編輯配置文件)

/usr/sbin/tgtadmLinux SCSI Target Administration Utility命令行管理工具,創建target、創建lunIP認證等)

[root@node4 ~]# service tgtd start

正在啟動 SCSI target daemon?????????????????????????????[確定]

[root@node4 ~]# netstat -tnlp | grep tgtd

tcp???????0????? 0 0.0.0.0:3260??????????????? 0.0.0.0:*?????????????????? LISTEN????? 4863/tgtd??????????

tcp???????0????? 0 :::3260???????????????????? :::*??????????????????????? LISTEN????? 4863/tgtd?

[root@node4 ~]# chkconfig tgtd on

[root@node4 ~]# chkconfig --list tgtd

tgtd?????????? ??? 0:關閉????? 1:關閉????? 2:啟用????? 3:啟用????? 4:啟用????? 5:啟用????? 6:關閉

?

[root@node4 ~]# tgtadm -h(模式化命令,常用模式targetlogicalunitaccount

#tgtadm --lld iscsi --mode target --op new--tid ID_NUM --targetname IQNadd a new target with <id> and <name>. <id> must not be zero.添加一個targetid號不能為00為保留,為本機所用);IQNISCSI Qualified Name

注:IQN格式:iqn.yyyy-mm.<reserve domain name>:identifierreserve domain name中各段要倒寫,如iqn.2015-07.com.magedu:tstore.disk1

#tgtadm --lld iscsi --mode target --op showshow all the targets

#tgtadm --lld iscsi --mode logicalunit --op new --tid ID_NUM --lun LUN --backing-store PATHadd a new logicalunit with <lun> to the specific target with <id>,添加邏輯單元到指定的target上,一個target上最多32LUN

#tgtadm --lld iscsi --mode target --op bind–tid ID_NUM --initiator-address ADDRESSenable the target toaccept the specific initiators將允許使用此設備的client地址與target綁定,基于IP認證)

注:

--op new|delete|show|update|bind|unbind

--lld-L),--mode-m),--op-o),--tid-t),--targetname-T),--lun-l),--backing-store-b),--initiator-address-I

?

[root@node4 ~]# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2015-07.com.magedu:teststore.disk1

[root@node4 ~]# tgtadm --lld iscsi --mode target --op show

[root@node4 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb

[root@node4 ~]# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.41.0/24(基于IP認證)

[root@node4 ~]# tgtadm --lld iscsi --mode target --op show

……

???????LUN: 0

……

???????LUN: 1

……

???????????Online: Yes

……

???Account information:

???ACL information:

???????192.168.41.0/24

?

client-sidenode1):

[root@node1 ~]# rpm -ql iscsi-initiator-utils(系統默認已安裝此包)

/etc/iscsi

/etc/iscsi/iscsid.conf

/etc/logrotate.d/iscsiuiolog

/etc/rc.d/init.d/iscsi(啟動此項,iscsi會自動啟動iscsid

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

/sbin/iscsi-iname(此命令會生成每一個initiator的名稱)

/sbin/iscsiadmopen-iscsi administration utilityinitiator端的管理工具)

/var/lib/iscsi/ifaces(此目錄記錄通過哪個網卡連接target

/var/lib/iscsi/nodes(此目錄下記錄建立關系的targetnode的相關信息)

/var/lib/iscsi/send_targets(此目錄下記錄與target建立關系的目錄,目錄名為target端的IP和端口)

[root@node1 ~]# echo"InitiatorName=`iscsi-iname -p iqn.2015-07.com.magedu`" >/etc/iscsi/initiatorname.iscsi (生成指定前綴的initiator名稱,另此配置文件還可添加別名,如InitiatorAlias=node1.magedu.com

[root@node1 ~]# cat/etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2015-07.com.magedu:62bf666dd2

?

[root@node1 ~]# iscsiadm -h(模式化的命令,常用的模式discoverynode

#man iscsiadm

#iscsiadm -m discovery [-d DEBUG_LEVEL] -t TYPE -p IP(發現指定服務器是否有target輸出或輸出了哪些targetDEBUG_LEVEL0-8TYPE四種,sendtargets通常使用此種簡寫為stslpisnsfw-p--portal入口,指定target服務器的IP地址)

#iscsiadm -m node -T TARGET_NAME -p IP -l|-u(建立或解除與指定的target間的關聯關系;-l--login-u--logout

?

[root@node1 ~]# iscsiadm -m discovery -t st -p 192.168.41.134

192.168.41.134:3260,1iqn.2015-07.com.magedu:teststore.disk1

[root@node1 ~]# iscsiadm -m node -T iqn.2015-07.com.magedu:teststore.disk1 -p 192.168.41.134 -l

Logging in to [iface: default, target:iqn.2015-07.com.magedu:teststore.disk1, portal: 192.168.41.134,3260] (multiple)

Login to [iface: default, target:iqn.2015-07.com.magedu:teststore.disk1, portal: 192.168.41.134,3260]successful.

[root@node1 ~]# fdisk -l(可查到關聯到本機的設備,可進行格式化)

……

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

……

[root@node1 ~]# fdisk /dev/sdb+2G

[root@node1 ~]# mkdir /mydata

[root@node1 ~]# mkfs.ext3 /dev/sdb1

[root@node1 ~]# mount /dev/sdb1 /mydata

[root@node1 ~]# cd /mydata

[root@node1 mydata]# touch a.txt

[root@node1 mydata]# ls

a.txt?lost+found

?

client-sidenode2):執行與node1相同的操作,更改此nodeInitiatorName,啟動服務,發現target、與target建立關聯關系、掛載設備

[root@node2 ~]# cd /mydata

[root@node2 mydata]# touch b.txt

[root@node2 mydata]# ls

b.txt?lost+found

[root@node2 mydata]# cd

[root@node2 ~]# cd /var/lib/iscsi

[root@node2 iscsi]# ls

ifaces?isns? nodes? send_targets?slp? static

[root@node2 iscsi]# ls send_targets/192.168.41.134,3260/

iqn.2015-07.com.magedu:teststore.disk1,192.168.41.134,3260,1,default? st_config

注:以上操作,兩node使用的是單機FS,若兩個node同時掛載使用,某一node新創建的一個文件,在另一node有可能會看不到(因為還在內存中尚未同步到磁盤);若兩node同時編輯磁盤中的同一文件,保存后FS會崩潰

?


2)基于用戶名密碼認證(CHAP為雙向認證,challenge hand authentication protocol,挑戰式握手認證協議,以下舉例是單向認證(server-side創建帳號密碼,要求client認證))

client-sidenode{1,2}):

[root@node1 mydata]# vim /etc/iscsi/iscsid.conf

node.startup = automatic

node.leading_login = No

# CHAP Settings

node.session.auth.authmethod = CHAP

node.session.auth.username = iscsiuserserver-side建立的用戶名和密碼,要求client認證)

node.session.auth.password = iscsiuser

#node.session.auth.username_in = username_inclient建立的用戶名和密碼,要求server-side認證)

#node.session.auth.password_in = password_in

#discovery.sendtargets.auth.username = username(關于發現的用戶名和密碼認證,openiscsi不支持此項,忽略)

#discovery.sendtargets.auth.password = password

[root@node1 ~]# cd

[root@node1 ~]# iscsiadm -m node -T iqn.2015-07.com.magedu:teststore.disk1 -p 192.168.41.134 -u--logout,解除關聯關系)

?[root@node1~]# iscsiadm -m node -T iqn.2015-07.com.magedu:teststore.disk1 -p 192.168.41.134 -o delete-o delete,將有關與target上建立關聯關系的相關文件刪除,若不刪除重啟服務后會自動登錄到此target

[root@node1 ~]# rm -rf /var/lib/iscsi/send_targets/

?

server-sidenode4):

[root@node4 ~]# tgtadm --lld iscsi --mode target --op show(確保已開啟IP認證,查看ACL information,因為iscsi-initiator不支持discovery認證,通過IP認證先發現后,再用帳號密碼認證)

Account information:

???ACL information:

???????192.168.41.0/24

[root@node4 ~]# tgtadm -h

[root@node4 ~]# tgtadm --lld iscsi --mode account --op new --user iscsiuser --password iscsiuser

[root@node4 ~]# tgtadm --lld iscsi --mode account --op bind --tid 1 --user iscsiuser

[root@node4 ~]# tgtadm --lld iscsi --mode account --op show

Account list:

iscsiuser

[root@node4 ~]# tgtadm --lld iscsi --mode target --op show

???Account information:

???????iscsiuser

???ACL information:

???????192.168.41.0/24

?

client-sidenode{1,2}):

[root@node1 ~]# service iscsi restartno records found表示沒有任何與target關聯的設備)

iscsiadm: No matching sessions found……

Setting up iSCSI targets: iscsiadm: Norecords found

??????????????????????????????????????????????????????????[? OK? ]

[root@node1 ~]# iscsiadm -m discovery -t st -p 192.168.41.134

192.168.41.134:3260,1iqn.2015-07.com.magedu:teststore.disk1

[root@node1 ~]# iscsiadm -m node -T iqn.2015-07.com.magedu:teststore.disk1 -p 192.168.41.134 -l

Logging in to [iface: default, target:iqn.2015-07.com.magedu:teststore.disk1, portal: 192.168.41.134,3260] (multiple)

Login to [iface: default, target:iqn.2015-07.com.magedu:teststore.disk1, portal: 192.168.41.134,3260]successful.

注:認證失敗提示如下:iscsiadm: Could not login to [iface: default, target:iqn.2015-07.com.magedu:teststore.disk1, portal: 192.168.41.134,3260].

iscsiadm: initiator reported error (24 -iSCSI login failed due to authorization failure)

iscsiadm: Could not log into all portals

?

注:client-side重啟服務后會自動登錄并關聯到targetserver-side重啟服務后要想永久有效要編輯配置文件/etc/tgt/targets.conf

?

3)編輯server-side配置文件/etc/tgt/targets.conf

[root@node4 ~]# vim /etc/tgt/targets.conf

方式一:

default-driver iscsi

<target iqn.2015-07.com.magedu:teststore.disk1>

???backing-store /dev/sdb(這樣寫sdbsdc會依次被識別為lun1lun2

???backing-store /dev/sdc

???initiator-address 192.168.41.0/24IP認證)

???incominguser iscsiuser iscsiuser(帳號密碼認證)

</target>

注:可將backing-store替換為direct-store,先按次序識別backing-store指定的硬盤,再按次序識別direct-strore指定的硬盤,backing-store優先級比direct-store優先級高(backing-store還可指定分區)

方式二:

<targetiqn.2015-07.com.magedu:teststore.disk1>

???<backing-store /dev/sdb>

???????vender_id magedu

???????lun 5

???</backing-store>

???incominguser iscsi iscsi

???initiator-address 192.168.41.131

???initiator-address 192.168.41.132

</target>

注意:第二種方式可指定lun號,每一個backing-store段都要包起來

[root@node4 ~]# service tgtd restart(使用第二種方式的配置文件,重啟服務)

停止 SCSI target daemon?????????????????????????????????[確定]

正在啟動 SCSI target daemon?????????????????????????????[確定]

[root@node4 ~]# tgtadm --lld iscsi --mode target --op show

Target 1:iqn.2015-07.com.magedu:teststore.disk1

???System information:

???????Driver: iscsi

???????State: ready

???I_T nexus information:

???LUN information:

???????LUN: 0

???????????Type: controller

???????????SCSI ID: IET???? 00010000

???????????SCSI SN: beaf10

???????????Size: 0 MB, Block size: 1

???????????Online: Yes

???????????Removable media: No

??? ????????Prevent removal: No

???????????Readonly: No

???????????Backing store type: null

???????????Backing store path: None

???????????Backing store flags:

???????LUN: 5

???????????Type: disk

???????????SCSI ID: IET???? 00010005

???????????SCSI SN: beaf15

???????????Size: 10737 MB, Block size: 512

???????????Online: Yes

???????????Removable media: No

???????????Prevent removal: No

???????????Readonly: No

???????????Backing store type: rdwr

???????????Backing store path: /dev/sdb

???????????Backing store flags:

???Account information:

???????iscsi

???ACL information:

???????192.168.41.131

???????192.168.41.132

?


轉載于:https://blog.51cto.com/jowin/1726250

總結

以上是生活随笔為你收集整理的V 6 iSCSI的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。