配置iSCSI部署網路儲存
iSCSI( Internet Small Computer System Interface 網際網路小型計算機系統介面)是由IBM 下屬的兩大研發機構一一加利福尼亞AImaden和以色列Haifa研究中心共同開發的,是一個供硬體裝置使用的、可在IP協議上層執行的SCSI指令集,是一種開放的基於IP協議的工業技術標準。該協議可以用TCP/IP對SCSI指令進行封裝,使得這些指令能夠通過基於IP網路進行傳輸,從而實現SCSI 和TCP/IP協議的連線。對於區域網環境中的使用者來說,採用該標準只需要不多的投資就可以方便、快捷地對資訊和資料進行互動式傳輸及管理。
iSCSI技術是一種新儲存技術,該技術是將現有SCSI介面與乙太網絡(Ethernet)技術結合,使伺服器可與使用IP網路的儲存裝置互相交換資料。
裝置由 SCSI 匯流排連線。iSCSI 的主要功能是在 TCP/IP 網路上的主機系統(啟動器 initiator)和儲存裝置(目標器 target)之間進行大量資料的封裝和可靠傳輸過程。此外,iSCSI 提供了在 IP 網路封裝 SCSI 命令,且以TCP/IP協議傳輸
iSCSI 服務概述
◆常用名詞解釋◆
iSCSI:Internet 小型計算機系統介面 (iSCSI:Internet Small Computer System Interface) Internet 小型計算機系統介面(iSCSI)是一種基於 TCP/IP 的協議,用來建立和管理 IP 儲存裝置、主機和客戶機等之間的相互連線,並建立儲存區域網路(SAN)。
SAN網路:Storage Area Network 儲存區域網路,多采用高速光纖通道,對速率、冗餘性要求高。使用iscsi儲存協議,塊級傳輸。
NAS網路:Network Attachment Storage,網路附件儲存,採用普通乙太網,對速率、冗餘無特別要求,使用NFS、CIFS共享協議,檔案級傳輸。
SAN和NAS的區別:1.SAN一般特指儲存網路的構建方式,NAS一般特指產品。
SAN有單獨的儲存網路,NAS使用現有網路,家庭網路儲存裝置:FREENAS,用的是FREEBSD系統
◆NFS 與 ISCSI 的區別◆
NFS 是以檔案為單位的,共享出去的是檔案
ISCSI是以block為單位,共享出去的是裝置,埠:3260/tcp
iSCSI 部署網路儲存
iSCSI 網路儲存,在工作上分為服務端(target)和客戶端(initiator).iSCSI服務端用於存放硬碟儲存資源的伺服器,能夠為使用者提供可用的儲存資源,iSCSI客戶端則是使用者使用的軟體,用於訪問遠端服務端的儲存資源.
◆配置iSCSI服務端◆
1.通過yum安裝iSCSI服務端,此處已安裝成功,略過本步驟
[[email protected] ~]# yum install -y targetd targetcli
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package targetd-0.8.6-1.el7.noarch already installed and latest version
Package targetcli-2.1.fb46-1.el7.noarch already installed and latest version
Nothing to do
2.安裝成功後,手動啟動iSCSI服務,並設定開機自啟動 (注意:iSCSI服務程式為targetd)
[[email protected] ~]# systemctl restart targetd
[[email protected] ~]# systemctl enable targetd
3.檢視iSCSI服務端共享資源,targetcli是用於管理iSCSI服務的專用命令,在執行命令是可看到互動介面.
[[email protected] ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / .................................................................... [...]
o- backstores ......................................................... [...]
| o- block ............................................................ [Storage Objects: 0]
| o- fileio ........................................................... [Storage Objects: 0]
| o- pscsi ............................................................ [Storage Objects: 0]
| o- ramdisk .......................................................... [Storage Objects: 0]
o- iscsi .............................................................. [Targets: 0]
o- loopback ........................................................... [Targets: 0]
/>
4.進入/backstores/block共享裝置位置,並建立共享裝置名稱 (注意:/backstores/block是iSCSI服務端配置共享裝置的位置)
/> cd backstores/block #進入共享裝置位置
/backstores/block> create disk0 /dev/sdb #建立共享裝置名稱 此處將 /dev/sdb 加入到裝置中命名為disk0
Created block storage object disk0 using /dev/sdb.
/backstores/block> cd / #返回根
/> ls
o- / ............................................................. [...]
o- backstores .................................................. [...]
| o- block ..................................................... [Storage Objects: 1]
| | o- disk0 ................................................... [/dev/sdb (20.0GiB) write-thru deactivated]
| | o- alua .................................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp .................................... [ALUA state: Active/optimized]
| o- fileio .................................................... [Storage Objects: 0]
| o- pscsi ..................................................... [Storage Objects: 0]
| o- ramdisk ................................................... [Storage Objects: 0]
o- iscsi ....................................................... [Targets: 0]
o- loopback .................................................... [Targets: 0]
/>
5.建立iSCSI target名稱及配置共享資源,iSCSI target 名稱是由系統自動生成的,這是一串用於描述共享資源的唯一字串
/> cd iscsi #進入iSCSI目錄
/iscsi> create #建立target標籤
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi>
/iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/ #進入上面的標籤中
/iscsi/iqn.20....8c7dcc63aea8> ls #檢視標籤內容
o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ........ [TPGs: 1]
o- tpg1 ............................................................. [no-gen-acls, no-auth]
o- acls ........................................................... [ACLs: 0]
o- luns ........................................................... [LUNs: 0]
o- portals ........................................................ [Portals: 1]
o- 0.0.0.0:3260 ................................................. [OK]
/iscsi/iqn.20....8c7dcc63aea8> cd tpg1/luns #進入tpg目錄
/iscsi/iqn.20...ea8/tpg1/luns> create /backstores/block/disk0 #標籤與裝置繫結
Created LUN 0.
/iscsi/iqn.20...ea8/tpg1/luns>
6.配置訪問控制列表(ACL),iSCSI裝置無需密碼進行驗證,只需知道標籤名稱即可通過,因此需要在iSCSI服務端的配置檔案中寫入一串能夠驗證資訊的名稱,這裡推薦在系統生成的標籤後面加上識別符號,:client引數,保證標籤唯一性,同時方便區別和管理
/> cd iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 #進入指定標籤
/iscsi/iqn.20....8c7dcc63aea8> cd tpg1/acls #進入ACL配置列表
/iscsi/iqn.20...ea8/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client #建立用於掛載的標籤
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client
Created mapped LUN 0.
/iscsi/iqn.20...ea8/tpg1/acls>
7.設定iSCSI伺服器的監聽IP地址和埠號,即在portals引數目錄中寫上伺服器的IP地址,接下來系統會自動開啟伺服器192.168.1.20的3260號埠,為外部提供共享儲存服務
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/ #進入操作的標籤
/iscsi/iqn.20....8c7dcc63aea8> cd tpg1/portals/ #進入埠配置
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ...................................................................... [Portals: 1]
o- 0.0.0.0:3260 ............................................................... [OK]
/iscsi/iqn.20.../tpg1/portals>
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260 #刪除原有配置
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.1.20 #建立偵聽本機
Using default IP port 3260
Created network portal 192.168.1.20:3260.
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ...................................................................... [Portals: 1]
o- 192.168.1.20:3260 .......................................................... [OK]
/iscsi/iqn.20.../tpg1/portals>
8.配置全部妥當後檢查一下,沒問題的話儲存.
/iscsi/iqn.20.../tpg1/portals> cd /
/>
/> ls
o- / ................................................................... [...]
o- backstores ........................................................ [...]
| o- block ........................................................... [Storage Objects: 1]
| | o- disk0 ......................................................... [/dev/sdb (20.0GiB) write-thru activated] #磁碟名稱
| | o- alua ........................................................ [ALUA Groups: 1]
| | o- default_tg_pt_gp .......................................... [ALUA state: Active/optimized]
| o- fileio .......................................................... [Storage Objects: 0]
| o- pscsi ........................................................... [Storage Objects: 0]
| o- ramdisk ......................................................... [Storage Objects: 0]
o- iscsi ............................................................. [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ..... [TPGs: 1] #標籤名稱
| o- tpg1 .......................................................... [no-gen-acls, no-auth]
| o- acls ......................................................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client ......... [Mapped LUNs: 1] #自定義標籤
| | o- mapped_lun0 .............................................................. [lun0 block/disk0 (rw)]
| o- luns ......................................................................... [LUNs: 1]
| | o- lun0 ..................................................... [block/disk0 (/dev/sdb) (default_tg_pt_gp)]
| o- portals ...................................................................... [Portals: 1]
| o- 192.168.1.20:3260 .......................................................... [OK] #開啟埠
o- loopback ........................................................................... [Targets: 0]
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
[[email protected] ~]#
9.重啟SCSI服務,到此伺服器已經配置完畢
[[email protected] ~]# systemctl restart targetd
[[email protected] ~]# systemctl enable targetd
◆配置Linux客戶端◆
1.安裝iSCSI客戶端元件,在RHEL7系統中已經預設整合,如果沒有請執行以下步驟,此處就略過
[[email protected] ~]# yum install -y iscsi-initiator-utils iscsi-initiator-utils-iscsiuio
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager .
Package iscsi-initiator-utils-6.2.0.874-7.el7.x86_64 already installed and latest version
Package iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64 already installed and latest version
Nothing to do
2.編輯iSCSI客戶端中的initiator名稱檔案,把服務端的訪問控制列表名稱填寫進來,然後重啟iscsid服務程式,並將其加入到開機自啟動列表
[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi
[[email protected] ~]#
[[email protected] ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client
[[email protected] ~]# systemctl restart iscsid
[[email protected] ~]# systemctl enable iscsid
3.發現iSCSI服務端儲存資源,其中:-m discovery 引數的目的是掃描並發現儲存資源,-t st 引數為執行掃描操作的型別,-p 引數後為iSCSI服務端的IP地址
[[email protected] ~]# iscsiadm -m discovery -t st -p 192.168.1.20 #下圖顯示,找到一個標籤地址
192.168.1.20:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8
[[email protected] ~]#
4.接下來準備登陸iSCSI伺服器,其中:-m node 引數為將客戶端主機作為一臺節點伺服器,-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 引數為要使用的儲存標籤,-p 後面為iSCSI伺服器的IP地址, --login 引數為登陸伺服器,如果加 -u引數為解除安裝掛載資源
[[email protected] ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 -p 192.168.1.20 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] successful.
5.此時在iSCSI客戶端上會多出一個/dev/sdb磁碟裝置檔案,接下來我們直接格式化掛在到/network-disk目錄下
[email protected] ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Nov 4 11:45 /dev/sda
brw-rw----. 1 root disk 8, 1 Nov 4 11:45 /dev/sda1
brw-rw----. 1 root disk 8, 2 Nov 4 11:45 /dev/sda2
brw-rw----. 1 root disk 8, 16 Nov 4 12:06 /dev/sdb #此處就是遠端的磁碟
[[email protected] ~]# mkfs.xfs /dev/sdb #格式化這個裝置
meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~]# mkdir /network-disk #建立掛載目錄
[[email protected] ~]# mount /dev/sdb /network-disk/ #掛載裝置
[[email protected] ~]#
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 17G 1.2G 16G 7% /
devtmpfs 98M 0 98M 0% /dev
tmpfs 110M 0 110M 0% /dev/shm
/dev/sda1 1014M 130M 885M 13% /boot
/dev/sr0 4.4G 4.4G 0 100% /mnt
/dev/sdb 20G 33M 20G 1% /network-disk
iSCSI客戶端經過以上步驟之後,這個裝置檔案就可以像使用本地磁碟檔案一樣的操作啦
[拓展:配置自動掛載]
由於/dev/sdb/是一個網路裝置,而iSCSI是基於TCP/IP網路傳輸資料的,因此在配置自動掛載是應該加入_netdev引數,說明其是一個網路裝置
[[email protected] /]# ll /dev/disk/by-uuid/
total 0
lrwxrwxrwx. 1 root root 10 Nov 4 11:45 12b3708e-7ca4-4911-bfa2-57b85960e8e5 -> ../../dm-0
lrwxrwxrwx. 1 root root 9 Nov 4 11:45 2018-03-22-19-04-59-00 -> ../../sr0
lrwxrwxrwx. 1 root root 10 Nov 4 11:45 3d4eea6b-1db9-4d30-9174-bfac6faa4cab -> ../../sda1
lrwxrwxrwx. 1 root root 10 Nov 4 11:45 e791c0bf-f6e9-4843-b18d-be40cf3964c2 -> ../../dm-1
lrwxrwxrwx. 1 root root 9 Nov 4 12:08 ff233cc4-2255-4973-a686-9d394384faf6 -> ../../sdb
[[email protected] /]# vim /etc/fstab
[[email protected] /]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Oct 13 12:32:13 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=3d4eea6b-1db9-4d30-9174-bfac6faa4cab /boot xfs defaults 0 0
UUID=ff233cc4-2255-4973-a686-9d394384faf6 /network-disk xfs defaults,_netdev 0 0
[[email protected] /]# mount -a
◆配置Windows客戶端◆
1.單擊控制面板 --> 管理工具 --> iSCSI發起程式
2.在目標選項卡 --> 輸入伺服器IP地址 --> 單擊快速連線
3.選擇配置選項卡 --> 單擊更改 --> 在標籤末尾加上自定義的字元,此處為:client --> 單擊確定
4.單擊目標選項卡 --> 單擊下方的連線按鈕
5.單擊此電腦 --> 右鍵選擇管理 --> 選擇磁碟管理 --> 即可看到磁碟資訊
部署iSCSI儲存-Config版
◆服務端配置◆
1.配置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
2.安裝相應軟體
yum install -y scsi-target-utils
3.新增兩塊硬碟,建立LVM邏輯卷整合磁碟空間
pvcreate /dev/sdb /dev/sdc
vgcreate my_vg /dev/sdb /dev/sdc
lvcreate -L 5G -n my_lv my_vg
mkfs.ext4 /dev/my_vg/my_lv
4.建立IQN儲存標籤
tgtadm -L iscsi -o new -m target -t 1 -T iqn.2018-1.com.lyshark.www:my_lvm #建立標籤
tgtadm –L iscsi –o show –m target #查到標籤
-------------------------------------------------------------------------
[引數說明]
-L #指定操作型別為iscsi
-O #指定為new新建
-m #指定伺服器
-t #標籤編號
-T #指定域名:注意要反寫
-l #指定lun的ID號
-t #指定客戶機的地址<如 –l 192.168.1.1>
-------------------------------------------------------------------------
5.繫結儲存資源
tgtadm -L iscsi -o new -m lu -t 1 -l 1 -b /dev/my_vg/my_lv #繫結儲存資源
tgtadm -L iscsi -o show -m target #再次檢視
6.設定許可權允許誰來訪問
tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.1.1 #允許192.168.1.1訪問
-------------------------------------------------------------------------
#注:如果想讓結果永久生效要寫入配置檔案,<只需要這一步全部搞定>
vim /etc/tgt/targets.conf
<target iqn.2018-01.com.lyshark.www:my_lvm> #指定標籤名<my_lvm>
backing-store /dev/my_vg/my_lv #伺服器共享的資源
initiator-address 192.168.1.1 #允許的登陸客戶端
</target>
-------------------------------------------------------------------------
7.啟動並設定開機自啟動
systemctl restart tgtd
chkconfig tgtd on
◆Linux客戶端配置◆
1.在客戶端安裝相應軟體
yum install -y iscsi-initiator-utils
systemctl restart iscsid
2.掃描服務端可用節點
iscsiadm -m discovery -t sendtargets -p 192.168.1.1 #指定伺服器IP
3. <掛載 解除安裝> 儲存節點到客戶端 掛載>
iscsiadm -m node -T iqn.2018-01.com.lyshark.www:my_lvm --login #掛載
iscsiadm -m node -T iqn.2018-01.com.lyshark.www:my_lvm --logout #解除安裝
4.客戶端檢視網路驅動器
[[email protected] ~] #fdisk -l
Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
5.格式化與掛載
mkfs.ext4 /dev/sdb
mkdir /ghost/
mount /dev/sdb /ghost/
6.配置開機自動掛載
vim /etc/fstab
[寫入內容]
/dev/sdb /ghost ext4 defaults,_netdev 0 0
mount -a #重新掛載