搭建iscsi存儲系統(一)


(1).DAS、SAN、NAS三種存儲方式

  參考:https://blog.csdn.net/qq_23348071/article/details/73963407

  DAS全稱Direct-Attached Storage,中文名直連式存儲,是一種計算機存儲,它直接連接到某台計算機且其他計算機無法獲取。對於個人計算機用戶來說,硬盤驅動器就是直連式存儲的常見形式。在企業中,服務器里的個體磁盤被稱為直連式存儲,作為服務器外(但可通過SCSI、SATA及SAS接口直接連在一起)的驅動組。因為服務器無需通過網絡來讀寫數據,所以DAS能為終端用戶提供比網絡存儲更高的性能。這也就是企業常為其有高性能需求的特定類型的應用采用DAS的原因。直連式存儲的主要替代選擇是網絡附屬存儲(NAS)以及存儲區域網絡(SAN)。

  DAS優點:使用方便,直接識別為一個塊設備。

  DAS缺點:消耗I/O和CPU。

  NAS全稱Network Attached Storage,中文名網絡附屬存儲。NAS服務器是連接在網絡上,具備資料存儲功能的服務器,一種專用數據存儲服務器。網絡附屬存儲基於標准網絡協議(TCP/IP)實現數據傳輸,為網絡中的Windows/Linux/Mac OS等各種不同操作系統的計算機提供文件共享和數據備份。部分NAS系統還可以支持FTP、HTTP、SQL、SQLSERVER等等功能,例如群暉。NAS采用NFS技術實現類Unix系統之間存儲共享,采用CIFS技術實現Windows與類Unix系統之間數據共享。Samba軟件就是使用的CIFS技術。

  國內做NAS的有群暉、希捷、西部數碼、威聯通;國際上做NAS的有Netapp、OUO、Dell、EMC。專業開源NAS系統:freeNAS、nas4free、OpenMediaValut、群暉。

  NAS優點:I/O消耗由前端服務器轉移到后端存儲設備上,並且擴展方便。

  NAS缺點:以前網絡會成為瓶頸, 但是現在使用10G光纖卡,就可以解決這個問題。

  SAN全稱Storage Area Network and SAN Protocols,中文名存儲區域網絡。SAN是一種高速網絡,提供在計算機與存儲系統之間的數據傳輸。存儲設備是指一台或多台用以存儲計算機數據的磁盤設備,通常指磁盤陣列。其采用網狀通道(Fibre Channel,簡稱FC)技術,通過FC交換機連接存儲陣列和服務器主機,建立專用於數據存儲的區域網絡。SAN存儲由於其基礎是一個專用網絡,因此擴展性很強,不管是在一個SAN系統中增加一定的存儲空間還是增加幾台使用存儲空間的服務器都非常方便。

  目前常見的SAN有FC-SAN和IP-SAN(又稱之為ISCSI,Internet小型計算機系統接口),其中FC-SAN通過光纖通道協議轉發SCSI協議,IP-SAN通過TCP協議轉發SCSI協議。

  NAS和SAN的區別:第一,網絡架構。NAS直接使用TCP/IP傳輸數據,而SAN使用SCSI或ISCSI協議傳輸數據。第二,文件讀寫的實現方式。NAS采用了NFS和CIFS技術實現文件共享,說明NAS是基於操作系統的“文件級”讀寫操作。而SAN中計算機和存儲間的接口是底層的塊協議,按照協議頭的“塊地址+偏移地址”來定位,共享的存儲和前段的操作系統類型沒有關系,任何操作系統都可以正常識別。

(2).配置IP-SAN服務器

 1)實驗環境

youxi1  192.168.5.101  服務端,添加一塊盤sdb作為共享盤

youxi2  192.168.5.102  客戶端

youxi3  192.168.5.103  客戶端

  IP-SAN以C/S模式運行,默認端口3260。

 2)配置youxi1為IP-SAN存儲服務器

[root@youxi1 ~]# yum -y install targetcli  //安裝target
[root@youxi1 ~]# 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'.  //可以使用help查看幫助文檔

/> /backstores/block create test1 /dev/sdb  //使用/dev/sdb創建塊存儲對象test1,其中test1是自定義名稱
Created block storage object test1 using /dev/sdb.
/> /iscsi create iqn.2019-08.youxi1:server  //創建ISCSI target,target命名在同一子網內確保唯一。
WWN not valid as: iqn, naa, eui  //報錯了
/> /iscsi create iqn.2019-08.com.youxi1:server  //命名格式:iqn.yyyy.mm.<主機名(域名)反寫>:自定義名稱。自定義名稱內不能有下划線
Created target iqn.2019-08.com.youxi1:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.  //可以看到監聽的IP地址和端口號
/> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/acls create iqn.2019-08.com.youxi1:username
Created Node ACL for iqn.2019-08.com.youxi1:username  //創建ACL規則列表,也就是客戶端只能使用規則列表內的用戶才可以連接target存儲
/> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/luns create /backstores/block/test1  指定塊存儲對象test1為target的邏輯單元,邏輯單元號LUN0
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2019-08.com.youxi1:username
/> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/portals/ delete 0.0.0.0 3260  //刪除原本監聽的IP地址和端口號
Deleted network portal 0.0.0.0:3260
/> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/portals create 192.168.5.101 3260  //添加一個新的監聽IP地址和端口號
Using default IP port 3260
Created network portal 192.168.5.101:3260.  //注意:監控服務器端的本地IP地址和端口

  LUN全稱Logical Unit Number,中文名邏輯單元號,是SCSI中的概念。塊存儲對象只要一加入target存儲系統,就分有一個代號,后期在區別塊設備的時候,只要說target 中LUN幾號就可以了。 塊存儲對象被指定了一個LUN后,成為了一個“邏輯”磁盤,供存儲客戶端使用。

 3)配置ACL規則列表的用戶名和密碼

/> cd /iscsi/iqn.2019-08.com.youxi1:server/tpg1/acls/iqn.2019-08.com.youxi1:username/
/iscsi/iqn.20...uxi1:username> set auth userid=admin  //創建用戶
Parameter userid is now 'admin'.
/iscsi/iqn.20...uxi1:username> set auth password=123456  //設置密碼
Parameter password is now '123456'.
/iscsi/iqn.20...uxi1:username> saveconfig  //保存必須在根目錄下執行,否則報錯
Command not found saveconfig
/iscsi/iqn.20...uxi1:username> cd /  //回到根目錄
/> saveconfig  //保存
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

 4)啟動target服務

[root@youxi1 ~]# systemctl start target && systemctl enable target  //啟動並設置開機自啟
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
[root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=3260/tcp  //添加端口號
success
[root@youxi1 ~]# firewall-cmd --reload
success

(3).客戶端配置

 1)配置客戶端youxi2

  安裝客戶端並進行配置

[root@youxi2 ~]# yum -y install iscsi-initiator-utils
[root@youxi2 ~]# vim /etc/iscsi/initiatorname.iscsi  //修改發起者配置,也就是服務端的ACL規則名稱
InitiatorName=iqn.2019-08.com.youxi1:username  //修改為服務端的ACL規則列表名稱
[root@youxi2 ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP  //第57行,取消注釋
node.session.auth.username = admin  //第61行,取消注釋,並修改為ACL規則列表內的用戶名
node.session.auth.password = 123456  //第62行,取消注釋,並修改為對應用戶名的密碼
[root@youxi2 ~]# systemctl start iscsid

  發現ISCSI設備並登錄

[root@youxi2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.5.101  //查找設備
192.168.5.101:3260,1 iqn.2019-08.com.youxi1:server
//登錄方法一
[root@youxi2 ~]# iscsiadm -m node -l  //登錄設備
Logging in to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] (multiple)
Login to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] successful.
[root@youxi2 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb

//登錄方法二
[root@youxi2 ~]# systemctl restart iscsid  //在查找到設備后直接重啟也可以
[root@youxi2 ~]# ls /dev/sd*             
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb

  查看target存儲服務器信息在客戶端存儲的位置

[root@youxi2 ~]# yum -y install tree
[root@youxi2 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│   └── iqn.2019-08.com.youxi1:server
│       └── 192.168.5.101,3260,1
│           └── default
├── send_targets
│   └── 192.168.5.101,3260
│       ├── iqn.2019-08.com.youxi1:server,192.168.5.101,3260,1,default -> /var/lib/iscsi/nodes/iqn.2019-08.com.youxi1:server/192.168.5.101,3260,1
│       └── st_config
├── slp
└── static

10 directories, 2 file

  格式化硬盤(只有第一個需要格式化),掛載使用

[root@youxi2 ~]# 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
[root@youxi2 ~]# mkdir /share
[root@youxi2 ~]# mount /dev/sdb /share
[root@youxi2 ~]# echo youxi2 > /share/a.txt

 2)配置客戶端youxi3

[root@youxi3 ~]# yum -y install iscsi-initiator-utils
[root@youxi3 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-08.com.youxi1:username
[root@youxi3 ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP  //第57行,取消注釋
node.session.auth.username = admin  //第61行,取消注釋,並修改為ACL規則列表內的用戶名
node.session.auth.password = 123456  //第62行,取消注釋,並修改為對應用戶名的密碼
[root@youxi3 ~]# systemctl restart iscsid
[root@youxi3 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.5.101  //查找設備
192.168.5.101:3260,1 iqn.2019-08.com.youxi1:server
[root@youxi3 ~]# iscsiadm -m node -l  //登錄設備
Logging in to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] (multiple)
Login to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] successful.
[root@youxi3 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
[root@youxi3 ~]# mkdir /share
[root@youxi3 ~]# mount /dev/sdb /share/  //掛載
[root@youxi3 ~]# ls /share/
a.txt

  注意:此時不會同步,是因為我們使用的XFS文件系統,XFS文件系統不支持多個客戶端同時使用。 后期使用時,可以把sdb在youxi2上識別出來后,掛載到/share目錄下,然后在youxi2安裝一個nfs服務器,把/share目錄共享給youxi3使用,這樣就可以保障數據同步了。


免責聲明!

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



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