如何使用MSCS建立SQL Server集群

如何使用MSCS建立SQL Server集群,第1张

集群是一种技术解决方案 它将硬件和软件结合起来 为Web Email以及数据库等服务提供高可用性和高伸缩性的架构 本文将分析集群的类型 然后将重点放在如何建立一个基于Microsoft的集群解决方案 集群的类型 集群分为两种类型 负载平衡和失效转移(Failover) 负载平衡集群将负载分散到集群内的各个资源 这要涉及跨越多个前端服务器的分布式网络传输 负载平衡集群令每个可用的服务器都拥有较为平均的负载量 以提高系统整体的性能和伸缩能力 这类集群一般用于Web和+程序 集群内部支持两个以上的节点 Failover集群主要针对硬件和软件故障时的系统可用性 它监视系统资源 以确定何时启动失效转移 当系统发生故障时 集群会将资源从故障服务器转移到集群中的其他服务器 以恢复资源的可访问性 一个具有容错能力的failover集群需要大量的硬件和专用软件 确定应用状态 它可以在硬件和软件发生故障时进行实时故障恢复 包括恢复到当前的应用状态 一个高可用性的集群必定是一个具有容错能力的集群 但它不一定能提供和failover集群同样的错误恢复能力 Microsoft的Cluster Service (MSCS)是一种比容错集群更好的高可用性集群 它和专用的容错集群相比 所需硬件更少 但可以 *** 作更多种类的应用 同时 它也可以对硬件和软件的故障进行恢复 但发生故障时无法正常恢复到应用状态则 高可用性的MSCS可以在一个集群内支持两个服务器节点 基本的软硬件组件 集群中的服务器节点都采用各自独立的硬件设备 相互间协同工作 每个服务器有自己的 *** 作系统 并独立连接在网络上 服务器间采用外部硬盘和专用网络连接 共享硬盘通过硬盘控制器与各个节点相连 这种硬盘控制器一般采用外置SCSI设备或存储局域网(SAN)作为共享硬盘 不同于包含 *** 作系统的硬盘控制器 MSCS解决方案可以采用主动/被动模式工作 在同一时间集群中只有一个节点是主动的 主动服务器存储著集群内的全部资源 并不断将数据写入共享硬盘 这就是所谓的quorum驱动器 它可以在故障恢复时 将共享状态信息从一个节点转移到另一个节点 定时的发送信号会通过服务器间的专用网传递 当处于被动模式的服务器没有受到这个信号 就认为主动服务器已经失效 此时 它便开始接管集群资源 并从quorum分区上读取状态信息 在集群中安装 SQL Server 为了在集群上安装 SQL Server 你必须首先按以下步骤建立一个可 *** 作的集群 在每个服务器上安装支持MSCS的Windows Server *** 作系统 为每个服务器建立一个 公开的 网络连接 这个连接用来接收外部查询请求 在集群的两个节点间建立一个专用网络 用来传输节点状态信号 在域中建立一个用户 用来 *** 作集群 在每个服务器上将该用户添加到管理员组 将两个服务器关闭 连接到共享驱动器上 并建立磁盘资源 开启集群中的一号节点(主动模式) 建立并初始化逻辑磁盘空间用来设置quorum驱动器 并建立其它的逻辑分区 通过控制面板的添加/删除程序中的Windows组件添加并配置Microsoft Cluster Service 其中包括设置集群的虚拟名称 IP地址 以及共享磁盘资源 开启二号节点(被动模式) 当二号节点在线时 回到一号节点 通过集群管理程序添加二号节点 在集群中添加二号节点非常容易 只要通过在一号节点进行简单配置就可以完成 集群建立好后 就按照以下步骤安装SQL Server了 插入SQL Server企业版的安装光盘 如果没有启动自动安装程序 就在光盘上点击setup exe 在确认计算机名界面 选择虚拟服务器并输入一个虚拟名称 建立一个运行SQL Server的服务账号 将集群中每个节点的管理权限赋给这个账号 填写IP地址 服务账号 以及共享磁盘资源等内容 安装程序会在集群中的每个节点上安装SQL Server的复本 并在集群中建立虚拟设置 之后用户就可以通过集群管理器对SQL Server进行控制了 lishixinzhi/Article/program/SQLServer/201311/22175

可以使用NFS(网络文件系统)来实现。
一、NFS服务简介
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的 *** 作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于 *** 作系统,容许不同硬件及 *** 作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
二、系统环境
系统平台:CentOS release 56 (Final)
NFS Server IP:1921681108
防火墙已关闭/iptables: Firewall is not running
SELINUX=disabled
三、安装NFS服务
NFS的安装是非常简单的,只需要两个软件包即可,而且在通常情况下,是作为系统的默认包安装的。
nfs-utils- :包括基本的NFS命令与监控程序
portmap- :支持安全NFS RPC服务的连接
1、查看系统是否已安装NFS
系统默认已安装了nfs-utils portmap 两个软件包。
2、如果当前系统中没有安装NFS所需的软件包,需要手工进行安装。nfs-utils 和portmap 两个包的安装文件在系统光盘中都会有。
# mount /dev/cdrom /mnt/cdrom/
# cd /mnt/cdrom/CentOS/
# rpm -ivh portmap-40-65221i386rpm
# rpm -ivh nfs-utils-109-50el5i386rpm
# rpm -q nfs-utils portmap
四、NFS系统守护进程
nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
五、NFS服务器的配置
NFS服务器的配置相对比较简单,只需要在相应的配置文件中进行设置,然后启动NFS服务器即可。
NFS的常用目录
/etc/exports NFS服务的主要配置文件
/usr/sbin/exportfs NFS服务的管理命令
/usr/sbin/showmount 客户端的查看命令
/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab 记录曾经登录过的客户端信息
NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
/etc/exports文件内容格式:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
a 输出目录:
输出目录是指NFS系统中需要共享给客户机使用的目录;
b 客户端:
客户端是指网络中可以访问这个NFS输出目录的计算机
客户端常用的指定方式
指定ip地址的主机:1921680200
指定子网中的所有主机:19216800/24 19216800/2552552550
指定域名的主机:davidbsmartcn
指定域中的所有主机:bsmartcn
所有主机:
c 选项:
选项用来设置输出目录的访问权限、用户映射等。
NFS主要有3类选项:
访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写 *** 作,如果有则将这些写 *** 作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写 *** 作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
六、NFS服务器的启动与停止
在对exports文件进行了正确的配置后,就可以启动NFS服务器了。
1、启动NFS服务器
为了使NFS服务器能正常工作,需要启动portmap和nfs两个服务,并且portmap一定要先于nfs启动。
# service portmap start
# service nfs start
2、查询NFS服务器状态
# service portmap status
# service nfs status
3、停止NFS服务器
要停止NFS运行时,需要先停止nfs服务再停止portmap服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止portmap服务
# service nfs stop
# service portmap stop
4、设置NFS服务器的自动启动状态
对于实际的应用系统,每次启动LINUX系统后都手工启动nfs服务器是不现实的,需要设置系统在指定的运行级别自动启动portmap和nfs服务。
# chkconfig --list portmap
# chkconfig --list nfs
设置portmap和nfs服务在系统运行级别3和5自动启动。
# chkconfig --level 35 portmap on
# chkconfig --level 35 nfs on
七、实例
1、将NFS Server 的/home/david/ 共享给19216810/24网段,权限读写。
服务器端文件详细如下:
# vi /etc/exports
/home/david 19216810/24(rw)
2、重启portmap 和nfs 服务
# service portmap restart
# service nfs restart
# exportfs
3、服务器端使用showmount命令查询NFS的共享状态
# showmount -e//默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错
# showmount -a//显示已经与客户端连接上的目录信息
4、客户端使用showmount命令查询NFS的共享状态
# showmount -e NFS服务器IP
5、客户端挂载NFS服务器中的共享目录
命令格式
# mount NFS服务器IP:共享目录 本地挂载点目录
# mount 1921681108:/home/david/ /tmp/david/
# mount |grep nfs
挂载成功。
查看文件是否和服务器端一致。
6、NFS的共享权限和访问控制
现在我们在/tmp/david/ 里面建立一个文件,看看权限是什么
# touch 20130103
这里出现Permission denied,是因为NFS 服务器端共享的目录本身的写权限没有开放给其他用户,在服务器端打开该权限。
# chmod 777 -R /home/david/
再次在客户端/tmp/david/ 里面建立一个文件
我用root 用户建立的文件,变成了nfsnobody 用户。
NFS有很多默认的参数,打开/var/lib/nfs/etab 查看分享出来的/home/david/ 完整权限设定值。
# cat /var/lib/nfs/etab
默认就有sync,wdelay,hide 等等,no_root_squash 是让root保持权限,root_squash 是把root映射成nobody,no_all_squash 不让所有用户保持在挂载目录中的权限。所以,root建立的文件所有者是nfsnobody。
下面我们使用普通用户挂载、写入文件测试。
# su - david
$ cd /tmp/david/
$ touch 2013david
普通用户写入文件时就是自己的名字,这也就保证了服务器的安全性。
关于权限的分析
1 客户端连接时候,对普通用户的检查
a 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;
b 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;
c 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;
2 客户端连接的时候,对root的检查
a 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;
b 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;
c 如果没有明确指定,此时root用户被压缩为nfsnobody;
d 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组;
7、卸载已挂载的NFS共享目录
# umount /tmp/david/
八、启动自动挂载nfs文件系统
格式:
<server>:</remote/export> </local/directory> nfs < options> 0 0
# vi /etc/fstab
保存退出,重启系统。
查看/home/david 有没有自动挂载。
自动挂载成功。
九、相关命令
1、exportfs
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs 命令来使改动立刻生效,该命令格式如下:
# exportfs [-aruv]
-a 全部挂载或卸载 /etc/exports中的内容
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。
具体例子:
# exportfs -au 卸载所有共享目录
# exportfs -rv 重新共享所有目录并输出详细信息
2、nfsstat
查看NFS的运行状态,对于调整NFS的运行有很大帮助。
3、rpcinfo
查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可以查看出RPC开启的端口所提供的程序有哪些。
4、showmount
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
5、netstat
可以查看出nfs服务开启的端口,其中nfs 开启的是2049,portmap 开启的是111,其余则是rpc开启的。
最后注意两点,虽然通过权限设置可以让普通用户访问,但是挂载的时候默认情况下只有root可以去挂载,普通用户可以执行sudo。
NFS server 关机的时候一点要确保NFS服务关闭,没有客户端处于连接状态!通过showmount -a 可以查看,如果有的话用kill killall pkill 来结束,(-9 强制结束)

linux服务器集群平台的搭建比较简单,有专门的均衡软件,比如lvs,lvs是一个集群系统,由很多服务器组成,可以根据需要,把它门分为三层,一层是前端机,用于均衡,相当于公平为系统分配工作,二层是服务器群,比如web服务器群,DNS,mail群等,这些就是接待员,把均衡器分配的工作进行处理,第三层是存储设备,用于存储数据,相当于档案库。
知道这些后,要搭建就非常容易,有现成的软件,比如我有四台web服务器,2台数据库,1台前置机 ,安装linux系统,安装lvs软件,比如
heartbeat-214-9el5i386rpm
heartbeat-ldirectord-214-9el5i386rpm
libnet-114-3el5i386rpm
heartbeat-devel-214-9el5i386rpm
heartbeat-pils-214-10el5i386rpm
perl-MailTools-177-1el5noarchrpm
heartbeat-gui-214-9el5i386rpm
heartbeat-stonith-214-10el5i386rpm
当然还需要配置,你可以自己百度有关lvs集群的详细安装说明。希望能帮助你。

硬件用路由器,软件嘛, *** 作系统用WIN2003serverenterprise企业版,推荐一并安装R2升级包,所有机器组局域网,用一台千兆网卡做域控,架设流媒体服务器,其他机做为域成员加入进来,内网IP各用各的,外网用端口映射到一个IP,用域控做网络流量负载平衡,域控机器配置要强,如果你网络流量大,建议用专业级服务器,至强+2Gb+SCSI硬盘之类,看你环境要求了,如果必要可以上双至强,再用一台512mb内存的p420G以上机做备份域控,这样主域控上下线或重启或出故障不影响域内成员正常工作,备份域控凑合就可以了求采纳

你这个需求是备份吧,Windows有两种服务可以解决你现在的问题:
1、网络负载均衡,可以把指定的服务器添加到负载均衡群中,并指定网络端口和协议,选择负载均衡集群切换模式是按照一对一还是交叉负载均衡;
2、故障转移集群,可以针对进程判断是否启用备份机的指定进程;
这两个集群各有各的用途,同时对于搭建也有自己的要求,完成集群后所对应的功能也略有不同。
部署:
负载均衡不需要额外设备;
但故障转移,需要iSCSI存储设备支持;
用途:
负载均衡针对网络端口,重点在于均衡,可以通过交叉策略,保证a/b的访问量一致,或者单一主机方式,保证在宕机或网线不通的情况下切换到备机;
故障转移,可以精确监控到进程,保证进程出现故障(包括宕机)即可转移到备机;
具体问题具体分析,看你需要什么级别的备份,要求高的话,上故障转移(但是要增加设备——iSCSI),要求简单,就上负载均衡

可以使用Nginx ,Haproxy,LVS做负载。 前提是:需要一个外网IP,并且两个WEB中的应用要同步,数据库要同步,否则随便访问的结果不一样。 此外你现有两台数据是怎么同步的。有内网IP?

CentOS 7下怎么搭建高可用集群。高可用集群是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。那么新的centos下怎么来搭建高可用集群。
环境:本文以两台机器实现双集热备高可用集群,主机名node1的IP为192168122168 ,主机名node2的IP为192168122169 。
一、安装集群软件必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件
二、配置防火墙
1、禁止防火墙和selinux
修改/etc/sysconfig/selinux确保SELINUX=disabled,然后执行setenforce 0或者reboot服务器以生效
2、设置防火墙规则
三、各节点之间主机名互相解析分别修改2台主机名分别为node1和node2,在centos 7中直接修改/etc/hostname加入本机主机名和主机表,然后重启网络服务即可。
配置2台主机的主机表,在/etc/hosts中加入
四、各节点之间时间同步在node1和node2分别进行时间同步,可以使用ntp实现。
五、各节点之间配置ssh的无密码密钥访问。下面的 *** 作需要在各个节点上 *** 作。
两台主机都要互相可以通信,所以两台主机都得互相生成密钥和复制公钥,相互的节点上的hosts文件是都要解析对方的主机名, 192168122168 node1 192168122169 node2
六、通过pacemaker来管理高可用集群
1、创建集群用户


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12691729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存