本文总结了这项工作在一次工程中的分析实施过程,希望对各位今后在使用VxVM时有所启发。
这项工程中涉及到一台HP XP512磁盘阵列与Sun Enterprise服务器的连接,服务器上安装了VxVM,通过VxVM将磁盘阵列作为数据库的存储设备。
HP XP512磁盘阵列需要作为Sun Enterprise服务器的存储设备,按照应用系统的要求,XP512配置了8个Array Group,每个Array Group是由4个74GB磁盘组成,2个74GB Spare Disk,4个CHIP,2个ACP。CHIP上的4个FC接口直接与两台Sun Enterprise服务器的光纤接口连接,同一接口板上的接口分别连接不同的Sun Enterprise服务器,保证了I/O通道的冗余。
XP512上8组盘的划分是:
Disk Mechs : R100 R110 R120 R130 RAID Group : 1-1
Disk Mechs : R101 R111 R121 R131 RAID Group : 1-2
Disk Mechs : R102 R112 R122 R132 RAID Group : 1-3
Disk Mechs : R103 R113 R123 R133 RAID Group : 1-4
Disk Mechs : R104 R114 R124 R134 RAID Group : 1-5
Disk Mechs : R105 R115 R125 R135 RAID Group : 1-6
Disk Mechs : R106 R116 R126 R136 RAID Group : 1-7
Disk Mechs : R107 R117 R127 R137 RAID Group : 1-8
每个RAID Group中的逻辑盘映射到2个不同的CHIP端口,逻辑盘的类型是OPEN-9。每个RAID Group划分出19个OPEN-9的逻辑盘(LDEV)。LDEV对应的LUN在Solaris中显示为容量7042 MB的SCSI磁盘。
见下图:
我们可以用XP 512提供的在Solaris上的扫描工具,将Solaris系统中看到的磁盘设备与XP 512的RAID Group形成对应关系,例如见下列扫描信息:
Device File : /dev/rdsk/c1t3d20s2 Model : XP512
ALPA : e2 Serial # : 00030214
Target : 03 Subsystem : 0004
LUN : 14 CT Group : ---
Port : CL1C CA Volume : SMPL
CU
Dev : 00:24 BC0 (MU#0) : SMPLType : OPEN-9 BC1 (MU#1) : SMPL
Size : 7042 MB BC2 (MU#2) : SMPL
Code Rev : 0110 RAID Level : RAID1
Disk Mechs : R101 R111 R121 R131 RAID Group : 1-2
Port WWN : 500060e802760602 ACP Pair : 1
Device File : /dev/rdsk/c1t3d21s2 Model : XP512
ALPA : e2 Serial # : 00030214
Target : 03 Subsystem : 0004
LUN : 15 CT Group : ---
Port : CL1C CA Volume : SMPL
CU
Dev : 00:25 BC0 (MU#0) : SMPLType : OPEN-9 BC1 (MU#1) : SMPL
Size : 7042 MB BC2 (MU#2) : SMPL
Code Rev : 0110 RAID Level : RAID1
Disk Mechs : R101 R111 R121 R131 RAID Group : 1-2
Port WWN : 500060e802760602 ACP Pair : 1
Device File : /dev/rdsk/c1t3d22s2 Model : XP512
ALPA : e2 Serial # : 00030214
Target : 03 Subsystem : 0004
LUN : 16 CT Group : ---
Port : CL1C CA Volume : SMPL
CU
Dev : 00:26 BC0 (MU#0) : SMPLType : OPEN-9 BC1 (MU#1) : SMPL
Size : 7042 MB BC2 (MU#2) : SMPL
Code Rev : 0110 RAID Level : RAID1
Disk Mechs : R102 R112 R122 R132 RAID Group : 1-3
Port WWN : 500060e802760602 ACP Pair : 1
从扫描信息中可知,磁盘c1t3d20s2与c1t3d21s2属于同一个RAID Group (RAID Group : 1-2),而c1t3d22s2则属于另一个RAID Group(RAID Group : 1-3)。
为系统中的磁盘设备与RAID Group建立对应关系,可以为以后划分磁盘时考虑I/O性能提供参考和帮助。
Sun Enterprise服务器上安装Sbus接口的JNI光纤卡,在Solaris系统中对光纤卡进行配置,修改系统核心配置文件 /kernel/drv/fcaw.conf。
由于XP512的逻辑磁盘映射到Solaris系统中的LUN从0到100多,所以系统文件 /kernel/drv/sd.conf亦需要修改,例如需要增加下列内容:
name="sd" class="scsi"
target=3 lun=151;
name="sd" class="scsi"
target=3 lun=150;
……
name="sd" class="scsi"
target=3 lun=2;
name="sd" class="scsi"
target=3 lun=1;
name="sd" class="scsi"
target=7 lun=151;
name="sd" class="scsi"
target=7 lun=150;
……
name="sd" class="scsi"
target=7 lun=2;
name="sd" class="scsi"
target=7 lun=1;
name="sd" class="scsi"
target=7 lun=0;
其中的target的值由XP512映射到Solaris系统中的设备名决定,只有这样,在系统中才能看到XP 512的磁盘。
Sun服务器上安装了VxVM,因为XP512的RAID Group已经做了RAID 1,所以考虑到存储容量和系统性能,在VxVM的配置中除了RAID 0,不再配置其他类型的RAID。
每台服务器有两块光纤卡连接XP512,VxVM提供DMP(Dynamic Multi-Pathing)功能,I/O路径冗余,负载均衡。针对XP512,Solaris中需要修改系统核心配置文件/kernel/drv/vxdmp.conf,将dmp_jbod="HITACHI"修改成dmp_jbod="HP"。
为了达到最佳磁盘访问性能,在用VxVM配置Disk Group以及建立Volume时,需要考虑到系统磁盘所对应的XP512上的物理磁盘。
以Oracle数据库应用系统为例,表空间由多个数据文件组成,而建立数据文件所在的Volume是跨多个系统磁盘的,系统磁盘对应XP512的逻辑盘,也是跨多个物理盘。由于这种原因,在设置数据库的设备时,不能简单认为只要Volume设计成stripe方式就能够提高其读写性能,因为组成这些Volume的subdisk有可能全部来自于同一个物理磁盘。存储设备的逻辑关系见下图:
XP512在划分OPEN-9逻辑盘时,在一个RAID Group中采用RAID 1+0方式,每个逻辑盘的起止柱面相同并分布在RAID Group中的每个磁盘上。划分出的LDEV数字越小的逻辑设备距离磁盘轴心越近,读写时磁头移动的距离就越短,鉴于这个原因,在设计数据库的设备时,可以考虑将I/O最频繁的表存放在这些设备组成的逻辑卷上。将读和/或者写频繁的表进行分类,使得每一集合中的I/O均衡,同时每一集合存放的表空间对应于不同的物理磁盘组,同一集合用VxVM生成Disk Group,将逻辑设备从物理上进行分离。
在VxVM中创建Disk Group时,先建立一个系统磁盘与物理磁盘的对应表,并建立一个Volume的命名规则,使得在Disk Group中建立的Volume,很容易区分哪些卷是在不同的物理磁盘上。
在应用系统运行过程中,由于VxVM的Volume、Subdisk、Plex皆可以动态调整,可以根据I/O的具体情况,分析瓶颈所在,有针对性的设置数据库的设备,以达到存储设备的最高访问速度,最优地发挥出VxVM的性能。