實驗介紹
1、在Linux平臺上通過iSCSI協議實現IP-SAN存儲共享
2、掌握存儲導出(export)和存儲導入(import)的配置方法
3、學習iSCSI存儲的發現、連接、斷開和管理操作
1、實驗環境
兩臺同網段的Linux虛擬機(無需物理交換機)
操作系統:Linux(具體發行版未指定)
軟件包:scsi-target-utils、iscsi-initiator-utils
IP-SANde實現 | IP地址 |
導出端(Target Server) | 10.1.1.141 |
導入端(Initiator Client) | 10.1.1.142 |
拓撲圖:
2、實驗步驟
(1)基礎環境準備(兩臺機器執行)
# 為兩臺虛擬機配置靜態IP地址
# 關閉防火墻和SELinux(兩臺機器均需執行)
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 配置主機名解析(可選,建議執行)
vi /etc/hosts
10.1.1.141 hn141
10.1.1.142 hn142
# 時間同步(兩臺機器均需執行)
yum install -y ntpdate && ntpdate pool.ntp.org
# 檢查兩臺機子是否可以互ping
(2)存儲導出端(export)配置
#安裝必要軟件包 yum -y install epel-release yum -y install scsi-target-utils rpm -aq|grep scsi |
#創建塊存儲文件 dd if=/dev/zero of=/tmp/file0 bs=1M count=1024 #查看塊存儲文件 ls -lh /tmp/file0 |
#查看文件 rpm -qc scsi-target-utils-1.0.55-4.el7.x86_64 cat /etc/tgt/tgtd.conf cat -n /etc/tgt/conf.d/sample.conf |
#配置iSCSI目標 #編輯配置文件/etc/tgt/targets.conf vi /etc/tgt/targets.conf default-driver iscsi <target scsi:data> ????backing-store /tmp/file0 </target> |
#啟動服務 systemctl start tgtd.service systemctl enable --now tgtd.service # 驗證服務是否啟動 systemctl status tgtd ?????????# 檢查服務是否運行 lsof -i:3260 ??????????????????# 檢查3260端口是否監聽 |
|
#查看共享狀態 tgt-admin --show |
(3)存儲導入端(import)配置
#安裝客戶端軟件 yum -y install iscsi-initiator-utils iscsiadm --version |
#發現iSCSI目標# (指定導出端IP) iscsiadm -m discovery -t sendtargets -p 10.1.1.141 |
如果報錯如下: 可能是因為防火墻,在導出端執行以下命令,檢查網絡策略 # 在導出端(10.1.1.141)執行: # 1. 檢查防火墻規則(即使已關閉也需確認) iptables -L -n | grep 3260 ???# 查看是否有3260端口的規則 # 2. 臨時放行3260端口(即使防火墻已關閉) iptables -I INPUT -p tcp --dport 3260 -j ACCEPT # 3. 檢查網絡接口綁定(確保監聽所有接口) netstat -tulnp | grep tgtd ???# 應顯示0.0.0.0:3260 |
#登錄連接iSCSI目標 iscsiadm -m node -l ?# 登錄 lsblk ?# 驗證新設備出現 |
#存儲使用與驗證 #格式化并掛載存儲 mkfs.ext4 /dev/sdb mkdir /file1 mount /dev/sdb /file1 lsblk ?# 驗證新設備出現 # 驗證寫入 echo "iSCSI Test" > /file1/test.txt cat /file1/test.txt |
![]() |
(4)安全斷開連接操作
# 在導入端執行 #查看當前會話 iscsiadm -m session # 斷開特定連接 umount /file1 iscsiadm -m node -T scsi:data -p 10.1.1.141:3260 -u # 徹底刪除節點記錄 iscsiadm -m node -o delete # 在導出端可停止服務(如需) systemctl stop tgtd |
3.實驗結果
(1)成功在兩臺Linux虛擬機之間建立了iSCSI存儲共享
導出端成功創建并共享了1GB的虛擬塊存儲
導入端能夠發現、連接并使用該存儲設備
掌握了iSCSI存儲的連接、斷開和管理操作
(2)注意事項
斷開iSCSI連接前,確保沒有應用程序正在使用該存儲設備,否則可能導致數據丟失或應用程序出錯
部分操作可能需要root權限,建議使用sudo提升權限
塊設備無法同時被多個主機共享使用
(3)排錯指南
# 1.連接失敗:
檢查兩臺機器是否能互相ping通
導出端執行 lsof -i:3260 確認端口監聽
查看日志:journalctl -u tgtd(導出端)或 /var/log/messages(導入端)
# 2.CHAP認證錯誤:
確保兩端的用戶名/密碼完全一致
導入端檢查 /etc/iscsi/iscsid.conf 配置
# 3.設備未識別:
在導入端執行 dmesg | grep scsi 查看內核日志
4.實驗總結
通過本次實驗,我們成功在Linux平臺上實現了基于iSCSI協議的IP-SAN存儲共享。實驗涵蓋了從環境準備、服務配置到實際連接使用的完整流程,并學習了相關的管理命令。iSCSI作為一種經濟高效的SAN解決方案,可以在標準IP網絡上實現塊級存儲共享,適合中小型企業的存儲需求。