星期三, 5月 25, 2016

iSCSI Server with openSUSE Leap 42.1

最近因為實驗需要, 所以又要架設 iSCSI Server ( Target ) 了

寫這篇文章真的要先感謝 Netman - 指導我 troubleshooting
不然還真的很難從錯誤迴圈跳出來 :)

OS: openSUSE Leap 42.1

之前的文章已經是 2010 年了 :)


首先準備空間
透過 yast2 disk 建立 RAW  partition

#yast2  disk
按照自己要的大小建立, 選擇 Raw Volume

2016-05-25 20-06-12 的螢幕擷圖.png

2016-05-25 19-59-07 的螢幕擷圖.png

接下來搜尋 iscsi 套件
預設只有裝 client 沒有裝 server

# zypper   search  iscsi
Retrieving repository 'openSUSE-Leap-42.1-Update' metadata ...............[done]
Building repository 'openSUSE-Leap-42.1-Update' cache ....................[done]
Retrieving repository 'openSUSE-Leap-42.1-Update-Non-Oss' metadata .......[done]
Building repository 'openSUSE-Leap-42.1-Update-Non-Oss' cache ............[done]
Loading repository data...
Reading installed packages...

S | Name                   | Summary                                | Type      
--+------------------------+----------------------------------------+-----------
i | iscsiuio               | Linux Broadcom NetXtremem II iscsi s-> | package   
i | open-iscsi             | Linux* Open-iSCSI Software Initiator   | package   
 | open-iscsi             | Linux* Open-iSCSI Software Initiator   | srcpackage
i | yast2-iscsi-client     | YaST2 - iSCSI Client Configuration     | package   
 | yast2-iscsi-lio-server | Configuration of iSCSI LIO target      | package

現在的 iSCSI Server 套件已經變成  yast2-iscsi-lio-server
來安裝它吧 :)

# zypper   install   yast2-iscsi-lio-server
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
 lio-utils yast2-iscsi-lio-server

2 new packages to install.
Overall download size: 202.1 KiB. Already cached: 0 B. After the operation,
additional 1.8 MiB will be used.
Continue? [y/n/? shows all options] (y):  Y

設定 iSCSI Server - 使用 yast2
# yast2   iscsi-lio-server

首先是歡迎畫面
在 Service 標籤內, Service Start 點選 When Booting ( 開機啟動 )
因為是實驗機器, 所以沒有設定 Firewall

2016-05-24 14-13-13 的螢幕擷圖.png


點選 Global 標籤
暫時使用 No Authentication 方式, 後續可以針對 Target 設定驗證就好

2016-05-24 14-18-04 的螢幕擷圖.png

點選 Targets 標籤
點選 Add 新增 Target

2016-05-24 14-19-43 的螢幕擷圖.png

點選 Add 新增 Target
進入 Target 設定畫面, 點選 Add 來新增 LUN

2016-05-24 14-46-33 的螢幕擷圖.png

在LUN 設定畫面內, 輸入 Path
我是用分割區的方式, 所以輸入 /dev/sdb1  ( 分割區所在位置 )
點選 OK

2016-05-24 14-50-05 的螢幕擷圖.png

點選 Next ( 因為預設有勾選 Use Authentication, 所以接下來進行驗證設定 )


2016-05-24 14-51-28 的螢幕擷圖.png



接下來就是一個非常重要的部份, 新增 client
點選 Add 來新增 client
2016-05-24 14-53-11 的螢幕擷圖.png


這邊第1個重點就是

Client name 不能亂取, 必須跟 client 那邊的名稱一致  ( 很重要要講 3 次 )

2016-05-25 20-21-45 的螢幕擷圖.png

那 Client 的名字如何取得呢?

如果是 VMware ESXi
就到 主機的 組態 -- > 儲存裝置介面卡 ( 記得先新增 iSCSI Software Adapter) -- > 內容
點選 設定 就看得到了

2016-05-25 20-19-52 的螢幕擷圖.png

Linux Client 去查詢 /etc/iscsi/initiatorname.iscsi

# cat   /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1996-04.de.suse:01:cb6d653143


因為以前作 lab 都是直接 copy name, 這次不知道為何自己亂填 client
所以一直會遇到 login fail 的狀況
---- 所以這個應該是第1層保護, client name 如果沒有 match 不能連線

接下來點選 Edit LUN
點選 Add 來設定 LUN 對應
2016-05-25 20-30-11 的螢幕擷圖.png

依照選的 LUN 點選 Change 下拉式選單對應到要對應的 LUN
點選 OK
2016-05-25 20-31-32 的螢幕擷圖.png

點選 Edit Auth 設定 CHAP 驗證密碼
這邊我要記一下我碰到的現象
我的 username 原本是設定 nchc , 不知道是不是太短? 一直有問題
設定為 nchcuser 可能長度夠了, 才過的去?
另外 密碼的部份建議設定 12 字元以上, windows 那邊的 client 比較不會有問題( 印象中 )
因為是 Server 所以勾選 Incoming Authentication
輸入 username Password
點選 OK

2016-05-25 20-34-40 的螢幕擷圖.png


觀察一下相關設定都被設定上去
點選 Next
2016-05-25 20-38-35 的螢幕擷圖.png

點選 Finish 完成

2016-05-24 15-01-43 的螢幕擷圖.png

這邊後記一下, 相關的設定, 可以去觀察 /etc/target 目錄

# ls  /etc/target/
lio_setup.sh  lio_start.sh  tcm_setup.sh  tcm_start.sh

因為是 SUSE 系列, 所以可以用 rctarget 觀察
# rctarget  status
target.service - "Generic Target Mode service"
  Loaded: loaded (/usr/lib/systemd/system/target.service; enabled)
  Active: active (exited) since Wed 2016-05-25 20:04:44 CST; 33min ago
Main PID: 435 (code=exited, status=0/SUCCESS)
  CGroup: /system.slice/target.service

當然也是用 systemctl 可以
# systemctl  status target.service
target.service - "Generic Target Mode service"
  Loaded: loaded (/usr/lib/systemd/system/target.service; enabled)
  Active: active (exited) since Wed 2016-05-25 20:04:44 CST; 34min ago
Main PID: 435 (code=exited, status=0/SUCCESS)
  CGroup: /system.slice/target.service



==== 接下來就是 Client 的連接了 ====

首先是 VMware ESXi

就到 主機的 組態 -- > 儲存裝置介面卡 ( 記得先新增 iSCSI Software Adapter)
點選 內容 -- > 點選 動態探索 -- > 點選新增

2016-05-25 20-47-24 的螢幕擷圖.png


輸入 iSCSI 伺服器 IP
點選 CHAP

2016-05-25 20-50-00 的螢幕擷圖.png
取消勾選 從父系繼承
選取 使用 CHAP
輸入名稱
輸入密碼
點選確定

2016-05-25 21-07-16 的螢幕擷圖.png

點選確定

2016-05-25 20-50-00 的螢幕擷圖.png


點選 靜態探索標籤
如果設定正常, 應該會看到目標名稱
點選 關閉

2016-05-25 20-55-23 的螢幕擷圖.png

接下來 VMware 會要求重新掃描
點選 是

2016-05-25 20-57-28 的螢幕擷圖.png


這個時候就會看到已掛接
大功告成

2016-05-25 21-08-46 的螢幕擷圖.png


如果是 openSUSE client

如果今天是另外一個 client 要掛接上來
在 server 那邊
#yast2 iscsi-lio-server 設定內
在當初新增完 client 時, 其實旁邊還有 COPY 按鈕可以使用 :)
點選 Copy
2016-05-25 21-11-50 的螢幕擷圖.png


輸入 openSUSE client 的 iqn 名稱 ( 參考 /etc/iscsi/initiatorname.iscsi  )
點選 OK

2016-05-25 21-14-28 的螢幕擷圖.png

接下來 Next -- > Finish 就可以完成


回到 openSUSE Client

使用 yast2 方式設定
# yast2  iscsi-client

一樣 Service 標籤
選取 When Booting

2016-05-25 21-18-53 的螢幕擷圖.png

點選 Discovered Target 標籤
點選 Discovery

2016-05-25 21-20-21 的螢幕擷圖.png

輸入 IP -- > 點選 Next
這邊我其實真的很想探究一下
這邊如果取消勾選 No Authentication, 用 username 來驗證是會 fail, 因為要在下一個畫面才要驗證, 先記下來.
2016-05-25 21-22-04 的螢幕擷圖.png

出現 Target
點選 Connect

2016-05-25 21-25-02 的螢幕擷圖.png


出現設定畫面
Startup 選 automatic
在 Outgoing Authentication 輸入 username 與 密碼
點選 Next

2016-05-25 21-26-56 的螢幕擷圖.png

確認 Connected 為 True
點選 OK
完成設定

2016-05-25 21-28-59 的螢幕擷圖.png

可以使用 lsscsi 觀察
# lsscsi
[0:0:0:0]    disk    VMware   Virtual disk     1.0   /dev/sda
[0:0:1:0]    disk    VMware   Virtual disk     1.0   /dev/sdb
[2:0:0:0]    cd/dvd  NECVMWar VMware IDE CDR10 1.00  /dev/sr0
[6:0:0:0]    disk    LIO-ORG  IBLOCK           4.0   /dev/sdc


大功告成

~ enjoy it

1 則留言:

Geetha 提到...

This blog provides useful information about new techniques and concepts.very impressive lines are given which is very attractive.
informatica training in chennai