1、SDS共享存储
? ? ? ?SinoDB SDS产品(全称Shared Disk Secondary):其架构由主服务器和备用服务器共享磁盘方式进行工作,所有的实例可执行读写操作,写操作只由主节点完成,这样的工作机制避免了节点之间的锁等待。
? ? ? ?另外,配置多个SDS节点也非常容易。由于 SDS 备用节点利用了主服务器的磁盘并且可以轻松快速地启动,因而非常适合规模扩展场景。并且SDS 备用服务器非常接近主服务器(即它们共享相同的磁盘),因此最适合在主服务器遇到问题时作为故障转移服务器。
? ? ? ?其工作原理图如下:
? ? ? ?通常来说,SDS在商用Unix系统上使用其系统自带或第三方的共享集群文件系统(Shared Cluster File System)作为Cluster Management,Multi-owner LVM和 IO Fencing三个主要功能,常见的共享集群文件系统有:GFS/GPFS/VCFS。但是,在Linux系统本身并不自带共享集群文件系统的情况下,如何实现在SAN架构存储下SDS共享磁盘配置呢?
? ? ? ?配置共享存储的前提是:在存储系统底层配置的LUN设备对所有SDS的节点可见并具备了Multi-owner LVM特点。用通俗的话来说,同一块磁盘设备在不同节点可同步读写。以经典的SAN架构存储为例,为了实现多节点同时读写同一块磁盘设备,通常的配置方式采用多路径软件聚合设备来实现。
2、配置multipath
? ? ? ?首先,运行命令multipath -ll检查多路径绑定生否生效。
? ? ? ?确保各个节点的multipath配置及wwid对应一致。完成以上的多路径软件配置之后,系统会在/dev/mapper下自动生成对应的文件。
3、裸设备绑定及赋权
? ? ? ?对生成的设备名进行裸设备绑定及赋权:
raw /dev/raw/raw1 /dev/mapper/rootdbs
chown informix:informix /dev/raw/raw1
chmod 660? /dev/raw/raw1
为了能够更方便直观使用这些裸设备文件,创建裸设备的软链接,使得SDS可以像访问普通文件一样访问裸设备:
ln -s /dev/raw/raw1/home/informix/dbs/rootdbs
4、最后
? ? ? ?通过以上示例说明:在Linux采用共享存储的裸设备方式来实现SDS数据库对磁盘同步读写,这为SDS不同环境的搭建提供了更多选择。至于数据库的读写并发和顺序控制,交给SinoDB SDS系统内部管理就好。
|