日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

第17章 使用iSCSI服务部署网络存储

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第17章 使用iSCSI服务部署网络存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

章節概述:

本章節將分析SCSI與iSCSI技術結構的不同,了解iSCSI技術的優勢、SAN存儲網絡技術結構以及iSCSI HBA卡的作用。
完整演示部署iSCSI target服務程序的方法流程:創建RAID陣列(5)后使用targetcli命令發布到iSCSI存儲目錄并創建ACL列表。
配置使用iSCSI initiator服務程序發現、連接并使用iSCSI存儲設備,最后編輯fstab文件將存儲設備設置為開機啟動。

?

本章目錄結構

  • 17.1 網絡存儲技術
  • 17.2 部署iSCSI存儲
    • 17.2.1 配置iSCSI服務端
    • 17.2.2 配置iSCSI客戶端
17.1 網絡存儲技術

傳統的SCSI小型計算機系統接口(Small Computer System Interface)技術是存儲設備最基本的標準協議,但通常需要設備互相靠近并用SCSI總線鏈接,因此受到了物理環境的限制。

iSCSI小型計算機系統接口(即Internet Small Computer System Interface)則是由IBM公司研究開發用于實現在IP網絡上運行SCSI協議的新存儲技術,即能夠讓SCSI接口與以太網技術相結合,使用iSCSI協議基于以太網傳送SCSI命令與數據,克服了SCSI需要直接連接存儲設備的局限性,使得我們可以跨越不同的服務器共享存儲設備,并可以做到不停機狀態下擴展存儲容量。

SAN存儲區域網絡技術(Storage Area Network)便是基于iSCSI存儲協議,采用高速光釬通道傳輸存儲數據的服務程序。

本圖為SAN結構拓撲

服務器會基于iSCSI協議將SCSI設備、命令與數據打包成標準的TCP/IP包然后通過IP網絡傳輸到目標存儲設備,而遠端存儲設備接收到數據包后需要基于iSCSI協議將TCP/IP包解包成SCSI設備、命令與數據,這個過程無疑會消耗系統CPU資源,因此我們可以將SCSI協議的封裝動作交由獨立的iSCSI HBA硬件卡來處理,減少了對服務器性能的影響。

本圖中設備為iSCSI HBA卡

但坦白來講iSCSI技術還是存在諸多問題的,如距離與帶寬之間的矛盾關系,雖然iSCSI滿足了數據長距離傳輸的需求,但現在廣域網的帶寬還是不夠理想,IP網絡的速率和延遲都是iSCSI傳輸數據的巨大障礙。

17.2 部署iSCSI存儲

iSCSI的工作方式分為服務端(target)與客戶端(initiator):

服務端:即存放硬盤或RAID設備的存儲端,目的是為客戶端提供可用的存儲。
客戶端:使用服務端的服務器主機。

本實驗需要兩臺虛擬主機來完成,分別是:

編輯
主機名稱操作系統IP地址
iscsi服務端紅帽RHEL7操作系統192.168.10.10
iscsi客戶端紅帽RHEL7操作系統192.168.10.20

邏輯單元LUN(即Logical Unit Number)是使用iSCSI協議中的重要概念,因為當客戶機想要使用服務端存儲設備時都必需輸入對應的名稱(Target ID),而一個服務端可能會同時提供多個可用的存儲設備,于是便用LUN來詳細的描述設備或對象,同時每個LUN Device可能代表一個硬盤或RAID設備,LUN的名稱由用戶指定。

17.2.1 配置iSCSI服務端

第1步:準備作為LUN發布的存儲設備。

在前面的存儲結構章節中學習了使用mdadm工具創建RAID磁盤冗余陣列的方法,忘記就翻回去看下吧~

在虛擬機中再添加4塊硬盤:

創建RAID5并設置1塊備份故障盤:

[root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

查看RAID陣列的詳細信息,記錄下UUID的值:

[root@linuxprobe ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Thu Sep 24 21:59:57 2015Raid Level : raid5Array Size : 41909248 (39.97 GiB 42.92 GB)Used Dev Size : 20954624 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Sep 24 22:02:23 2015State : clean Active Devices : 3
Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KName : linuxprobe.com:0  (local to host linuxprobe.com)          UUID : 3370f643:c10efd6a:44e91f2a:20c71f3eEvents : 26Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc4       8       48        2      active sync   /dev/sdd3       8       64        -      spare   /dev/sde

創建RAID陣列配置文件:

[root@linuxprobe ~]# vim /etc/mdadm.conf
DEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde
ARRAY /dev/md0 UUID=3370f643:c10efd6a:44e91f2a:20c71f3e

第2步:安裝iSCSI target服務程序:

[root@linuxprobe ~]# yum -y install targetd targetcli
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安裝信息………………
Dependencies Resolved
================================================================================Package                  Arch        Version                  Repository  Size
================================================================================
Installing:targetcli                noarch      2.1.fb34-1.el7           rhel7       55 ktargetd                  noarch      0.7.1-1.el7              rhel7       48 k
Installing for dependencies:PyYAML                   x86_64      3.10-11.el7              rhel7      153 klibyaml                  x86_64      0.1.4-10.el7             rhel7       55 klvm2-python-libs         x86_64      7:2.02.105-14.el7        rhel7      153 kpyparsing                noarch      1.5.6-9.el7              rhel7       94 kpython-configshell       noarch      1:1.1.fb11-3.el7         rhel7       64 kpython-kmod              x86_64      0.9-4.el7                rhel7       57 kpython-rtslib            noarch      2.1.fb46-1.el7           rhel7       75 kpython-setproctitle      x86_64      1.1.6-5.el7              rhel7       15 kpython-urwid             x86_64      1.1.1-3.el7              rhel7      654 k
Transaction Summary
================================================================================
Install  2 Packages (+9 Dependent packages)
………………省略部分安裝信息………………
Complete!

啟動iSCSI target服務程序:

[root@linuxprobe ~]# systemctl start targetd

將iSCSI target服務程序添加到開機啟動項:

[root@linuxprobe ~]# systemctl enable targetd
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-user.target.wants/targetd.service'

第3步:創建存儲對象。
targetcli命令用于管理iSCSI target存儲設備,格式為:“targetcli”

[root@linuxprobe ~]# 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目錄中:

/> cd /backstores/block
/backstores/block>

使用/dev/md0創建設備disk0:

/backstores/block> create disk0 /dev/md0
Created block storage object disk0 using /dev/md0.

返回到根目錄中:

/backstores/block> cd ..
/backstores> cd ..
/> 

查看創建后的設備:

/> ls
o- / ..................................................................... [...]o- backstores .......................................................... [...]| o- block .............................................. [Storage Objects: 1]| | o- disk0 ..................... [/dev/md0 (40.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]

第4步:配置iSCSI target目標。
進入到iscsi目錄中:

/> cd iscsi
/iscsi> 

創建iSCSI target目標:

/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80.
Created TPG 1.

依次進入到target的luns目錄中:

/iscsi> cd iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80/
/iscsi/iqn.20....d497c356ad80> ls
o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80 ...... [TPGs: 1]o- tpg1 ............................................... [no-gen-acls, no-auth]o- acls .......................................................... [ACLs: 0]o- luns .......................................................... [LUNs: 0]o- portals .................................................... [Portals: 0]
/iscsi/iqn.20....d497c356ad80> cd tpg1/
/iscsi/iqn.20...c356ad80/tpg1> cd luns
/iscsi/iqn.20...d80/tpg1/luns> 

創建LUN設備:

/iscsi/iqn.20...d80/tpg1/luns> create /backstores/block/disk0 
Created LUN 0.

第5步:設置訪問控制列表。
切換到acls目錄中:

/iscsi/iqn.20...d80/tpg1/luns> cd ..
/iscsi/iqn.20...c356ad80/tpg1> cd acls 

創建訪問控制列表:

/iscsi/iqn.20...d80/tpg1/acls> create iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client
Created mapped LUN 0.

切換到portals目錄中:

/iscsi/iqn.20...d80/tpg1/acls> cd ..
/iscsi/iqn.20...c356ad80/tpg1> cd portals 

添加允許監聽的IP地址:

/iscsi/iqn.20.../tpg1/portals> create 192.168.10.10
Using default IP port 3260
Created network portal 192.168.10.10:3260.

查看配置概述后退出工具:

/iscsi/iqn.20.../tpg1/portals> ls /
o- / ........................... [...]o- backstores................. [...]| o- block ................... [Storage Objects: 1]| | o- disk0 ................. [/dev/md0 (40.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.linuxprobe.x8664:sn.d497c356ad80 .... [TPGs: 1]|   o- tpg1 .................. [no-gen-acls, no-auth]|     o- acls ........................................................ [ACLs: 1]|     | o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80: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.10.10: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

第4步:創建防火墻允許規則:

[root@linuxprobe ~]# firewall-cmd --permanent  --add-port=3260/tcp
success
[root@linuxprobe ~]# firewall-cmd --reload
success
17.2.2 配置iSCSI客戶端

首先檢查能夠與iscsi服務端通信:

[root@linuxprobe ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.959 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.469 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.465 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.277 ms--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.277/0.542/0.959/0.253 ms

紅帽RHEL7系統已經默認安裝了iscsi客戶端服務程序:

[root@linuxprobe ~]# yum install iscsi-initiator-utils
Loaded plugins: langpacks, product-id, subscription-manager
Package iscsi-initiator-utils-6.2.0.873-21.el7.x86_64 already installed and latest version
Nothing to do

編輯的iscsi客戶端名稱文件:
該名稱是initiator客戶端的唯一標識,讀者可以按照我的方法修改,也可以用iscsi-iname命令隨機生成~都可以的。

[root@linuxprobe ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client

重啟iscsi客戶端服務程序:

[root@linuxprobe ~]# systemctl restart iscsid

將iscsi客戶端服務程序添加到開機啟動項中:

[root@linuxprobe ~]# systemctl enable iscsid
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.target.wants/iscsid.service'

發現iscsi服務端的可用存儲設備:
iscsiadm命令用于管理(插入、查詢、更新或刪除)iSCSI數據庫配置文件的命令行工具,格式見下面演示。

[root@linuxprobe ~]# iscsiadm -m discovery -t st -p 192.168.10.10
192.168.10.10:3260,1 iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80

連接iscsi服務端的可用存儲設備:

[root@linuxprobe ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80 -p 192.168.10.10 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80, portal: 192.168.10.10,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80, portal: 192.168.10.10,3260] successful.

此時便多了一塊硬盤設備:

[root@linuxprobe ~]# file /dev/sdb 
/dev/sdb: block special

格式化、掛載后查看容量信息:

[root@linuxprobe ~]# mkfs.xfs /dev/sdb
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/sdb               isize=256    agcount=16, agsize=654720 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25=                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=5120, version=2=                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@linuxprobe ~]# mkdir /iscsi
[root@linuxprobe ~]# mount /dev/sdb /iscsi
[root@linuxprobe ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   18G  3.4G   15G  20% /
devtmpfs               734M     0  734M   0% /dev
tmpfs                  742M  176K  742M   1% /dev/shm
tmpfs                  742M  8.8M  734M   2% /run
tmpfs                  742M     0  742M   0% /sys/fs/cgroup
/dev/sr0               3.5G  3.5G     0 100% /media/cdrom
/dev/sda1              497M  119M  379M  24% /boot
/dev/sdb                40G   33M   40G   1% /iscsi

查看設備的UUID值:

[root@linuxprobe ~]# blkid | grep /dev/sdb
/dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="xfs" 

設置為開機后自動掛載時因為iSCSI服務程序基于IP網絡傳輸數據,所以我們必需在fstab文件中添加參數_netdev,代表網絡聯通后再掛載:

[root@linuxprobe ~]# vim /etc/fstab
UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /iscsi xfs defaults,_netdev 0 0

轉載于:https://www.cnblogs.com/linux130/p/5778881.html

總結

以上是生活随笔為你收集整理的第17章 使用iSCSI服务部署网络存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。