Heartbeat+DRBD+MFS高可用
Heartbeat+DRBD+MFS高可用、
前言:MFS系统简介
.轻量、易配置、易维护
.开发活跃,社区也比较活跃,资料丰富
.扩容成本低,支持在线扩容,不影响业务
.以文件系统的方式展示,虽然存储在chunkserver上的数据是二进制文件,但是挂载在client端仍以图片和文件形式展示,便于数据备份
.硬盘利用率高
6可设置文件回收站,避免误删除文件丢失
.系统负载,即数据读写分配到所有的服务器上
.可以设置文件副本,官方建议三份以上
.master是单点,需要做高可用
.master对内存要求略高
.metalogger复制元数据时间间隔较长
一、配置基本环境及准备
10.1.1.243 mfsmaster
10.1.1.111 mfs-master
10.1.1.244 mfs-backup
10.1.1.245 mfs-data01
10.1.1.246 mfs-data02
10.1.1.247 mfs-data03
10.1.1.248 mfs-client01
其他准备:
更改主机名,主机名要与 uname -n 命令结果一致
关闭selinux和iptables
配置好yum源、epel源
时间同步 ,最好做定时任务
配置hosts文件
二、安装heartbeat服务
master:
[root@mfsmaster ~]#/sbin/route add -host 192.168.1.7 dev eth1
[root@mfsmaster ~]#echo "/sbin/route add -host 192.168.1.7 dev eth1" >>/etc/rc.local slave:
[root@mfsmaster ~]#/sbin/route add -host 192.168.1.8 dev eth1
[root@mfsmaster ~]#echo "/sbin/route add -host 192.168.1.8 dev eth1" >>/etc/rc.local
slave 与master配置项相同
[root@mfsmaster drbd.d]#yum install heartbeat -y
[root@mfsmaster drbd.d]#cd /usr/share/doc/heartbeat-3.0./ && cp ha.cf haresources authkeys /etc/ha.d/
[root@mfsmaster ha.d]#cd /etc/ha.d/ && chmod authkeys
[root@mfsmaster ha.d]# cp ha.cf ha.cf-bak
[root@mfsmaster ha.d]# grep "^[a-Z]" ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local1
keepalive #发送心跳信息间隔
deadtime #节点没有应答后,过多长时间死亡
warntime #节点没有应答后,过多长时间告警
initdead #多长时间启动节点资源
mcast eth1 225.0.0.181 #多播地址通讯,心跳网卡配置
auto_failback on #回复后是否重新为master,生产环境可以关闭
node mfsmaster #节点名称
node mfsbackup
[root@mfsmaster ha.d]# cp haresources haresources-bak
[root@mfsmaster ha.d]# grep "^[a-Z]" haresources
mfsmaster IPaddr::10.1.1.111//eth0 #VIP地址 [root@mfsmaster ha.d]#cp authkeys authkeys-bak
[root@mfsmaster ha.d]#grep "^[0-9a-Z]" authkeys
auth
sha1 dc8d9af580c6847d54ef276c8bc25471 [root@mfsmaster ha.d]#chkconfig heartbeat off
[root@mfsmaster ha.d]#/etc/init.d/heartbeat start 开启服务
[root@mfsmaster ha.d]# ip a|grep eth0
1)添加磁盘,分区
fdisk /dev/sdb #添加一块磁盘,一个data分区,需要大空间,一个meat date分区,生产环境1-2G
partprobe #同步
mkfs.ext4 /dev/sdb1 注:meat date分区一定不能格式化创建文件系统,分区现在不能挂载
tune2fs -c - /dev/sdb1
wget http://www.linbit.com/downloads/drbd/8.4/archive/drbd-8.4.4.tar.gz
tar xf drbd-8.4..tar.gz && cd drbd-8.4.&& ll
./configure --prefix=/usr/local/drbd-8.4 --with-km --with-heartbeat --sysconfdir=/etc/
ls -ld /usr/src/kernels/$(uname -r) #如果不存在yum安装kernel-devel包
make KDIR=/usr/src/kernels/$(uname -r)
make install
modprobe drbd
lsmod |grep drbd
echo "/sbin/modprobe drbd " >> /etc/rc.local
cat /etc/drbd.conf
global {
usage-count no;
}
common {
syncer {
rate 100M;
verify-alg crc32c;
}
} resource data {
protocol C; disk {
on-io-error detach;
} on mfsmaster {
device /dev/drbd0;
disk /dev/sdb1;
address 10.1.1.243:;
meta-disk /dev/sdb2[];
}
on mfsbackup {
device /dev/drbd0;
disk /dev/sdb1;
address 10.1.1.244:;
meta-disk /dev/sdb2[]; #使用drbd外部模式,还有另外一种内部模式
}
}
[root@mfsmaster drbd.d]#mkdir -p /usr/local/drbd-8.4/var/run/drbd #或根据下一条命令的提示创建
[root@mfsmaster drbd.d]#drbdadm create-md data #与resource data名称一致或者all 代表所有资源
[root@mfsmaster drbd.d]#drbdadm up data
[root@mfsmaster drbd.d]#cat /proc/drbd
master端:
[root@mfsmaster drbd.d]#drbdadm -- --overwrite-data-of-peer primary data
注意:
.如果硬盘为空,可以随意操作
.如果两边硬盘数据不一致,会丢失数据 [root@mfsmaster drbd.d]#cat /proc/drbd #可以看到数据同步的进度

master端(slave端同master端):
chkconfig drbd off #yum 安装情况下
/etc/init.d/heartbeat stop
[root@data-- /]# cat /etc/ha.d/haresources
mfsmaster IPaddr::10.1.1.111//eth0 drbddisk::data Filesystem::/dev/drbd0::/usr/local/mfs::ext4
/etc/init.d/heartbeat start
master端:
[root@mfsmaster ~]# ip a|grep eth0
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
inet 10.1.1.243/ brd 10.1.1.255 scope global eth0
inet 10.1.1.111/ brd 10.1.1.255 scope global secondary eth0
[root@mfsmaster ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G .0G 11G % /
tmpfs 176M 176M % /dev/shm
/dev/sda1 190M 27M 153M % /boot
/dev/sda3 .9G 4.5M .7G % /home
/dev/drbd0 .5G 2.3M .4G % /usr/local/mfs
[root@mfsmaster ~]# cat /proc/drbd
version: 8.4. (api:/proto:-)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mfsmaster, -- ::
: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns: nr: dw: dr: al: bm: lo: pe: ua: ap: ep: wo:f oos:
slave
[root@mfsbackup drbd.d]# ip a|grep eth0
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
inet 10.1.1.244/ brd 10.1.1.255 scope global eth0
[root@mfsbackup drbd.d]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G .0G 11G % /
tmpfs 176M 176M % /dev/shm
/dev/sda1 190M 27M 153M % /boot
/dev/sda3 .9G 4.5M .7G % /home
[root@mfsbackup drbd.d]# cat /proc/drbd
version: 8.4. (api:/proto:-)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mfsbackup, -- ::
: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns: nr: dw: dr: al: bm: lo: pe: ua: ap: ep: wo:f oos:
master端:
/etc/init.d/heartbeat stop
查看master和slave端VIP、drbd主从状态以及挂载点状态
master端:
[root@mfsmaster ~]# ip a|grep eth0
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
inet 10.1.1.243/ brd 10.1.1.255 scope global eth0
[root@mfsmaster ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G .0G 11G % /
tmpfs 176M 176M % /dev/shm
/dev/sda1 190M 27M 153M % /boot
/dev/sda3 .9G 4.5M .7G % /home
[root@mfsmaster ~]# !cat
cat /proc/drbd
version: 8.4. (api:/proto:-)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mfsmaster, -- ::
: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns: nr: dw: dr: al: bm: lo: pe: ua: ap: ep: wo:f oos:
slave端:
[root@mfsbackup drbd.d]# ip a|grep eth0
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
inet 10.1.1.244/ brd 10.1.1.255 scope global eth0
inet 10.1.1.111/ brd 10.1.1.255 scope global secondary eth0
[root@mfsbackup drbd.d]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G .0G 11G % /
tmpfs 176M 176M % /dev/shm
/dev/sda1 190M 27M 153M % /boot
/dev/sda3 .9G 4.5M .7G % /home
/dev/drbd0 .5G 2.3M .4G % /usr/local/mfs
[root@mfsbackup drbd.d]# cat /proc/drbd
version: 8.4. (api:/proto:-)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by root@mfsbackup, -- ::
: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns: nr: dw: dr: al: bm: lo: pe: ua: ap: ep: wo:f oos:
可以看到,VIP、挂载和DRBD状态在slave上生效
[root@mfsmaster ~]# /etc/init.d/heartbeat start #查看主恢复后是否可以自动接管
五、搭建mfs集群
1) master 主服务器安装配置
[root@mfsmaster ~]# groupadd -g mfs && useradd -g mfs -u mfs -s /sbin/nologin
[root@mfsmaster ~]#yum install fuser* zlib* -y
[root@mfsmaster ~]# tar xf mfs-1.6.-.tar.gz #文件在左侧
[root@mfsmaster ~]# cd mfs-1.6.
[root@mfsmaster mfs-1.6.]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
[root@mfsmaster mfs-1.6.]# make && make install
[root@mfsmaster mfs-1.6.]# chown -R mfs.mfs /usr/local/mfs
[root@mfsmaster mfs-1.6.]# cd /usr/local/mfs/etc/mfs/
[root@mfsmaster mfs]# ll
总用量
-rw-r--r--. root root 10月 : mfschunkserver.cfg.dist
-rw-r--r--. root root 10月 : mfsexports.cfg.dist
-rw-r--r--. root root 10月 : mfshdd.cfg.dist
-rw-r--r--. root root 10月 : mfsmaster.cfg.dist
-rw-r--r--. root root 10月 : mfsmetalogger.cfg.dist
-rw-r--r--. root root 10月 : mfstopology.cfg.dist
2)配置master
[root@mfsmaster mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件
[root@mfsmaster mfs]# cp mfsexports.cfg.dist mfsexports.cfg #共享目录的挂载、权限设置
[root@mfsmaster mfs]# egrep -v "^#|^$" mfsexports.cfg #修改export配置文件,结果如下
10.1.1.0/ / rw,alldirs,maproot=mfs:mfs,password=
* . rw [root@mfsmaster mfs]# cd /usr/local/mfs/var/mfs/
[root@mfsmaster mfs]# cp metadata.mfs.empty metadata.mfs
[root@mfsmaster mfs]# /usr/local/mfs/sbin/mfsmaster start #启动服务,-s或者 stop 停止服务
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmaster modules ...
loading sessions ... file not found
if it is not fresh installation then you have to restart all active mounts !!!
exports file has been loaded
mfstopology configuration file (/usr/local/mfs/etc/mfstopology.cfg) not found - using defaults
loading metadata ...
create new empty filesystemmetadata file has been loaded
no charts data file - initializing empty charts
master <-> metaloggers module: listen on *:
master <-> chunkservers module: listen on *:
main master server module: listen on *:
mfsmaster daemon initialized properly
查看结果:
[root@mfsmaster ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mfsmaster
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mfsmaster
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mfsmaster
tcp ::: :::* LISTEN /sshd
[root@mfsmaster ~]# ps -elf|grep mfs
S mfs - - poll_s : ? :: /usr/local/mfs/sbin/mfsmaster start
S root - pipe_w : pts/ :: grep mfs [root@mfsmaster mfs]# sed -i 's#^PATH.*$#&:/usr/local/mfs/sbin/#g' /root/.bash_profile #添加mfs命
[root@mfsmaster ~]# cd
[root@mfsmaster ~]# . .bash_profile
[root@mfsmaster ~]# echo " /usr/local/mfs/sbin/mfsmaster start" >> /etc/rc.local #开机自启动
[root@mfsmaster ~]# mfsmaster stop
[root@mfsmaster ~]# cp /usr/local/mfs/sbin/mfsmaster /etc/init.d/
[root@mfsmaster ~]# umount /usr/local/mfs/
六、mfs-slave配置
因为mfs-slave是使用的drbd,所以我们只需要中一些简单的操作就可以启动mfs了
#让DRBD设备下线
[root@mfsbackup ~]# drbdadm down data
[root@mfsbackup ~]# mkdir -p /usr/local/mfs
[root@mfsbackup ~]# mount /dev/sdb1 /usr/local/mfs
[root@mfsbackup ~]# cp /usr/local/mfs/sbin/mfsmaster /etc/init.d/
[root@mfsbackup ~]# /etc/init.d/mfsmaster start
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmaster modules ...
loading sessions ... ok
sessions file has been loaded
exports file has been loaded
mfstopology configuration file (/usr/local/mfs/etc/mfstopology.cfg) not found - using defaults
loading metadata ...
loading objects (files,directories,etc.) ... ok
loading names ... ok
loading deletion timestamps ... ok
loading chunks data ... ok
checking filesystem consistency ... ok
connecting files and chunks ... ok
all inodes:
directory inodes:
file inodes:
chunks:
metadata file has been loaded
stats file has been loaded
master <-> metaloggers module: listen on *:
master <-> chunkservers module: listen on *:
main master server module: listen on *:
mfsmaster daemon initialized properly
[root@mfsbackup ~]# netstat -tnpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mfsmaster
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mfsmaster
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mfsmaster
tcp ::: :::* LISTEN /sshd #关闭服务
[root@mfsbackup ~]# /etc/init.d/mfsmaster stop
sending SIGTERM to lock owner (pid:)
waiting for termination ... terminated
#配置环境变量
[root@mfsbackup ~]# sed -i 's#^PATH.*$#&:/usr/local/mfs/sbin/#g' .bash_profile && . .bash_profile
[root@mfsbackup ~]# sed -i 's#^PATH.*$#&:/usr/local/drbd-8.4/sbin/#g' /root/.bash_profile && . /root/.bash_profile #最后将文件系统卸载,让DRBD上线
[root@mfsbackup ~]# umount /usr/local/mfs/
[root@mfsbackup ~]# drbdadm up data
将mfs服务交给heartbeat管理(slave同master相同)
[root@mfsmaster ha.d]# cat haresources
mfsmaster IPaddr::10.1.1.111//eth0 drbddisk::data Filesystem::/dev/drbd0::/usr/local/mfs::ext4 mfsmaster
#停止mfs-master的heartbeat服务
[root@mfsmaster ha.d]# /etc/init.d/heartbeat stop
Stopping High-Availability services: Done.
查看master资源是否转移
[root@mfsmaster ~]# cat /proc/drbd
[root@mfsmaster ~]# df -h
[root@mfsmaster ~]# ip a #查看mfs-slave的信息
[root@mfsbackup drbd.d]# ip a|grep eth0
[root@mfsbackup drbd.d]# df -h
[root@mfsbackup drbd.d]# cat /proc/drbd
七、安装数据服务器 data server(chunk server)
软件安装步骤同上
root@mfsdata01 mfs]# fdisk /dev/sdb
........
root@mfsdata01 mfs]# partprobe
[root@mfsdata01 mfs]# mkfs.ext4 /dev/sdb1
[root@mfsdata01 mfs]# tune2fs -c - /dev/sdb1
[root@mfsdata03 mfs]# mkdir /data/mfsdata -p
[root@mfsdata01 mfs]# chown -R mfs.mfs /data/mfsdata
[root@mfsdata02 mfs]# mount /dev/sdb1 /data/mfsdata
[root@mfsdata02 mfs]# df -h
[root@mfsdata01 mfs]# grep /dev/sdb1 /etc/fstab
/dev/sdb1 /data/mfsdata ext4 defaults
[root@mfsdata01 mfs]# umount /data/mfsdata/ #测试配置语法是否有错误
[root@mfsdata01 mfs]# mount -a
[root@mfsdata01 mfs]# df -h
[root@mfsdata01 mfs]# cd /usr/local/mfs/etc/mfs/
[root@mfsdata01 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg && cp mfshdd.cfg.dist mfshdd.cfg
[root@mfsdata01 mfs]# grep "^MASTER" mfschunkserver.cfg #指定master地址
MASTER_HOST = mfsmaster.etiantian.org
[root@mfsdata01 mfs]# grep -v "^#" mfshdd.cfg #配置数据目录
/data/mfsdata
[root@mfsdata01 mfs]# /usr/local/mfs/sbin/mfschunkserver start
[root@mfsdata01 mfs]# lsof -i:
[root@mfsdata01 mfs]# ll /data/mfsdata/
[root@mfsdata01 mfs]# echo "/usr/local/mfs/sbin/mfschunkserver start" >> /etc/rc.local
#三台data server 操作步骤相同
[root@mfsdata01 mfs]# df -h
[root@mfsmaster ~]# mfscgiserv start
http://192.168.1.17:9425/mfs.cgi #访问url路径
查看监控图
八、安装配置客户端服务器(client)和backup(meatlogger)服务器
客户端服务器(client)安装配置:
[root@mfsclient ~]# yum install fuse* -y #client端依赖fuse模块
安装mfs,操作同上
[root@mfsclient01 ~]# modprobe fuse
[root@mfsclient01 ~]# lsmod|grep fuse
fuse
[root@mfsclient mfs]# ll /usr/local/mfs/bin/
[root@mfsclient ~]# echo "modprobe fuse" >> /etc/rc.local
[root@mfsclient mfs]# cd
[root@mfsclient ~]# grep -i ^path .bash_profile #配置命令环境变量
PATH=$PATH:$HOME/bin:/usr/local/mfs/bin/
[root@mfsclient ~]#. .bash_profile
[root@mfsclient ~]# mkdir /mnt/mfs #工作中此目录应为应用服务器实际数据目录
[root@mfsclient ~]# chown -R mfs.mfs /mnt/mfs
[root@mfsclient ~]# mfsmount /mnt/mfs -H mfs-master -o mfspassword=111111 #或者使用-p交互式输入密码,具体可以查看命令帮助 --help
mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to mfs:mfs
[root@mfsclient01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G .9G 11G % /
tmpfs 153M 153M % /dev/shm
/dev/sda1 190M 27M 153M % /boot
/dev/sda3 .9G 4.5M .7G % /home
mfs-master: .3G .3G % /mnt/mfs
安装方式同master一样,忽略。。。
[root@mfsclient01 mfs-1.6.]# cd /usr/local/mfs/etc/mfs/
[root@mfsclient01 mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@mfsclient01 mfs]# grep "MASTER_HOST" mfsmetalogger.cfg
MASTER_HOST = mfs-master #修改master为master VIP对应的域名(IP也可以)
[root@mfsclient01 mfs]# telnet mfsmaster.etiantian.org #测试9419端口是否打开,命令没有直接yum安装
[root@mfsclient01 mfs]# /usr/local/mfs/sbin/mfsmetalogger start
[root@mfsclient01 mfs]# lsof -i:
[root@mfsclient01 ~]# lsof -i: #master端查看
[root@mfsbackup mfs-1.6.]# ll /usr/local/mfs/var/mfs/ #元数据、日志存放路径
总用量
-rw-r-----. mfs mfs 10月 : changelog_ml_back..mfs
-rw-r-----. mfs mfs 10月 : changelog_ml_back..mfs
-rw-r--r--. root root 10月 metadata.mfs.empty
-rw-r-----. mfs mfs 10月 : metadata_ml.mfs.back
-rw-r-----. mfs mfs 10月 : sessions_ml.mfs
[root@mfsclient01 mfs-1.6.]# echo "/usr/local/mfs/sbin/mfsmetalogger start" >> /etc/rc.local
[root@mfsclient01 ~]#vim .bash_profile #添加mfs命令路径
九、其他杂项
1)测试写入删除操作
测试操作前观察master、backup以及data服务器发生的变化
[root@mfsmaster ~]# ll /usr/local/mfs/var/mfs/
[root@mfsbackup ~]# ll /usr/local/mfs/var/mfs/
[root@mfsdata03 mfsdata]# find /data/mfsdata/ -type f [root@mfsclient ~]# cd /mnt/mfs/
[root@mfsclient mfs]# ll
总用量
[root@mfsclient mfs]# echo > my.txt #测试的文件必须有数据,不能为空文件
[root@mfsclient mfs]# for i in {..};do cp /bin/cat $i;done
[root@mfsclient mfs]# ll 对比操作后发生的变化
[root@mfsmaster ~]# ll /usr/local/mfs-1.6./var/mfs/
[root@mfsbackup ~]# ll /usr/local/mfs-1.6./var/mfs/
[root@mfsdata03 mfsdata]# find /data/mfsdata/ -type f
2)查看和设置文件副本个数
查看:
[root@mfsclient01 panwenbin]# mfsfileinfo my.txt
my.txt:
chunk : 0000000000000011_00000001 / (id: ver:)
copy : 10.1.1.245:
copy : 10.1.1.246:
copy : 10.1.1.247:9422
3)查看及设置文件删除后的清理时间
[root@mfsclient panwenbin]# mfsgettrashtime 100M.img #查看回收时间, 默认是一天
[root@mfsclient panwenbin]# mfssettrashtime -r /mnt/mfs/panwenbin/ #自定义回收时间
4)还原被删除文件
[root@mfsclient panwenbin]# mkdir /mnt/mfs-trash
[root@mfsclient panwenbin]# mfsmount -H mfsmaster.etiantian.org -m /mnt/mfs-trash/
[root@mfsclient panwenbin]# ll /mnt/mfs-trash/
#该目录有两个文件,reserved目录存放的是已删除但是用户还在打开的文件,用户关闭后数据将被删除,该目录不能进行操作。trash目录存放的是已删除的文件 trash/undel 是数据还原目录

写的不好请多包涵!!!
Heartbeat+DRBD+MFS高可用的更多相关文章
- Heartbeat+DRBD+MySQL高可用方案
1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自 ...
- Heartbeat+DRBD+MySQL高可用方案【转】
转自Heartbeat+DRBD+MySQL高可用方案 - yayun - 博客园 http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用 ...
- (转)Heartbeat+DRBD+MySQL高可用方案
原文:http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由D ...
- (转)Heartbeat+DRBD+NFS高可用案例
原文:http://9861015.blog.51cto.com/9851015/1939521--------------------------------Heartbeat+DRBD+NFS高可 ...
- Heartbeat+LVS构建高可用负载均衡集群
1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...
- heartbeat单独提供高可用服务
本文目录:1.简介2.安装heartbeat 2.1 编译安装Heartbeat3.heartbeat相关配置文件 3.1 配置文件ha.cf 3.2 配置文件authkeys 3.3 配置文件har ...
- Nfs+Drdb+Heartbeat 数据存储高可用服务架构方案
一.方案的应用场景 适用于2千万-3千万PV架构的网站,Nfs数据存储高可用服务方案 备注:互联网排名前30左右公司常用的架构 二.生产环境方案部署原理图 三.生产环境服务器硬件配置: 生产环境中采用 ...
- heartbeat+nginx搭建高可用HA集群
前言: HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至B机器 ...
- heartbeat双主高可用
一.基础配置 1.hostnamectl set-hostname node1 (node2) 2.[root@node1 ~]# cat /etc/hosts 192.168.40.128 ...
随机推荐
- Grid Virtual Server 和 网格计算
Grid Virtual Server 的 Virtual Server 源于 LVS (Linux Virtual Server) , LVS 的意思就是把 多个 Linux 服务器 联合起来构成一 ...
- naturalWidth与naturalHeight
naturalWidth与naturalHeight是HTML5的新属性, 可与通过这两个属性来直接获取图片的原始宽度和高度, 现在在火狐, 谷歌, IE11均已经实现 可以看看naturalWidt ...
- 外观模式face
5.1 模式优点 外观模式的主要优点如下: (1) 它对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易.通过引入外观模式,客户端代码将变得很简单,与之 ...
- Shell 一键安装命令
现在是懒人的天下,为了迎合用户的需求,很多开源软件或者包提供的安装步骤都非常简单,大家应该看到不少类似一键安装的命令.下面是几个典型的例子: # homebrew 安装 $ ruby -e " ...
- python ord()与chr()用法以及区别
ord()函数主要用来返回对应字符的ascii码,chr()主要用来表示ascii码对应的字符他的输入时数字,可以用十进制,也可以用十六进制. >>> ord("a&quo ...
- Hadoop 历史服务配置启动查看
历史服务配置启动查看 1)配置mapred-site.xml <property> <name>mapreduce.jobhistory.address</name> ...
- 自然语言处理工具HanLP被收录中国大数据产业发展的创新技术新书《数据之翼》
在12月20日由中国电子信息产业发展研究院主办的2018中国软件大会上,大快搜索获评“2018中国大数据基础软件领域领军企业”,并成功入选中国数字化转型TOP100服务商. 图:大快搜索获评“2018 ...
- CentOS7局域网下安装离线Ambari
1 Ambari介绍.安装与应用案例介绍 1.1 Ambari Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目 ...
- 基于Java+SparkStreaming整合kafka编程
一.下载依赖jar包 具体可以参考:SparkStreaming整合kafka编程 二.创建Java工程 太简单,略. 三.实际例子 spark的安装包里面有好多例子,具体路径:spark-2.1.1 ...
- angularjs 外部调用controller中的方法
angular.element(document.querySelector('[ng-controller=mainCtrl]')).scope().viewGo('tab.VIPPay_Succe ...