Iscsi

iscsiadm 實際上是做什麼的?

  • May 26, 2016

好的,這裡我說的是centos7系統相關的iscsi啟動器。

當我們在文件上設置正確的 iscsi 配置時; /etc/iscsi/initiatorname.iscsia/etc/iscsi/iscsid.conf我們仍然需要做

iscsiadm --mode discovery --type sendtargets --portal 192.168.1.81

iscsiadm --mode node --targetname iqn.2014-08.com.example:t1 --portal 192.168.1.81 --login

否則,即使使用# systemctl enable iscsi,系統也不會載入 scsi 目標。

我的問題是這個iscsiadm工具實際上是做什麼的。

  • 它是否會在後台進行任何配置更改,因為它只需要執行一次。

iscsiadm使用配置文件執行時,--login將在/var/lib/iscsi/nodes/. 該文件包含特定的 scsi 目標相關資訊,我認為 iscsid 守護程序使用這些資訊來訪問目標。

open-iscsi 子系統包含三個部分:iscsiadm 命令、iscsid 守護程序和核心。

使用者空間部分(即 iscsiadm 和 iscsid)保留了兩個數據庫,可以說是。我之所以這麼說因為“數據庫”是文件和目錄,而不是真正的數據庫。

有一個發現數據庫,也有一個目標數據庫。

當您執行時iscsiadm -m discovery -t st -P IPADDR,您會填充發現數據庫,該數據庫會跟踪此目標的設置,並使用已發現目標的記錄填充節點數據庫。

在這一步之後,您可以執行iscsiadm -m node以查看發現的節點。

執行時iscsiadm -m node -t TGT_NAME -P IPADDR -l,您告訴 iscsiadm/iscsid 您要查找目標名稱為 TGT_NAME 和門戶 IP 地址為 IPADDR 的節點,並登錄到該節點。

順便說一句,您可以通過執行以下命令來完成這兩個步驟:

iscsiadm -m discovery -t st -p IPADDR -l

或者,在發現之後,您可以執行:

iscsiadm -m node -l

登錄所有節點。

我沒有 CentOS 7,但我懷疑至少有兩個 iscsi 服務。如果你執行systemctl list-unit-files | fgrep iscsi,你可能會看到更多的“iscsi.service”。

在 openSUSE 上,有三個單元文件:iscsid.socket、iscsid.service 和 iscsi.service。

iscsid.socket 和 iscsid.service 文件一起使 iscsid 套接字啟動。iscsid.service 基本上是 iscsid 守護程序。

iscsi.service 文件位於 iscsid.service 之上。該服務僅登錄到標有您希望在啟動時登錄的標誌的目標。

這是一個如何設置自動啟動目標的連結,但這是一個 SUSE 文件,所以是 YMMV。

您還可以加入一個 open-iscsi 郵件列表:open-iscsi@googlegroups.com

引用自:https://unix.stackexchange.com/questions/234659