使用iSCSI Target創建集中式安全存儲(一)
在Linux中安裝iSCSI Target
我們不需要佔用很大的資源就可以為客戶端提供穩定的連接和性能。iSCSI伺服器稱為「Target(目標器)」,它提供伺服器上的存儲共享。iSCSI客戶端稱為「Initiator(發起程序)」,它訪問目標器共享的存儲。市場中有賣的用於大型存儲服務如SAN的iSCSI適配器。
我們為什麼要在大型存儲領域中使用iSCSI適配器
乙太網適配器(NIC)被設計用於在系統、伺服器和存儲設備如NAS間傳輸分組數據,它不適合在Internet中傳輸塊級數據。
iSCSI Target的功能
- 可以在一台機器上運行幾個iSCSI 目標器
- 一台機器可以提供多個iSCSI 目標器用於iSCSI SAN訪問
- 一個目標器就是一塊存儲,並且可以通過網路被發起程序(客戶端)訪問
- 把這些存儲匯聚在一起讓它們在網路中可以訪問的是iSCSI LUN(邏輯單元號)
- iSCSI支持在同一個會話中使用多個連接
- iSCSI發起程序在網路中發現目標接著用LUN驗證並登錄,這樣就可以本地訪問遠程存儲。
- 我們可以在本地掛載的LUN上安裝任何操作系統,就像我們安裝我們本地的操作系統一樣。
為什麼需要iSCSI?
在虛擬化中,我們需要存儲擁有高度的冗餘性、穩定性,iSCSI以低成本的方式提供了這些特性。與使用光纖通道的SAN比起來,我們可以使用已經存在的設備比如NIC、乙太網交換機等建造一個低成本的SAN。
現在我開始使用iSCSI 目標器安裝並配置安全存儲。本篇中,我們遵循下面的步驟:
- 我們需要隔離一個系統來設置iSCSI 目標器和發起程序(客戶端)。
- 在大型存儲環境中可以添加多個硬碟,但是這裡我們除了基本的安裝盤之外只使用了一個額外的驅動器。
- 這裡我們只使用了2塊硬碟,一個用於基本的伺服器安裝,另外一個用於存儲(LUN),這個我們會在這個系列的第二篇描述。
主伺服器設置
- 操作系統 – CentOS 6.5 (Final)
- iSCSI 目標器 IP – 192.168.0.200
- 使用的埠 : TCP 860, 3260
- 配置文件 : /etc/tgt/targets.conf
安裝 iSCSI Target
打開終端並使用yum命令來搜索需要在iscsi 目標器上安裝的包名。
# yum search iscsi
輸出示例
========================== N/S matched: iscsi =======================
iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs
iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils
lsscsi.x86_64 : List SCSI devices (or hosts) and associated information
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs
你會的到上面的那些結果,選擇Target包來安裝。
# yum install scsi-target-utils -y
安裝iSCSI工具
列出安裝的包裡面的內容來了解默認的配置、服務和man頁面的位置。
# rpm -ql scsi-target-utils.x86_64
列出所有的iSCSI包裡面的文件
讓我們啟動iSCSI服務,並檢查服務運行的狀態,iSCSI的服務名是tgtd。
# /etc/init.d/tgtd start
# /etc/init.d/tgtd status
啟動iSCSI服務
現在我們需要配置開機自動啟動。
# chkconfig tgtd on
現在驗證tgtd服務的運行級別是否配置正確。
# chkconfig --list tgtd
開機啟動iSCSI
現在使用tgtadm來列出在我們的伺服器上已經配置了哪些target和LUN。
# tgtadm --mode target --op show
tgtd已經安裝並在運行了,但是上面的命令沒有輸出因為我們還沒有在Target伺服器上定義LUN。要查看手冊,可以運行『man『命令。
# man tgtadm
iSCSI Man 頁面
如果你的目標器上有iptable的話,那麼我們需要為iSCSI添加iptable規則。首先使用netstat命令找出iscsi target的埠號,目標器總是監聽TCP埠3260。
# netstat -tulnp | grep tgtd
找出iSCSI埠
下面加入如下規則讓iptable允許廣播iSCSI 目標器發現包。
# iptables -A INPUT -i eth0 -p tcp --dport 860 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 3260 -m state --state NEW,ESTABLISHED -j ACCEPT
打開iSCSI埠
添加iSCSI埠到iptable中
注意: 規則可能根據你的默認鏈策略而不同。接著保存iptable並重啟該服務。
# iptables-save
# /etc/init.d/iptables restart
重啟iptable
現在我們已經部署了一個目標器來共享LUN給通過TCP/IP認證的發起程序。這也適用於從小到大規模的生產環境。
在我的下篇文章中,我會展示如何在目標器中使用LVM創建LUN,並且如何在客戶端中共享LUN,不要忘記留下有價值的評論。
via: http://www.tecmint.com/create-centralized-secure-storage-using-iscsi-targetin-linux/
作者:Babin Lonston 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive