星期三, 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

星期日, 5月 15, 2016

PyCharm 安裝 with openSUSE Leap 42.1

PyCharm 安裝 with openSUSE Leap 42.1

今年想要投入多點時間在 python 上面, 所以建立一個讀書會
在讀書會中, 我們商議的開發環境為 Pycharm 這個軟體, 他的好處是 Mac / Windows / Linux 都有, 今天來寫 Linux 上面的安裝

OS: openSUSE Leap 42.1


下載頁面


下載之後解壓縮,  我之前是用一般使用者, 後來決定用 root 解壓縮到 /opt 方便後面管理
#  tar   zxvf   pycharm-community-2016.1.3.tar.gz  -C  /opt

用一般使用者身份進行安裝, 執行 pycharm.sh

> /opt/pycharm-community-2016.1.3/bin/pycharm.sh

首先是安裝的詢問, 如果沒有裝過之前的版本就選 I do not have a previous version of PyCharm or I do not want to import my settings

2016-05-15 12-51-33 的螢幕擷圖.png

接受授權
點選 Accept

2016-05-15 12-52-58 的螢幕擷圖.png

出現初始化設定, 他會在 /usr/local/bin/ 下建立 charm
我這邊是預設值 點選 OK

2016-05-15 12-54-42 的螢幕擷圖.png


進行相關安裝要取得管理者授權
輸入系統管理者密碼
2016-05-15 12-55-34 的螢幕擷圖.png


歡迎畫面
這邊我先選 Create New Project
2016-05-15 12-57-59 的螢幕擷圖.png

接下來會進入設定畫面
預設是在家目錄的 PycharmProject/ 下

這邊 Interpreter 可以選 2.x 或是 3.x python, 我是選 python3.4
點選 Create

2016-05-15 12-59-56 的螢幕擷圖.png


程式介面
2016-05-15 13-03-56 的螢幕擷圖.png


安裝完成之後, 相關設定是儲存在家目錄的 .PyCharm2016.1
> ls  -ald    ~/.P*
drwxr-xr-x 4 sakana users 4096  5月 15 13:24 /home/sakana/.PyCharm2016.1

順便觀察一下 /usr/local/bin
> ls   -l   /usr/local/bin/
總計 4
-rwxr-xr-x 1 root root 3062  5月 15 13:24 charm
接下來進行個人化的部份

點選 File -- >  Settings

開啟行號
在 Editor -- >  General  勾選 Show line Numbers  -- > 點選 OK

2016-05-15 13-55-12 的螢幕擷圖.png


接下來解決中文亂碼的問題
點選 File -- >  Settings
在 Editor -- >  File and Code Templates
點選 Python Script , 輸入 # -*- coding: utf-8 -*-
點選 OK

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


接下來設定 Github 的部份

點選  VCS  -- > Checkout from Version Control  -- >  Github

Login: 輸入自己的 email
Password: 輸入密碼
點選 Login

2016-05-15 14-08-53 的螢幕擷圖.png

接下來選取要匯入的專案
點選 Clone

2016-05-15 14-11-11 的螢幕擷圖.png

接下來會貼心的問要不要開啟專案

2016-05-15 14-12-20 的螢幕擷圖.png

開啟時有提醒 Markdown 可以安裝 plugin
按照提醒安裝即可

2016-05-15 14-13-57 的螢幕擷圖.png
2016-05-15 14-14-07 的螢幕擷圖.png

另外有提醒 還沒有設定 Python interpreter ( 因為同時有 2.x 以及 3.x )

2016-05-15 14-17-29 的螢幕擷圖.png

會自動跳到設定視窗

2016-05-15 14-18-32 的螢幕擷圖.png

這邊我自己是用 python 3.4

2016-05-15 14-20-09 的螢幕擷圖.png

重新啟動 PyCharm 就可以看到剛剛 Markdown 支援的效果

2016-05-15 14-22-48 的螢幕擷圖.png



icon 的部份, 如果不想用 command line 啟動 smartgit 可以試試看 alacarte 建立


設定參考

先寫到這邊

~ enjoy it