iscsi網絡存儲服務搭建-學習筆記

1. 概述

iSCSI (Internet Small Computer System Interface),這種將scsi節後與以太網技術相結合的新型存儲技術,能夠用來在網絡中傳輸scsi節後的命令和數據,使得用戶能夠經過互聯網方便地訪問遠程機提供的共享存儲資源。node

2. 服務器端建立raid磁盤陣列

使用raid,能夠保證服務器端提供存儲資源的穩定性和可用性,這裏使用raid5。linux

# 建立md0
[root@localhost Desktop]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e]
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 5238272K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

# 查看md0狀態
[root@localhost Desktop]# mdadm -D /dev/md0
......
         Layout : left-symmetric
     Chunk Size : 512K

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : 9e7dc640:37bde867:d3926c0f:0565156e
         Events : 20

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde

3. 配置iSCSI服務端

主機 系統 ip
服務端 rhel 7 192.168.137.10

3.1 使用yun安裝targetd 、targetcli

# 安裝
[root@localhost Desktop]# yum install targetd targetcli -y
# 啓動,設置開機自啓動
[root@localhost Desktop]# systemctl restart targetd
[root@localhost Desktop]# systemctl enable targetd
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-user.target.wants/targetd.service'

3.2 配置iscsi服務器端的共享資源

使用targetcli命令管理iscsi的配置,它提供了一個交互式的配置界面,相似fdisk命令shell

# 執行targetcli進入配置界面
[root@localhost Desktop]# targetcli 
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb34
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]
/> 
#進入到 /backstores/block 目錄,將建立的md0添加到共享設備的「資源池」中,將文件從新命名爲disk0
/> cd /backstores/block 
/backstores/block> create disk0 /dev/md0 
Created block storage object disk0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 1]
  | | o- disk0 ..................... [/dev/md0 (10.0GiB) write-thru deactivated]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 0]
  o- loopback ..................................................... [Targets: 0]
/>

3.3 建立iscsi target名稱及配置共享資源

iscsi target名稱是由系統自動生成的,這是一串用於描述共享資源的惟一字符串,用戶在掃描iscsi服務端時會顯示這個target名稱。數據庫

# 進入到/iscsi目錄下,生成target名稱,同時會建立一個同名的「目錄」,來存放共享資源
/> cd iscsi 
/iscsi> create 
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d.
Created TPG 1.
/iscsi> ls
o- iscsi ................................................ [Targets: 1]
  o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d  [TPGs: 1]
    o- tpg1 ................................... [no-gen-acls, no-auth]
      o- acls .............................................. [ACLs: 0]
      o- luns .............................................. [LUNs: 0]
      o- portals ........................................ [Portals: 0]
/iscsi> 
# 進入到新建立的目錄中,將disk0添加到這個新目錄
/iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d/tpg1/luns 
/iscsi/iqn.20...01d/tpg1/luns> create /backstores/block/disk0 
Created LUN 0.

3.4 設置訪問控制列表(ACL)

iscsi協議是經過客戶端名稱進行驗證的,用戶在訪問存儲共享資源是不須要輸入密碼,只要iscsi客戶端的名稱與服務端中設置的訪問控制列表中某一名稱條目一致便可。acls參數目錄用於存放可以訪問iscsi服務端共享存儲資源的客戶端名稱。json

# 在iscsi服務端的配置文件中寫入一串可以驗證用戶信息的名稱,這裏使用target名稱,加上:client,這個是本身定義的字符串,具備惟一性便可
/iscsi/iqn.20...01d/tpg1/luns> cd ..
/iscsi/iqn.20...6110e01d/tpg1> cd acls 
/iscsi/iqn.20...01d/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d:client
Created mapped LUN 0.
/iscsi/iqn.20...01d/tpg1/acls>

3.5 設置iscsi服務端監聽的IP和端口號

/iscsi/iqn.20...01d/tpg1/acls> cd ..
/iscsi/iqn.20...6110e01d/tpg1> cd portals 
/iscsi/iqn.20.../tpg1/portals> create 192.168.137.10
Using default IP port 3260
Created network portal 192.168.137.10:3260.

3.6 檢查配置信息,退出編輯

/iscsi/iqn.20.../tpg1/portals> ls /
o- / ........................................................... [...]
  o- backstores ................................................ [...]
  | o- block .................................... [Storage Objects: 1]
  | | o- disk0 ............. [/dev/md0 (10.0GiB) write-thru activated]
  | 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.b7056110e01d  [TPGs: 1]
  |   o- tpg1 ................................. [no-gen-acls, no-auth]
  |     o- acls ............................................ [ACLs: 1]
  |     | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d:client  [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ................... [lun0 block/disk0 (rw)]
  |     o- luns ............................................ [LUNs: 1]
  |     | o- lun0 ........................... [block/disk0 (/dev/md0)]
  |     o- portals ...................................... [Portals: 1]
  |       o- 192.168.137.10:3260 ................................ [OK]
  o- loopback ........................................... [Targets: 0]
/iscsi/iqn.20.../tpg1/portals> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

3.7 重啓targetd服務,配置防火牆

[root@localhost Desktop]# systemctl restart targetd
[root@localhost Desktop]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@localhost Desktop]# firewall-cmd --reload 
success

iscsi服務器端配置完成。vim

4. 配置linux客戶端

4.1 使用yum安裝客戶端軟件iscsi-initiator-utils

[root@localhost Desktop]# yum install iscsi-initiator-utils -y

4.2 修改配置文件

編輯客戶端中的initiator名稱文件,把服務器端的訪問控制列表名稱填寫進來(服務器端acls目錄中自定義的名稱),重啓服務。服務器

[root@localhost Desktop]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName= iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d:client
[root@localhost Desktop]# systemctl restart iscsid
[root@localhost Desktop]# systemctl enable iscsid

4.3 掃描iscsi服務器端,查看可用的共享存儲資源

口訣「先發現,在登錄,最後掛載並使用」。
iscsiadm 用於管理、查詢、插入、更新或刪除iscsi數據庫配置文件的工具。網絡

  • -m discovery 掃描並發現可用的存儲資源
  • -t st 執行掃描操做的類型
  • -p 192.168.137.10 參數爲iscsi服務端的IP地址
[root@localhost Desktop]#  iscsiadm -m discovery -t st -p 192.168.137.10
192.168.137.10:3260,1  iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d

4.4 登陸iscsi服務端

使用iscsiadm命令併發

  • -m node 將客戶端所在主機做爲一臺節點服務器
  • -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d 指定要使用的資源
  • --login 或-l 進行登陸驗證
[root@localhost Desktop]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d -p 192.168.137.10 --login
......
successful

登陸成功後,會在客戶端多出一塊存儲設備/dev/sdb(設備名可能不一樣),如今就能夠對新設備進行分區,掛載使用了。app

4.5 卸載存儲設備

使用iscsiadm -u 將設備卸載

[root@localhost Desktop]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.b7056110e01d -p 192.168.137.10 -u
相關文章
相關標籤/搜索