haizdl
作者haizdl·2016-11-17 16:30
技术经理·大连

基于非结构化数据业务需求的GPFS解决方案

字数 6115阅读 5080评论 0赞 1

第1章 项目需求分析

随着信息技术及互联网的发展,越来越多的企业面临着大量非结构化数据的存储问题。这些非结构化数据包括视频、图片、文本以及其他一些不适宜以数据库方式存储的数据。比如在银行业会存在很多影像类、票据类、账务信息类数据;在互联网电商行业会存在很多文本数据类、静态网页类、商品信息类数据;在医药行业会存在很多医务影像类、药物信息类以及病人信息类数据。这些非结构化数据从传统的存储需求演变为越来越多的实时业务需求,不仅仅对存储数据量的苛刻要求,更多的是对存取性能提出了更高的要求,有些甚至影响乃至本身就是关键业务数据。

总而言之,基于此类业务数据,总结其业务要求有如下几点:

1.廉价存储空间;

2.灵活的存储扩展性;

3.数据存取性能要求较高;

4.具备分布式及高可用业务特征;

基于以上的分析,我们认为目前有几种解决方案可以满足该类业务需求。第一种方案是传统的NAS解决方案;第二种方案是IBM的GPFS解决方案或者Redhat的GFS解决方案;第三种是Hadoop大数据解决方案。对于第一种方案而言,它是通过NFS协议实现客户节点对存储空间的共享访问。实现起来相对容易,但是性能方面稍显逊色。第二种解决方案是通过GPFS的私有网络协议来实现客户端对存储空间的共享访问,它的实现并不困难,相对比较灵活,而且性能会比第一种方案好很多。第三种方案是互联网企业比较热衷的开源解决方案,他的实现和维护相对复杂一些,但是它的性能和扩展性具有很好的可塑性,并且有良好的生态发展空间。但是对于传统企业来讲,第三种方案的复杂度和维护成本让企业不容易接受。

本文基于第二种解决方案,接下来的章节将会从项目的规划设计以及具体的项目实施进行深入讨论。

第2章 GPFS项目设计

2.1 整体规划设计

如图1.1所示,整个GPFS划分为三层架构:虚拟存储. GPFS服务器. GPFS客户端。

1.虚拟存储层:

由存储网关以及物理存储设备构成虚拟存储层,提供虚拟存储卷共享给上层服务器使用。

2.GPFS服务器:

由两台IBM小型机组成GPFS双集群,可将存储层提供的虚拟存储卷识别为磁盘并做成NSD,再由NSD 创建出GPFS文件系统提供给NSD客户端使用。

3.GPFS客户端:

上层应用所依附的虚拟机,包括windows. linux. others等各种操作系统的客户机,他们通过网络私有协议共享GPFS文件系统。

图1.1 GPFS 架构图

2.2 详细规划

如下表所示,GPFS服务器节点共有两个,组成NSD集群;客户端测试节点共有四个,分别为redhat和windows操作系统。
表1.1 GPFSNSD 服务节点规划设计

表1.2GPFS客户端节点规划设计

NSD的具体规划如下,四块NSD组成一个GPFS。

表1.3 GPFSNSD规划设计

表1.4 GPFSFS规划设计

2.3 SAN 环境设计

两台NSD服务器上各有两块儿一个双口HBA卡,SAN环境当中共有两台核心光线交换机,具体ZONE配置信息如下所示,每一个HBA光线口会跟存储网关的两个引警分别划在不同的ZONE里面,每一个磁盘有八条路径。

F1_A_CFG

//主机光纤口别名

Alia:gpfs_nsds01_hba0,gpfs_nsds01_hba2,gpfs_nsds02_hba0,gpfs_nsds02_hba2

//存储网关光纤口别名

Alia: SGW_E1DA_FE0,SGW_E2DA_FE2

//主机和存储网关的逻辑Zone划分

Zone1:gpfs_nsds01_hba0_SGW_E1DA_FE0

Zone2:gpfs_nsds01_hba2_SGW_E2DA_FE2

Zone1:gpfs_nsds02_hba0_SGW_E1DA_FE0

Zone2:gpfs_nsds02_hba2_SGW_E2DA_FE2

F2_A_CFG

//主机光纤口别名

Alia:gpfs_nsds01_hba1,gpfs_nsds01_hba3,gpfs_nsds02_hba1,gpfs_nsds02_hba3

//存储网关光纤口别名

Alia: SGW_E1DA_FE1,SGW_E2DA_FE3

//主机和存储网关的逻辑Zone划分

Zone1:gpfs_nsds01_hba1_SGW_E1DA_FE1

Zone2:gpfs_nsds01_hba3_SGW_E2DA_FE3

Zone1:gpfs_nsds02_hba1_SGW_E1DA_FE1

Zone2:gpfs_nsds02_hba3_SGW_E2DA_FE3

第3章 GPFS项目实施

3.1准备工作

3.1.1 调整系统参数

1.打开用户资源限制。

# vi/etc/security/limits

fsize = -1

data = -1

2.缩小SYNCD的数据刷新频率。

# vi/sbin/rc.boot

nohup/usr/sbin/syncd 20 >/dev/null 2>&1

3.1.2设置时间同步服务器

NTP服务器:10.1.102.100

NTP OS: Relhat 6.6

1.编辑NTP服务器配置文件。

# vi/etc/ntp.conf

restrictdefault nomodify

restrict127.0.0.1

driftfile/etc/ntp/drift

logfile/var/log/ntp.log

server127.127.1.1

fudge127.127.1.1 stratum 5

2.启动NTP服务。

# chkconfigntpd on

# service ntpdstart

3.1.3设置服务器时间同步

1.编辑NTP服务配置文件。

# vi/etc/ntp.conf

server 10.1.102.100

broadcastclient

driftfile/etc/ntp.drift

tracefile/etc/ntp.trace

2.启动NTP客户端服务。

#/usr/sbin/chrctcp -S -a xntpd

# lssrc –ls xntpd

3.时间同步验证。

# ntpdate 10.1.102.100

3.1.4配置服务器信任关系

1.配置基于用户的信任。

# viroot/.rhost

+

nsds01 root

nsds02 root

2.配置本地域名解析。

# vi/etc/hosts

10.9.0.101nsds01

10.9.0.102nsds02

3.验证互信是否成功。

# rsh hostnamepwd

4.配置SSH互信机制。

# ssh-keygen-t rsa

# cd /.ssh/

# scpid_dsa.pub root@nsds02:/.ssh/id_dsa.pub.nsds01

// 在NSDS02上执行。

# catid_dsa.pub.nsds01 >> authorized_keys

# scpauthorized_keys root@nsds01:/.ssh/authorized_keys

5.验证SSH互信是否成功。

# ssh hostname

3.2安装GPFS服务端 3.2安装GPFS服务端

1.在所有服务器上执行:

# instalp-agXYD.all或smittyinstall

2.添加GPFS环境变量以便于执行命令

# vi/etc/environment

XXX:/usr/lpp/mmfs/bin

3.3配置GPFS集群

3.3.1 配置集群节点

1.在tmp目录下创建node.list,包含下列内容。

# vi node.list

nsds01:quorum-manager

nsds02:quorum-manager

2.创建GPFS集群。

# mmcrcluster-n /tmp/gpfs/nodelist -p nsds01 -s nsds02 -C gpfs_clu.nsy –A

# mmchcluster-r /usr/bin/ssh -R /usr/bin/scp

# mmchlicenseserver --accept -N nsds01

# mmchlicenseserver --accept -N nsds02

3.3.2 配置NSD磁盘

1.在/tmp目录下创建disk.list

# vi/tmp/disk.list

hdiskpower0:nsds01:nsds02:dataAndMetadata::

hdiskpower1:nsds01:nsds02:dataAndMetadata::

hdiskpower2:nsds01:nsds02:dataAndMetadata::

hdiskpower3:nsds01:nsds02:dataAndMetadata::

2.创建NSD磁盘

# mmcrnsd –F /tmp/disk.list –v no

3.查看NSD磁盘mmlsnsd

# mmlsnsd

3.3.3 配置仲裁磁盘

# mmchconfigtiebreakerDisks="gpfs3nsd;gpfs4nsd"

# mmlsconfig

3.3.4启动GPFS

# mmstartup -a

3.3.5创建GPFS 文件系统

1.查看创建的磁盘配置文件。

# cat/tmp/gpfs/disk.list

gpfs1nsd:::dataAndMetadata:-1::system

#hdiskpower1:nsds01:nsds02:dataAndMetadata::

gpfs2nsd:::dataAndMetadata:-1::system

#hdiskpower2:nsds01:nsds02:dataAndMetadata::

gpfs3nsd:::dataAndMetadata:-1::system

# hdiskpower3:nsds01:nsds02:dataAndMetadata::

gpfs4nsd:::dataAndMetadata:-1::system

2.创建gpfs01 文件系统

# mmcrfs/gpfs01 /dev/gpfs01 –F/tmp/disk.list –A yes –B 1M –m 2 –M 2 –R 2 –n 8 –v no

3.3.6挂载GPFS文件系统

# mmmount /dev/gpfs01 /gpfs01 -a

3.3.7参数调整

# mmchconfig maxMBpS=600

# mmchconfig worker 1 Treads=550

# mmchconfig autoload=yes

# mmchconfig maxFilesCache=4000

# mmchconfig pagepool=1024M

3.4配置GPFS客户端

1.具体安装命令及步骤请参考IBM官方安装说明:

2.配置环境变量

# vi/etc/profile

PATH=$PATH:/usr/lpp/mmfs/bin

3.配置主机SSH互信机制

# ssh-keygen-t rsa

# cd /.ssh/

# scpid_dsa.pub root@nsds01:/.ssh/id_dsa.pub.nsdc01

# catid_dsa.pub.nsdc01 >> authorized_keys

4.将密钥文件发送到集群所有节点, 在服务器节点上执行。

# scpauthorized_keys root@nsds02:/.ssh/authorized_keys

# scpauthorized_keys root@nsdc01:/.ssh/authorized_keys

# scpauthorized_keys root@nsdc02:/.ssh/authorized_keys

# scpauthorized_keys root@nsdc03:/.ssh/authorized_keys

# scpauthorized_keys root@nsdc04:/.ssh/authorized_keys

检查互信配置是否生效:

# ssh nsdc04

# ssh nsds01

5.配置域名解析文件

# vi/etc/hosts

10.9.0.101 nsds01

10.9.0.102 nsds02

10.1.102.106 nsdc02

10.1.102.107 nsdc03

6.配置rhosts互信

+

nsds01 root

nsds02 root

nsdc02 root

nsdc03 root

7.配置NTP客户端

# echo “0 0 * * * “/usr/sbin/ntpdate10.1.102.100””> /var/spool/cron/root

8.增加节点到集群中, 在服务器节点上执行。

# mmaddnode -Nnsdc04:client

# mmchlicenseclient --accept -N nsdc02

9.编辑文件系统挂载配置文件

# vi/etc/fstab

/dev/gpfs01 /gpfs01 gpfs rw,mtime,atime,dev=gpfs01,noauto 0 0

11.文件系统挂载

# mount -a

第4章 项目测试

4.1 测试需求分析

1.GPFS集群测试目的主要包括以下几点:

· 验证多节点并发读写同一个文件系统功能;

· 验证GPFS集群的高可用功能;

· 测试GPFS并发读写的性能;

2.测试主要涉及到GPFS的基本功能,GPFS集群高可用性。具体测试项目如下:

· 客户节点并发读写GPFS文件系统

· 数据节点故障

· 元数据节点故障

· 数据节点磁盘故障

· 集群节点容错性测试

· 集群扩展测试

· GPFS读写性能测试

3.总体测试方法:(略)

4.测试主要用的工具:(略)

4.2 基本功能测试

4.2.1客户节点并发读写测试

4.2.2客户节点文件一致性测试

4.2.3在线调整GPFS容量测试

4.2.4在线增减GPFS节点测试

4.2.5 GPFS 配额控制测试

4.2.6 GPFS快照功能测试

4.3 高可用测试

4.3.1服务器节点故障

4.3.2服务器节点磁盘故障

4.3.3集群网络故障

4.3.4集群磁盘故障

4.4 性能测试

4.4.1 GPFS随机读写性能测试


4.4.2 GPFS并发读写性能测试

第5章 结论及展望

本文基于非结构化数据存取业务需求以及其中的一种解决方案(GPFS)进行了深入探讨。从解决方案的架构设计规划以及到具体的项目实施,再到项目的关键功能点的测试都进行了详细的探讨。最终认为GPFS解决方案是传统架构下非结构化数据业务的一个相对较好的解决方案,既解决了客户端的分布式部署及高可用条件,同时也能得到较好的性能目标。希望本文能为面临如此业务场合的各位提供参考。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

作者其他文章

相关文章

相关问题

相关资料

X社区推广