1. 程式人生 > >Linux常見服務器存儲類型和iSCSI共享存儲

Linux常見服務器存儲類型和iSCSI共享存儲

服務器 存儲 iSCSI 共享存儲

一、常見的存儲類型和iSCSI 概念及介紹

1 、 常見的三種存儲類型

DAS(Direct-AttachedStorage)直接附加存儲,存儲設備一般通過scsi/ide總線直接連接到主機上,常見的如SATA硬盤,SAS硬盤等,直接通過準線連接到計算機主板上面。該方式顯著的優點就是傳輸速度快,但傳輸距離受總線長度限制,且只能供本地使用。


NAS(Network AttachedStorage)網絡附加存儲,將存儲設備與服務器分離,集中管理數據,從而提升並發存儲能力、降低維護成本。典型的應用示例有NFS服務器,SAMBA服務器,NFS服務器等文件服務器,通過向外提供文件系統的方式向外提供存儲


SAN(Storage Area Network)存儲區域網絡,采用FC(Fibre Channel)光纖通道或者Ethernet進行遠距離傳輸,區別於Fiber Channel光纖通道技術,通過FC交換機連接存儲陣列和服務器主機,建立專用於數據存儲的區域網絡。SAN架構圖如下所示:

技術分享圖片

2、 三種存儲類型的區別

DAS與SAN都是塊級別(Block-level)的存儲,而NAS是文件系統(File System level)級的存儲。因為文件系統是操作系統對磁盤數據的一次封裝。每次對數據訪問時提供文件服務的服務器都要對數據進行數據封裝,和解封裝,然後再對塊設備磁盤進行讀寫。而DAS是直接對塊設備進行讀寫,因此NAS的存儲速度不如前面兩者。


SAN(Storage Area Network)相當於模擬了遠距離傳輸的DAS,特點是速度快。支持的並發服務主機數量多。大家都知道遠距離傳輸是需要跨越Internet,而廣域網的帶寬是遠不能和局域網相比的,缺點便是網絡速度瓶頸問題。


二、iSCSI簡介

1、 iSCSI(Internet SmallComputer System Interface)基於Internet的小型計算機系統接口,由IBM公司研究開發的,是一個可以讓硬件設備在IP協議的上層運行的SCSI指令集存儲技術,可以實現在IP網絡上運行SCSI協議,使其能夠在諸如高速千兆以太網上進行路由選擇。


2、 iSCSI技術是一種新儲存技術,該技術是將現有SCSI接口與以太網絡(Ethernet)技術結合,使服務器可通過IP網絡進行遠距離SCSI類型的數據存儲設備由 SCSI 總線連接。


3、iSCSI 的主要功能是在 TCP/IP 網絡上的主機系統(啟動器 initiator)和存儲設備(目標器 target

)之間進行大量數據的封裝和可靠傳輸過程。此外,iSCSI 提供了在 IP 網絡封裝 SCSI 命令,且以TCP/IP協議傳輸。iSCSI服務端程序監聽端口為明文的TCP/3260

技術分享圖片


4、iSCSI的工作過程

當iSCSI主機應用程序發出數據讀寫請求後,操作系統會生成一個相應的SCSI命令,該SCSI命令在iSCSI initiator層被封裝成ISCSI消息包並通過TCP/IP傳送到物理存儲控制器, 物理存儲控制器的iSCSI target層會解開iSCSI消息包,得到SCSI命令的內容,然後執行scsi指令;設備執行SCSI命令後的響應,在經過設備側iSCSI target層時被封裝成ISCSI響應PDU,通過TCP/IP網絡傳送給主機的ISCSI initiator層, iSCSI initiator會從ISCSI響應PDU裏解析出iSCSI響應並傳送給操作系統,操作系統再響應給應用程序。


5、 iSCSI組成

目標器 target用於存放硬盤存儲資源的服務器,作為RAID磁盤陣列組的存儲端,能夠為用戶提供可用的存儲資源。

啟動器 initiator則是用戶使用的iSCSI客戶端,用於獲取遠程服務端的存儲資源,通常以軟件提供,但是也可以作為iSCSI HBA來實施。必須為啟動器initiator授予全球唯一名稱IQN用於識別。

IQN:iSCSI限定名稱,全球唯一名稱,用於以強制命名格式來識別啟動器和目標。

IQN格式如下:iqn.[YYYY-MM].[com.reversed.domain]:[optional_string]

iqn:表示此名稱使用域為標識符。

YYYY-MM:表示擁有域名的年月時間。

com.reversed.domain:擁有此iSCSI組織的逆向域名

optional_string:以冒號為前綴的可選字符串,全球唯一,由域所有者分配,其中可包含冒號為分割符的組織邊界

LUN:Logical Unit Number的縮寫,指邏輯單元號,帶有編號的塊設備,連接到目標器且通過目標器來使用。可以有一個或多個LUN連接到單個目標器,但通常一個目標器提供一個LUN。

節點:任何一個iSCSI啟動器或iSCSI目標器,由其IQN來標識。

TPG:目標門戶組,某個特定iSCSI目標要偵聽的接口IP地址和TCP端口的集合。可以將目標配置添加到TPG以協調多個LUN的設置。

ACL:訪問權限控制列表,一種使用節點IQN(通常是啟動器名稱)來驗證啟動器的訪問權限的訪問限制。

門戶:目標或啟動器上用於建立的IP地址和端口。

發現:查詢目標服務器以列出配置的目標。


6、iSCSI存儲系統四大架構:PC系統架構 PC+NIC系統架構 連接橋系統架構 控制器系統架構

PC系統架構:即選擇一個普通的、性能優良的、可支持多塊磁盤的PC(一般為PC服務器和工控服務器),選擇一款相對成熟穩定的iSCSI target軟件,將iSCSI target軟件安裝在PC服務器上,使普通的PC服務器轉變成一臺iSCSI存儲設備,並通過PC服務器的以太網卡對外提供iSCSI數據傳輸協議。在PC架構的iSCSI存儲設備上,所有的RAID組校驗、邏輯卷管理、iSCSI 運算、TCP/IP 運算等都是以純軟件方式實現,因此對PC的CPU和內存的性能要求較高。另外iSCSI存儲設備的性能極容易收PC服務器運行狀態的影響。 


7、iSCSI協議

iSCSI協議是讓SCSI在TCP協議之上工作的傳輸協議,是一種SCSI遠程過程調用模型到TCP協議的映射。SCSI命令加載在iSCSI請求之上,同時SCSI狀態和響應也由iSCSI來承載。iSCSI同樣使用請求響應機制。


  每個啟動器和目標都指定了一個唯一的iSCSI 名稱,如 iSCSI 限定名 (IQN) 或擴展的唯一標識(EUI)。 IQN 是 223 字節的 ASCII 名稱。EUI 是 64 位標識。iSCSI 名稱代表全球唯一命名方案,該方用於標識各啟動器或目標,其方式與使用全球節點名(WWNN) 來標識光纖通道光纖網中設備的方式相同。

  技術分享圖片

iSCSI 目標是響應 iSCSI 命令的設備。iSCSI 設備可以是諸如存儲設備的結束節點,或者可以是諸如IP 與光纖通道設備之間的網橋的中間設備。每個iSCSI 目標由唯一的iSCSI 名稱標識。

  要通過 IP 網絡傳輸 SCSI 命令,iSCSI 驅動程序必須安裝到iSCSI 主機和目標中。驅動程序用於通過主機或目標硬件中的網絡接口控制器(NIC) 或 iSCSI HBA 來發送iSCSI 命令和響應。為實現最佳性能,請使用傳輸速度為每秒 1000 兆位 (Mbps) 的千兆以太網適配器在iSCSI 主機和 iSCSI 目標間進行連接。

  iSCSI 命令封裝:

技術分享圖片

發起端和目標端之間以消息的形式進行通信。PDU(Protocal Data Unit)就是用來傳輸這些消息的。

技術分享圖片技術分享圖片 

  iSCSI 協議就是一個在網絡上封包和解包的過程,在網絡的一端,數據包被封裝成包括TCP/IP頭、iSCSI識別包和SCSI數據三部分內容,傳輸到網絡另一端時,這三部分內容分別被順序地解開。iSCSI 系統由一塊 SCSI 卡發出一個 SCSI 命令,命令被封裝到第四層的信息包中並發送。
  接收方從信息包中抽取SCSI 命令並執行,然後把返回的SCSI命令和數據封裝到IP信息包中,並將它們發回到發送方。系統抽取數據或命令,並把它們傳回SCSI子系統。所有這一切的完成都無需用戶幹預,而且對終端用戶是完全透明的。 為了保證安全,iSCSI 有自己的上網登錄操作。在它們首次運行的時候,啟動器(initiator)設備將登錄到目標設備中。

  

 8、iscsi會話過程:
  iSCSI 會話建立於一個initiator與一個target之間,一個會話允許多個TCP連接,並且支持跨連接的錯誤恢復。大多數通信還是建立在SCSI基礎之上的,例如,使用R2T進行流量控制。

  iSCSI添加於SCSI之上的有:立即和主動的數據傳輸以避免往返通信;連接建立階段添加登錄環節,這是基於文本的參數協商。

  建立一個iSCSI會話,包括:

    命名階段:確定需要訪問的存儲,以及initiator,與FC不同,命名與位置無關;

    發現階段:找到需要訪問的存儲;

    登錄階段:建立於存儲的連接,讀寫之前首先進行參數協商,按照TCP連接登錄。

技術分享圖片技術分享圖片


9、iSCSI客戶端和服務器端命令介紹


9. 1 服務器端的設定需要的軟件:scsi-target-utils:用來將 Linux 系統仿真成為 iSCSI target 的功能;


9. 2 scsi-target-utils 主要配置文件:

/etc/tgt/targets.conf:主要配置文件,設定要分享的磁盤格式與哪幾顆;

/usr/sbin/tgt-admin:在線查詢、刪除 target 等功能的設定工具;

/usr/sbin/tgt-setup-lun:建立 target 以及設定分享的磁盤與可使用的客戶端等工具軟件。

/usr/sbin/tgtadm:手動直接管理的管理員工具 (可使用配置文件取代);

/usr/sbin/tgtd:主要提供 iSCSI target 服務的主程序;

/usr/sbin/tgtimg:建置預計分享的映像文件裝置的工具 (以映像文件仿真磁盤);

CentOS 已經將很多功能都設定好了,因此我們只要修訂配置文件,然後啟動 tgtd 這個服務就可以。


9.3 iSCSI可以共享的磁盤類型 :

a.使用 dd 指令所建立的大型檔案可供仿真為磁盤 (無須預先格式化);

b.使用單一分割槽 (partition) 分享為磁盤;

c.使用單一完整的磁盤 (無須預先分割);

d.使用磁盤陣列分享 (其實與單一磁盤相同方式);

e.使用軟件磁盤陣列 (software raid) 分享成單一磁盤;

f.使用 LVM 的 LV 裝置分享為磁盤。


9.4建立共享分區過程如下:

# 1. 建立大型檔案:
[root@www ~]# mkdir /srv/iscsi 
[root@www ~]# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=500 
[root@www ~]# chcon -Rv -t tgtd_var_lib_t /srv/iscsi/ 
[root@www ~]# ls -lh /srv/iscsi/disk1.img 
-rw-r--r--. 1 root root 500M Aug 2 16:22 /srv/iscsi/disk1.img <==容量對的! 
# 2. 建立實際的 partition 分割: 
[root@www ~]# fdisk /dev/sda <==實際的分割方式自己處理吧! 
[root@www ~]# partprobe <==某些情況下得 reboot 喔! 
[root@www ~]# fdisk -l 
Device Boot Start End Blocks Id System 
/dev/sda10 2202 2463 2104483+ 83 Linux 
/dev/sda11 2464 3117 5253223+ 8e Linux LVM 
# 只有輸出 /dev/sda{10,11} 信息,其他的都省略了。註意看容量,上述容量單位 KB 
[root@www ~]# swapon -s; mount | grep 'sda1' 
# 自己測試一下 /dev/sda{10,11} 不能夠被使用喔!若有被使用,請 umount 或 swapoff 
# 3. 建立 LV 裝置 : 
[root@www ~]# pvcreate /dev/sda11 
[root@www ~]# vgextend server /dev/sda11 
[root@www ~]# lvcreate -L 2G -n iscsi01 server 
[root@www ~]# lvscan
 ACTIVE '/dev/server/myhome' [6.88 GiB] inherit
 ACTIVE '/dev/server/iscsi01' [2.00 GB] inherit

9.5 規劃分享的 iSCSI target 檔名: iqn.[YYYY-MM].[com.reversed.domain]:[optional_string]


9.6設定 tgt 的配置文件 /etc/tgt/targets.conf


如同一般外接式儲存裝置 (target 名稱) 可以具有多個磁盤一樣,我們的 target 也能夠擁有數個磁盤裝置的。 每個在同一個 target 上頭的磁盤我們可以將它定義為邏輯單位編號 (Logical Unit Number, LUN)。我們的 iSCSI initiator 就是跟 target 協調後才取得 LUN 的存取權就是了。

[root@www ~]# vim /etc/tgt/targets.conf 
# 此檔案的語法如下: 
<target iqn.相關裝置的target名稱>
   backing-store /你的/虛擬設備/完整檔名-1
   backing-store /你的/虛擬設備/完整檔名-2 
</target> 
<target iqn.2014-10.net.vlnb:vdisk>
   backing-store /srv/iscsi/disk1.img <==LUN 1 (LUN 的編號通常照順序)         
   backing-store /dev/sda10 <==LUN 2   
   backing-store /dev/server/iscsi01 <==LUN 3 
   initiator-address 192.168.100.0/24
     incominguser vbirduser vbirdpasswd 
     write-cache off 
 </target>
配置文件的參數:


backing-store (虛擬的裝置), direct-store (實際的裝置): 設定裝置時,如果你的整顆磁盤是全部被拿來當 iSCSI 分享之用,那麽才能夠使用 direct-store 。不過,根據網絡上的其他文件, 似乎說明這個設定值有點危險的樣子。所以,基本上還是建議單純使用模擬的 backing-store 較佳。例如鳥哥的簡單案例中,就通通使用 backing-store 而已


initiator-address (用戶端地址): 如果你想要限制能夠使用這個 target 的客戶端來源,才需要填寫這個設定值。基本上,不用設定它 (代表所有人都能使用的意思), 因為我們後來會使用 iptables 來規範可以聯機的客戶端嘛!


incominguser (用戶賬號密碼設定): 如果除了來源 IP 的限制之外,你還想要讓使用者輸入賬密才能使用你的 iSCSI target 的話,那麽就加用這個設定項目。 此設定後面接兩個參數,分別是賬號與密碼啰。


write-cache [off|on] (是否使用快取): 在預設的情況下,tgtd 會使用快取來增快速度。不過,這樣可能會有遺失數據的風險。所以,如果你的數據比較重要的話, 或許不要使用快取,直接存取裝置會比較妥當一些。


9.7 啟動 iSCSI target 以及觀察相關端口口與磁盤信息


[root@www ~]# /etc/init.d/tgtd start 
[root@www ~]# chkconfig tgtd on 
[root@www ~]# netstat -tlunp | grep tgt 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 
26944/tgtd tcp 0 0 :::3260 :::* LISTEN 
26944/tgtd 
# 重點就是那個 3260 TCP 封包啦!等一下的防火墻務必要開放這個埠口。 
# 觀察一下我們 target 相關信息,以及提供的 LUN 數據內容:
 [root@www ~]# tgt-admin --show 
Target 1: iqn.2011-08.vbird.centos:vbirddisk <==就是我們的 target 
  System information: 
    Driver: iscsi 
    State: ready 
  I_T nexus information:
  LUN information: 
    LUN: 0 
      Type: controller <==這是個控制器,並非可以用的 LUN 喔!
     ....(中間省略)....
  LUN: 1 
    Type: disk <==第一個 LUN,是磁盤 (disk) 喔! 
    SCSI ID: IET 00010001 
    SCSI SN: beaf11 
    Size: 2155 MB <==容量有這麽大! 
    Online: Yes 
    Removable media: No Backing store 
    type: rdwr 
    Backing store path: /dev/sda10 <==磁盤所在的實際文件名 
  LUN: 2 
    Type: disk 
    SCSI ID: IET 00010002 
    SCSI SN: beaf12 
    Size: 2147 MB 
    Online: Yes 
    Removable media: No 
    Backing store type: rdwr 
    Backing store path: /dev/server/iscsi01 
   LUN: 3
    Type: disk 
    SCSI ID: IET 00010003 
    SCSI SN: beaf13 
    Size: 524 MB 
    Online: Yes 
    Removable media: No 
    Backing store type: rdwr 
    Backing store path: /srv/iscsi/disk1.img 
Account information: 
  vuser <==額外的帳戶信息 
ACL information: 
  192.168.100.0/24 <==額外的來源 IP 限制
9.8設定防火墻:
[root@www ~]# vi /etc/sysconfig/iptables
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 3260 -j ACCEPT


9.9 客戶端 initiator 的設定需要的軟件有:iscsi-initiator-utils:掛載來自 target 的磁盤到 Linux 本機上。


9.10 iscsi-initiator-utils主要配置文件:


/etc/iscsi/iscsid.conf:主要的配置文件,用來連結到 iSCSI target 的設定;

/sbin/iscsid:啟動 iSCSI initiator 的主要服務程序;

/sbin/iscsiadm:用來管理 iSCSI initiator 的主要設定程序;

/etc/init.d/iscsid:讓本機模擬成為 iSCSI initiater 的主要服務;

/etc/init.d/iscsi:在本機成為 iSCSI initiator 之後,啟動此腳本,讓我們可以登入 iSCSI target。所以 iscsid 先啟動後,才能啟動這個服務。因為 /etc/init.d/iscsi 腳本已經包含了啟動 /etc/init.d/iscsid 的步驟在裏面,所以,理論上, 只要啟動 iscsi 就好。此外,那個 iscsid.conf 裏面大概只要設定好登入 target 時的帳密即可, 其他的 target 搜尋、設定、取得的方法都直接使用 iscsiadm 這個指令來完成。由於 iscsiadm 偵測到的結果會直接寫入 /var/lib/iscsi/nodes/ 當中,因此只要啟動 /etc/init.d/iscsi 就能夠在下次開機時,自動的連結到正確的 target 啰。 那麽就讓我們來處理處理整個過程吧


9.11 initiator 的設定

修改 /etc/iscsi/iscsid.conf 內容,並啟動 iscsi:這個檔案的修改很簡單,因為裏面的參數大多已經預設做的不錯了,只要填寫 target 登入時所需要的帳密即可。 修改的地方有兩個,一個是偵測時 (discovery) 可能會用到的帳密,一個是聯機時 (node) 會用到的帳密:

[root@clientlinux ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.username = vbirduser <==在 target 時設定的 
node.session.auth.password = vbirdpasswd <==約在 53, 54 行 
discovery.sendtargets.auth.username = vbirduser <==約在 67, 68 行 
discovery.sendtargets.auth.password = vbirdpasswd 
[root@clientlinux ~]# chkconfig iscsid on 
[root@clientlinux ~]# chkconfig iscsi on

偵測 192.168.100.254 這部 target 的相關數據:

[root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p IP:port
選項與參數: 
-m discovery :使用偵測的方式進行 iscsiadmin 指令功能; 
-t sendtargets :透過 iscsi 的協議,偵測後面的設備所擁有的 target 數據 -p IP:port :就是那部 iscsi 設備的 IP 與埠口,不寫埠口預設是 3260 啰!
範例:偵測 192.168.100.254 這部 iSCSI 設備的相關數據
 [root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p 192.168.100.254
192.168.100.254:3260,1 iqn.2014-10.net.vbnl:vdisk
# 192.168.100.254:3260,1 :在此 IP, 端口口上面的 target 號碼,本例中為 target1
#iqn.2014-10.net.vbnl:vdisk :就是我們的 target 名稱啊!
[root@clientlinux ~]# ll -R /var/lib/iscsi/nodes/
/var/lib/iscsi/nodes/iqn.2014-10.net.vbnl:vdisk
/var/lib/iscsi/nodes/iqn.2014-10.net.vbnl:vdisk/192.168.100.254,3260,1
# 上面的特殊字體部分,就是我們利用 iscsiadm 偵測到的 target 結果!

現在我們知道了 target 的名稱,同時將所有偵測到的信息通通寫入/var/lib/iscsi/nodes/iqn.201410.net.vbnl:vbirddisk/192.168.100.254,3260,1 目錄內的 default 檔案中, 若信息有修訂過的話,那你可以到這個檔案內修改,也可以透過 iscsiadm 的 update 功能處理相關參數的。

開始進行聯機 iSCSI target,因為我們的 initiator 可能會連接多部的 target 設備,因此,我們得先要瞧瞧目前系統上面偵測到的 target 有幾部, 然後再找到我們要的那部 target 來進行登入的作業。

範例:根據前一個步驟偵測到的資料,啟動全部的 target 
[root@clientlinux ~]# /etc/init.d/iscsi restart 
正在停止 iscsi: [ 確定 ] 
正在激活 iscsi: [ 確定 ] 
# 將系統裏面全部的 target 通通以 /var/lib/iscs/nodes/ 內的設定登入 
# 上面的特殊字體比較需要註意啦!你只要做到這裏即可,底下的瞧瞧就好。 範例:顯示出目前系統上面所有的 target 數據: 
[root@clientlinux ~]# iscsiadm -m node
192.168.100.254:3260,1 iqn.2014-10.net.vbnl:vdisk
選項與參數: 
-m node:找出目前本機上面所有偵測到的 target 信息,可能並未登入喔 
範例:僅登入某部 target ,不要重新啟動 iscsi 服務 
[root@clientlinux ~]# iscsiadm -m node -T target名稱 --login 
選項與參數: 
-T target名稱:僅使用後面接的那部 target ,target 名稱可用上個指令查到! 
--login :就是登入啊!
[root@clientlinux ~]# iscsiadm -m node -T iqn.iqn.2014-10.net.vbnl:vdisk \ 
> --login 
# 這次進行會出現錯誤,是因為我們已經登入了,不可重復登入喔!


接下來呢,我們要來開始處理這個 iSCSI 的磁盤:

[root@clientlinux ~]# fdisk -l 
Disk /dev/sda: 8589 MB, 8589934592 bytes <==這是原有的那顆磁盤
 ....(中間省略).... 
Disk /dev/sdc: 2147 MB, 2147483648 bytes 
heads, 62 sectors/track, 1009 cylinders 
Units = cylinders of 4154 * 512 = 2126848 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 

Disk /dev/sdb: 2154 MB, 2154991104 bytes 
heads, 62 sectors/track, 1013 cylinders 
Units = cylinders of 4154 * 512 = 2126848 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 

Disk /dev/sdd: 524 MB, 524288000 bytes 
heads, 59 sectors/track, 1020 cylinders 
Units = cylinders of 1003 * 512 = 513536 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes

9.12更新/刪除/新增 target 數據的方法

[root@clientlinux ~]# iscsiadm -m node -T targetname --logout
[root@clientlinux ~]# iscsiadm -m node -o [delete|new|update] -T targetname 
選項與參數: --logout :就是註銷 target,但是並沒有刪除 /var/lib/iscsi/nodes/ 內的數據
-o delete:刪除後面接的那部 target 鏈接信息 (/var/lib/iscsi/nodes/*) 
-o update:更新相關的信息
-o new :增加一個新的 target 信息。 
範例:關閉來自鳥哥的 iSCSI target 的數據,並且移除鏈接 
[root@clientlinux ~]# iscsiadm -m node <==還是先秀出相關的 target iqn 名稱 
192.168.100.254:3260,1 iqn.2014-10.net.vbnl:vdisk 
[root@clientlinux ~]# iscsiadm -m node -T iqn.2014-10.net.vbnl:vdisk \ 
> --logout 
Logging out of session [sid: 1, target: 
iqn.2011-08.vbird.centos:vbirddisk, portal: 192.168.100.254,3260] 
Logout of [sid: 1, target: iqn.2014-10.net.vbnl:vdisk, portal: 192.168.100.254,3260] successful. 
# 這個時候的 target 連結還是存在的,雖然註銷你還是看的到! 
[root@clientlinux ~]# iscsiadm -m node -o delete \ 
> -T iqn.iqn.2014-10.net.vbnl:vdisk
[root@clientlinux ~]# iscsiadm -m node 
iscsiadm: no records found! <==嘿嘿!不存在這個 target 了~ 
[root@clientlinux ~]# /etc/init.d/iscsi restart 
# 你會發現唔!怎麽 target 的信息不見了!這樣瞭了乎



     -m {discovery|node|session|iface}

discovery:發現某個server是否有target輸出及有哪些輸出

node:自己作為節點與server端建立連接

session:查看會話

iface:進行接口管理的


-d:debug_lebel 等級為0—8越高輸出的debug信息越詳細。

-I:指定使用哪個網絡接口,如果只有一塊網卡則不用指定

-t:sendtarget,slp,iSNS三種形式,一般用的是sendtarget簡寫為st

-p:IP:port IP為server的IP,port可以省略,默認為3260

發現輸出target後與登錄target有關的

-U 登出

-R 重新登入

-l 登入

-T 指定targetname

-p 指定server的IP/port

-s 顯示session的統計數據


Linux常見服務器存儲類型和iSCSI共享存儲