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则通过文件系统方式进行管理。连接拓扑图如下:
说明:蓝色的线条代表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控制器上的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创建虚拟磁盘
设置虚拟磁盘名,指定RAID级别,块大小,选中需要添加到此虚拟磁盘中的磁盘,然后创建即可。
4创建全局热备盘
选择一块没有被添加到虚拟磁盘中的空盘做为该虚拟磁盘的全局热备盘,如图第8块做为hot-space盘。
5创建LUN
指定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号
选中一台主机,右键设置->重命名主机,为主机起别名。
7LUN关联到主机
app1映射到主机图
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其实比较简单,如果以后有时间,我会贴上来和大家分享下。
本文转自清风拂面 51CTO博客,原文链接:http://blog.51cto.com/crazy123/675143