配置IPSAN存儲


本文結構:

一.存儲介紹

1.1 常見存儲類型的比較

1.2 NAS存儲

1.3 SAN存儲

1.4 NAS與SAN的主要區別

二.配置IPSAN存儲

2.1 存儲服務端配置

2.2 存儲客戶端10配置

2.3 存儲客戶端11配置 

 

一.存儲介紹

1.1 常見存儲類型

直連式存儲(Direct-Attached Storage,DAS):消耗服務器本身的IO資源和CPU資源,使用方便,服務器直接識別為一個塊設備

非直連式存儲:將IO資源和CPU資源消耗轉移到后端專門的存儲設備上,通常是通過網線或者光纖與需要使用存儲的服務器相連接,因此這種存儲類型對網絡要求很高,常見的兩種類型是SAN和NAS

1.2 NAS存儲

NAS:網絡附屬存儲基於標准網絡協議Tcp/IP)實現數據傳輸,為網絡中的Windows / Linux / Mac OS 等各種不同操作系統的計算機提供文件共享和數據備份,NAS本身能夠支持多種協議,如NFS、CIFS、FTP、HTTP等,由此可以看出NAS對於主機而言是可以直接使用的文件系統,不需要直接面對塊設備(就更不用格式化和掛載塊設備了)。

1.3 SAN存儲

SAN:采用網狀通道Fibre Channel ,簡稱FC)技術,通過FC交換機連接存儲陣列和服務器主機,建立專用於數據存儲的區域網絡。

SAN的存儲類型:

(1). IPSAN: 利用IP網絡構建存儲網絡使用TCP/IP協議的iscsi協議封裝構建的存儲區域網絡

(2). FSCAN: 利用光纖線通過高速FC交換機組成的存儲區域網絡,需要使用到光纖交換機和HBA卡,相對而言成本高

1.4 NAS和SAN的主要區別

第一,從網絡架構來說,本質區別在於:NAS直接使用TCP/IP傳輸數據。SAN使用SCSI或iSCSI協議傳輸數據。

第二,從文件讀寫實現方法上來說,本質區別在於:NAS采用了NFS CIFS技術實現文件共享。說明NAS是基於操作系統的“文件級”讀寫操作。SAN中計算機和存儲間的接口是底層的塊協議,它按照協議頭的“塊地址+偏移地址”來定位。共享的存儲和前端的操作系統類型沒有關系,任何服務器操作系統,都可以正常識別。

各類存儲類型特點總結如下:

存儲結構/性能對比

DAS 

NAS

FC-SAN

  IP-SAN

成本

 較低

 高

較高

數據傳輸速度

極快

 較快

擴展性

無擴展性

較低

易於擴展

最易擴展

服務器訪問存儲方式

直接訪問存儲數據塊

以文件方式訪問 

直接訪問存儲數據塊

直接訪問存儲數據塊

服務器系統性能開銷 

 較低

較高

 安全性

是否集中管理存儲

備份效率

較低

較高

網絡傳輸協議

 無

 TCP/IP 

 Fibre Channel 

TCP/IP

 

二.配置IPSAN存儲

2.1 存儲服務端配置

(1). 實驗環境

主機名

IP地址

身份

操作系統

SAN

192.168.0.105

SAN存儲

CentOS7

10

10.4.7.10

客戶端1

CentOS7

11

10.4.7.11

客戶端2

CentOS7

[root@SAN ~]# iptables -F   #清空防火牆規則

[root@SAN ~]# systemctl stop firewalld && systemctl disable firewalld  #關閉防火牆

[root@SAN ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config  #關閉selinux

(2).安裝配置工具:

[root@SAN ~]# yum -y install targetcli

(3).配置存儲

[root@SAN ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb49
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> help            #">"符號前的"/"表示當前路徑為根目錄,根Linux shell類似

······
AVAILABLE COMMANDS    #可用命令
==================
The following commands are available in the
current path:     #一下命令在當前路徑

- bookmarks action [bookmark]     
- cd [path]       #切換路徑
- clearconfig [confirm] #清空配置信息
- exit   #退出                
- get [group] [parameter...] 
- help [topic]  #幫助
- ls [path] [depth]   #列出當前路徑的文件和目錄
- pwd  #查看當前路徑
- refresh 
- restoreconfig [savefile] [clear_existing] 
- saveconfig [savefile]    #保存配置,默認文件路徑為/etc/target/saveconfig.json
- sessions [action] [sid]   #查看當前的客戶端與存儲服務器的連接情況
- set [group] [parameter=value...] #設置全局和局部屬性
- status     #狀態
- version    #版本

 /> ls    #查看當前根目錄下的文件信息

o- / ............................................................................................................. [...]   #根目錄路徑
o- backstores .................................................................................................. [...]     #根目錄路徑下的backstores目錄
| o- block ...................................................................................... [Storage Objects: 0] #根目錄路徑下backstores目錄下的目錄文件block文件路徑,顯示當前系統上的磁盤設備
| o- fileio ..................................................................................... [Storage Objects: 0]
| o- pscsi ...................................................................................... [Storage Objects: 0]
| o- ramdisk .................................................................................... [Storage Objects: 0]
o- iscsi ................................................................................................ [Targets: 0]      #根目錄下的iscsi目錄,跟backstores同級別目錄
o- loopback ............................................................................................. [Targets: 0]      #根目錄下的loopbak目錄,跟backstores和iscsi目錄同級別

/> /backstores/               #/backstores/+空格+TAB鍵即可顯示/backstores/ 可搭配使用的命令參數,其他目錄下的搭配命令雷同

bookmarks cd exit get help ls pwd refresh set status       #當前目錄下可使用的命令

/> /backstores/block      #/backstores/block+空格+TAB鍵即可顯示/backstores/block可搭配使用的命令參數,其他目錄下的搭配命令雷同,不再例舉

bookmarks cd create delete exit get help ls pwd refresh 
set status

/> /backstores/block create      #/backstores/block create+空格+TAB鍵可顯示當前命令可帶的參數

dev= name= readonly= wwn=              #"dev="指定當前系統上的磁盤設備,"name="指定前面"dev="的自定義名稱,"readonly="指定是否只讀模式,“wwn=”指定"dev="的wwn號

 /> /backstores/block create dev=/dev/sdb name=sun1           #把當前系統上的/dev/sdb磁盤命名為sun1的塊存儲設備

Created block storage object sun1 using /dev/sdb.    #提示使用/dev/sdb創建塊設備對象sun1成功

/> ls 

o- / ............................................................................................................. [...]
o- backstores .................................................................................................. [...]
| o- block ...................................................................................... [Storage Objects: 1]
| | o- sun1 .............................................................. [/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

/> /iscsi create iqn.2020-03.cn.192:server01    #配置ISCSITarget命名,命名在同一子網內確保是唯一的,命名格式為:iqn.yyyy-mm.<主機名反寫>:自定義名稱(自定義名稱內不能有下划線)

Created target iqn.2020-03.cn.192:server01.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

/> ls 

o- / ............................................................................................................. [...]
  o- backstores .................................................................................................. [...]   #定義后端存儲設備,這個是物理磁盤
  | o- block ...................................................................................... [Storage Objects: 1]
  | | o- sun1 .............................................................. [/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: 1]  #定義客戶端連接信息
  | o- iqn.2020-03.cn.192:server01 ........................................................................... [TPGs: 1]
  |   o- tpg1 ................................................................................... [no-gen-acls, no-auth]
  |     o- acls .............................................................................................. [ACLs: 0]   #定義允許哪些客戶端來連接該塊設備
  |     o- luns .............................................................................................. [LUNs: 0]   #定義lun映射信息
  |     o- portals ........................................................................................ [Portals: 1]   #定義端口信息
  |       o- 0.0.0.0:3260 ......................................................................................... [OK]   #默認監聽在本機的3260端口,可手動更改
  o- loopback ............................................................................................. [Targets: 0]

/> /iscsi/iqn.2020-03.cn.192:server01/tpg1/acls create iqn.2020-03.cn.192:clinet  #創建ACL允許ISCSI客戶機連接

Created Node ACL for iqn.2020-03.cn.192:clinet

/> ls 

o- / ............................................................................................................. [...]
  o- backstores .................................................................................................. [...]
  | o- block ...................................................................................... [Storage Objects: 1]   #定義后端存儲
  | | o- sun1 .............................................................. [/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: 1]   #定義客戶端如何來連接后端存儲
  | o- iqn.2020-03.cn.192:server01 ........................................................................... [TPGs: 1]
  |   o- tpg1 ................................................................................... [no-gen-acls, no-auth]
  |     o- acls .............................................................................................. [ACLs: 1]
  |     | o- iqn.2020-03.cn.192:clinet ................................................................ [Mapped LUNs: 0]
  |     o- luns .............................................................................................. [LUNs: 0]
  |     o- portals ........................................................................................ [Portals: 1]
  |       o- 0.0.0.0:3260 ......................................................................................... [OK]   #默認監聽在本機的3260端口,可更改
  o- loopback ............................................................................................. [Targets: 0]

配置驗證用戶名和密碼(該項為非必須)

/> cd iscsi/iqn.2020-03.cn.192:server01/tpg1/acls/iqn.2020-03.cn.192:clinet  

/iscsi/iqn.20...cn.192:clinet> ls

o- iqn.2020-03.cn.192:clinet .......................................................................... [Mapped LUNs: 1]
o- mapped_lun0 ................................................................................ [lun0 block/sun1 (rw)]

 /iscsi/iqn.20...cn.192:clinet> set auth userid=admin

Parameter userid is now 'admin'.

 /iscsi/iqn.20...cn.192:clinet> set auth password=Admin

Parameter password is now 'Admin'.

 /iscsi/iqn.20...cn.192:clinet> cd /

/> /iscsi/iqn.2020-03.cn.192:server01/tpg1/luns create /backstores/block/sun1   #創建lun(target塊設備的邏輯單元)

Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2020-03.cn.192:clinet

/> ls 

o- / ............................................................................................................. [...]
  o- backstores .................................................................................................. [...]
  | o- block ...................................................................................... [Storage Objects: 1]
  | | o- sun1 ................................................................ [/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.2020-03.cn.192:server01 ........................................................................... [TPGs: 1]
  |   o- tpg1 ................................................................................... [no-gen-acls, no-auth]
  |     o- acls .............................................................................................. [ACLs: 1]
  |     | o- iqn.2020-03.cn.192:clinet ................................................................ [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ...................................................................... [lun0 block/sun1 (rw)]
  |     o- luns .............................................................................................. [LUNs: 1]
  |     | o- lun0 ........................................................... [block/sun1 (/dev/sdb) (default_tg_pt_gp)]
  |     o- portals ........................................................................................ [Portals: 1]
  |       o- 0.0.0.0:3260 ......................................................................................... [OK]   #默認監聽在3260端口上,可手段更改
  o- loopback ............................................................................................. [Targets: 0

#創建IP和端口,可默認不更改

/> /iscsi/iqn.2020-03.cn.192:server01/tpg1/portals/ delete 0.0.0.0 3260  #刪除默認的3260端口

Deleted network portal 0.0.0.0:3260

/> /iscsi/iqn.2020-03.cn.192:server01/tpg1/portals/ create 0.0.0.0 13260  #x修改默認3260端口為13260

Binding to INADDR_ANY (0.0.0.0)
Created network portal 0.0.0.0:13260.

/> saveconfig        #保存上面所作的配置信息

Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json   #保存配置信息的路徑

/> exit               #退出

Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

[root@SAN ~]# systemctl restart target  && systemctl enable target

2.2 存儲客戶端10配置(即使用后端存儲的服務器)

[root@10 ~]# yum install -y iscsi-initiator-utils 

[root@10 ~]# cat /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2020-03.cn.192:clinet   #iqn.2020-03.cn.192:clinet為在存儲服務器定義的允許來連接的名稱

[root@10 ~]# vim  /etc/iscsi/iscsid.conf  #取消下面三行內容的注釋,並將username和password修改成我們在存儲服務器上設置的用戶名和密碼,若未在存儲服務器上設置用戶名和密碼則跳過該步驟

57 node.session.auth.authmethod = CHAP
61 node.session.auth.username = admin
62 node.session.auth.password = Admin

[root@10 ~]# lsblk       #此時只有主機10本地的磁盤

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 15G 0 lvm / └─centos-swap 253:1 0 4G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom

[root@10 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.105:13260     #尋找連接測試

192.168.0.105:13260,1 iqn.2020-03.cn.192:server01   #找到一個目標taget

[root@10 ~]# tree /var/lib/iscsi/    #發現target服務后,目標target的信息會寫入/var/lib/iscsi 目錄下

/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│   └── iqn.2020-03.cn.192:server01
│   └── 192.168.0.105,13260,1
│   └── default
├── send_targets
│   └── 192.168.0.105,13260
│   ├── iqn.2020-03.cn.192:server01,192.168.0.105,13260,1,default -> /var/lib/iscsi/nodes/iqn.2020-03.cn.192:server01/192.168.0.105,13260,1
│   └── st_config
├── slp
└── static

[root@10 ~]# iscsiadm -m node -l  #登錄,登錄后就可以看到/dev/sdb磁盤了;登出為iscsiadm -m node --logout,登出后在本機使用lsblk就看不到/dev/sdb了

Logging in to [iface: default, target: iqn.2020-03.cn.192:server01, portal: 192.168.0.105,13260] (multiple)
Login to [iface: default, target: iqn.2020-03.cn.192:server01, portal: 192.168.0.105,13260] successful.  #提示登錄成功

[root@10 ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk 
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part 
├─centos-root 253:0 0 15G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk 
sr0 11:0 1 1024M 0 rom

[root@10 ~]# systemctl start iscsid && systemctl enbale iscsid

此時我們在存儲服務器上查看連接情況:

[root@SAN ~]# targetcli

/> sessions 

alias: 10	sid: 1 type: Normal session-state: LOGGED_IN

 2.3 存儲客戶端11配置

#連接第2台服務器,使得10和11共用存儲 ,由於我們之前只定義了一個target,因此我們登陸的到存儲服務器在定義一個target--iqn.2020-03.cn.192:clinet1

(1).在存儲服務器上再添加一個target

[root@SAN ~]# targetcli 

/> /iscsi/iqn.2020-03.cn.192:server01/tpg1/acls/ create iqn.2020-03.cn.192:clinet1

Created Node ACL for iqn.2020-03.cn.192:clinet1
Created mapped LUN 0.

/> ls

o- / ............................................................................................................. [...]
  o- backstores .................................................................................................. [...]
  | o- block ...................................................................................... [Storage Objects: 1]
  | | o- sun1 ................................................................ [/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.2020-03.cn.192:server01 ........................................................................... [TPGs: 1]
  |   o- tpg1 ................................................................................... [no-gen-acls, no-auth]
  |     o- acls .............................................................................................. [ACLs: 2]
  |     | o- iqn.2020-03.cn.192:clinet ................................................................ [Mapped LUNs: 1]
  |     | | o- mapped_lun0 ...................................................................... [lun0 block/sun1 (rw)]
  |     | o- iqn.2020-03.cn.192:clinet1 ............................................................... [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ...................................................................... [lun0 block/sun1 (rw)]
  |     o- luns .............................................................................................. [LUNs: 1]
  |     | o- lun0 ........................................................... [block/sun1 (/dev/sdb) (default_tg_pt_gp)]
  |     o- portals ........................................................................................ [Portals: 1]
  |       o- 0.0.0.0:13260 ........................................................................................ [OK]
  o- loopback ............................................................................................. [Targets: 0]

/> saveconfig    #保存配置
/> exit
[root@SAN ~]# systemctl restart target  #重啟服務

(2).在主機11客戶端上的配置(跟2.2雷同):

[root@11 ~]# yum install -y iscsi-initiator-utils 

[root@11 ~]# cat /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2020-03.cn.192:clinet1  #名稱是新定義的target 

[root@11 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.105:13260

192.168.0.105:13260,1 iqn.2020-03.cn.192:server01

[root@11 ~]# iscsiadm -m node -l   

#如果有多個硬盤,則需要指定登出的磁盤,格式為iscsiadm -m node -T iqn.2020-03.cn.192:server01 -u

Logging in to [iface: default, target: iqn.2020-03.cn.192:server01, portal: 192.168.0.105,13260] (multiple)
Login to [iface: default, target: iqn.2020-03.cn.192:server01, portal: 192.168.0.105,13260] successful.

[root@11 ~]# lsblk 

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk 
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part 
├─centos-root 253:0 0 45G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk 
└─sdb1 8:17 0 20G 0 part  #可以發現此處已經做好了分區,在第二台服務器上只需要掛載使用即可
sr0 11:0 1 1024M 0 rom

[root@11 ~]# systemctl start iscsid && systemctl enable iscsid

[root@11 ~]# mkdir /iscsi_data
[root@11 ~]# mount /dev/sdb1 /iscsi_data/
[root@11 ~]# ls /iscsi_data/

hello.txt

此時我們在存儲服務器上查看連接情況:
[root@SAN ~]# targetcli
/> sessions 

alias: 10	sid: 1 type: Normal session-state: LOGGED_IN
alias: 11	sid: 2 type: Normal session-state: LOGGED_IN

此時我們在主機11上新建文件,並查看主機10是否能看到新文件

[root@11 ~]# mkdir /iscsi_data/from_11

[root@10 ~]# ls /data/

hello.txt   #並未顯示主機11上新建的目錄

why??是因為我們使用的XFS 文件系統,XFS文件系統不支持多個客戶端同時使用, 使用GFS文件系統就可以同步

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM