搭建iscsi網絡磁盤
傳統存儲分類:
1,DAS技術(直連存儲)
將存儲設備通過scsi接口或光線通道直接連接到計算機上
不能實現數據與其他主機的共享
占用服務器操作系統資源,如cpu,io等
數據量越大,性能越差
2,NAS技術(文件系統存儲)
Network-Attached Storage
常見應用:samba,nfs
網絡存儲,提供文件系統的共享
提示:磁盤(塊設備)->分區(塊設備)->格式化(xfs,ext4,ntfs)(文件系統)
一種專用的數據存儲服務器,以數據為中心,將存儲設備與服務器徹底分離,集中管理數據,從而釋放帶寬,提高性能,降低總成本,保護投資
用戶通過tcp/ip協議訪問數據--采用標準的nfs/http/cifs等
3,SAN技術(塊存儲)
Storage Area Network
常見應用:iscsi
網絡存儲,塊存儲ethernet(以太網,雙絞線連接),fc(光線)
通過光線交換機,光線路由器,光線集線器等設備將磁盤陣列,磁帶等存儲設備與相關服務器連接起來,形成高速專用網絡
一 實驗環境
proxy:
ip:192.168.2.5 192.168.4.5
web1:
ip:192.168.2.10 192.168.4.10
二 單路徑ISCSI搭建
服務端:
1,安裝軟件
[root@proxy ~]# yum -y install targetcli
[root@proxy ~]# yum info targetcli
2,非交互分區
[root@proxy rules.d]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
[root@proxy ~]# parted /dev/vdb mklabel gpt
[root@proxy ~]# parted /dev/vdb mkpart primary 1 100%
3,使用targetcli定義後端存儲
[root@proxy ~]# targetcli
/> ls #查看配置信息
/> backstores/block create store /dev/vdb1 #使用targetcli定義後端存儲
備註:store為任意名稱
/> /iscsi create iqn.2018-01.cn.tedu:server1 #創建iqn對象
/>iscsi/iqn.2018-01.cn.tedu:server1/tpg1/luns create /backstores/block/store
#綁定存儲,#註意:block後面的store必須與前面步驟2定義後端存儲create創建的名稱一致。
/> iscsi/iqn.2018-01.cn.tedu:server1/tpg1/acls create iqn.2018-01.cn.tedu:client1 #授權客戶機訪問
/> iscsi/iqn.2018-01.cn.tedu:server1/tpg1/portals/ create 0.0.0.0 #默認本機任意ip
/> saveconfig
/> exit #存儲綁定服務監聽的地址,並保存配置
[root@proxy ~]# systemctl start target #開啟iscsi
[root@proxy ~]# systemctl enable target #設置開機自啟
[root@proxy ~]# ss -utlnp | grep :3260 #查看是否啟動成功
[root@proxy ~]# systemctl stop firewalld #關閉防火墻
[root@proxy ~]# setenforce 0 #設置selinux為寬松模式
客戶端:
1,客戶端安裝軟件
[root@web1 ~]# yum -y install iscsi-initiator-utils
2,設置本機的iqn名稱
[root@web1 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-01.cn.tedu:client
註意:必須跟服務器上配置的ACL一致!
[root@web1 ~]# systemctl restart iscsid iscsid是守護進程
[root@web1 ~]# systemctl enable iscsid
3,發現遠程target存儲
提示:參考man iscsiadm! /example搜索
[root@web1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.5 --discover #發現磁盤
[root@web1 ~]# iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:server1 --portal 192.168.2.5:3260 --login #連接磁盤,可不操作(重啟iscsi即可)
4,客戶端掛載iSCSI共享
[root@web1 ~]# systemctl restart iscsi #iscsi用於自動login遠程存儲
[root@web1 ~]# systemctl enable iscsi
[root@web1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk #此處是發先的網絡共享磁盤
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
vda 252:0 0 20G 0 disk
5,分區、格式化、掛載
[root@web1 ~]# parted /dev/sda mklabel gpt #設置分區為gpt模式
[root@web1 ~]# parted /dev/sda mkpart primary 1 10G #分10G
[root@web1 ~]# mkfs.xfs /dev/sda1 #格式化分區為xfs格式
[root@web1 ~]# mount /dev/sda1 /mnt #掛載使用
[root@web1 ~]# umount /mnt #卸載
註意:不上傳,不寫入數據,不能多臺主機同時掛載同一個iscsi服務
要是只是(僅僅)共享數據,可以多臺主機同時掛載同一個iscsi服務
三 部署Multipath多路徑環境
通過Multipath,實現以下目標:
在共享存儲服務器上配置iSCSI,為應用服務器共享存儲空間
應用服務器上配置iSCSI,發現遠程共享存儲
應用服務器上配置Multipath,將相同的共享存儲映射為同一個名稱
服務器:
服務端與步驟二搭建的一樣
客戶端:
1,前面的步驟,步驟二已經完成了,這裏只需要發現存儲服務器的共享磁盤
因為有兩條鏈路都可以連接到共享存儲,所以需要在兩條鏈路上都發現它。
註意:兩次發現使用的IP地址不同!
[root@web1 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.5 --discover
192.168.4.5:3260,1 iqn.2018-01.cn.tedu:client1 #前面用的是192.168.2.5,此處用的是192.168.4.5
2,登陸共享存儲
[root@web1 ~]# systemctl restart iscsi
[root@web1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 20G 0 part
sdb 8:0 0 20G 0 disk
├─sdb1 8:1 0 20G 0 part
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
提示:登陸的是同一個服務器的同一個iSCSI,但客戶端看到的是兩個獨立的設備,sda和sdb。其實,這兩個設備是同一個設備。
3,配置Multipath多路徑
1)安裝多路徑軟件包
[root@web1 ~]# yum list | grep multipath #列出相關軟件包,非必須操作
device-mapper-multipath.x86_64 0.4.9-111.el7 Server
device-mapper-multipath-libs.i686 0.4.9-111.el7 Server
device-mapper-multipath-libs.x86_64 0.4.9-111.el7 Server
[root@web1 ~]# yum install -y device-mapper-multipath #安裝軟件包
2)生成配置文件
[root@web1 ~]# cd /usr/share/doc/device-mapper-multipath-0.4.9/
[root@web1 ~]# ls multipath.conf
[root@web1 ~]# cp multipath.conf /etc/multipath.conf #拷貝配置文件到/etc目錄下才生效
3)獲取wwid
登陸共享存儲後,系統多了兩塊硬盤,這兩塊硬盤實際上是同一個存儲設備。應用服務器使用哪個都可以,但是如果使用sdb時,sdb對應的鏈路出現故障,它不會自動切換到sda。
為了能夠實現系統自動選擇使用哪條鏈路,需要將這兩塊磁盤綁定為一個名稱。
通過磁盤的wwid來判定哪些磁盤是相同的。
[root@web1 ~]# /usr/lib/udev/scsi_id --whitelisted --device=/dev/sdb #磁盤路徑看情況來寫
36001405e80f94c806f94df18360c4454 #記住這個id
4)修改配置文件
[root@web1 ~]# vim /etc/multipath.conf
defaults {
user_friendly_names yes
find_multipaths yes
}
然後在文件的最後加入多路徑聲明,如果哪個存儲設備的wwid和第(3)步獲取的wwid一樣,那麽,為其取一個別名,叫mpatha。
multipaths {
multipath {
wwid "360014059e8ba68638854e9093f3ba3a0" #打開相應註釋,寫入id
alias mpatha #寫入別名
}
}
4)啟用Multipath多路徑
[root@web1 ~]# systemctl start multipathd
[root@web1 ~]# systemctl enable multipathd
5)檢查多路徑設備文件
如果多路長設置成功,那麽將在/dev/mapper下面生成名為mpatha的設備文件:
[root@web1 ~]# ls /dev/mapper/
control mpatha mpatha1
[root@web1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─mpatha 253:2 0 20G 0 mpath
└─mpatha1 253:3 0 9.3G 0 part #由於在前面我分區10G並格式化文件系統了,所以出現mpatha1
sdb 8:16 0 20G 0 disk
└─mpatha 253:2 0 20G 0 mpath
└─mpatha1 253:3 0 9.3G 0 part #由於在前面我分區10G並格式化文件系統了,所以出現mpatha1
sr0 11:0 1 1024M 0 rom
vda 252:0 0 20G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
4,驗證多路徑
1)查看多路徑,sda和sdb都是running狀態
[root@web1 ~]# multipath -rr
reload: mpatha (360014059e8ba68638854e9093f3ba3a0) undef LIO-ORG ,store
size=9.3G features=‘0‘ hwhandler=‘0‘ wp=undef
|-+- policy=‘service-time 0‘ prio=1 status=undef
| - 2:0:0:0 sda 8:0 active ready running<br/>|
-+- policy=‘service-time 0‘ prio=1 status=undef
| `- 3:0:0:0 sdb 8:16 active ready running
2)關閉某個鏈路後,再次查看效果,此時會發現sdb為運行失敗狀態
[root@web1 ~]# nmcli connection down eth1
[root@web1 ~]# multipath -rr
reject: mpatha (360014059e8ba68638854e9093f3ba3a0) undef LIO-ORG ,store
size=9.3G features=‘0‘ hwhandler=‘0‘ wp=undef
|-+- policy=‘service-time 0‘ prio=0 status=undef
| `- 2:0:0:0 sda 8:0 active undef running
四 註意事項
提示:首先保證sda,sdb沒有進行任何掛載,否則多路經multipath操作最後將掛載不上
搭建iscsi網絡磁盤