iscsiadm 實際上是做什麼的?
好的,這裡我說的是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