歡迎您光臨本站 註冊首頁

基於IP SAN的ISCSI的存儲系統

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

前言

最近公司的平台進行了升級,每天都產生很多的日誌文件與數據文件,之前的伺服器磁碟大小不符合最新的平台要求,磁碟空間一直處於90%左右,我也一直收到磁碟空間的報警郵件(由於我對磁碟做了腳本的監控,如果磁碟空間使用達到90%就發送報警),我提出了一個建議,使用基於IP SANISCSI的存儲系統”,這樣可以在不改變現有的架構下、不花費錢(如果你不買HBA卡的話)、最簡單的搭建存儲系統.

下面是iscsi的介紹(從網上找的)

一、Linux網路環境iSCSI技術的實現主要有三種方式:

1.純軟體方式 伺服器採用普通乙太網卡來進行網路連接,通過運行上層軟體來實現iSCSI和TCP/IP協議棧功能層.這種方式由於採用標準網卡,無需額外配置適配器,因此硬體成本最低.但是在這種方式中,伺服器在完成自身工作的同時,還要兼顧網路連接,造成主機運行時間加長,系統性能下降.這種方式比較適合於預算較少,並且伺服器負擔不是很大的用戶.目前不論是MicrosoftWindows、IBMAIX、HP-UX、Linux、NovellNetware等各家操作系統,皆已陸續提供這方面的服務,在價格上,比起前兩種方案,遠為低廉,甚至完全免費.但由於Initiator驅動程序工作時會耗費大量的CPU使用率及系統資源,性能最差.在此建議,最好是採用1GHz以上CPU的主機,如此才能獲得較佳的效能表現,如果公司主機CPU在1GHz以下,那麼最好不要採用.至於在各類協議的支持上,Initiator驅動程序可以同時支持iSCSI、NFS及CIFS協議.當然現在大多數伺服器CPU都可以滿足這個要求.這裡免費的iSCSIInitiator驅動程序,才可以將一般Gigabit網卡模擬成iSCSIInitiator.然後再透過iSCSI橋接器將一般SCSI介面的存儲配備模擬成iSCSITarget,如此就形成一個iSCSI-SAN. 2.iSCSITOE網卡實現方式 在這種方式中,伺服器採用特定的TOE網卡來連接網路,TCP/IP協議棧功能由智能網卡完成,而iSCSI技術層的功能仍舊由主機來完成.這種方式較前一種方式,部分提高了伺服器的性能.在三種iSCSIInitiator中,價格比iSCSIHBA便宜,但比軟體Initiator驅動程序貴,性能也居於兩者之間.目前市面上英特爾的TOE(TCPOffloadEngine,TCP卸載引擎)HBA價格在150美金左右. 3.iSCSIHBA卡實現方式 使用iSCSI存儲適配器來完成伺服器中的iSCSI層和TCP/IP協議棧功能.這種方式是的伺服器CPU無需考慮iSCSI技術以及網路配置,對伺服器而言,iSCSI存儲器適配器是一個HBA(存儲主機主線適配器)設備,與伺服器採用何種操作系統無關.該方式性能最好,但是價格也最為昂貴.在三種iSCSIInitiator中,價格最貴,但性能最佳.目前價格已由一開始的1000美金左右,下降跌至500美元左右.對於有高效能應用需求的企業,最好採用iSCSIHBA卡,如此才能獲得最好的性能. 二、應該使用硬體initiator還是軟體initiator? iSCSIinitiator是使用硬體還是軟體要取決於多種因素,包括預算、性能要求以及伺服器工作負荷.軟體iSCSIinitiator能夠實現成本最低的iSCSI解決方案.純軟體iSCSIinitiator使用標準乙太網卡,並依靠主機CPU來處理iSCSI命令和TCP/IP棧.對於具有2GCPU的最新一代伺服器來說,大部分客戶工作負荷在iSCSI協議處理方面不會引發明顯的性能開銷.如果您的伺服器擁有千兆乙太網卡則對軟體initiator的評測過程幾乎不會有任何問題,原因是在絕大多數流行的操作系統中,initiator都是免費提供的.如果CPU較陳舊,伺服器的負荷較重,則可能更適合採用硬體iSCSIinitiator.硬體iSCSIinitiator會將iSCSI和TCP/IP處理工作轉移到iSCSIHBA中.其結果就是能夠大幅度降低CPU的性能開銷,這點堪與光纖通道HBA相比.硬體initiator還能提供軟體解決方案所不具備的功能,例如支持高可用性環境的硬體多通道功能,支持密集伺服器環境中的遠程引導功能. 三、硬體和軟體initiator如何影響應用程序的性能? 如果應用程序位於負擔較輕的伺服器上,在大多數情況下,採用軟體initiator的iSCSI的性能開銷也不會明顯影響應用程序的性能.如果伺服器的負荷較重,則必須採用硬體iSCSIinitiator.不過,在大多數環境中,傳輸帶寬以及主機CPU的性能開銷完全不是問題—應用程序性能問題在很大程度上要歸因於存儲的軸數有限(承擔工作負荷的磁碟太少).這不是協議或傳輸問題.這是直連式存儲系統的一個普遍問題,但是採用基於iSCSI的SAN解決方案可以非常方便地解決這一問題. 四、考慮到公司使用Linux伺服器使用千兆網路,網路負載不大,我使用第一種方式搭建存儲系統. 環境

以上伺服器的系統均是rhel5.4版本 1、服務端test2(比如安裝在各省的備用伺服器上)需要安裝iscsitarget軟體 下載iscsitarget
  1. [root@test2 src]# wget http://sourceforge.net/projects/iscsitarget/files/iscsitarget/1.4.20.2/iscsitarget-1.4.20.2.tar.gz

解壓

  1. [root@test2 src]# tar zxvf iscsitarget-1.4.20.2.tar.gz
  2. [root@test2 src]# cd iscsitarget-1.4.20.2

編譯與安裝

  1. [root@test2 iscsitarget-1.4.20.2]# make
  2. [root@test2 iscsitarget-1.4.20.2]# make install

啟動服務

  1. [root@test2 iet]# service iscsi-target start

加入開機啟動

  1. [root@test2 iet]# chkconfig --level 35 iscsi-target on

修改/etc/iet/ietd.conf的第3552

  1. 35#Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
  2. 52#Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz

修改為

  1. 35 Target iqn.2012-02.com.test:storage.disk2.sys1.xyz
  2. 52 Lun 0 Path=/dev/sda10,Type=fileio,ScsiId=xyz,ScsiSN=xyz

重啟服務

  1. [root@test2 iet]# service iscsi-target start

下圖是當前的磁碟空間情況

2、客戶端(比如安裝在各省的引擎伺服器上),安裝iscsi軟體

使用yum安裝iscsi
  1. [root@test5 ~]# yum install iscsi*

啟動服務

  1. [root@test5 ~]# service iscsi start

可以使用如下命令查看下iscsi-target主機劃分了那些的

lun

  1. [root@test5 send_targets]# iscsiadm -m discovery -t sendtargets -p 10.1.88.178:3260
  2. 10.1.88.178:3260,1 iqn.2012-02.com.test:storage.disk2.sys1.xyz

使用iscsiadmiscsi target建立連接

  1. [root@test5 send_targets]# iscsiadm -m node -T iqn.2012-02.com.test:storage.disk2.sys1.xyz -p 10.1.88.178 -l
  2. Logging in to [iface: default, target: iqn.2012-02.com.test:storage.disk2.sys1.xyz, portal: 10.1.88.178,3260]
  3. Login to [iface: default, target: iqn.2012-02.com.test:storage.disk2.sys1.xyz, portal: 10.1.88.178,3260] successful.

從fisk可以看出,iscsi的共享磁碟為sdb,大小為10.4GB,接下來就可以通過fdisk命令對整個磁碟進行重新分區、格式化、創建文件系統了等操作了.

可以使用iscsiadm -m session --print=2來查看iscsi的狀態
  1. [root@test5 send_targets]# iscsiadm -m session --print=2
  2. Target: iqn.2012-02.com.test:storage.disk2.sys1.xyz
  3. Current Portal: 10.1.88.178:3260,1
  4. Persistent Portal: 10.1.88.178:3260,1
  5. **********
  6. Interface:
  7. **********
  8. Iface Name: default
  9. Iface Transport: tcp
  10. Iface Initiatorname: iqn.1994-05.com.redhat:babeb593b5af
  11. Iface IPaddress: 10.1.88.177
  12. Iface HWaddress: <empty>
  13. Iface Netdev: <empty>
  14. SID: 1
  15. iSCSI Connection State: LOGGED IN
  16. iSCSI Session State: LOGGED_IN
  17. Internal iscsid Session State: NO CHANGE
  18. ************************
  19. Negotiated iSCSI params:
  20. ************************
  21. HeaderDigest: None
  22. DataDigest: None
  23. MaxRecvDataSegmentLength: 262144
  24. MaxXmitDataSegmentLength: 8192
  25. FirstBurstLength: 65536

  26. MaxBurstLength: 262144
  27. ImmediateData: Yes
  28. InitialR2T: Yes
  29. MaxOutstandingR2T: 1

BTW:在測試環境里部署之後沒有發現問題,目前已經在生產環境了進行了部署,如果各位對iscsi有建議的話,請不吝賜教,謝謝!

本文出自 「吟—技術交流」 博客,請務必保留此出處http://dl528888.blog.51cto.com/2382721/791117


[火星人 ] 基於IP SAN的ISCSI的存儲系統已經有818次圍觀

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