實驗環境:RHEL6.0
ServerIP:192.168.0.1 **target主機**
port:3260
ClientIP:192.168.0.2 **initiator主機**
#yum install scsi-target-utils -y
1.建立所需要的磁盤設備
1>建立一個名爲/srv/iscsi/disk1.img的500M文件
2>使用/dev/sda10提供2GB作爲共享
3>使用/dev/server/iscsi01的2GBLV作爲共享(再加入5GB/dev/sda11到serverVG中)
#mkdir /srv/iscsi
#dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=500
#chcon -Rv -t tgtd_var_lib_t /srv/iscsi
#ls -lh /srv/iscsi/disk1.img
#fdisk /dev/sda #建立所需分區(sda10、sda11)
#partprobe #某些情況下得reboot
#swapon -s #確認建立的分區不能被swap使用
#pvcreate /dev/sda11
#vgextend server /dev/sda11
#lvcreate -L 500M -n iscsi01 server
#lvscan #查看lv是否OK
2.規劃共享的iscsi target文件名
iscsi共享出來的文件,取名語法如下:
iqn.yyyy-mm.<reversed domain name>:identifier
例:iqn.2011-08.com.example.Server1:file1
3.設置tgt的配置文件/etc/tgt/targets.conf
#vim /etc/tgt/targets.conf
******************************************************************************
添加:
<target iqn.2013-01.com.example.Server1:file1>
backing-store /srv/iscsi/disk1.img
backing-store /dev/sda10
backing-store /dev/server/iscsi01
incomeuser student westos #要求帳號和密碼才能使用此target
# initiator-address 192.168.0.0/24 限制能夠使用這個target的客戶端來源
# write-cache off 不使用緩存,緩存可能使數據遺失
# backing-store代表是虛擬的設備
# direct-store 代表的實際的設備
</target>
******************************************************************************
4.啓動iscsi target以及查看相關端口與磁盤信息
#/etc/init.d/tgtd start
#netstat -tunlp|grep 3260
#tgt-admin --show #查看tatget相關信息,以及提供的邏輯單位編號LUN數據內容
5.設置防火牆
#iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 3260 -j ACCEPT
iSCSI initiator的設置
IP:192.168.0.2
#yum install iscsi-initiator-utils -y
1.修改配置文件
#vim /etc/iscsi/iscsid.conf
*******************************************************************************************
node.session.auth.username = student #53、54行
node.session.auth.password = westos
discovery.sendtargets.auth.username = student #67、68行
discovery.sendtargets.auth.password = westos
*******************************************************************************************
2.檢測192.168.0.1這臺target的相關數據
#iscsiadm -m discovery -t sendtargets -p 192.168.0.1[:port] #檢測指定設備是否有target數據,默認端口是3260
#ll -R /var/lib/iscsi/nodes/ #連接時會用到的密碼、帳號都記錄在這裏
3.開始進行連接iSCSI target
#/etc/init.d/iscsi restart #將系統裏全部的target以/var/lib/iscsi/nodes/內的設置登錄(啓動完成後已經進入登錄狀態)
#iscsiadm -m node #顯示系統上面所有的target數據
如果不重新啓動iscsi,則可以採用一下手動登錄iscsi
#iscsiadm -m node -T iqn.2013-01.com.example.Server1:file1 --login
#fdisk -l #查看目前iscsi提供的存儲空間是否已經加載到本機
此時192.168.0.2這臺主機已經可以隨意使用已經加載好的iSCSI存儲空間
4.更新/刪除/添加target數據的方法
語法如下:
#iscsiadm -m node -T targetname --logout
#iscsiadm -m node -o [delete|new|update] -T targetname
示例:
#iscsi -m node #顯示出相關的target iqn名稱
#iscsi -m node -T iqn.2013-01.com.example.Server1:file1 --logout
#iscsi -m node -o delete -T iqn.2013-01.com.example.Server1:file1
#/etc/init.d/iscsi restart
注:
ISCSI(SAN的連接方式改爲利用IP技術處理後的產品)主要是通過TCP/IP的技術,將存儲設備端通過ISCSI Target功能,做成可以提供磁盤的服務器端,再通過ISCSI initiator功能做成能夠掛載使用ISCSI Target的客戶端,如此便能通過ISCSI協議來進行磁盤的應用了。現在已經很少有所謂的內置或外接RAID了,常聽到的有NAS(Network Attached Storage)和SAN(Storage Area Network)
1.NAS:網絡附加存儲服務器,相當於是一臺File Server(支持TCP/IP),低端的NAS通常會使用Linux系統搭配軟件磁盤陣列來提供大容量文件系統。NAS通常是利用Web接口來控制磁盤陣列的設置狀況、提供IP或其它相關網絡設置,以及是否提供某些特定的服務。
2.SAN:存儲局域網,可以視爲一個外接式的存儲設備。一般單純的外接式存儲設備僅能通過某些接口(如SCSI或eSATA)提供單獨一臺主機使用,而SAN卻可以通過某些特殊的接口或信道來提供局域網內的所有機器進行磁盤訪問。
3.SAN提供“磁盤(block device)”給主機用,可以進行該磁盤的分區和格式化等,而NAS提供的是“網絡協議的文件系統(NFS、SMB等)”,不能進行格式化。
4.NAS可以使用SAN提供的磁盤提供存儲服務。
5.ISCSI可以共享的磁盤:
使用dd命令建立的大型文件可供仿真爲磁盤(無需預先格式化)
使用單一分區共享爲磁盤
使用單一完整的磁盤(無需預先分區)
使用磁盤陣列共享(其實與單一磁盤相同方式)
使用軟件磁盤陣列(software RAID)共享成單一磁盤
使用LVM的LV設備共享爲磁盤
6.開機自動掛載,在/etc/fstab中的參數爲_netdev,如:
/dev/iscsi/disk /data/iscsi ext4 defaults,_netdev 1 2