Windows 故障转移群集 Part 3

Windows 故障转移群集 Part 3,第1张

Windows 故障转移群集系列文档最后一部分,本文将在 Part 1 和 Part2 的基础之上部署高可用的文件服务器和基于CSV的高可用Hyper-V集群

在上两篇文章中,我们已经创建好了群集 ClusterA ,两个节点分别是ServerA1和SevrerA2。

在为集群ClusterA配置文件服务之前,每个节点上面都需预先安装文件服务,如下:

Windows故障转移( Failover )在发生如下几种情况时, Failover 将会把运行于群集活动节点上面的资源转移到另一个节点

故障转移过程中,将根据依赖级别,依次将资源离线,它总是先离线依赖资源,后离线被依赖的资源。例如,如果当前群集运行的服务依赖于群集磁盘,那么集群服务会首先被离线,以便将离线产生的更改写入到磁盘。所有资源离线之后,集群服务将根据集群中角色有所有者偏好设置的顺序在选中的下一个节点上将该实例重新安置。

所有资源离线后,群集服务将尝试将群集角色根据角色所有者偏好顺序设置转移到下一个节点,一旦角色被转移到另一个节点,群集服务将尝试以在所有资源脱机相反的顺序使资源上线。在我们上述群磁盘和服务的实列中,磁盘先上线,然后服务再上线,以保证服务不会尝试向未上线的磁盘写入数据。

传统的windows故障转移集群部署中,多个节点不能同时访问同一个LUN或一个在共享存储上的卷。 CSV 能够实现在同一时间共享同一个LUN。每个节点获得对单个文件的独占访问权而不是对整个LUN的。 CSVs 作为一种分布式文件访问的解决方案允许集群中的多个阶段同时访问被格式化成NTFS和( Resilient File System 弹性文件系统,从Windows Server 2012 R2开始引入 )ReFS。 CSVs 仅能在集群中创建

Hyper-V 集群仅能被配置在物理机上( Host Clustering ),而不能被配置在虚拟机上( Guest Clustering )

部署Hyper-V的host clustering集群允许将虚拟机作为故障转移保护的资源,运行在guest虚拟机之上的应用和操作系统是没有集群感知的,但是虚拟机仍然可以实现高可用性。

配置虚拟机高可用集群前,所有节点事先需要安装Hyper-V角色

实现扩展文件服务器

现在既然已经熟悉了扩展文件服务器,这里是在Windows Server 2012故障转移集群中实现的7个步骤。

1. 通过服务器管理器安装文件服务器角色

2. 通过服务器管理器安装故障转移集群功能

3. 使用磁盘管理配置共享磁盘(上线,初始化,NTFS格式)

注意:不要为磁盘分配驱动器名称,可以使用CSV

4. 验证和创建故障转移集群--与Windows Server 2008 / R2相同

5. 添加磁盘到CSV(使用故障转移集群管理器,右键单击磁盘并选择添加到CSV)

6. 添加文件服务器角色(使用故障转移集群管理器,右键单击角色,配置角色…)

7. 添加文件共享与连续的可用性(右键单击新添加的文件服务器,添加文件共享)

#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区

proxy_temp_path /data0/proxy_temp_dir

#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。

proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g

#轮询服务器,weight为服务器权重,与访问频率成正比,max_fails最大超时次数,fail_timeout服务器代理监听超时时间

upstream backend_server {

server 192.168.203.43:80 weight=1 max_fails=2 fail_timeout=30s

server 192.168.203.44:80 weight=1 max_fails=2 fail_timeout=30s

server 192.168.203.45:80 weight=1 max_fails=2 fail_timeout=30s

}

server

{

listen 80

server_name www.yourdomain.com 192.168.203.42

index index.html index.htm

root /data0/htdocs/www

location /

{

#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。

proxy_next_upstream http_502 http_504 error timeout invalid_header

proxy_cache cache_one

#对不同的HTTP状态码设置不同的缓存时间

proxy_cache_valid 200 304 12h

#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内

proxy_cache_key $host$uri$is_args$args

proxy_set_header Host $host

proxy_set_header X-Forwarded-For $remote_addr

proxy_pass http://backend_server

expires 1d

}

}

Nginx反向代理配置参数释义:

1.proxy_set_header(设定header)

2.proxy_hide_header(隐藏header)

3.proxy_pass_header(通过header)

4.proxy_connect_timeout(代理连接超时)

5.proxy_send_timeout(代理发送超时)

6.proxy_read_timeout(代理接收超时)

7.proxy_temp_file_write_size(设定缓存文件夹大小)

8.proxy_buffer_size(代理缓冲大小)

9.proxy_buffers (代理缓冲)

10.proxy_busy_buffers_size(高负荷下缓冲大小)

11.proxy_ignore_client_abort(不允许代理端主动关闭连接)

下面就分步介绍基于Nginx反向代理的upstream对服务请求转发与分配5种方式,实际生成环境综合设置,为了便于说明问题分不同方式来说明,nginx反向代理实际生成环境的应用,请参考《如何设置nginx反向代理实现服务器瞬间故障转移》文章开篇部分的proxy.conf配置。

nginx的upstream目前支持5种方式的分配

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3、ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream bakend {

ip_hash

server 192.168.203.14:88

server 192.168.203.15:80

}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backend {

server 192.168.203.14:88

server 192.168.203.15:80

fair

}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {

server squid1:3128

server squid2:3128

hash $request_uri

hash_method crc32

}

upstream bakend{

#定义负载均衡设备的Ip及设备状态

ip_hash

server 127.0.0.1:9090 down

server 127.0.0.1:8080 weight=2

server 127.0.0.1:6060

server 127.0.0.1:7070 backup

}

在需要使用负载均衡的server中增加:

proxy_pass bakend

每个设备的状态设置为:

1.down 表示单前的server暂时不参与负载

2.weight 默认为1.weight越大,负载的权重就越大。

3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4.fail_timeout:max_fails次失败后,暂停的时间。

5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug

client_body_temp_path 设置记录文件的目录 可以设置最多3层目录

location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/622114.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存