antony@notes:~/suse$ cat "Getting-Started-configuring-iSCSI-on-SLES-15-SP5.md"
Getting Started, configuring iSCSI on SLES 15 SP5
Getting Started, configuring iSCSI on SLES 15
Preface
本篇文章會主要會先介紹 iSCSI 是什麼,它的架構長得如何,以及它如何運作,最後實際在 SLES 15 SP5 上部屬與設定 iSCSI
可以透過點擊以下目錄,選擇想看的內容,跳轉至特定章節
:::warning
:::spoiler {state=“open”} 目錄
[TOC]
:::
1. 什麼是 iSCSI ?
- iSCSI:Internet Small Computer System Interface
- iSCSI 是一種儲存網路的通訊協定,它可簡化區塊儲存設備和伺服器之間透過 TCP/IP 網路進行的 SCSI 封包傳輸。
- 讓 Server 能夠透過 TCP/IP 的技術直接存取硬碟。
- ISCSI 讓建立共享儲存網路成為可能,在這個網路中,多個伺服器和用戶端可以存取中央儲存資源,就像存取本機連線的裝置一樣。
- iSCSI 利用了 TCP/IP 的 port 860 和 3260 作為溝通的管道。
1.1. iSCSI 和 NFS 差在哪?
iSCSI 是由 IBM 發明的基於乙太網路的儲存協議,該協議與 NFS 協議都是為了解決儲存資源共享問題的解決方案。兩者意圖一致,只不過兩者是不同的實作方式,前者在客戶機上呈現的是一個 Block Device ( 區塊設備 ),而後者則是目錄樹。

iSCSI 是一種儲存設備遠端映射技術,它可以將一個遠端伺服器上的儲存設備映射到本地,並呈現為一個區塊設備(說白了就是磁碟)。從一般使用者的角度,映射過來的磁碟與本機安裝的磁碟毫無差異。

:::info
:::spoiler {state=“open”} “block devices” 和 “raw disk” 又差在哪 ???
Block devices file
- 當透過區塊裝置檔案存取硬碟時,系統會先將資料讀取或寫入記憶體中的緩衝區,再將資料傳輸到實際的硬碟。
- 優點:可以改善對實體磁碟的輸入輸出效能。
Character device file
- 字元裝置檔案 (character device file) 也稱為原始裝置檔案 (raw device file)。
- 字元裝置檔案會一次傳輸一個字元到裝置。
- 磁帶機通常透過字元裝置檔案存取。
:::
2. 它如何運作 ?
iSCSI 主要是透過 TCP/IP 的技術,將儲存設備端透過 iSCSI target ( iSCSI 標的 ) 功能,做成可以提供磁碟的伺服器端,再透過 iSCSI initiator ( iSCSI 初始化用戶 ) 功能,做成能夠掛載使用 iSCSI target 的用戶端,如此便能透過 iSCSI 協定來進行磁碟的應用了。
也就是說,iSCSI 這個架構主要將儲存裝置與使用的主機分為兩個部分,分別是:
- iSCSI target:就是儲存設備端,存放磁碟或 RAID 的設備,目前也能夠將 Linux 主機模擬成 iSCSI target 了!目的在提供其他主機使用的『磁碟』。
- iSCSI initiator:就是能夠使用 target 的用戶端,通常是伺服器。 也就是說,想要連接到 iSCSI target 的伺服器,也必須要安裝 iSCSI initiator 的相關功能後才能夠使用 iSCSI target 提供的磁碟就是了。

2.1. 舉例
- iSCSI LIO target server 和 iSCSI initiator servers 在區域網路 IP 層傳送 SCSI 封包進行通訊。
- 當 initiator server 上執行的應用程式開始查詢在 iSCSI LIO target 的 Disk 中的資料時,作業系統會產生必要的 SCSI 命令。
- 然後,SCSI 指令被嵌入 IP 封包,並由 iSCSI initiator 的軟體進行必要的加密。
- 這些資料包透過內部 IP 網路傳輸到對應的 iSCSI LIO target server。
LIO 是 Linux 的標準開源 multiprotocol SCSI target。 LIO 取代了 SCSI target 框架,成為 Linux 核心版本 2.6.38 及更高版本的標準統一儲存目標器。
3. 在 SLES 15 SP5 上部屬 iSCSI
3.1. 安裝 iSCSI initiator
在每一台 iSCSI initiator 機器執行以下命令
$ sudo zypper in -y open-iscsi yast2-iscsi-client3.2. 安裝 iSCSI LIO Target Server
在每一台 iSCSI LIO Target Server 機器執行以下命令
$ sudo zypper in -y yast2-iscsi-lio-server3.3. 設定 iSCSI LIO Target Server
3.3.1. 準備儲存空間
iSCSI LIO Target 可使用具有 Linux、Linux LVM 或 Linux RAID 檔案系統 ID 的未格式化分割區。
- 在兩台機器上多新增了兩顆 100 G 的 Disk
sle-ha-1:~ # lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 100G 0 disk
sle-ha-2:~ # lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sdb 8:16 0 100G 0 disk將 Disk 或 partition 設定為 iSCSI Target 後,切勿直接透過其本機路徑進行存取,不要在 target server 上掛載分割區。
3.3.2. 設定 iSCSI LIO Target Service 開機自動啟動
iSCSI LIO Target Service 預設要手動啟動,可以將服務設定為在系統啟動時自動啟動。
- Start YaST and launch Network Services › iSCSI LIO Target.
$ sudo yast2 iscsi-lio-serverSwitch to the Service tab
設定開機自動啟動 iSCSI Targets 服務
┌Service Configuration─────────────────────────────────────────┐
│Current status: Inactive │
│After writing configuration: │
│Start▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒↓ │
│After reboot: │
│Start on boot▒↓ │
└──────────────────────────────────────────────────────────────┘- After writing configuration:
Start - After reboot:
Start on boot
3.3.3. 設定 iSCSI LIO target group
Start YaST and launch Network Services › iSCSI LIO Target.
Switch to the Targets tab.
Click Add, then define a new iSCSI LIO target group and devices:
- Target:
iqn.2023-11.com.example - Identifier:
ha1-disk - Portal Group:
1 - IP Address:
10.12.2.11 - Port Number:
3260 [x] Bind all IP addresses
- Target:

Add a new initiator entry for the selected iSCSI LIO target group.
- 在 Lun 區塊下點擊
add - LUN Path:
/dev/sdb
- 在 Lun 區塊下點擊

- Click
Finishto save and apply the settings.
3.4. 設定 iSCSI initiator
Start YaST and launch Network Services › iSCSI Initiator.
Switch to the Service tab.
設定開機自動啟動服務
$ sudo yast2 iscsi-client- After writing configuration:
Restart - After reboot:
Start on boot

- Switch to the
Discovered Targetstab. - Connect Targets

- Startup and Authentication
- Startup:
automatic - Next

- 確認 Connected Targets
確認都沒問題後點擊 OK

- 檢查
# lsscsi
[0:0:0:0] disk QEMU QEMU HARDDISK 2.5+ /dev/sda
[0:0:0:1] disk QEMU QEMU HARDDISK 2.5+ /dev/sdb
[2:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.5+ /dev/sr0
[3:0:0:0] disk LIO-ORG IBLOCK 4.0 /dev/sdc
[4:0:0:0] disk LIO-ORG IBLOCK 4.0 /dev/sdd