構建iscsi網絡存儲服務

網絡存儲概述:

   隨着企業中數據信息的不斷增長,尤其當成百上千TB的數據需要備份、恢復,以及面臨着擴容、災難恢復等需求時,DAS(直接附加存儲,就是通過與計算機主板的I/O接口,如IDESCSI相連接由本機操作系統負責讀寫及管理)方式使得數據的管理與維護日益困難。正因爲如此,網絡存儲技術應運而生,其最常見的就是NASSAN。

SANstorage area network,存儲區域網絡)

SAN是通過光纖交換機、光纖路由器等設備將磁盤陣列、磁帶機或獨立的ISCSI設備與服務器連接,構成一個高速存儲子網,存儲的數據以數據塊的形式通過ISCSI協議進行傳輸,從而優於普通的IP包傳輸。

NAS(network p_w_upload storage,網絡附加存儲)

NAS存儲設備相當於一臺獨立的服務器,設備本身帶有操作系統,也擁有網絡接口,因此不依賴於其他服務器,在NAS設備中爲客戶機分配存儲空間時,通常採用共享文件夾的方式進行發佈,存儲的數據以文件的形式進行傳輸,採用CIFS或者NFS等協議。

iscsiiscsi= internet Small Computer System Interface

是由IEETF開發的網絡存儲標準,目的是爲了用IP協議將存儲設備連接在一起。通過在IP網上傳送SCSI命令和數據,ISCSI推動了數據在網際之間的傳遞,同時也促進了數據的遠距離管理。由於其出色的數據傳輸能力,ISCSI協議被認爲是促進存儲區域網(SAN)市場快速發展的關鍵因素之一。因爲IP網絡的廣泛應用, ISCSI能夠在LANWAN甚至internet上進行數據傳送,使得數據的存儲不再受地域的限制。


一、構建iscsi服務器

   ISCSI服務器通常也稱爲Target端,負責定義存儲對象、分配邏輯空間LUNLogical Unit,邏輯單元)。在RHEL6服務器中需要安裝scsi-target-utils軟件包,對應的系統服務爲tgtd,命令行管理工具爲tgtadm。因此需要安裝相應的軟件包,安裝如下:

[root@nas /]#yum -y install scsi-target-utils

   下面依次講解配置ISCSI的主要過程:準備存儲設備、創建ISCSI對象、爲客戶機分配存儲空間,客戶機使用ISCSI

   此處所說的存儲設備指將要分配給某一個客戶機使用的設備文件,在RHEL6系統中,硬盤、分區、邏輯卷、軟RAID等都可以用作ISCSI服務的存儲設備,爲了延續磁盤空間的可擴展性,建議以一個邏輯卷爲單位分配給客戶機使用,對於個別有特殊要求的客戶機,也可以將一個軟RAID陣列分配出去。

1、準備存儲設備

這裏將Target主機一個邏輯卷作爲iSCSI共享磁盤,共享給一臺linux主機使用。創建一個邏輯卷,名爲lv00,將來分配給客戶機使用。如下圖所示:

[root@nas /]#pvcreate /dev/sdb /dev/sdc /dev/sdd   //創建物理卷
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
  Physical volume "/dev/sdd" successfully created
[root@nas /]#vgcreate vg00 /dev/sdb /dev/sdc /dev/sdd   //創建卷組
  Volume group "vg00" successfully created
[root@nas /]#lvcreate -L 30 -n lv00 vg00   //創建邏輯卷
  Logical volume "lv00" created

2、創建iscsi對象

   根據iscsi定義的規範,Target的命名格式爲“iqn.YYYY-mm.反向域名:識別標記”,其中YYYY-mm表示年月,方向域名建議爲服務器FQDN的倒序,識別標記是用戶自定義的字符串(以便區分)。例如:作者前面創建的LVM卷可以使用對象名爲“iqn.2013-09.com.yunqn.www:lvm”。

使用tgtadm工具創建iscsi對象時,主要命令選項如下所述:

-L,--lld:指定驅動類型,如“-L iscsi”表示iscsi存儲。

-o,--op:指定操作你類型,如“-o new”表示創建,“-o delete”表示刪除。

-m,--mode:指定管理目標,如“-m target”表示iscsi對象。

-t,--tid:指定對象ID號,如“-t 1”表示第一個對象。

-T,--targetname:指定iscsi對象名稱, 應符合“iqn.YYYY-mm.反向域名:識別標記”規範。

下面以剛纔創建的LVM卷爲例,來創建一個iscsi對象。如下:創建之前需要先啓動tgtd服務,並設置系統啓動時自動啓動,iscsi通信的端口:3260/tcp,以明文傳輸數據。

[root@nas /]#service tgtd start
[root@nas /]#netstat -anpt | grep tgt
tcp    0   0 0.0.0.0:3260    0.0.0.0:*    LISTEN        20353/tgtd
[toot@nas /]#tgtadm -L iscsi -o new -m target -t 1 -T iqn.2013-09.com.yunqn.www:lvm

3、爲客戶端分配存儲空間

   創建好iscsi對象後,就可以在存儲對象中爲客戶機分配可用空間了。使用tgtadm工具時,只要命令選項如下所述:

-l,--lun:指定LUN的ID號,如“-l 1”表示第一個LUN。

-b,--backing-store:指定塊設備位置,如“-b /dev/vg00/lv00”。

-l,--initiator-address:指定客戶機地址,如“-l 192.168.1.10”。

下面以前面準備的邏輯卷“lv00”爲例,將其掛在到剛纔我們新建的iscsi對象上,並指定給客戶機192.168.1.10的主機使用。其中選項“-m logicalunit”可簡寫爲“-m lu”,“--lld”可簡寫爲“-L”。

[root@nas /]#tgtadm --lld iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/vg00/lv00
[root@nas /]#tgtadm --lld iscsi -o bind -m target -t 1 -I 192.168.1.10

完成上述配置以後,可以使用target命令,結合相關參數來查看iscsi對象的信息。如下:

[root@nas /]#tgtadm -L iscsi -o show -m target

4、保存配置,並設置開機自動加載。

修改文件“/etc/tgt/targets.conf”,將target、LUN信息保存爲靜態配置,以便在重啓tgtd服務後仍然有效。爲了保證客戶機正常使用,tgtd服務應該自動啓用,另外,iscsi服務器系統應先於客戶機啓動。

[root@nas /]#vim /etc/tgt/targets.conf
...//省略部分內容
<target iqn.2013-09.com.yunqn.www:lvm>
    backing-store /dev/vg00/lv00
    initiator-address 192.168.1.10
</target>
<root@nas />#chkconfig --level 35 tgtd on

注意:大家也可以省略“創建iscsi對象”和“爲客戶端分配存儲空間”,而直接將配置寫到配置文件“targets.conf”中,然後重啓tgtd服務加載配置文件即可生效。


二、客戶端使用iscsi存儲設備

   iscsi客戶機也稱爲initiator端,負責連接iscsi設備,在iscsi設備中創建文件系統,以及存儲數據。在RHEL 6客戶機中需要安裝iscsi-initiator-utils軟件包,對應的系統服務爲iscsi,命令管理工具爲iscsiadm。

[root@nas /]#yum -y install iscsi-initiator-utils lsscsi

1、發現並連接iscsi設備

   使用iscsiadm工具之前,先啓動iscsi服務。查找iscsi設備可以參考以下命令操作選項:

-m discovery:表示發現/查找。

-t sendtargets:表示發佈的target。

-p ip:port:用來指定服務器的IP地址以及tgtd的監聽端口。

[root@nas /]#service iscsi start
[root@nas /]#iscsiadm -m discovery -t sendtargets -p 192.168.1.1 //查找iscsi對象
192.168.1.1:3260,1 iqn.2013-09.com.yunqn.www:lvm
[root@nas /]#iscsiadm -m node -T iqn.2013-09.com.yunqn.www:lvm --login //連接iscsi對象
Logging in to [iface:default,target:iqn.2013-09.com.yunqn.www:lvm,portal:192.168.1.1,3260]
Logging to [iface:default,target:iqn.2013-09.com.yunqn.www:lvm,portal:192.168.1.1,3260] successful

注意:看到“Login to...successful”表示連接成功了,而後面的“--login”表示連接iscsi設備,如果是“--logout”表示斷開已連接的iscsi設備。

2、使用iscsi存儲設備

當成功連接iscsi到設備時,此時的iscsi設備就好像本地服務器的磁盤一樣了,正常使用前需要將其分區,格式化,掛載等一系列動作。只有當iscsi服務器分配給客戶機的LUN是一整塊物理硬盤,而且此硬盤中已經包含了分區表,文件系統時,客戶機纔可以直接使用。

[root@nas /]#fdisk -l   //查看鏈接的iscsi設備
[root@nas /]#fdisk -l /dev/sdc   //將連接的iscsi設備進行分區
...//省略部分內容
[root@nas /]#partprobe /dev/sdc
[root@nas /]#mkfs -t ext4 /dev/sdc1  //格式化新建的分區
[root@nas /]#mkdir /opt/data
[root@nas /]#mount /dev/sdc1 /opt/data   //掛載新建的分區

3、保存iscsi連接配置

   爲了是iscsi存儲設備使用正常,客戶機應確保iscsi服務能夠自動啓用,並將掛載iscsi設備中文件系統的操作寫入“/etc/fstab”文件中。由於iscsi設備的特殊性,fstab文件中的配置記錄應啓用“_netdev”掛載參數,表示這是一個網絡設備。

[root@nas /]#chkconfig --level 35 iscsi on
[root@nas /]#vim /etc/fstab
...//省略部分內容
/dev/sdc1    /opt/data    ext4    defaults,_netdev    0 0

也可以使用“blkid /dev/sdc1”命令查出“sdc1”的UUID,使用UUID代替fstab文件中的“/dev/sdc1”,這樣更有安全保障。


保存上述配置以後,重新啓動客戶機後將自動連接iscsi對象,並掛載指定的網絡存儲文件系統。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章