linux iscsi配置

来源:https://www.cnblogs.com/tanglixin/archive/2018/03/09/8533303.html
-Advertisement-
Play Games

iSCSI 是一種 SAN的設備而 SAN的設備主要是提供 Server 存儲體的空間.相較於傳統的 SAN 是以光纖為傳輸媒體而 iSCSI(Internet SCSI)他是 IP-based 的數據存儲的設備.使得他能更容易應用在企業中. 1.一般的網卡就能當作 iSCSI Target 但是缺 ...


iSCSI 是一種 SAN的設備而 SAN的設備主要是提供 Server 存儲體的空間.相較於傳統的 SAN 是以光纖為傳輸媒體而 iSCSI(Internet SCSI)他是 IP-based 的數據存儲的設備.使得他能更容易應用在企業中. 1.一般的網卡就能當作 iSCSI Target 但是缺點就是會消耗太多的 CPU 資源,針對這樣的問題所以發展出另外兩種的 iSCSI Target 網卡.2.一種是軟體的 iscsi + TOE (TOE:TCP/IP offload engine),它可以針對 TCP/IP 的封包直接在網路卡 上運算所以不會因此占用系統上的 CPU 的使用率, 3.另外一種就是硬體式的 iSCSI + TOE. 它除了具有 TOE 還可以直接針對 iSCSI 的數據做運算.基本上它的使用上就像是一般存儲設備 HBA.你可以直接在 BIOS 選項作 iSCSI 硬體開機的動作.
當前 RHEL5 和 SLES10 都已經將 iSCSI Target 當作預設的組件,所以之前的版本如 RHEL4 需要使用 iSCSI Target 這邊介紹另外一套 IET (iSCSI Enterprise Target) 首先要先下載iSCSI Target 我們可以在 http://iscsitarget.sourceforge.net/ 中可以看到.直接使用最新一版即可.下載下來是 Source code 所以基本的 Linux(RedHat, Fedora...)都可以直接編輯使用.
1.Target端的配置
target端即磁碟陣列或其他裝有磁碟的主機。通過iscsitarget工具將磁碟空間映射到網路上,initiator端就可以尋找發現並使用該磁碟。
註意,一個target主機上可以映射多個target到網路上,即可以映射多個塊設備到網路上。
1)軟體包
iscsitarget
可以從http://sourceforge.net/projects/iscsitarget/files/下載最新版本。
2)編譯安裝
很簡單,解包,編譯,安裝就可以。
tar zxvf iscsitarget-1.4.19.tar.gz
cd iscsitarget-1.4.19/
make
make install
該包會將iscsitarget需要的內核模塊,用戶層工具,服務啟動腳本,配置文件,man手冊等安裝到系統中
包括:
iscsi_trgt.ko 內核模塊
ietd iscsitarget的守護進程
ietadm iscsitarget的用戶層管理工具
/etc/init.d/iscsi-target iscsitarget的啟動腳本
/etc/ietd.conf iscsitarget的配置文件
/etc/initiators.allow 控制initiator對target的訪問許可權。
/etc/initiators.deny 控制initiator對target的訪問許可權。
/etc/iet/targets.allow 控制不同target的被訪問許可權。
3)配置/etc/ietd.conf
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
Lun 0 Path=/dev/sda1,Type=fileio
Alias lun0
大致說明:
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz 表示該ISCSI Target 的命名,命名在同一子網內應該是唯一的,標準命名方式為:
"Target "+ target名字 (格式如下: iqn.yyyy-mm.<reversed domain name>[:identifier] )
“Lun 0 Path=/dev/sda1”表示塊設備號為0,映射的磁碟為/dev/sda1。
本次配置中 Type 的設定為"fileio",我主要用來對一個磁碟進行存儲共用。
當然也可以針對需要設置為: "file" or "LVM"。
除此之外還有很多其他參數可以設置,具體參考:
http://manpages.ubuntu.com/manpages/hardy/man5/ietd.conf.5.html
4)啟動iscsitarget
/etc/init.d/iscsi-target start
2.inititor端配置
1)軟體包
源碼包是open-iscsi,經過rpm包封裝後,名字是iscsi-initiator-utils。
2)主要安裝了下麵一些文件
/etc/iscsi/iscsid.conf
/etc/rc.d/init.d/iscsi
/etc/rc.d/init.d/iscsid
/sbin/iscsi-iname
/sbin/iscsiadm
/sbin/iscsid
/sbin/iscsistart
/var/lib/iscsi
/var/lib/iscsi/ifaces
/var/lib/iscsi/isns
/var/lib/iscsi/nodes
/var/lib/iscsi/send_targets
/var/lib/iscsi/slp
/var/lib/iscsi/static
/var/lock/iscsi
3)連接target
首先要保證iscsid守護進程啟動,否測iscsiadm的一系列操作都會失敗:
/etc/init.d/iscsid start
發現target:
iscsiadm -m discovery -t sendtargets -p <iSCSI target ip>:<port>
預設情況下<port>是3260,除非你有特殊的設置。
與target建立連接:
iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login
此處target-name為上一步發現target時的獲得的。
此時通過fdisk -l就可以看到映射過來的磁碟,該磁碟可以像使用本地磁碟一樣進行格式化,分區等操作。
可以通過以下命令實驗:
fdisk /dev/sdc
mkfs.ext3 /dev/sdc1
mount /dev/sdc1 /mnt
dd if=/dev/zero f=100M.img bs=1M count=100
3.target和initiator間使用CHAP驗證。
CHAP驗證有兩種,一種是針對discovery的,即如果不符合驗證的用戶名和密碼,則initiator端便無法通過"-m discovery"發現指定主機上的任何一個target。
命令會返回驗證失敗,如下:
$ iscsiadm -m discovery -t sendtargets -p 192.168.29.224
iscsiadm: Login failed to authenticate with target
iscsiadm: discovery login to 192.168.29.224 rejected: initiator error (02/01), non-retryable, giving up
另一種是針對node login的,即果不符合驗證的用戶名和密碼,則initiator端編無法通過--login登錄指定主機上的某一個target。
命令會返回驗證失敗,如下:
$ iscsiadm -m discovery -t sendtargets -p 192.168.29.224 #成功discover指定主機上的target
192.168.29.224:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz
$ iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.29.224 --login #無法通過驗證,登錄失敗
Logging in to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.29.224,3260]
iscsiadm: Could not login to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.29.224,3260]:
iscsiadm: initiator reported error (15 - already exists)
1)在initiator端
配置/etc/iscsi/iscsid.conf,添加如下選項:
#以下三個是針對discovery的。
#discovery時啟用CHAP驗證
discovery.sendtargets.auth.authmethod = CHAP
#initiator的名字,也可以是別的字元串,只要和target端IncomingUse配置的名字一樣就行
discovery.sendtargets.auth.username = iqn.1994-05.com.fedora:ba72af8aaf5
#驗證密碼,要和target端相同
discovery.sendtargets.auth.password = 1234567890ab
#以下三個是針對login的。
#login時啟用CHAP驗證
node.session.auth.authmethod = CHAP
#initiator的名字,也可以是別的字元串,只要和target端IncomingUse配置的名字一樣就行
node.session.auth.username = iqn.1994-05.com.fedora:ba72af8aaf5
#驗證密碼,要和target端相同
node.session.auth.password = 1234567890
然後重啟initiator。
/etc/init.d/iscsid stop
/etc/init.d/iscsid start
2)在target端
針對discovery配置/etc/ietd.conf,在全局參數處(定義第一個target之前),添加如下一行:
IncomingUser iqn.1994-05.com.fedora:ba72af8aaf5 1234567890ab
IncomingUser 和 OutgoingUser 表示ISCSI 客戶端的用戶名和密碼,用戶名和密碼都可以為空,預設為allow許可權,密碼最長可為12個字元。
此處iqn.1994-05.com.fedora:ba72af8aaf5是initiator的名字(也可以是別的字元串),1234567890ab是initiator的密碼,名字和密碼必須和initiator上/etc/iscsi/iscsid.conf
中的用戶名密碼一致。如果不一致,則initiator執行"-m discovery" 是就會失敗。
針對login配置/etc/ietd.conf,既然是針對login的,那麼添加IncomingUser是就應該添加的指定的target上。如下:
Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
Lun 0 Path=/dev/sda1,Type=fileio
IncomingUser iqn.1994-05.com.fedora:ba72af8aaf5 1234567890
然後重啟iscsitarget
/etc/init.d/iscsi-target stop
/etc/init.d/iscsi-target start

iscsi操作總結
增加iscsi存儲
(1)發現iscsi存儲:

iscsiadm -m discovery -t st -p ISCSI_IP
(2)查看iscsi發現記錄:

iscsiadm -m node
(3)登錄iscsi存儲:

iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l
(4)開機自動:

iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op update -n node.startup -v automatic
刪除iscsi存儲
(1)登出iscsi存儲

iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u
(2)登出iscsi所有登錄

iscsiadm -m node --logoutall=all
(3)刪除iscsi發現記錄:

iscsiadm -m node -o delete -T LUN_NAME -p ISCSI_IP
登入需驗證碼的節點
(1)開啟認證
iscsiadm -m node -T LUN_NAME -o update --name node.session.auth.authmethod --value=CHAP
*.使用-o同--op
(2)添加用戶
iscsiadm -m node -T LUN_NAME --op update --name node.session.auth.username --value=[用戶名]
(3)添加密碼
iscsiadm –m node –T LUN_NAME –op update –name node.session.auth.password –value=[密碼]


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 .Ubuntu所在的分區,也就是/dev/sda的那個盤(如果想直觀看到,請在Ubuntu的應用市場裡面搜索gparted,好評最多的那個就是,安裝好了以後,點super/win鍵,搜索gparted就出來了,看下圖),一定安裝到SSD硬碟裡面,因為這樣速度快很多很多,之後準備HDD硬碟存放數據 ...
  • 因為工作環境基本是以跨平臺為主,所以純mac本地化的AppleScript一直關註是不夠的,前幾天找資料發現AppleScript也在迅速的進步著,目前已經對Javascript做了比較好的支持 當然早就支持,現在只是感覺上更好了。這項技術的全稱是JavaScript for Automation, ...
  • macOS延續自BSD Unix, Linux則是從內核開始重新編寫但延續Unix使用方式的Unix。所以mac還有linux程式員,一般都算是 nix程式員,儘管其中還有不少的區別。 Windows從版本10開始做出的最大改變,可能就是內置的linux子系統,原本的安裝方式很簡單,網上很多介紹,一 ...
  • 雖然是mac老司機,但每次裝機總會碰到一些小問題需要臨時上網搜索一下解決方案,所以留下些文字備忘一下: 1. 研發用的新機最好選擇語言用英文版,中文版通常的使用沒問題,但很多的地方的翻譯都不准確,而且有一些測試不充分的BUG。比如我曾經碰到過配置IP地址,多個IP地址之間應當是用英文分號分割,結果也 ...
  • 事實上,FHS針對目錄樹架構僅定義出三層目錄下應該放置哪些數據,分別是下麵三個目錄: 一、/(根目錄):與開機系統有關 根目錄(/)所在分區應該越小越好,且應用程式所安裝的軟體最好不要與根目錄放在同一分區內,保持根目錄越小越好。這樣不但性能好,根目錄所在文件系統也較不容易發生問題 在Linux系統上 ...
  • yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟體包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟體包,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。 yum提供了查找、安裝、刪除某一個 ...
  • ls -l和ls -al的區別:第一個不會顯示隱藏文件,第二個會顯示隱藏文件(以點(.)開頭的文件) 一、許可權對文件(r、w、x主要針對文件的內容而言)的重要性 r:可讀取文件內容 w:可以編輯、新增、修改該文件的內容(但不含刪除文件) x:該文件具有可以被系統執行的許可權 二、許可權對目錄的重要性 r ...
  • 今天簡單的敲幾個命令 1.網路介面參數 -- ifconfig 這個命令可以設置網卡介面ip地址,子網掩碼等、 ifconfig xx(網卡名) down 關閉網卡介面 ifconfig xx(網卡名) up 開啟網卡介面 2.查看主機參數 -- hostnamectl 顯示或設置主機名稱 host ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...