【IT168 专稿】随着数据库系统应用的日益广泛,越来越多的系统和应用需要多个用户同时访问数据库系统。然而,随着用户的增多,数据库系统的响应速度也会减慢,影响了用户的使用。
为了缓解大访问量对数据库服务器带来的压力,现在有一种做法是在多台服务器上提供相同的数据库服务,同时将数据库数据放在共享磁盘上。这样,原来由一台服务器承担的访问量压力被多个服务器承担,任意一个节点都能对用户的请求做出相应,获得出相同的数据,大大减轻了数据库的负担,增强了数据库的性能。
这篇文章主要目的就是讲述如何利用symantec的SFCFS(storage foundation clouster file system)实现多个节点同时访问共享磁盘。
首先介绍SFCFS的全称是Storage Foundation Cluster File System,他是symantec旗下存储管理工具软件SF(Storage Foundation)的组件之一,因此对于磁盘组,卷和文件系统的概念和SF是完全一样的。同时,他还支持多个节点同时访问一个文件系统上面的数据,由SFCFS来进行文件锁管理,这一点与SF不同,SF中对于文件系统的访问是具有独占性的。SFCFS允许多个节点同时访问的特点就是针对数据库的并行操作的需求而来的,所以它非常适合进行数据库的并行处理模式的管理。
相关链接:由于本文沿袭了SF的一系列概念的解释,建议参考有关SF的系列文章
用Storage Foundation管好存储系统-入门
用Storage Foundation管好存储系统-进阶
用Storage Foundation管好存储系统-高级
。。。。系列文章
下面我们将讲解SFCFS的安装、配置、启动应用,并告诉大家,如何通过SFCFS建立多节点共享磁盘的具体步骤。
SFCFS的安装
启动安装程序: ./installer;选择“4”:
输入注册码后,选择安装所有软件包:
这时,系统就开始自动安装SFCFS。
自动配置SFCFS
安装自动完成后,我们还需要运行./installsfcfs –configure去配置SFCFS,运行后installer会自动配置SFCFS。
验证SFCFS的启动
安装完成后,需要验证配置是否成功,以及服务是否都已经启动:
1, 在两台机器分别运行 vxdisk list, 查看是否有share disk的存在;
2, 在其中某台机器上,初始化磁盘组;
系统上可以看见两个共享盘
系统二上面可以看到一个共享盘,在其上初始化磁盘组
3, 确认两个节点都已经注册,并且区分出哪一个是master节点(黑体标出):
# vxclustadm nidmap
Name CVM Nid CM Nid State
System1 1 0 Joined: Master
System2 0 1 Joined: Slave
注意,以后的命令都需要在Master上面执行,这样可以避免配置出现不一致的情况。
挂载一个共享盘
1. 将刚才新建的磁盘组以共享模式导入;
2. 用vxdisk list命令,可以观察到现在的状态变成online share ;
3. 在新建的磁盘组上面创建一个卷组;
4. 在两台机器上面分别创建目录,一会共享盘要挂载在那里,这里以share目录为例,但是实际上两边不需要目录一定相同。
5. 创建新的文件系统;
# mkfs -F vxfs /dev/vx/rdsk/sharedg/sharevol
6. 将shagedg磁盘组的读写权限赋予System1和system2
# cfsdgadm add sharedg system1=sw system2=sw
其中sw是share write的意思,就是说两边可以同时读写一个文件。除此之外,还有排外写(exclusivewrite,ew),只读(readonly,ro)和共享读(shareread,sr)模式。可以根据需要选择适合自己的读写模式。
7. 确定共享磁盘组配置正确:
# cfsdgadm display sharedg
NODE NAME ACTIVATION MODE
System1 sw
System2 sw
8. 指明共享磁盘组在system1上面挂载的路径:
# cfsmntadm add sharedg sharevol /share System1=rw
该命令说明sharedg在system1上以读写方式打开。
9. 指明共享磁盘组在system2上面的挂载路径:
# cfsmntadm add sharedg sharevol /share system2=rw
因为sharedg已经初始化,所以这里只能用添加来增加第二个系统;
第二个系统可以选择不同的挂载目录,不一定要和system1相同。
10. 确认两个系统的挂载点都已经成功配置:
# cfsmntadm display /share
NODE NAME STATUS MOUNT OPTIONS
System1 NOT MOUNTED rw
System2 NOT MOUNTED rw
11. 两边同时挂载同一个共享磁盘:
# cfsmount /share
Mounting...
[/dev/vx/dsk/sharedg/sharevol] mounted successfully at /share on system1
[/dev/vx/dsk/sharedg/sharevol] mounted successfully at /share on system2
12. 验证
在两台机器上面可以使用df命令,查看是否共享盘已经挂载在上面。如果已经成功挂载,那么可以两边同时在共享盘上面创建一个文件并且同时访问它。需要提醒的是:共享盘并不会提供将不同系统的修改合并的功能,它会把最后一次保存的文件当作最后文件。修改合并的方法需要上次应用程序根据不同的需要来实现。