Linux中國

使用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

Install iSCSI Utils

安裝iSCSI工具

列出安裝的包裡面的內容來了解默認的配置、服務和man頁面的位置。

# rpm -ql scsi-target-utils.x86_64

List All iSCSI Files

列出所有的iSCSI包裡面的文件

讓我們啟動iSCSI服務,並檢查服務運行的狀態,iSCSI的服務名是tgtd

# /etc/init.d/tgtd start
# /etc/init.d/tgtd status

Start iSCSI Service

啟動iSCSI服務

現在我們需要配置開機自動啟動。

# chkconfig tgtd on

現在驗證tgtd服務的運行級別是否配置正確。

# chkconfig --list tgtd

Enable iSCSI on Startup

開機啟動iSCSI

現在使用tgtadm來列出在我們的伺服器上已經配置了哪些target和LUN。

# tgtadm --mode target --op show

tgtd已經安裝並在運行了,但是上面的命令沒有輸出因為我們還沒有在Target伺服器上定義LUN。要查看手冊,可以運行『man『命令。

# man tgtadm

iSCSI Man Pages

iSCSI Man 頁面

如果你的目標器上有iptable的話,那麼我們需要為iSCSI添加iptable規則。首先使用netstat命令找出iscsi target的埠號,目標器總是監聽TCP埠3260。

# netstat -tulnp | grep tgtd

Find iSCSI Port

找出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

Open iSCSI Ports

打開iSCSI埠

Add iSCSI Ports to Iptables

添加iSCSI埠到iptable中

注意: 規則可能根據你的默認鏈策略而不同。接著保存iptable並重啟該服務。

# iptables-save
# /etc/init.d/iptables restart

Restart iptables

重啟iptable

現在我們已經部署了一個目標器來共享LUN給通過TCP/IP認證的發起程序。這也適用於從小到大規模的生產環境。

在我的下篇文章中,我會展示如何在目標器中使用LVM創建LUN,並且如何在客戶端中共享LUN,不要忘記留下有價值的評論。

via: http://www.tecmint.com/create-centralized-secure-storage-using-iscsi-targetin-linux/

作者:Babin Lonston 譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國