如何在centos7中搭建 ISCSI 服務
前言:
硬盤上的數據通過計算機主板上的總線與CPU、內存設備進行數據交換,這種物理環境上的限制給硬盤資源的共享帶來了各種不便。後來,IBM公司開始動手研發基於TCP/IP協議和SCSI接口協議的新型存儲技術,這也就是我們目前能看到的互聯網小型計算機系統接口(Internet Small Computer System Interface)。這是一種將SCSI接口與以太網技術相結合的新型存儲技術,可以用來在網絡中傳輸SCSI接口的命令和數據。這樣,克服了傳統SCSI接口設備的物理侷限性,實現了跨區域的存儲資源共享。
總結:
iSCSI技術實現物理硬盤設備與TCP/IP網絡協議的相互結合,使得用戶可以通過互聯網方便地訪問遠程機房提供的共享存儲資源。
缺點:
(1) 受限於網速的制約。
(2) 互聯網作為數據傳輸的載體,受限於傳輸速率和穩定性。
一、準備工作
1、
iSCSI服務端:192.168.102.154 Centos7
iSCSI客戶端:192.168.102.132 Centos7
![如何在centos7中搭建 ISCSI 服務](http://p2.ttnews.xyz/loading.gif)
2、iSCSI服務端採用RAID5+備份盤
![如何在centos7中搭建 ISCSI 服務](http://p2.ttnews.xyz/loading.gif)
3、iSCSI服務端和客戶端關閉防火牆
二、iSCSI服務端操作
1、創建RAID磁盤陣列
(1)
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e]
-Cv:創建陣列並顯示過程
/dev/md0:生成的陣列組名稱
-n 3:創建RAID 5磁盤陣列所需的硬盤個數
-l 5:RAID磁盤陣列的級別
-x 1:磁盤陣列的備份盤個數
/dev/sd[b-e]:表示sdb、sdc、sdd、sde
(2)查看設備詳情
mdadm -D /dev/md0
......
2、配置iSCSI服務端
(1)安裝iSCSI服務端程序以及配置命令工具
yum -y install targetd targetcli
......
(2)啟動iSCSI服務端程序targetd,並加入到開機啟動項
systemctl start targetd
systemctl enable targetd
(3)配置iSCSI服務端共享資源。
targetcli是用於管理iSCSI服務端存儲資源的專用配置命令,將iSCSI共享資源的配置內容抽象成"目錄"的形式,我們只需將各類配置信息填入到相應的"目錄"中即可。
targetcli
(4)將md0文件加入到配置共享設備
/backstores/block是iSCSI服務端配置共享設備的位置。我們需要把剛剛創建的RAID 5磁盤陣列md0文件加入到配置共享設備的"資源池"中,並將該文件重新命名為disk0。
cd backstores/block
create disk0 /dev/md0
查看disk0
(5) 創建iSCSI target名稱
iSCSI target名稱是由系統自動生成的,這是一串用於描述共享資源的唯一字符串。系統在生成這個target名稱後,還會在/iSCSI參數目錄中創建一個與其字符串同名的新"目錄"用來存放共享資源。
cd iscsi
create
補充:
iSCSI target名稱
iqn.2003-01.org.linux-iSCSI.iSCSI-server.x8664:sn.4fbfc7fa1e2d
(6)配置共享資源
我們需要把前面加入到
iSCSI共享資源池中的硬盤設備(disk0)添加到這個新目錄中,這樣用戶在登錄iSCSI服務端後,即可默認使用這硬盤設備提供的共享存儲資源了。詳情見下圖:
(7)設置訪問控制列表(ACL)
iSCSI協議是通過客戶端名稱進行驗證的,用戶在訪問存儲共享資源時不需要輸入密碼,只要
iSCSI客戶端的名稱與服務端中設置的訪問控制列表中某一名稱條目一致即可,因此需要在iSCSI服務端的配置文件中寫入一串能夠驗證用戶信息的名稱。acls參數目錄用於存放能夠訪問iSCSI服務端共享存儲資源的客戶端名稱。詳情見下圖:
補充:
iqn.2003-01.org.linux-iSCSI.iSCSI-server.x8664:sn.4fbfc7fa1e2d這個是系統剛剛生成的iSCSI target。
(8) 設置iSCSI服務端的監聽IP地址和端口號
生產環境中的服務器上可能有多塊網卡,哪個網卡或IP地址對外提供共享存儲資源。我們需要在配置文件中手動定義iSCSI服務端的信息,即在portals參數目錄中寫上服務器的IP地址。系統自動開啟服務器192.168.102.154的3260端口將向外提供iSCSI共享存儲資源服務。
詳情見下圖:
補充:
Could not create NetworkPortal in configFS:
已經存在一個3260端口,我們將其刪除,再次添加即可。
(9)
配置妥當後檢查配置信息,重啟iSCSI服務端程序。
補充:
在確認信息無誤後輸入exit命令來退出配置。千萬不要使用Ctrl + C組合鍵結束進程,這樣不會保存配置文件!!!
重啟服務
三、配置iSCSI客戶端
1、 安裝了iSCSI客戶端服務程序initiator。
注意:
現在是在iSCSI客戶端操作
yum install iscsi-initiator-utils
......
2、 編輯配置文件initiator
iSCSI協議是通過客戶端的名稱來進行驗證,名稱也是iSCSI客戶端的唯一標識,必須與服務端配置文件中訪問控制列表中的信息一致。
編輯iSCSI客戶端中的initiator名稱文件,把服務端的訪問控制列表名稱填寫進來。
vim /etc/iscsi/initiatorname.iscsi
填入服務端訪問控制列表名稱
iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.4fbfc7fa1e2d
(1) 重啟客戶端iSCSId服務程序並將其加入到開機啟動項中
systemctl restart iscsid
systemctl enable iscsid
四、iSCSI客戶端訪問並使用共享存儲資源
1、iSCSIadm
iSCSIadm是用於管理、查詢、插入、更新或刪除iSCSI數據庫配置文件的命令行工具。
用戶需要先使用這個工具掃描發現遠程iSCSI服務端,然後查看找到的服務端上有哪些可用的共享存儲資源。
iscsiadm -m discovery -t st -p 192.168.102.154
-m discovery:目的是掃描並發現可用的存儲資源
-t st:執行掃描操作的類型
-p 192.168.102.154:iSCSI服務端的IP地址
2、登錄iSCSI服務端
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.4fbfc7fa1e2d -p 192.168
.102.154 --login
-m node:將客戶端所在主機作為一臺節點服務器
-T iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.4fbfc7fa1e2d:要使用的存儲資源
-p 192.168.102.154:對方iSCSI服務端的IP地址。
--login:進行登錄驗證
3、 格式化
iSCSI客戶端成功登錄之後,會在客戶端主機上多出一塊名為/dev/sdb的設備文件
mkfs.xfs /dev/sdb
4、 掛載
mkdir /iscsi
mount /dev/sdb /iscsi
df -h
從此以後,這個設備文件就如同是客戶端本機主機上的硬盤一樣。
5、 開機掛載
blkid命令用於查看設備的名稱、文件系統及UUID。
blkid | grep /dev/sdb
寫入
注意:
_netdev:當系統聯網後再進行掛載操作,以免系統開機時間過長或開機失敗。
補充:
(1)如果我們不再需要使用iSCSI共享設備資源,可以用iscsiadm命令的-u參數將其設備卸載。
例如:
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.iscsi-server.x8664:sn.4fbfc7fa1e2d -u
(2)如果重啟主機測試是否掛載失敗,請注意自己的防火牆和selinux
總結:
該篇篇幅還是較長的,感謝諸位的支持。
該篇用到了RAID5+備份盤,後期會補上關於RAID系列的教程。
閱讀更多 程序員日常筆記 的文章