首页 教程 multipath多路径实验01-搭建iSCSI模拟环境

multipath多路径实验01-搭建iSCSI模拟环境

ASP站长网跟同事网上闲聊技术,吐槽之前自己没有配置过多路径的经历,虽然多路径的配置过程很简单,职责划分也应是主机或存储工程师来搞定,DBA只需要直接拿来用,但这样总感觉少了些踏实感。
 
本着学习的心态,在虚拟环境下模拟,来做一个多路径的实验。
本文主要描述使用iscsi模拟存储划出的1个LUN,最终由两条链路连接到主机,显示为两个磁盘的场景。为后续配置multipath提供前置环境。
 
•1.模拟主机环境
•2.准备软件环境
•3.模拟存储加盘
•4.配置iSCSI服务端
•5.配置iSCSI客户端
 
1.模拟主机环境
 
首先虚拟一个linux服务器,用作搭建iSCSI服务器。然后客户端直接就使用我之前的一套RAC环境的第1个节点,在这里就相当于普普通通的一个iSCSI客户端。
 
要求如下:
 客户端(192.168.56.150),需要新增配置两块网卡;
服务端(192.168.56.99),需要新增配置两块网卡.
 
这里实际使用Virtual Box给每台机器新增两个内部网络即可。
 
客户端配置2块网卡:
–复制现有网卡配置
[root@jyrac1 network-scripts]# cat ifcfg-eth3
DEVICE=eth3
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.11
NETMASK=255.255.255.0
[root@jyrac1 network-scripts]# cp ifcfg-eth3 ifcfg-eth4
[root@jyrac1 network-scripts]# cp ifcfg-eth3 ifcfg-eth5
 
–修改DEVICE名称和IPADDR信息,其他不变
eth4 10.10.1.150
eth5 10.10.2.150
 
–启动新配置的两块网卡
ifup eth4
ifup eth5
 
这里的eth4和eth5可以想象成是和存储连接的内部网络。
 
服务端配置2块网卡:
–复制现有网卡配置
[root@Storage network-scripts]# cat ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.56.99
NETMASK=255.255.255.0
[root@Storage network-scripts]# cp ifcfg-eth2 ifcfg-eth3
[root@Storage network-scripts]# cp ifcfg-eth2 ifcfg-eth4
 
–修改DEVICE名称和IPADDR信息,其他不变
eth3 10.10.1.99
eth4 10.10.2.99
 
–启动新配置的两块网卡
ifup eth3
ifup eth4
 
测试服务端和客户端的IP互通没问题。
 
2.准备软件环境
 
各自安装scsi相关的软件包。
 
引用鸟哥的iSCSI搭建说明:
 
 
scsi-target-utils:用來將 Linux 系統模擬成為 iSCSI target 的功能;
iscsi-initiator-utils:掛載來自 target 的磁碟到 Linux 本機上。
 
这样我们就知道服务端需要安装scsi-target-utils这个包,客户端需要安装iscsi-initiator-utils这个包。
 现在来直接yum安装对应软件,如果yum本地源配置有问题,可以参考之前文章:
 配置yum本地源:http://www.cnblogs.com/jyzhao/p/3938290.html
 
–服务端
yum安装scsi-target-utils
yum install scsi-target-utils
 
–客户端
yum安装iscsi-initiator-utils
yum install iscsi-initiator-utils
 
3.模拟存储加盘
 
–服务端操作
 
填加一个50G的盘,实际就是用来模拟存储新增实际的一块盘。我这里选择固定大小存储50G。
 我这里新增加的盘显示为/dev/sdb,我将它创建成lvm,并先分出一个10g的lv,供后续使用。
[root@Storage ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[root@Storage ~]# vgcreate vg_storage /dev/sdb
  Volume group "vg_storage" successfully created
[root@Storage ~]# lvcreate -L 10g -n lv_lun1 vg_storage
  Logical volume "lv_lun1" created
 
lvm的信息:
[root@Storage ~]# pvs
  PV        VG          Fmt  Attr PSize  PFree
  /dev/sda2  vg_linuxbase lvm2 a–  29.51g    0
  /dev/sdb  vg_storage  lvm2 a–  50.00g 40.00g
[root@Storage ~]# vgs
  VG          #PV #LV #SN Attr  VSize  VFree
  vg_linuxbase  1  2  0 wz–n- 29.51g    0
  vg_storage    1  1  0 wz–n- 50.00g 40.00g
[root@Storage ~]# lvs
  LV      VG          Attr      LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  lv_root vg_linuxbase -wi-ao—- 27.54g                                           
  lv_swap vg_linuxbase -wi-ao—-  1.97g                                           
  lv_lun1 vg_storage  -wi-a—– 10.00g       
[root@Storage ~]# lvscan
  ACTIVE            '/dev/vg_storage/lv_lun1' [10.00 GiB] inherit
  ACTIVE            '/dev/vg_linuxbase/lv_root' [27.54 GiB] inherit
  ACTIVE            '/dev/vg_linuxbase/lv_swap' [1.97 GiB] inherit
 
从上面LVM相关信息的输出可以看到,我这里新建的lv已经是正常状态,可以理解成为模拟存储上划分出的一个10g大小的LUN。
 
4.配置iSCSI服务端
 
iSCSI服务端主要配置文件:/etc/tgt/targets.conf
 
 
iSCSI 有一套自己分享 target 檔名的定義,基本上,藉由 iSCSI 分享出來的 target 檔名都是以 iqn 為開頭,意思是:『iSCSI Qualified Name (iSCSI 合格名稱)』的意思(註5)。那麼在 iqn 後面要接啥檔名呢?通常是這樣的:
iqn.yyyy-mm.
 
所以我这里按照规范设置的名称,添加好如下配置:
<target iqn.2017-07.com.cnblogs.jyzhao:alfreddisk>
    backing-store /dev/vg_storage/lv_lun1 # Becomes LUN 1
</target>
 
配置完成后,就启动服务和设置开机自启动:
[root@Storage ~]# service tgtd start
Starting SCSI target daemon: [  OK  ]
[root@Storage ~]# chkconfig tgtd on
[root@Storage ~]# chkconfig –list|grep tgtd
tgtd            0:off  1:off  2:on    3:on    4:on    5:on    6:off
[root@Storage ~]# service tgtd status
tgtd (pid 1763 1760) is running…
 
然后查询下相关的信息,比如占用的端口、LUN信息(Type:disk):
[root@Storage ~]# netstat -tlunp |grep tgt
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                  LISTEN      1760/tgtd         
tcp        0      0 :::3260                    :::*                        LISTEN      1760/tgtd         
 
[root@Storage ~]# tgt-admin –show
Target 1: iqn.2017-07.com.cnblogs.jyzhao:alfreddisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET    00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET    00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/vg_storage/lv_lun1
            Backing store flags:
    Account information:
    ACL information:
        ALL
 
5.配置iSCSI客户端
 
确认开机启动项设置开启:
[root@jyrac1 ~]#  chkconfig –list|grep scsi
iscsi          0:off  1:off  2:off  3:on    4:on    5:on    6:off
iscsid          0:off  1:off  2:off  3:on    4:on    5:on    6:off
 
使用iscsiadm命令扫描服务端的LUN
 
iscsiadm -m discovery -t sendtargets -p 10.10.1.99
–报错
[root@jyrac1 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.1.99
[  OK  ] iscsid: [  OK  ]
iscsiadm: cannot make connection to 10.10.1.99: No route to host
iscsiadm: cannot make connection to 10.10.1.99: No route to host
iscsiadm: cannot make connection to 10.10.1.99: No route to host
iscsiadm: cannot make connection to 10.10.1.99: No route to host
iscsiadm: cannot make connection to 10.10.1.99: No route to host
iscsiadm: cannot make connection to 10.10.1.99: No route to host
iscsiadm: connection login retries (reopen_max) 5 exceeded
iscsiadm: Could not perform SendTargets discovery: encountered connection failure
[root@jyrac1 ~]#
–ping可以通
[root@jyrac1 ~]# ping 10.10.1.99
PING 10.10.1.99 (10.10.1.99) 56(84) bytes of data.
64 bytes from 10.10.1.99: icmp_seq=1 ttl=64 time=0.789 ms
64 bytes from 10.10.1.99: icmp_seq=2 ttl=64 time=0.536 ms
^C
— 10.10.1.99 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1073ms
rtt min/avg/max/mdev = 0.536/0.662/0.789/0.129 ms
 
上面这个报错是因为scsi服务端的主机防火墙没有关闭,端口受到限制,关闭防火墙后,再尝试,就可以正常发现如下内容:
[root@jyrac1 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.1.99
10.10.1.99:3260,1 iqn.2017-07.com.cnblogs.jyzhao:alfreddisk
[root@jyrac1 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.2.99
10.10.2.99:3260,1 iqn.2017-07.com.cnblogs.jyzhao:alfreddisk
 
查看/var/lib/iscsi/nodes/下的文件:
[root@jyrac1 ~]# ll -R /var/lib/iscsi/nodes/
/var/lib/iscsi/nodes/:
total 4
drw——- 4 root root 4096 Jul 18 12:13 iqn.2017-07.com.cnblogs.jyzhao:alfreddisk
 
/var/lib/iscsi/nodes/iqn.2017-07.com.cnblogs.jyzhao:alfreddisk:
total 8
drw——- 2 root root 4096 Jul 18 12:12 10.10.1.99,3260,1
drw——- 2 root root 4096 Jul 18 12:13 10.10.2.99,3260,1
 
/var/lib/iscsi/nodes/iqn.2017-07.com.cnblogs.jyzhao:alfreddisk/10.10.1.99,3260,1:
total 4
-rw——- 1 root root 1822 Jul 18 12:12 default
 
/var/lib/iscsi/nodes/iqn.2017-07.com.cnblogs.jyzhao:alfreddisk/10.10.2.99,3260,1:
total 4
-rw——- 1 root root 1822 Jul 18 12:13 default
 
查看iscsiadm -m node
[root@jyrac1 ~]# iscsiadm -m node
10.10.2.99:3260,1 iqn.2017-07.com.cnblogs.jyzhao:alfreddisk
10.10.1.99:3260,1 iqn.2017-07.com.cnblogs.jyzhao:alfreddisk
 
 
iscsiadm -m node -T target名称 –login
 
iscsiadm -m node -T iqn.2017-07.com.cnblogs.jyzhao:alfreddisk –login
[root@jyrac1 ~]# iscsiadm -m node -T iqn.2017-07.com.cnblogs.jyzhao:alfreddisk –login
Logging in to [iface: default, target: iqn.2017-07.com.cnblogs.jyzhao:alfreddisk, portal: 10.10.2.99,3260] (multiple)
Logging in to [iface: default, target: iqn.2017-07.com.cnblogs.jyzhao:alfreddisk, portal: 10.10.1.99,3260] (multiple)
Login to [iface: default, target: iqn.2017-07.com.cnblogs.jyzhao:alfreddisk, portal: 10.10.2.99,3260] successful.
Login to [iface: default, target: iqn.2017-07.com.cnblogs.jyzhao:alfreddisk, portal: 10.10.1.99,3260] successful.
 
最后查询 fdisk -l结果:
省略之前无关内容…
 
Disk /dev/sdi: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
 
Disk /dev/sdj: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

关于作者: dawei

【声明】:九江站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章