iSCSI(Internet SCSI)讓標準SCSI指令在TCP/IP網路上傳輸,以極低成本實現存儲區域網(SAN),打破光纖通道昂貴專用硬體壟斷。本文涵蓋發展史、技術原理、Linux目標端與啟動器配置實戰。
| 時間 | 事件 |
|---|---|
| 2001年初 | IBM與Cisco共同制定技術,推出首批產品 |
| 2001年12月 | NetApp推出VLD協議IP SAN |
| 2003年2月 | SNIA通過iSCSI標準(RFC 3720),廠商大量入場 |
| 2003年5月 | Windows Server 2003內建iSCSI Initiator,推波助瀾 |
| 2004年10月 | HP發布IP Storage 500/1500 |
| 2005-2006年 | 普及元年,開源方案成熟(Linux iSCSI Enterprise Target、Open-iSCSI) |
方案A:LIO (Linux-IO Target, 核心內建,現代首選)
# 安裝工具
yum install targetcli -y
# 啟動服務
systemctl enable --now target
# 配置(targetcli互動式介面)
targetcli
/> backstores/block create name=disk1 dev=/dev/sdb
/> iscsi/ create iqn.2024-01.com.example:storage.target1
/> iscsi/iqn.2024-01.com.example:storage.target1/tpg1/luns create /backstores/block/disk1
/> iscsi/iqn.2024-01.com.example:storage.target1/tpg1/acls create iqn.2024-01.com.example:client1
/> saveconfig
方案B:tgt (舊版用戶空間目標,兼容性好)
yum install scsi-target-utils -y
systemctl enable --now tgtd
# 編輯 /etc/tgt/targets.conf
backing-store /dev/sdb
initiator-address 192.168.1.0/24
incominguser user pass
systemctl restart tgtd
yum install iscsi-initiator-utils -y
systemctl enable --now iscsid
# 發現目標
iscsiadm -m discovery -t st -p 192.168.1.100
# 登入
iscsiadm -m node -T iqn.2024-01.com.example:storage.target1 -p 192.168.1.100 -l
# 開機自動登入
sed -i 's/node.startup = manual/node.startup = automatic/' /var/lib/iscsi/nodes/iqn.*/192.168.1.100,3260/default
lsblk # 看到新裝置 sdc
multipath -ll # 多路徑狀態
mkfs.ext4 /dev/mapper/mpatha
mount /dev/mapper/mpatha /data
| 方案 | 硬體成本 | 適用場景 |
|---|---|---|
| FC SAN | 高(HBA卡$1000+、FC交換機$5000+) | 核心資料庫、超低延遲 |
| iSCSI (專用陣列) | 中(iSCSI陣列$5000+) | 中型企業虛擬化、備份 |
| iSCSI (Linux轉換) | 低(普通伺服器+萬兆網卡$500) | 中小企業、測試開發、邊緣節點 |
Linux + iSCSI 以商用硬體構建企業級SAN,是雲端時代儲存基礎設施的性價比之王。