SCSI:Small Computer System Interface SCSI是一種I/O技術 SCSI規範了一種並行的I/O總線和相關的協議 SCSI的數據傳輸是以塊的方式進行的 SCSI的特點: 設備無關性 多設備並行 高帶寬 低系統開銷 SCSI總線是SCSI設備之間傳輸數據的通路(又稱爲SCSI通道) 安裝iSCSI需要在服務器端和客戶端分別安裝scsi-target-utils和iscsi-initiator-utils 下載源碼: iSCSI Target: scsi-target-utils 端口:3260 客戶端認正方式: 1、基於IP 2、基於用戶,CHAP iSCSI Initiator: iscsi-initiator-utils open-iscsi 不支持discovery認證; 如果使用基於用戶的認證,必須首先開放基於IP的認證; scsi-target-utils主要的文件: /etc/tgt/targets.conf:主配置文件,設置共享磁盤的格式與那幾塊 /usr/sbin/tgt-admin:在線查詢、刪除等功能的設置工具 /usr/sbin/tgt-setup-lun:建立target以及設置共享磁盤與可用客戶端工具 /usr/sbin/tgtadm:手動管理的管理員工具 /usr/sbin/tgtd:主要提供iSCSI target服務主進程 /usr/sbin/tgtimg:搭建預計共享的映像文件設備的工具(以映像文件爲仿真磁盤) iscsi-initiator-utils主要的文件: /etc/iscsi/iscsid.conf:主配置文件,用於連接iSCSI target /sbin/iscsid:啓動iSCSI initiator的主要服務進程 /sbin/iscsiadm:用來管理iSCSI initiator的主要設置程序 /etc/init.d/iscsid:讓本機模擬成爲iSCSI initiator主要服務 /etc/init.d/iscsi:在本機成爲iSCSI initiator後,啓動服務,登錄iSCSI target。 /sbin/iscsi-iname:自動生成initiatorName(-p:指定前綴,保存在/etc/iscsi/initiator.iscsi中) /var/lib/iscsi目錄 /var/lib/iscsi/ifaces:各網卡接口 /var/lib/iscsi/send_targets目錄:生成一個或多個以iSCSI存儲服務器的IP和端口命名的文件夾 /var/lib/iscsi/nodes目錄:一個或多個以iSCSI服務器上的target名命名的文件夾,下有iSCSI protal IP,端口號的配置文件參數,登錄target的參數,由/etc/iscsi/iscsi.conf繼承 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.chen:tstore.disk1 iscsiadm模式化的命令 -m {discovery|node|session|iface} discovery: 發現某服務器是否有target輸出,以及輸出了哪些target; node: 管理跟某target的關聯關係; session: 會話管理 iface: 接口管理 iscsiadm -m discovery [ -d debug_level ] [ -P printlevel ] [ -I iface -t type -p ip:port [ -l ] ] -d: 0-8 調試級別 -P:顯示信息 -I: 通過哪個接口向外輸出 -t type: SendTargets(st), SLP, and iSNS -p: IP:port 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 ] ] 登錄:iscsiadm -m node -T TargetName -p IP:Port -l(--login) 登出:iscsiadm -m node -T TargetName -p IP:Port -u(--logout) iscsiadm -m node -o [delete|new|update] -T TargetName -o delete:刪除連接信息(/var/lib/iscsi/node/*) -o update:更新相關數據 -o new:增加新的target信息 配置實例: server ip:192.168.163.3 client ip:192.168.163.4 在服務器端安裝scsi-target-utils #yum -y install scsi-target-utils 查看安裝的文件: #rpm -ql scsi-target-utils /etc/rc.d/init.d/tgtd /etc/sysconfig/tgtd /etc/tgt/targets.conf /usr/sbin/tgt-admin /usr/sbin/tgt-setup-lun /usr/sbin/tgtadm /usr/sbin/tgtd /usr/sbin/tgtimg /usr/share/doc/scsi-target-utils-1.0.24 /usr/share/doc/scsi-target-utils-1.0.24/README /usr/share/doc/scsi-target-utils-1.0.24/README.iscsi /usr/share/doc/scsi-target-utils-1.0.24/README.iser /usr/share/doc/scsi-target-utils-1.0.24/README.lu_configuration /usr/share/doc/scsi-target-utils-1.0.24/README.mmc /usr/share/man/man5/targets.conf.5.gz /usr/share/man/man8/tgt-admin.8.gz /usr/share/man/man8/tgt-setup-lun.8.gz /usr/share/man/man8/tgtadm.8.gz 在server端創建一個新的分區/dev/sdb1,也可以是映像文件,LVM,本例使用/dev/sdb1 啓動服務: #service tgtd start 通過tgtadm來管理iSCSI target #tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2016-10.com.chen:tstore.disk1 #tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb1 查看: #tgtadm --lld iscsi --mode target --op show 綁定客戶端ip爲192.168.163.0網段: #tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.163.0/24 在client端安裝iscsi-initiator-utils: #yum -y install iscsi-initiator-utils 生成initiatorname: #echo "InitiatorName=`iscsi-iname -p iqn.2016-10.com.chen`" > /etc/iscsi/initiator.iscsi 啓動iscsi服務時,它會先啓動iscsid服務: #service iscsi start 使用iscsiadm命令來管理: 發現server的target輸出 #iscsiadm -m discovery -d 2 -t st -p 192.168.163.3 登錄target: #iscsiadm -m node -T iqn.2016-10.com.chen:tstore.disk1 -l 登錄後就可以像管理本地磁盤一樣管理iSCSI了