构建iscsi网络存储服务
網(wǎng)絡(luò)存儲概述:
? ?隨著企業(yè)中數(shù)據(jù)信息的不斷增長,尤其當(dāng)成百上千TB的數(shù)據(jù)需要備份、恢復(fù),以及面臨著擴容、災(zāi)難恢復(fù)等需求時,DAS(直接附加存儲,就是通過與計算機主板的I/O接口,如IDE、SCSI相連接由本機操作系統(tǒng)負(fù)責(zé)讀寫及管理)方式使得數(shù)據(jù)的管理與維護日益困難。正因為如此,網(wǎng)絡(luò)存儲技術(shù)應(yīng)運而生,其最常見的就是NAS和SAN。
SAN(storage area network,存儲區(qū)域網(wǎng)絡(luò))
SAN是通過光纖交換機、光纖路由器等設(shè)備將磁盤陣列、磁帶機或獨立的ISCSI設(shè)備與服務(wù)器連接,構(gòu)成一個高速存儲子網(wǎng),存儲的數(shù)據(jù)以數(shù)據(jù)塊的形式通過ISCSI協(xié)議進行傳輸,從而優(yōu)于普通的IP包傳輸。
NAS(network attachment storage,網(wǎng)絡(luò)附加存儲)
NAS存儲設(shè)備相當(dāng)于一臺獨立的服務(wù)器,設(shè)備本身帶有操作系統(tǒng),也擁有網(wǎng)絡(luò)接口,因此不依賴于其他服務(wù)器,在NAS設(shè)備中為客戶機分配存儲空間時,通常采用共享文件夾的方式進行發(fā)布,存儲的數(shù)據(jù)以文件的形式進行傳輸,采用CIFS或者NFS等協(xié)議。
iscsi(iscsi= internet Small Computer System Interface?)
是由IEETF開發(fā)的網(wǎng)絡(luò)存儲標(biāo)準(zhǔn),目的是為了用IP協(xié)議將存儲設(shè)備連接在一起。通過在IP網(wǎng)上傳送SCSI命令和數(shù)據(jù),ISCSI推動了數(shù)據(jù)在網(wǎng)際之間的傳遞,同時也促進了數(shù)據(jù)的遠(yuǎn)距離管理。由于其出色的數(shù)據(jù)傳輸能力,ISCSI協(xié)議被認(rèn)為是促進存儲區(qū)域網(wǎng)(SAN)市場快速發(fā)展的關(guān)鍵因素之一。因為IP網(wǎng)絡(luò)的廣泛應(yīng)用,?ISCSI能夠在LAN、WAN甚至internet上進行數(shù)據(jù)傳送,使得數(shù)據(jù)的存儲不再受地域的限制。
一、構(gòu)建iscsi服務(wù)器
? ?ISCSI服務(wù)器通常也稱為Target端,負(fù)責(zé)定義存儲對象、分配邏輯空間LUN(Logical Unit,邏輯單元)。在RHEL6服務(wù)器中需要安裝scsi-target-utils軟件包,對應(yīng)的系統(tǒng)服務(wù)為tgtd,命令行管理工具為tgtadm。因此需要安裝相應(yīng)的軟件包,安裝如下:
| 1 | [root@nas /]#yum -y install scsi-target-utils |
? ?下面依次講解配置ISCSI的主要過程:準(zhǔn)備存儲設(shè)備、創(chuàng)建ISCSI對象、為客戶機分配存儲空間,客戶機使用ISCSI。
? ?此處所說的存儲設(shè)備指將要分配給某一個客戶機使用的設(shè)備文件,在RHEL6系統(tǒng)中,硬盤、分區(qū)、邏輯卷、軟RAID等都可以用作ISCSI服務(wù)的存儲設(shè)備,為了延續(xù)磁盤空間的可擴展性,建議以一個邏輯卷為單位分配給客戶機使用,對于個別有特殊要求的客戶機,也可以將一個軟RAID陣列分配出去。
1、準(zhǔn)備存儲設(shè)備
這里將Target主機一個邏輯卷作為iSCSI共享磁盤,共享給一臺linux主機使用。創(chuàng)建一個邏輯卷,名為lv00,將來分配給客戶機使用。如下圖所示:
| 1 2 3 4 5 6 7 8 | [root@nas /]#pvcreate /dev/sdb /dev/sdc /dev/sdd???//創(chuàng)建物理卷 ??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???//創(chuàng)建卷組 ??Volume group?"vg00"?successfully created [root@nas /]#lvcreate -L?30?-n lv00 vg00???//創(chuàng)建邏輯卷 ??Logical volume?"lv00"?created |
2、創(chuàng)建iscsi對象
? ?根據(jù)iscsi定義的規(guī)范,Target的命名格式為“iqn.YYYY-mm.反向域名:識別標(biāo)記”,其中YYYY-mm表示年月,方向域名建議為服務(wù)器FQDN的倒序,識別標(biāo)記是用戶自定義的字符串(以便區(qū)分)。例如:作者前面創(chuàng)建的LVM卷可以使用對象名為“iqn.2013-09.com.yunqn.www:lvm”。
使用tgtadm工具創(chuàng)建iscsi對象時,主要命令選項如下所述:
-L,--lld:指定驅(qū)動類型,如“-L iscsi”表示iscsi存儲。
-o,--op:指定操作你類型,如“-o new”表示創(chuàng)建,“-o delete”表示刪除。
-m,--mode:指定管理目標(biāo),如“-m target”表示iscsi對象。
-t,--tid:指定對象ID號,如“-t 1”表示第一個對象。
-T,--targetname:指定iscsi對象名稱, 應(yīng)符合“iqn.YYYY-mm.反向域名:識別標(biāo)記”規(guī)范。
下面以剛才創(chuàng)建的LVM卷為例,來創(chuàng)建一個iscsi對象。如下:創(chuàng)建之前需要先啟動tgtd服務(wù),并設(shè)置系統(tǒng)啟動時自動啟動,iscsi通信的端口:3260/tcp,以明文傳輸數(shù)據(jù)。
| 1 2 3 4 | [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、為客戶端分配存儲空間
? ?創(chuàng)建好iscsi對象后,就可以在存儲對象中為客戶機分配可用空間了。使用tgtadm工具時,只要命令選項如下所述:
-l,--lun:指定LUN的ID號,如“-l 1”表示第一個LUN。
-b,--backing-store:指定塊設(shè)備位置,如“-b /dev/vg00/lv00”。
-l,--initiator-address:指定客戶機地址,如“-l 192.168.1.10”。
下面以前面準(zhǔn)備的邏輯卷“l(fā)v00”為例,將其掛在到剛才我們新建的iscsi對象上,并指定給客戶機192.168.1.10的主機使用。其中選項“-m logicalunit”可簡寫為“-m lu”,“--lld”可簡寫為“-L”。
| 1 2 | [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命令,結(jié)合相關(guān)參數(shù)來查看iscsi對象的信息。如下:
| 1 | [root@nas /]#tgtadm -L iscsi -o show -m target |
4、保存配置,并設(shè)置開機自動加載。
修改文件“/etc/tgt/targets.conf”,將target、LUN信息保存為靜態(tài)配置,以便在重啟tgtd服務(wù)后仍然有效。為了保證客戶機正常使用,tgtd服務(wù)應(yīng)該自動啟用,另外,iscsi服務(wù)器系統(tǒng)應(yīng)先于客戶機啟動。
| 1 2 3 4 5 6 7 | [root@nas /]#vim /etc/tgt/targets.conf ...//省略部分內(nèi)容 <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 |
注意:大家也可以省略“創(chuàng)建iscsi對象”和“為客戶端分配存儲空間”,而直接將配置寫到配置文件“targets.conf”中,然后重啟tgtd服務(wù)加載配置文件即可生效。
二、客戶端使用iscsi存儲設(shè)備
? ?iscsi客戶機也稱為initiator端,負(fù)責(zé)連接iscsi設(shè)備,在iscsi設(shè)備中創(chuàng)建文件系統(tǒng),以及存儲數(shù)據(jù)。在RHEL 6客戶機中需要安裝iscsi-initiator-utils軟件包,對應(yīng)的系統(tǒng)服務(wù)為iscsi,命令管理工具為iscsiadm。
| 1 | [root@nas /]#yum -y install iscsi-initiator-utils lsscsi |
1、發(fā)現(xiàn)并連接iscsi設(shè)備
? ?使用iscsiadm工具之前,先啟動iscsi服務(wù)。查找iscsi設(shè)備可以參考以下命令操作選項:
-m discovery:表示發(fā)現(xiàn)/查找。
-t sendtargets:表示發(fā)布的target。
-p ip:port:用來指定服務(wù)器的IP地址以及tgtd的監(jiān)聽端口。
| 1 2 3 4 5 6 | [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設(shè)備,如果是“--logout”表示斷開已連接的iscsi設(shè)備。
2、使用iscsi存儲設(shè)備
當(dāng)成功連接iscsi到設(shè)備時,此時的iscsi設(shè)備就好像本地服務(wù)器的磁盤一樣了,正常使用前需要將其分區(qū),格式化,掛載等一系列動作。只有當(dāng)iscsi服務(wù)器分配給客戶機的LUN是一整塊物理硬盤,而且此硬盤中已經(jīng)包含了分區(qū)表,文件系統(tǒng)時,客戶機才可以直接使用。
| 1 2 3 4 5 6 7 | [root@nas /]#fdisk -l???//查看鏈接的iscsi設(shè)備 [root@nas /]#fdisk -l /dev/sdc???//將連接的iscsi設(shè)備進行分區(qū) ...//省略部分內(nèi)容 [root@nas /]#partprobe /dev/sdc [root@nas /]#mkfs -t ext4 /dev/sdc1??//格式化新建的分區(qū) [root@nas /]#mkdir /opt/data [root@nas /]#mount /dev/sdc1 /opt/data???//掛載新建的分區(qū) |
3、保存iscsi連接配置
? ?為了是iscsi存儲設(shè)備使用正常,客戶機應(yīng)確保iscsi服務(wù)能夠自動啟用,并將掛載iscsi設(shè)備中文件系統(tǒng)的操作寫入“/etc/fstab”文件中。由于iscsi設(shè)備的特殊性,fstab文件中的配置記錄應(yīng)啟用“_netdev”掛載參數(shù),表示這是一個網(wǎng)絡(luò)設(shè)備。
| 1 2 3 4 | [root@nas /]#chkconfig --level?35?iscsi on [root@nas /]#vim /etc/fstab ...//省略部分內(nèi)容 /dev/sdc1??? /opt/data??? ext4??? defaults,_netdev????0?0 |
也可以使用“blkid /dev/sdc1”命令查出“sdc1”的UUID,使用UUID代替fstab文件中的“/dev/sdc1”,這樣更有安全保障。
保存上述配置以后,重新啟動客戶機后將自動連接iscsi對象,并掛載指定的網(wǎng)絡(luò)存儲文件系統(tǒng)。
本文轉(zhuǎn)自yun5277 51CTO博客,原文鏈接:http://blog.51cto.com/dengqi/1293971,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的构建iscsi网络存储服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark官方调优文档翻译(转载)
- 下一篇: Android帧缓冲区(Frame Bu