首页 > 代码库 > 商业存储服务器 Dell MD3800i 使用小结

商业存储服务器 Dell MD3800i 使用小结

商业存储服务器 Dell MD3800i 使用小结

2016/11/10

一、准备工作
1、目的
体验客户端是如何使用存储服务器的磁盘的?

2、操作【服务器】
1)通过随机器附带的 dell MDSM 存储管理软件来配置好管理网络:
(略)
2)在【MDSM】中配置好2个 iscsi 网络(本型号的设备是双raid卡,每个raid卡上有2个 iscsi 网络和1个管理网络,本例仅使用了其中2个 iscsi 网络)
10.50.200.41
10.50.200.51
在【MDSM】-【存储和备份服务】划分出虚拟磁盘:1(100G)


二、客户端通过 iscsi 连接到后端存储
1、操作【客户端】
操作系统:centos6.5

2、配置 iscsi-initiator 服务来发现后端存储
[root@vm200 ~]# yum install iscsi-initiator-utils -y
其常用的参数有:
 iscsiadm 
 -m, 同 --mode, 其选项有 discovery, node, fw(启动值), host, iface(iSCSI 接口)和 session。
 -I,同 --interface, 表示接口。
 -o, 同 --op, 可实现对数据库的操作,其选项有 new, delete, update 和 show。
 -n, 同 --name, 指定其数据记录里的名字。
 -t, 同 --type, 其选项有 sendtargets(st), fw 和 isns, 仅在 -m 模式为 discovery 时有效。
 -p, 同 --portal, 指定其目标主机的 IP 地址和端口,默认端口为 3260。
 -L, 同 --loginall,其选项有 all,manual 和 automatic,指定其登录会话时的类型。
 -T, 同 --targetname,表示其目标名字。
 -v, 同 --value,通常在 --op=update 时指定其值。

1)发现
[root@vm200 ~]# iscsiadm -m discovery -t st -p 10.50.200.41
Starting iscsid:                                           [  OK  ]
10.50.200.41:3260,1 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
192.168.131.101:3260,1 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
10.50.200.51:3260,2 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
192.168.131.102:3260,2 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
[root@vm200 ~]# ls /var/lib/iscsi/nodes/iqn.1984-05.com.dell\:powervault.md3800i.600a098000a64d8b0000000057a152ea/
192.168.131.101,3260,1  192.168.131.102,3260,2  10.50.200.41,3260,1  10.50.200.51,3260,2


2)删除指定的 portal (尚未使用的2个接口)
[root@vm200 ~]# iscsiadm -m node -o delete -T iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea -p 192.168.131.101
[root@vm200 ~]# iscsiadm -m node -o delete -T iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea -p 192.168.131.102
[root@vm200 ~]# iscsiadm -m node
10.50.200.41:3260,1 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
10.50.200.51:3260,2 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea


3)调整主机端口映射符
[root@vm200 ~]# vim /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:444ef5b8f276

例如:
InitiatorName=iqn.2016-09.com.test:vm200
也可以重新生成一个随机的名称:
[root@vm200 ~]# iscsi-iname 
iqn.1994-05.com.redhat:c886f5c823b

实际上,咱不一定要用这个自定义的名称,理由是:
使用客户端访问过一次存储服务器后,存储服务器将记录这个主机端口映射符,后续在存储服务器的管理软件上配置一下到主机的映射即可。


4)重启服务:
[root@vm200 ~]# service iscsid restart
[root@vm200 ~]# service iscsi restart


2、配置【服务器】
在【MDSM】-【主机映射】中定义主机组(g_test),主机(名称:vm200,主机端口映射符:iqn.2016-09.com.test:vm200,别名:test-vm200),并添加LUN映射。


3、配置【客户端】使用存储
1)登录
[root@vm200 ~]# iscsiadm -m node -T iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea --login 
Logging in to [iface: default, target: iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea, portal: 10.50.200.41,3260] (multiple)
Logging in to [iface: default, target: iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea, portal: 10.50.200.51,3260] (multiple)
Login to [iface: default, target: iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea, portal: 10.50.200.41,3260] successful.
Login to [iface: default, target: iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea, portal: 10.50.200.51,3260] successful.

当然,也可以通过指定 portal 的方式只登录其中一个:
[root@vm200 ~]# iscsiadm --m node -T iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea -p 10.50.200.41 --login
Logging in to [iface: default, target: iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea, portal: 10.50.200.41,3260] (multiple)
Login to [iface: default, target: iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea, portal: 10.50.200.41,3260] successful.


2)查看从服务器获得的虚拟磁盘:
[root@vm200 ~]# cat /proc/partitions 
major minor  #blocks  name

 253        0  314572800 vda
 253        1     204800 vda1
 253        2  310172672 vda2
 253        3    4194304 vda3
   8        0  104857600 sda
   8       16  104857600 sdb
[root@vm200 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda    253:0    0   300G  0 disk 
├─vda1 253:1    0   200M  0 part /boot
├─vda2 253:2    0 295.8G  0 part /
└─vda3 253:3    0     4G  0 part [SWAP]
sr0     11:0    1  1024M  0 rom  
sda      8:0    0   100G  0 disk 
sdb      8:16   0   100G  0 disk


多出来2个 sda,其实指向的是 MD3800i 中划分的虚拟磁盘中的同一个LUN。
接下来要考虑如何配置多路径(multipath)

3)配置多路径
[root@vm200 ~]# yum install device-mapper-multipath -y
[root@vm200 ~]# modprobe dm-multipath
[root@vm200 ~]# mpathconf
multipath is enabled
find_multipaths is disabled
user_friendly_names is enabled
dm_multipath module is loaded
multipathd is chkconfiged off

上述指令将生成文件:
/etc/multipath/.multipath.conf.tmp
里面的配置可以参考一下,例如:
# 默认配置示例:
# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults
# 配置注释:
# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated


获取设备对应的wwid:
[root@vm200 ~]# scsi_id --whitelisted --device=/dev/sda
3600a098000a64d8b000002a4582305f8

一个简单的配置:
[root@vm200 ~]# cat /etc/multipath.conf  
multipaths {
    multipath {
        wwid                    3600a098000a64d8b000002a4582305f8
        alias                   test_block_a
    }
}


[root@vm200 ~]# service multipathd restart

查看 multipath 列出的设备:
[root@vm200 ~]# multipath -ll            
test_block_a (3600a098000a64d8b000002a4582305f8) dm-0 DELL,MD38xxi
size=100G features=‘0‘ hwhandler=‘0‘ wp=rw
|-+- policy=‘round-robin 0‘ prio=1 status=active
| `- 9:0:0:0  sdb 8:16  active ready running
`-+- policy=‘round-robin 0‘ prio=1 status=enabled
  `- 10:0:0:0 sda 8:0   active ready running
  

调整 multipath 的配置:
[root@vm200 ~]# cat /etc/multipath.conf     
defaults {
    path_grouping_policy    multibus
    path_checker            readsector0
    rr_min_io_rq            10
    max_fds                 8192
    rr_weight               priorities
    failback                immediate
    no_path_retry           fail
    user_friendly_names     yes
}

multipaths {
    multipath {
        wwid                    3600a098000a64d8b000002a4582305f8
        alias                   test_block_a
    }
}

[root@vm200 ~]# service multipathd reload

[root@vm200 ~]# multipath -ll            
test_block_a (3600a098000a64d8b000002a4582305f8) dm-0 DELL,MD38xxi
size=100G features=‘0‘ hwhandler=‘0‘ wp=rw
`-+- policy=‘round-robin 0‘ prio=1 status=active
  |- 9:0:0:0  sdb 8:16 active ready running
  `- 10:0:0:0 sda 8:0  active ready running



4)分区,格式化并挂载使用
[root@vm200 ~]# pvcreate /dev/mapper/test_block_a 
  Physical volume "/dev/mapper/test_block_a" successfully created
[root@vm200 ~]# vgcreate vg1 /dev/mapper/test_block_a 
  Volume group "vg1" successfully created
[root@vm200 ~]# lvcreate -L 8G -n lv01 vg1       
  Logical volume "lv01" created
[root@vm200 ~]# lvs
  LV   VG   Attr       LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  lv01 vg1  -wi-a----- 8.00g 
[root@vm200 ~]# mkfs.ext4 /dev/mapper/vg1-lv01 


[root@vm200 ~]# mkdir /mnt/mdtest
[root@vm200 ~]# mount /dev/mapper/vg1-lv01 /mnt/mdtest/
[root@vm200 ~]# df -h /mnt/mdtest/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv01  7.9G  146M  7.4G   2% /mnt/mdtest

[root@vm200 ~]# dd if=/dev/zero of=/mnt/mdtest/a1 bs=10M count=200
200+0 records in
200+0 records out
2097152000 bytes (2.1 GB) copied, 15.3048 s, 137 MB/s





4、管理和测试
1)查看session
[root@vm200 ~]# iscsiadm -m session
tcp: [8] 10.50.200.41:3260,1 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
tcp: [9] 10.50.200.51:3260,2 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea 

2)断开到存储服务器的1条路径
[root@vm200 ~]# iscsiadm -m node -T iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea -p 10.50.200.41 --logout
[root@vm200 ~]# multipath -ll
test_block_a (3600a098000a64d8b000002a4582305f8) dm-0 DELL,MD38xxi
size=100G features=‘0‘ hwhandler=‘0‘ wp=rw
`-+- policy=‘round-robin 0‘ prio=1 status=active
  `- 10:0:0:0 sda 8:0 active ready running
[root@vm200 ~]# iscsiadm -m session
tcp: [9] 10.50.200.51:3260,2 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea

测试:可以继续访问磁盘

3)恢复中断的路径
[root@vm200 ~]# iscsiadm -m node -T iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea -p 10.50.200.41 --login
[root@vm200 ~]# multipath -ll
test_block_a (3600a098000a64d8b000002a4582305f8) dm-0 DELL,MD38xxi
size=100G features=‘0‘ hwhandler=‘0‘ wp=rw
`-+- policy=‘round-robin 0‘ prio=1 status=active
  |- 10:0:0:0 sda 8:0  active ready running
  `- 11:0:0:0 sdb 8:16 active ready running
  
[root@vm200 ~]# iscsiadm -m session
tcp: [10] 10.50.200.41:3260,1 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea
tcp: [9] 10.50.200.51:3260,2 iqn.1984-05.com.dell:powervault.md3800i.600a098000a64d8b0000000057a152ea


4)开机启动
[root@vm200 ~]# chkconfig multipathd on 



三、问题
1、单路径不靠谱,要合理的规划存储网络。
2、双 RAID 控制器中,假设 iscsi 主机只连接到 RAID 控制器(A),而此时请求的虚拟磁盘在另一个 RAID 控制器(B),将引起异常:
Virtual disk not on preferred path due to failover(虚拟磁盘不在首选路径上)

解决办法:在【MDSM】-【存储和备份服务】:选中虚拟磁盘,右键菜单选择:“更改”-“所有权/首选路径”,调整首选路径为默认值。


3、如果使用 multipath 出现错误 map in use,怎么清理旧的 device 的数据呢?
首先,确认 device 都没有使用,尝试
[root@vm200 ~]# multipath -F
Nov 10 16:54:05 | 3600a098000a64d8b000002a4582305f8: map in use
Nov 10 16:54:05 | 3600a098000a64b9c0000030558249c83: map in use

解决办法:
[root@vm200 ~]# dmsetup ls
d951c4e7--c01a--48cc--9347--c01924a2047f-leases (253:3)
d951c4e7--c01a--48cc--9347--c01924a2047f-ids    (253:4)
90138356--1626--49e3--b237--452c6dc54cd0-leases (253:10)
90138356--1626--49e3--b237--452c6dc54cd0-inbox  (253:12)
d951c4e7--c01a--48cc--9347--c01924a2047f-metadata       (253:1)
d951c4e7--c01a--48cc--9347--c01924a2047f-master (253:6)
90138356--1626--49e3--b237--452c6dc54cd0-metadata       (253:8)
d951c4e7--c01a--48cc--9347--c01924a2047f-outbox (253:2)
3600a098000a64d8b000002a4582305f8       (253:0)
90138356--1626--49e3--b237--452c6dc54cd0-master (253:13)
90138356--1626--49e3--b237--452c6dc54cd0-outbox (253:11)
3600a098000a64b9c0000030558249c83       (253:7)
90138356--1626--49e3--b237--452c6dc54cd0-ids    (253:9)
d951c4e7--c01a--48cc--9347--c01924a2047f-inbox  (253:5)

确认一下上述列表中的 device 都是可以清理的。
[root@vm200 ~]# dmsetup remove_all
[root@vm200 ~]# dmsetup ls
No devices found
[root@vm200 ~]# multipath -ll  
干净了。


ZYXW、参考
1、iSCSI 多路径实现 KVM 高可用
http://www.ibm.com/developerworks/cn/linux/1303_zhuzq_iscsikvmha/
2、md3600i存储服务器连接 iscsi+multipath配置
http://blog.csdn.net/miyatang/article/details/8657959


商业存储服务器 Dell MD3800i 使用小结