今天給大家介紹如何在Linux上面搭建IP SAN iscsi存儲系統,應且在服務器客戶端訪問共享存儲
首先介紹一下iscsi,iscsi用於將scsi數據塊映射爲以太網數據包,基於tcp/ip協議來傳輸數據包,分爲iscsi target和iscsi initiator,前者是共享存儲的主機,可以是一個可以容納很多個磁盤的PC,後者是用來訪問target的客戶端主機,initiator用於建立連接並且實現scsi通訊。
下面說下我的主機網絡環境:
iscsi target主機:210.72.3.230( Centos 6.5)在新建虛擬機的時候我在上面加了一塊硬盤sdb
iscsi initiator主機:192.168.10.43(win 7 )
iscsi initiator主機:210.72.3.247(window server 2008)
內網192的主機和兩個外網的主機是相互連着的
1安裝iscsi target
http://iscsitarget.sourceforge.net 下載
這裏的版本是1.4.20.2
tar zvxf iscsitarget-1.4.20.2.tar.gz
cd iscsitarget-1.4.20.2
make
make install
這裏可能會報錯
1/lib/modules/2.6……/build,no such file or……
意思是iscsi沒有連接到內核模塊,或者是內核模塊不存在,在當前目錄下輸入下面命令
yum -y install kernel-devel
cd /lib/modules/2.6……/
ln -s /usr/src/kernels/2.6……/ build
接着再make,可能又會報錯,patch is not install
yum -y install patch
接着再make,可能又會報錯,perl沒有安裝
yum -y install perl
make
make install
記得安裝make和gcc
2配置iscsi target
vi /etc/iet/ietd.conf
定位到有Target字眼的地方,將前面的註釋#刪除,這個是iscsi target的名稱,在同一子網裏面是唯一的,我這裏修改了年份和月份
接着定位到有Lun字眼的地方
將Lun前面的註釋#刪除掉,修改磁盤的名字,我這裏因爲添加的磁盤是sdb,所以修改爲sdb
fdisk -l命令可以看到我的沒有掛載的磁盤sdb
保存退出之後輸入service iscsi-target start啓動夫婦,發覺啓動失敗提示fatal module iscsi-trgt not found
這是由於iscsi模塊文件沒有放在正確目錄導致的,解決辦法如下
mkdir /lib/modules/`uname -r`\kernel\scsi(uname -r內核版本)
find /-name "iscsi-trgt.ko"
然後cd進入iscsi-trgt.lo的目錄
cp iscsi.trgt.ko /lib/modules/`uname -r`/kernel/iscsi
depmod -aq(重新編譯內核)
再啓動服務service iscsi-target start
3Windows上面配置iscsi initiator
在Windows系統上面(192.168.10.43)的搜索裏面查iscsi,打開,會提示是否開啓iscsi服務,選擇「是」
在發現選項卡上面點擊「發現門戶」,輸入iscsi-target的主機IP,端口默認,點擊確定
點擊目標選項卡,點擊連接
打開windows的「計算機管理」,打開「磁盤管理」,就可以看到新添加的共享存儲,第一次使用要對其進行格式化還有添加mbr才能進行分區,就是在下面找到共享存儲的名字,右鍵單擊名字,選擇添加MBR引導,在磁盤格式化,然後進行分區,就把磁盤掛載上來使用了
在windows server 2008服務器上面也類似操作,但是要在磁盤名字那裏右鍵單擊,選擇聯機
注意,如果第一次在一臺Windows主機上面格式化並且進行了分區的話,在別的Windows上面就不用執行這些操作了,如這臺Windows server 2008的主機,選擇聯機之後就可以自動連接到磁盤了。