CentOS6.0 Windows7 Redhat5.5搭建iSCSI存儲環境實驗

火星人 @ 2014-03-08 , reply:0


之前的那篇文章 http://shanker.blog.51cto.com/1189689/831010 側重在應用上,在target的搭建上用到了openfiler系統,這篇文件介紹如何在Redhat5.5系統上創建target,並用CentOS和win來連接,側重點是在shell環境下搭建iSCSI.

存儲世界里,常用的名詞有SCSI(Small Computer System Interface), FC(FIbre Channel ), DAS(Direct -Attached Storage), NAS(Network Attached Storage ), SAN(Storage Area Network ),iSCSI(internet SCSI),在iSCSI出現之前,構建SAN架構的存儲唯一技術就是利用光纖通道,需要花費很大建設成本,一般中小企業無法承擔.iSCSI技術解決了傳輸效率,兼容性,開放性,安全性等方面的諸多問題.

FC SAN 與 IP SAN比較,在傳輸方式上,FC SAN AND IP SAN 都採用協議方式來完成,這是他們的共同點;在傳輸速度上,FC SAN 2Gbit/s, iSCSI 1Gbit/s;傳輸距離上,FC理論上可以達到100公里,而事實上,傳輸超過50公里后,就會出現瓶頸,而iSCSI在理論上沒有距離的限制;管理及維護成本上,假設FC SAN需要投入很多硬體成本,並且需要特定的工具軟體進行管理,而iSCSI構建成本低,只要有網路就可以.

iSCSI的組成: iSCSI initiator或者iSCSI HBA; iSCSI Target;至少兩台伺服器;乙太網交換機.本次實驗是在vmware的虛擬機環境下完成的,initiator為centos6.0(192.168.39.133),target為rhel5.5(192.168.39.134),軟體有

iscsi-initiator-utils-6.2.0.871-0.16.el5

iscsitarget-1.4.20.2.tar.gz iSCSI target:就是儲存設備端,存放磁碟或RAID的設備,目前也能夠將Linux主機模擬成iSCSI target了! 目的在提供其他主機使用的『磁碟』;

iSCSI initiator:就是能夠使用target的用戶端,通常是伺服器. 也就是說,想要連接到iSCSI target的伺服器,也要安裝iSCSI initiator的相關功能后才能夠使用iSCSI target提供的磁碟.

實驗第一步:在target上安裝軟體 解壓軟體包
  1. # cd /usr/local/src/
  2. # tar xzvf iscsitarget-1.4.20.2.tar.gz
編譯安裝iscsitarget
  1. # cd iscsitarget-1.4.20.2
  2. # make
  3. # make install

加入系統服務
  1. # chkconfig --add iscsi-target
l 配置iSCSI target
  1. Vi /etc/iet/ietd.conf
  2. Target iqn.1994-05.com.redhat:e44b66e1842Lun 1 Path=/dev/sdc,Type=blockio,ScsiId=sdc

iSCSI有一套自己分享target文件的定義,基本上,由iSCSI分享出來的target文件都是以iqn為開頭,意思是:『iSCSI Qualified Name (iSCSI合格名稱)』的意思.那麼在iqn後面要接什麼呢?通常是這樣的:

iqn.yyyy-mm.:identifier

我做這個測試的時間是2012年4月份,然後我的的機器是shanker.com,反轉網域寫法為com.shanker, 然後,想要的iSCSI target 名稱是xp_disk ,那麼就可以這樣寫:

iqn.2012-04.com.shanker:xp_disk

這裡的iqn只是一個識別代碼,可以改成任意的,我後來測試過的.

Lun 1是指這個設備共享出去的Lun Id,同一個Target Lun Id不能重複.Type=blockio是指定使用blockio的方式,也可以使用fileio,如果使用了fileio,會使用操作系統的文件緩存,如果出現掉電,可能會丟數據.使用blockio則沒有這個問題.
IscsiId是這個Lun的名字,隨便起一個名字就可以了.

l 啟動iSCSI target 配置好/etc/iet/ietd.conf文件后,就可以啟動iscsi-target了:
  1. # service iscsi-target start

l 查看iSCSI target 共享出的硬碟

  1. # cat /proc/net/iet/volume

l 查看客戶端登錄到target的情況


  1. # cat /proc/net/iet/session

第二步: iSCSI initiator的設定 然後到initiator安裝iscsi-initiator-utils-6.2.0.871-0.16.el5,生成的配置文件在/etc/iscsi 目錄下.
# service iscsid start

iscsi initiator主要通過iscsiadm命令管理,我們先查看提供服務的iscsi target機器上有哪些target:

  1. # iscsiadm -m discovery -t sendtargets -p 192.168.39.134
會發現剛才配置的那個target

  1. # iscsiadm -m node -T iqn.1994-05.com.redhat:e44b66e1842 -p 192.168.39.134 -l

完成這些命令后,iscsi initator會把這些信息記錄到/var/lib/iscsi目錄下:

/var/lib/iscsi/send_targets記錄了各個target的情況,/var/lib/iscsi/nodes記錄了各個target下的nodes情況.

下次再啟動iscsi initator時(service iscsi start),就會自動登陸各個target上.如果想讓重新手工登陸各個target,需要把/var/lib/iscsi/send_targets目錄下的內容和/var/lib/iscsi/nodes下的內容全部刪除掉.


要查看各個iscsi的信息:

# iscsiadm -m session -P 2

iSCSI target 的日常維護

l 在ISCSI中添加新硬碟 如果可以停止iscsi服務:


1.在/etc/ietd.conf文件中增加新硬碟的配置;
2.重新啟動iscsi-target 服務:

  1. # service iscsi-target restart

3.在target增加的新硬碟在iscsi initator端不會被自動識別,需要到iscsi客戶端機器上重新識別新加的新硬碟:

  1. # iscsiadm -m discovery -t sendtargets -p 192.168.39.134 -l

如果不能停止iscsi服務:


1.先查看現有的iscsi target的tid是多少:

  1. [root@defcon iet]# cat /proc/net/iet/volume
  2. tid:1 name:iqn.1994-05.com.redhat:e44b66e1842
  3. lun:1 state:0 iotype:blockio iomode:wt blocks:4194304 blocksize:512 path:/dev/sdc

2.使用ietadm命令動態增加硬碟:
假設我們現在要往tid=1,target name是iqn.1994-05.com.redhat:e44b66e1842增加硬碟/dev/sdb,

則執行如下命令:

  1. # ietadm --op new --tid=1 --lun=2 --params Type=blockio,Path=/dev/sdb



然後再用cat /proc/net/iet/volume檢查硬碟是否被加入到iscsi-target中.
完成這個操作后,需要在initiator伺服器上重啟iscsi服務,然後,重新map

我們發現多了一塊sdd硬碟,正式剛才target新添加的/dev/sdb

2.如果想把硬碟加到一個新建的target中,則需要先新建target,



新建target執行如下命令:

  1. # ietadm --op new --tid=2 --params Name=iqn.2012-05.com.shanker:e44b66e1842


命令中的tid是比以前的最大tid值大1的值.

然後再把硬碟加到這個新建的target中:

  1. # ietadm --op new --tid=2 --lun=2 --params Type=blockio,Path=/dev/sdb


不要忘記在/etc/ietd.conf文件中增加新硬碟的配置.

下面說一下Windows下的配置,點擊控制面板,管理工具,打開iSCSI initiator,第一次運行會提示你是否將iSCSI服務放到開機自啟動項里,這裡選擇是,然後在Target那裡輸入ip地址,點擊Quick Connect,如果網路通的情況下就會發現Target並獲取連接.

之後我們到磁碟管理就會看到我們的新硬碟了,如圖
我們先到Linux系統向將分區格式化成ntfs的,Windows才能在本地使用,如圖,就像使用本次磁碟一樣,這樣很有趣,把本次的磁碟文件通過iSCSI虛擬成本次磁碟,網掛在的磁碟上寫數據其實質就是寫入到虛擬機的vmdk文件當中. 實驗到此結束.


本文出自 「天涯海閣」 博客,請務必保留此出處http://shanker.blog.51cto.com/1189689/831708

 



[火星人 via ] CentOS6.0 Windows7 Redhat5.5搭建iSCSI存儲環境實驗已經有109次圍觀

http://www.coctec.com/docs/linux/show-post-46104.html