HP MSA2312sa实施过程全记录
 
首次接触SAS接口的盘柜,在实施过程当中也碰到了一些小问题,为防止以后遗忘,特此做下纪录,同时和大家做下分享与交流。
 
硬件配置
 
4台HP DL380G7服务器(2*300G硬盘,12G内存,2个6核InterCPU)
 
8块双口SAS接口的HBA卡(每服务器2块)
 
8根SAS线缆(每服务器2根)
 
1台HP MSA2312sa盘柜(8*300G硬盘,双控,每控4个SAS接口,1个扩展接口,一个管理接口)
 
软件配置
 
Redhat AP server 5.5_x86_64 (4套)
 
Oracle 10g_64 (1套)
 
Jboss中间件 (1套)
 
设计思路
 
本方案采用红帽自带的集群套件RHCS来实现ORACLE数据库及Jboss应用的双机集群,共4台服务器采用两两集群的方式。每台HP DL380G7服务器通过SAS线接入MSA2312sa盘柜。其中2台ORACLE数据库双机共享8个LUN。另外2台Jboss双机共享2个LUN。
分配给ORACLE数据库服务器的8个LUN通过裸设备方式进行管理。而分配给Jboss应用服务器的2个LUN则通过文件系统方式进行管理。连接拓扑图如下:
 

HP MSA2312sa实施过程全记录_MSA2312sa

 
说明:蓝色的线条代表SAS线缆,每服务器2根。ora_server代表oracle数据库集群服务名,对应的VIP地址为172.16.0.100,通过此虚拟地址对外提供数据库服务。web_server代表web应用服务器的服务名,对应的VIP地址为172.16.0.200,通过此虚拟地址对外提供web服务。
bond0与bond1是通过双网卡绑定后的网络接口名,而ilo接口是HP服务器用于管理的特殊接口,此IP地址需在开机启动时按F8进入ilo配置界面进行配置。
 
IP地址规划表
 

服务器名
应用IP
心跳IP
Ilo地址
虚拟地址
Db1
172.16.0.1
192.168.0.1
192.168.0.3
ora_server(VIP)
172.16.0.100
Db2
172.16.0.2
192.168.0.2
192.168.0.4
App1
172.16.0.5
192.168.0.5
192.168.0.7
web_server(VIP)
172.16.0.200
App2
172.168.0.6
192.168.0.6
192.168.0.8

 
注:建议把心跳和ilo放在同一个网段,应用放在一个单独网段。
 
SAS线缆连接图
 

HP MSA2312sa实施过程全记录_RHCS_02

 
HP MSA2312sa控制器上的SAS接口编号顺序为
 

3
4
1
2

A与B控制器一样
 
注:此图根据官方配置文档提供。
 
LUN规划表
 

LUN名称
LUN大小(G)
Raid级别
所使用主机
使用说明
Lun0
200
Raid5+hotspare(1-7块盘做raid5,第8块盘做hotspare)
db1 db2
oracle数据库裸设备
Lun1
200
db1 db2
Oracle oracle数据库裸设备
Lun2
200
db1 db2
oracle数据库裸设备
Lun3
200
db1 db2
oracle数据库裸设备
Lun4
200
db1 db2
oracle数据库裸设备
Lun5
200
db1 db2
oracle数据库裸设备
Lun6
200
db1 db2
oracle数据库裸设备
Lun7
100
db1 db2
短信接口(lvm文件系统)
Lun8
100
app1 app2
统一接口(lvm文件系统)
Lun9
80
app1 app2
Web应用(lvm文件系统)

 
 
HP MSA2312sa盘柜调测
 
1用2根网线分别连接盘柜管理口与交换机,最好不要用一根网线直接连接笔记本去进行配置,盘柜会报控制器错误,如上图。
 
2 阵列柜默认端口IP:10.0.0.2   电脑IP地址要跟阵列柜IP地址在同一网段,在IE地址栏输:http://10.0.0.2 就可进入,用户名:manage 密码:!manage 若阵列柜默认地址变改变,可通过控制线进入超级终端,输:show configuration命令查看配置,看端口地址变改成多少,把连接电脑IP地址改成与此地址在同一网段即可。
 
3创建虚拟磁盘
 

HP MSA2312sa实施过程全记录_LVM_03

设置虚拟磁盘名,指定RAID级别,块大小,选中需要添加到此虚拟磁盘中的磁盘,然后创建即可。
 
4创建全局热备盘

HP MSA2312sa实施过程全记录_MSA2312sa_04

选择一块没有被添加到虚拟磁盘中的空盘做为该虚拟磁盘的全局热备盘,如图第8块做为hot-space盘。
 
5创建LUN
 

HP MSA2312sa实施过程全记录_多路径_05

指定LUN名称,分配LUN容量即可,开始时不要做映射。
 
6创建主机别名
盘柜通过SAS接口的WWN号识别主机,每台主机上都有2个口接到盘柜,因此在盘柜上可以识别到2个WWN号。为了配置方便,这里有必要对WWN号修改成别名。怎样才知道哪个WWN号是哪台主机的了?
判断方法有3种:
6.1服务器挨个加电,加电一台服务器,在磁阵上就可以检测到该服务器的SAS接口HBA卡WWN号,然后为其命别名。再给第二台加电,依此类推。(我采用此法,很方便)
注:SAS接口是不支持热拔插
6.2直接打开机箱查看SAS HBA卡上的是否有WWN号记录。
6.3服务器装好操作系统后安装HP的工具包SMH(system managerment homepage),通过工具查看获得WWN号
 

HP MSA2312sa实施过程全记录_RHCS_06

选中一台主机,右键设置->重命名主机,为主机起别名。
 
7LUN关联到主机

HP MSA2312sa实施过程全记录_多路径_07

app1映射到主机图
 

HP MSA2312sa实施过程全记录_多路径_08

db2映射到主机图
 
现在就已经把LUN0-LUN7映射到db1与db2主机了,将LUN8-LUN9映射到app1与app2主机了。
 
安装MULTIPATH多路径驱动
为什么要装多路径驱动?
服务器通过通道识别存储,每台服务器上有2个通道,即可以识别到2个存储空间。但事实上物理的存储空间只有1个。多路径驱动就是解决这个问题的。
如app1与app2共享2个lun,但在服务器上可看到:
[root@qdapp1 ~]# fdisk -l
 
Disk /dev/sda: 99.9 GB, 99999989760 bytes
255 heads, 63 sectors/track, 12157 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
Disk /dev/sda doesn't contain a valid partition table
 
Disk /dev/sdb: 79.9 GB, 79999991808 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
Disk /dev/sdb doesn't contain a valid partition table
 
Disk /dev/sdc: 99.9 GB, 99999989760 bytes
255 heads, 63 sectors/track, 12157 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
Disk /dev/sdc doesn't contain a valid partition table
 
Disk /dev/sdd: 79.9 GB, 79999991808 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
Disk /dev/sdd doesn't contain a valid partition table
 
Disk /dev/cciss/c0d0: 299.9 GB, 299966445568 bytes
255 heads, 63 sectors/track, 36468 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
 
           Device Boot      Start         End      Blocks   Id System
/dev/cciss/c0d0p1   *           1          25      200781   83 Linux
/dev/cciss/c0d0p2              26        2114    16779892+ 82 Linux swap / Solaris
/dev/cciss/c0d0p3            2115       36468   275948505   8e Linux LVM
 
可以看到服务器识别到了4块磁盘。(红色字体)
 
如何安装多路径驱动?
1.1确认服务器上安装了以下rpm包
[root@qdapp1 ~]# rpm -aq|grep device
device-mapper-multipath-0.4.7-34.el5
device-mapper-1.02.39-1.el5
device-mapper-1.02.39-1.el5
device-mapper-event-1.02.39-1.el5
如果没有,直接在安装盘上查找并安装
 
1.2安装最新的SAS HBA卡驱动
根据操作系统版本去官网下载最新HP SC08Ge Host Bus Adapter驱动,装完后重启下服务器。
 
1.3安装HP的多路径驱动包HP Device Mapper Multipath Enablement Kit,本系统应使用最新版本。
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareIndex.jsp?lang=en&cc=us&prodNameId=3559652&prodTypeId=18964&prodSeriesId=3559651&swLang=13&taskId=135&swEnvOID=4004
 
1.4按照官方建议文档修改/etc/multipath.conf文件
device
{
        vendor                  "HP"
        product                 "MSA2312sa"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/scsi_id -g -u -n -s /block/%n"
        path_checker            tur
        path_selector           "round-robin 0"
        prio_callout            "/sbin/mpath_prio_alua /dev/%n"
        rr_weight               uniform
        failback                immediate
        hardware_handler        "0"
        no_path_retry           18
        rr_min_io               100
}
其他的都可以注释掉
以下是官网参考文档:
 
1.1    使用multipath -ll查出所有LUN的wwid号以如下内容添加到/etc/multipath.conf文件里面defaults和devices的中间以便给每个LUN起个别名。
 
multipath {
multipath {
       wwid                    3600c0ff000126f362cbc754e01000000
       alias                   Disk9
       path_grouping_policy    group_by_prio
       path_selector           "round-robin 0"
       failback                immediate
       rr_weight               uniform
       no_path_retry           10
       rr_min_io               100
}
multipath {
       wwid                    3600c0ff000126f3642bc754e01000000
       alias                   Disk10
       path_grouping_policy    group_by_prio
       path_selector           "round-robin 0"
       failback                immediate
       rr_weight               uniform
       no_path_retry           10
       rr_min_io               100
}
}
 
保存配置后重启下multipath服务,service multipath restart,即可看到为每个LUN新起的别名,如下:
[root@qdapp1 ~]# multipath -ll
Disk10 (3600c0ff000126f3642bc754e01000000) dm-5 HP,MSA2312sa
[size=75G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
 \_ 1:0:0:10 sdd 8:48 [active][ready]
\_ round-robin 0 [prio=10][enabled]
 \_ 0:0:0:10 sdb 8:16 [active][ready]
Disk9 (3600c0ff000126f362cbc754e01000000) dm-4 HP,MSA2312sa
[size=93G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
 \_ 1:0:0:9 sdc 8:32 [active][ready]
\_ round-robin 0 [prio=10][enabled]
 \_ 0:0:0:9 sda 8:0   [active][ready]
 
至此磁阵调测才算是完了,此时去/dev/mapper目录下就可以看到Disk9与Disk10这2个设备,当然这还只是裸设备,还不能读写数据。还需要对其进行分区与格式化操作。
 
本系统采用LVM方式对存储进行管理。LVM相信大家都很熟悉。用起来方便,以后扩展空间也很方便。
1. 创建PV
命令:pvcreate /dev/mapper/Disk9 /dev/mapper/Disk10
 
2.创建VG
命令:vgcreate vgint /dev/mapper/Disk9
   vgcreate vgweb /dev/mapper/Disk10
去/dev/目录下查看是否生成了vgint与vgweb文件
 
3.创建LV
命令:lvcreate –L 30G –n lv_int vgint
      lvcreate –L 30G –n lv_web vgweb
完了后可以去/dev/vgint目录下与/dev/vgweb目录下查看是否生成相应lv文件
 
4.扩展LV
如果觉得LV空间不够用,随时可以在不影响数据的情况下扩展LV空间
命令:lvextend -L +10G /dev/vgint/lv_int
   resize2fs /dev/vgint/lv_int
完成df –h就可以查看到空间是否扩展成功。
 
5.查看PV
命令:pvscan
   pvdisplay
 
6.查看VG
命令:vgscan
      vgscan
 
7.查看LV
命令:lvscan
      lvdisplay
 
示例:
[root@qdapp1 dev]# pvscan
 PV /dev/dm-5           VG vgweb     lvm2 [74.50 GB / 14.50 GB free]
 PV /dev/dm-4           VG vgint     lvm2 [93.13 GB / 83.17 GB free]
 PV /dev/cciss/c0d0p3   VG vglocal   lvm2 [263.16 GB / 71.16 GB free]
 Total: 3 [430.79 GB] / in use: 3 [430.79 GB] / in no VG: 0 [0   ]
[root@qdapp1 dev]# vgscan
 Reading all physical volumes. This may take a while...
 Found volume group "vgweb" using metadata type lvm2
 Found volume group "vgint" using metadata type lvm2
 Found volume group "vglocal" using metadata type lvm2
[root@qdapp1 dev]# lvscan
 ACTIVE            '/dev/vgweb/lv_web' [60.00 GB] inherit
 ACTIVE            '/dev/vgint/lv_int' [9.96 GB] inherit
 ACTIVE            '/dev/vglocal/lv0' [60.00 GB] inherit
 ACTIVE            '/dev/vglocal/lv1' [2.00 GB] inherit
 ACTIVE            '/dev/vglocal/lv2' [30.00 GB] inherit
 ACTIVE            '/dev/vglocal/lv3' [100.00 GB] inherit
8.创建分区并格式化分区
fdisk /dev/vgint/lv_int
mkfs –t ext3 /dev/vgint/lv_int
 
9.挂载分区
mount /dev/vgint/lv_int /ios_int
 
余下的事情就是通过RHCS双机调用脚本去实现双机热备了。RHCS其实比较简单,如果以后有时间,我会贴上来和大家分享下。