基于iscsi实现文件存储共享
? 簡單介紹兩個概念:
? ? ? iSCSI:Internet Small Computer System Interface.是一種基于 TCP/IP的協(xié)議,用來建立和管理 IP 存儲設(shè)備、主機和客戶機等之間的相互連接,并創(chuàng)建存儲區(qū)域網(wǎng)絡(luò)(SAN)。SAN 使得 SCSI 協(xié)議應(yīng)用于高速數(shù)據(jù)傳輸網(wǎng)絡(luò)成為可能,這種傳輸以數(shù)據(jù)塊級別(block-level)在多個數(shù)據(jù)存儲網(wǎng)絡(luò)間進行。
? ? ?iSCSI的工作過程:當(dāng)iSCSI主機應(yīng)用程序發(fā)出數(shù)據(jù)讀寫請求后,操作系統(tǒng)會生成一個相應(yīng)的SCSI命令,該SCSI命令在iSCSI initiator層被封裝成ISCSI消息包并通過TCP/IP傳送到設(shè)備側(cè),設(shè)備側(cè)的iSCSI target層會解開iSCSI消息包,得到SCSI命令的內(nèi)容,然后傳送給SCSI設(shè)備執(zhí)行;設(shè)備執(zhí)行SCSI命令后的響應(yīng),在經(jīng)過設(shè)備側(cè)iSCSI target層時被封裝成ISCSI響應(yīng)PDU,通過TCP/IP網(wǎng)絡(luò)傳送給主機的ISCSI initiator層,iSCSI initiator會從ISCSI響應(yīng)PDU里解析出SCSI響應(yīng)并傳送給操作系統(tǒng),操作系統(tǒng)再響應(yīng)給應(yīng)用程序。
? ? ?ISCSI通信雙方:請求方:initiator即為客戶端。接收方:target,即為服務(wù)器端
? ? ?target ?:成為target需要滿足的條件:要有支持SCSI,ISCSI的模塊,要有創(chuàng)建target、lum的用戶空間工具。要有SCSI、ISCSI驅(qū)動,運行為服務(wù),且此服務(wù)開機自行啟動,接收客戶請求要有監(jiān)聽的套接字。服務(wù)器端的配置需要保存至某個配置文件中,使其永久生效。
? ? ?initiator:要有SCSI、ISCSI驅(qū)動,要能發(fā)現(xiàn)服務(wù)器端共享出來的磁盤存儲,要能登錄到服務(wù)器端
? ? ?有了以上思路我們就可以開始做配置:
服務(wù)器端:
? ? ? ?創(chuàng)建共享磁盤存儲
? ? ? ?# fdisk /dev/sda
? ? ? ?查看是否已安裝了SCSI、ISCSI的模塊
? ? ? ?# grep -i 'scsi' /boot//config-2.6.32-431.el6.x86_64
? ? ? ?安裝用戶空間的工具軟件
? ? ? ?# yum -y install scsi-target-utils-1.0.24-10.el6.x86_64.rpm
? ? ? ?開啟服務(wù)
? ? ? ?/etc/rc.d/init.d/tgtd
? ? ? ?# service tgtd start
? ? ? ?開機自動啟動
? ? ? ?# chkconfig tgtd on
? ? ? ?監(jiān)聽套接字端口:
? ? ? ?# ss -tnl 3260
? ? ? ?用戶空間使用工具
? ? ? ?/usr/sbin/tgtadm
? ? ? ?使用配置文件
? ? ? ?/etc/tgt/targets.conf
? ? ? ?開機重啟后
? ? ? ?/usr/sbin/tgt-admin會讀取配置文件信息。
? ? ? ?創(chuàng)建target
? ? ? ?# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2014-05.com.aperson.web:1
? ? ? ?查看創(chuàng)建的targeto
? ? ? ?# tgtadm -L iscsi -o show -m target
? ? ? ?
? ? ? ?關(guān)聯(lián)邏輯單元lun
? ? ? ?# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/sda5
? ? ? ?再次查看
? ? ? ?# tgtadm -L iscsi -o show -m target
? ? ?開啟邏輯單元對用戶的訪問,即基于ip的授權(quán)
? ? ?# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.2.0/24
客戶端:
? ? ?安裝軟件
? ? ?iscsi-initiator-utils-6.2.0.873-10.el6.x86_64.rpm
? ? ?# rpm -ql iscsi-initiator-utils
? ? ?兩個啟動服務(wù)腳本
? ? ?/etc/rc.d/init.d/iscsi
? ? ?/etc/rc.d/init.d/iscsid
? ? ?iscsid的配置文件
? ? ?/etc/iscsi/iscsid.conf
? ? ?客戶端使用工具
? ? ?/sbin/iscsiadm
? ? ?iscsi別名生成工具
? ? ?/sbin/iscsi-iname
? ? ?別名存放目錄:
? ? ?/etc/iscsi
? ? ?啟動服務(wù)
? ? ?service iscsi start
? ? ?service iscsid start
? ? ?創(chuàng)建自己的名稱跟別名
? ? ?echo "InitiatorName=`iscsi-iname -p iqn.2014-05.com.aperson`" > /etc/iscsi/initiatorname.iscsi
? ? ?echo "InitiatorAlias=initiator1" >> /etc/iscsi/initiatorname.iscsi
? ? ?發(fā)現(xiàn)共享: ? ?
# iscsiadm -m discovery -t st -p 192.168.2.117:3260 192.168.2.117:3260,1 iqn.2014-05.com.aperson.web:1? ? ?登錄共享服務(wù)器端 ?
# iscsiadm -m node -T iqn.2014-05.com.aperson.web:1 -p 192.168.2.117:3260 -l Logging in to [iface: default, target: iqn.2014-05.com.aperson.web:1, portal: 192.168.2.117,3260] (multiple) Login to [iface: default, target: iqn.2014-05.com.aperson.web:1, portal: 192.168.2.117,3260] successful. ? ? ?查看硬盤情況:
? ? ?分區(qū)格式化對此磁盤 并掛載到本地,驗證數(shù)據(jù)的輸入刪除等操作 ?
? ? 注意:共享存儲不能同時給兩個客戶端使用,否則文件系統(tǒng)會崩潰。
? ? 退出登錄: ? ?
iscsiadm -m node -T iqn.2014-05.com.aperson.web:1 -p 192.168.2.117 -u? ?
? ? 我們下次登錄的時候會自動發(fā)現(xiàn)共享存儲是因為我們登錄過一次以后就會在/var/lib/iscsi/目錄下自動生成一些文件,記錄我們曾經(jīng)登錄過的共享服務(wù)器的一些信息:
? ?
? ?如果不想記錄,我們可以刪除這些文件,也可以使用iscsiadm的一條命令進行刪除:
# iscsiadm -m node -T iqn.2014-05.com.aperson.web:1 -p 192.168.2.117:3260 -o delete? ?刪除lun,刪除target指令: ?
# tgtadm -L iscsi -o delete -m logicalunit -t 1 -l 1 # tgtadm -L iscsi -o delete -m target -t 1? ?
? ?命令的配置無法長久保存,所以我們需要基于配置文件的設(shè)置來實現(xiàn)持久配置
# vim /etc/tgt/targets.conf <target iqn.2014-05.com.aperson.web2.2>direct-store /dev/sda5initiator-address 192.168.2.0/24 </target>?
? ?iscsi基于用戶的認證配置:
? ?在服務(wù)器端:
# vim /etc/tgt/targets.conf <target iqn.2014-05.com.aperson.web2.2>direct-store /dev/sda5initiator-address 192.168.2.0/24incominguser admin admin </target>? ?在客戶端:
# vim /etc/iscsi/iscsid.conf node.session.auth.authmethod = CHAP node.session.auth.username = admin node.session.auth.password = admin ? ?如果是先前登錄過的需要在客戶端停止iscsi、iscsid服務(wù),并刪除/var/lib/iscsi/目錄下的文件:重新發(fā)現(xiàn),重新登錄。
? ?
? ? OK,以上就是iscsi的基礎(chǔ)知識!
轉(zhuǎn)載于:https://blog.51cto.com/aperson/1405592
總結(jié)
以上是生活随笔為你收集整理的基于iscsi实现文件存储共享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ExtJS4.x 开发环境搭建
- 下一篇: ecshop 详情页面获取商品销量和评论