ISCSI安裝之PC架構----超詳細
安裝環境:
ISCSI服務器: Centos6.4 ip地址:10.0.7.113
ISCSI linux客戶端: Centos6.4 ip地址:10.0.7.130
ISCSI win客戶端: xp ip地址:10.0.7.133
安裝開始:
第一部分:安裝
服務端:
1:安裝ISCSI服務所需的軟件安裝iSCSI target 下載地址:http://iscsitarget.sourceforge.net
[root@localhost iscsi]# tar zxf iscsitarget-1.4.20.1.tar.gz
[root@localhost iscsi]# cd iscsitarget-1.4.20.1
[root@localhost iscsitarget-1.4.20.1]# make
但是make的時候報以下錯誤:
make -C /lib/modules/2.6.32-358.el6.i686/build SUBDIRS=/iscsi/iscsitarget-1.4.20.1/kernel modules
make: *** /lib/modules/2.6.32-358.el6.i686/build: 沒有那個文件或目錄。 停止。
根據報錯信息:
[root@localhost iscsitarget-1.4.20.1]# cd /lib/modules/2.6.32-358.el6.i686/
發現build的軟連接是紅色的,也就是不存在的, 爲了驗證這點,然後進入/usr/src/kernels/這個目錄查看一下
[root@localhost 2.6.32-358.el6.i686]# cd /usr/src/kernels/
[root@localhost kernels]# ls
[root@localhost kernels]#
發現內容爲空,並不存在這個軟連接
Google了好半天,然後要安裝kernel-devel這個軟件 ,kernel-devel:包含內核開發環境所需的內核頭文件等等
直接yum安裝
[root@localhost kernels]# yum -y install kernel-devel
然後再查看一下/usr/src/kernels目錄
[root@localhost kernels]# pwd
/usr/src/kernels
[root@localhost kernels]# ls
2.6.32-358.el6.i686
那現在就需要把剛剛/lib/modules/2.6.32-358.el6.i686目錄下的build軟連接指向/usr/src/kernels/2.6.32-358.el6.i686 也就是剛剛安裝完kernel-devel後出來的目錄
[root@localhost 2.6.32-358.el6.i686]# ln -s build/ /usr/src/kernels/2.6.32-358.el6.i686/
然後返回繼續安裝
[root@localhost iscsitarget-1.4.20.1]# make
Applying Patch compat-2.6.32.patch
/bin/sh: line 4: patch: command not found
make: *** [.patched.2.6.32-358.11.1.el6.i686] 錯誤 127
上面的報錯是指patch命令沒找到,可能是我係統安裝的時候包沒選好
直接yum安裝即可
[root@localhost iscsitarget-1.4.20.1]# yum install patch
然後返回繼續安裝
[root@localhost iscsitarget-1.4.20.1]# make
[root@localhost iscsitarget-1.4.20.1]# make install
到這裏安裝完畢!
第二部分:配置
iSCSI Target的主配置文件爲/etc/iet/ietd.conf
只需要修改2處內容,去掉這2處的#號,然後修改相應內容。
#Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
這裏爲共享的是sdb,我改爲.
Target iqn.2013-07.com.1:sdb
格式:iqn.yyyy-mm.<reversed domain name>[:identifier]
其中:
iqn:表示“iSCSI Qualified Name”,簡稱iqn。
yyyy-mm:表示年份-月份。這裏是2001-04。
reversed domain name:表示倒過來的域名,這裏是com.example。
identifier:表示識別代碼,這裏是storage.disk2.sys1.xyz。
#Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
這裏改爲 :
Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
然後重啓服務;
[root@localhost ~]# /etc/init.d/iscsi-target restart
Stopping iSCSI Target: Connection refused.
ietd: 沒有進程被殺死
FATAL: Module iscsi_trgt not found.
[失敗]
Starting iSCSI Target: FATAL: Module iscsi_trgt not found.
[失敗]
解決方法:
mkdir /lib/modules/`uname -r`/kernel/iscsi
find / -name “iscsi_trgt.ko”
cp iscsi_trgt.ko /lib/modules/`uname -r`/kernel/iscsi
把iscsi_trgt.ko模塊複製到正確的位置
depmod -aq
重建一下內核模塊的依賴關係
重啓服務:
[root@localhost ~]# /etc/init.d/iscsi-target restart
Stopping iSCSI Target: [確定]
Starting iSCSI Target: [確定]
[root@localhost ~]#
驗證:
Linux客戶端:安裝iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm
爲了方便我直接yum安裝
[root@localhost ~]#yum install iscsi-*
然後啓動
安裝完成後,會生成/etc/iscsi主程序配置目錄。
啓動Initiator服務,操作如下:
[root@ Initiator iscsi]# service iscsi start
然後執行在linux上執行iSCSI Target發現,讓客戶端能找到網絡中共享的iscisi
可以使用如下指令向 iSCSI Target 主機查詢劃分了哪些lun:
iscsiadm -m discovery --type sendtargets --portal IP 或者
iscsiadm -m discovery -t sendtargets -p IP
需要說明的是:當成功執行一次Target發現後,iSCSI Initiator就會將查詢紀錄寫到/var/lib/iscsi/send_targets對應目錄下。因此,對於Target發現只需執行一次即可。
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 10.0.7.113
正在啓動 iscsid: [確定]
10.0.7.113:3260,1 iqn.2013-07.com.1:sdb
登錄ISCSI target
[root@localhost ~]# iscsiadm -m node -T iqn.2013-07.com.1:sdb -p 10.0.7.113 -l
Logging in to [iface: default, target: iqn.2013-07.com.1:sdb, portal: 10.0.7.113,3260] (multiple)
Login to [iface: default, target: iqn.2013-07.com.1:sdb, portal: 10.0.7.113,3260] successful.
這裏就證明已經成功了 可以去系統上執行發fdisk -l查看,需要自己手動分區格式化,然後mount掛在即可(這些省略)
管理共享磁盤
分區、格式化共享磁盤
tune2fs修改文件系統的屬性,去掉自動檢查的屬性:
[root@data iscsi]# tune2fs -c -1 -i 0 /dev/sdb5
tune2fs 1.39 (29-May-2006)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
注意:Linux上的ext文件系統有一個特性,對某個分區mount、umount很多次後或者隔一個固定的時間後,系統會對該分區進行檢測,這就會導致硬盤反映速度很慢,影響業務,本操作的目的就是去掉文件系統自動檢查的屬性。
設定文件系統的自動掛載
用tune2fs查看文件系統的UUID
[root@data iscsi]# tune2fs -l /dev/sdb5
編輯/etc/fstab文件,設置自動掛載:
UUID= b5c94f7f-295f-4030-b593-4247ddc7e088 /data ext3 _netdev 0 0
注意:磁盤設備的名稱可能會發生變化,從而引起文件系統不能掛載上來或者不能正確掛載,使用UUID的方式進行掛載可以解決這個問題,也可以使用給文件系統設置卷標的方式來解決
netdev是針對iscsi設備的特殊mount選項,此掛載選項指示將在網絡啓動後掛載該卷,在關閉網絡前卸載該卷
windows客戶端: 安裝iSCSI Initiator客戶端
Windwos簡單,直接上截圖
點擊Refresh刷新
點擊LogOn激活
然後去磁盤管理查看是否增加磁盤,磁盤1就是從ISCSI上面掛載過來的,可以在裏面新建文件
如果服務端要共享多塊硬盤的時候,服務端的配置文件應該怎麼改?
例如:我要共享sdc
只要在iscsi的主配置文件裏面添加下面兩句話:
Target iqn.2013-07.com.1:sdc
Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz
然後重啓一下iscisi服務端
在linux客戶端重新探尋一次;
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 10.0.7.113
10.0.7.113:3260,1 iqn.2013-07.com.1:sdc
10.0.7.113:3260,1 iqn.2013-07.com.1:sdb
發現了剛剛添加的sdc
在windows上探尋一次:
第三部分:ISCSI的兩種驗證方式
1:IP認證方式
只需修改以下內容那個
修改/etc/iet目錄下找到ietd.conf文件
Target iqn.2013-07.com.1:sdb
Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz
Target iqn.2013-07.com.1:sdc
Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz
修改/etc/iet/initiators.allow文件
將末尾的ALL ALL 註釋掉
iqn.2013-07.com.1:sdb 10.0.7.130
iqn.2013-07.com.1:sdc 10.0.7.133
驗證:看看10.0.7.130掛載的是不是sdb 10.0.7.133掛載的是不是sdc
Linux客戶機驗證:
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 10.0.7.113
10.0.7.113:3260,1 iqn.2013-07.com.1:sdb
[root@localhost ~]#
Windows客戶端:
第二種Initiator主機以密碼認證獲取iSCSI Target資源
再做這個操作以前,將上一步做的操作改回來
服務端:
接着修改/etc/iet/ietd.conf文件,修改後的內容如下:
Target iqn.2013-07.com.1:sdb
IncomingUser linuxwoshilinux
Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
Target iqn.2013-07.com.1:sdc
IncomingUser win woshiwindows
Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz
注意:第二個和第三個“IncomingUser”選項包含在對應的Target中,用來指定windows和Linux客戶端主機登錄Target/iqn/Lun時所使用的賬號密碼。也必須與initiator主機中設定的用戶名密碼一致。
重啓iscis服務程序
Linux客戶端:
修改/etc/iscsi/iscsid.conf文件,添加如下選項:
#以下三個是針對login的
node.session.auth.authmethod = CHAP #表示在login時啓用CHAP驗證。
node.session.auth.username = login.linux.auth #驗證用戶名稱,可以是任意字符,但必須與target端IncomingUse配置的名字一致。
node.session.auth.password = linuxsecret
#驗證密碼,必須與target端對應的IncomingUse選項設置的密碼一致。
啓動iscsi客戶端程序
但是我在執行發現操作的時候提示:
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 10.0.7.113
iscsiadm: No portals found
去檢查iscsi服務端裏:/etc/iet/下 initiators.allow 和targets.allow這兩個文件裏面的 ALL ALL是否不小心被註釋掉了
執行發現操作
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 10.0.7.113
10.0.7.108:3260,1 iqn.2013-07.com.1:sdc
10.0.7.108:3260,1 iqn.2013-07.com.1:sdb
[root@localhost ~]#
注意:這裏發現sdb和sdc,雖然能發現兩塊,但是我們能連接的只有一個,因爲做限制了
接下來登錄操作:
[root@localhost ~]# iscsiadm -m node -T iqn.2013-07.com.1:sdb -p 10.0.7.113 -l
注意:-l是登錄,-u是退出
Windows客戶端:直接上圖
直接誒選擇change,填入登錄密碼
成功! 一個簡單的pc架構存儲就這樣完成了!