我最近为我们的网站设置了loadbalanced解决方案.我们托管了大约200个站点,大多数运行我们的自定义应用程序,但有些正在运行wordpress博客(可以上传/删除文件).设置是基本的:
|-------------------> Apache1
|
HAProxy -|
|
|-------------------> Apache2
我已经将Apache1设置为“主”,因此使用以下命令每分钟将对其进行的大部分更改都转发到Apache2:
rsync -av --delete apache1:/var/www/html/ /var/www/html/
问题是,如前所述,在某些情况下,在Apache2上添加/删除文件.到目前为止,我提出的唯一解决方案是将Apache1 rsync在某些目录(例如wp-content)中的所有文件都自己(不是删除),然后将所有文件推送回Apache2.
这有它的缺点,主要是:
>这两台服务器最终将获得在Apache2上删除的额外文件
>当我添加更多服务器时,rsync脚本将需要更长时间才能完成.
有没有办法让两台Web服务器同步,考虑到两台服务器都可以添加,更新和删除文件?
最佳答案
我正在使用OCFS2 with DRBD.
DRBD资源/etc/drbd.d/r0.res:
resource r0 {
syncer { rate 1000M; }
net {
allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
}
startup { become-primary-on both; }
on s1 {
device /dev/drbd1;
disk /dev/sdc;
address ip1:7789;
meta-disk internal;
}
on s2 {
device /dev/drbd1;
disk /dev/xvdb2;
address ip2:7789;
meta-disk internal;
}
}
/ dev / drbd1格式化为ocfs2文件系统:
/dev/drbd1 ocfs2 100660180 7427076 93233104 8% /data/webroot
没有Pacemaker /etc/ocfs2/cluster.conf的OCFS2配置:
node:
ip_port = 7777
ip_address = ip1
number = 0
name = s1
cluster = ocfs2
node:
ip_port = 7777
ip_address = ip2
number = 1
name = s2
cluster = ocfs2
cluster:
node_count = 2
name = ocfs2
可以使用drbd-overview实用程序查看DRBD状态:
# drbd-overview
1:r0 Connected Primary/Primary UpToDate/UpToDate C r---- /data/webroot ocfs2 96G 9.8G 87G 11%
或来自/ proc / drbd:
cat /proc/drbd
version: 8.3.8 (api:88/proto:86-94)
GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:09
1: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r----
ns:953133955 nr:42207234 dw:1185526354 dr:62396241 al:230084 bm:5853 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
相关文章
转载注明原文:负载平衡 – 如何使负载均衡的服务器与已删除的文件保持同步? - 代码日志