搭建iscsi网络磁盘
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建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,安装软件
[[email protected] ~]# yum -y install targetcli
[[email protected] ~]# yum info targetcli
2,非交互分区
[[email protected] 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]
vdb 252:16 0 20G 0 disk
[[email protected] ~]# parted /dev/vdb mklabel gpt
[[email protected] ~]# parted /dev/vdb mkpart primary 1 100%
3,使用targetcli定义后端存储
[[email protected] ~]# 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 #存储绑定服务监听的地址,并保存配置
[[email protected] ~]# systemctl start target #开启iscsi
[[email protected] ~]# systemctl enable target #设置开机自启
[[email protected] ~]# ss -utlnp | grep :3260 #查看是否启动成功
[[email protected] ~]# systemctl stop firewalld #关闭防火墙
[[email protected] ~]# setenforce 0 #设置selinux为宽松模式
客户端:
1,客户端安装软件
[[email protected] ~]# yum -y install iscsi-initiator-utils
2,设置本机的iqn名称
[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-01.cn.tedu:client
注意:必须跟服务器上配置的ACL一致!
[[email protected] ~]# systemctl restart iscsid iscsid是守护进程
[[email protected] ~]# systemctl enable iscsid
3,发现远程target存储
提示:参考man iscsiadm! /example搜索
[[email protected] ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.5 --discover #发现磁盘
[[email protected] ~]# iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:server1 --portal 192.168.2.5:3260 --login #连接磁盘,可不操作(重启iscsi即可)
4,客户端挂载iSCSI共享
[[email protected] ~]# systemctl restart iscsi #iscsi用于自动login远程存储
[[email protected] ~]# systemctl enable iscsi
[[email protected] ~]# 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,分区、格式化、挂载
[[email protected] ~]# parted /dev/sda mklabel gpt #设置分区为gpt模式
[[email protected] ~]# parted /dev/sda mkpart primary 1 10G #分10G
[[email protected] ~]# mkfs.xfs /dev/sda1 #格式化分区为xfs格式
[[email protected] ~]# mount /dev/sda1 /mnt #挂载使用
[[email protected] ~]# umount /mnt #卸载
注意:不上传,不写入数据,不能多台主机同时挂载同一个iscsi服务
要是只是(仅仅)共享数据,可以多台主机同时挂载同一个iscsi服务
三 部署Multipath多路径环境
通过Multipath,实现以下目标:
在共享存储服务器上配置iSCSI,为应用服务器共享存储空间
应用服务器上配置iSCSI,发现远程共享存储
应用服务器上配置Multipath,将相同的共享存储映射为同一个名称
服务器:
服务端与步骤二搭建的一样
客户端:
1,前面的步骤,步骤二已经完成了,这里只需要发现存储服务器的共享磁盘
因为有两条链路都可以连接到共享存储,所以需要在两条链路上都发现它。
注意:两次发现使用的IP地址不同!
[[email protected] ~]# 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,登陆共享存储
[[email protected] ~]# systemctl restart iscsi
[[email protected] ~]# 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)安装多路径软件包
[[email protected] ~]# 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
[[email protected] ~]# yum install -y device-mapper-multipath #安装软件包
2)生成配置文件
[[email protected] ~]# cd /usr/share/doc/device-mapper-multipath-0.4.9/
[[email protected] ~]# ls multipath.conf
[[email protected] ~]# cp multipath.conf /etc/multipath.conf #拷贝配置文件到/etc目录下才生效
3)获取wwid
登陆共享存储后,系统多了两块硬盘,这两块硬盘实际上是同一个存储设备。应用服务器使用哪个都可以,但是如果使用sdb时,sdb对应的链路出现故障,它不会自动切换到sda。
为了能够实现系统自动选择使用哪条链路,需要将这两块磁盘绑定为一个名称。
通过磁盘的wwid来判定哪些磁盘是相同的。
[[email protected] ~]# /usr/lib/udev/scsi_id --whitelisted --device=/dev/sdb #磁盘路径看情况来写
36001405e80f94c806f94df18360c4454 #记住这个id
4)修改配置文件
[[email protected] ~]# 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多路径
[[email protected] ~]# systemctl start multipathd
[[email protected] ~]# systemctl enable multipathd
5)检查多路径设备文件
如果多路长设置成功,那么将在/dev/mapper下面生成名为mpatha的设备文件:
[[email protected] ~]# ls /dev/mapper/
control mpatha mpatha1
[[email protected] ~]# 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状态
[[email protected] ~]# 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为运行失败状态
[[email protected] ~]# nmcli connection down eth1
[[email protected] ~]# 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网络磁盘的主要内容,如果未能解决你的问题,请参考以下文章