您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页两台linux完美实现双机热备

两台linux完美实现双机热备

来源:意榕旅游网
两台linux完美实现双机热备

ip1:192.168.1.240 ha1 ip2:192.168.1.241 ha2 物理磁盘10g 系统分区5g

disk:/dev/sda1(一个2G的分区) disk:/dev/sda2(一个2G的分区)

通过drbd,挂在每台机器上的sdb1这块分区将成为咱们“存储”。let's go ! ++++++现在开始两台机器配置一样++++++ 1.设定hosts vi /etc/hosts 192.168.1.240ha1 192.168.1.241ha2

注意:比如在1.11这台机器上。drbd1是你执行hostname命令看到的,而不是随手一写的哟:)

2.安装并配置drbd 1).安装drbd。

你可以去http://oss.linbit.com/drbd/下载最新的版本。本文为了方便直接从ubuntu的源进行安装 更新apt源

执行操作 拷贝resolv.conf到/etc覆盖原文件 拷贝sources.list到/etc/apt覆盖原文件

apt-get update

apt-get install drbd8-utils drbd8-module-source build-essential module-assistant module-assistant auto-install drbd8

磁盘分区

cfdisk /dev/sda sda2:2G

sda3:2G 创建分区后重启

2).创建配置文件

备机上文件从主机上拷贝

如果用apt-get或者yum的方式安装的话,会默认创建配置文件,而编译安装则不会。不管直接清空或改名,写入以下内容。 vi /etc/drbd.conf common { syncer

{

rate 500M; }

}

resource r0 {

on ha1

{ }

device /dev/drbd0; disk /dev/sda2;

address 192.168.1.240:7788; meta-disk internal;

protocol C;

startup { wfc-timeout disk

{ }

on-io-error detach;

30; degr-wfc-timeout 120; }

on ha2

{

device /dev/drbd0; disk /dev/sda2;

}

}

address 192.168.1.241:7788; meta-disk internal;

resource r1 {

on ha1

{ }

device /dev/drbd1; disk /dev/sda3;

address 192.168.1.240:77; meta-disk internal;

protocol C;

startup { wfc-timeout disk

{ }

on-io-error detach;

30; degr-wfc-timeout 120; }

on ha2

{

}

device /dev/drbd1; disk /dev/sda3;

address 192.168.1.241:77; meta-disk internal;

}3)创建资源 修改hosts文件 Vi /etc/hosts 192.168.1.240 ha1 192.168.1.241 ha2

drbdadm create-md r0 #r0为刚才配置文件里的资源名 drbdadm create-md r1 #r1为刚才配置文件里的资源名

会提示三个疑问,如果你英文还可以的话,可以阅读一下,不然的话,直接回车。在终点你会看到 success :)

4)启动drbd服务 /etc/init.d/drbd start 等待单机数据同步完成 cat /proc/drbd 你应该可以看到

注意里面我标注的\"Secondary/Secondary\"意思是说现在这块盘是从盘,主盘不知道。

++++++现在开始只在drbd1上操作++++++ 5)初始化网络硬盘

drbdsetup /dev/drbd0 primary -o cat /proc/drbd

你会发现现在已经是\"Primary/Secondary\"了,而且已经开始同步硬盘状态。 为了实时的查看同步情况,你可以在drbd1上执行 watch -n1 cat /proc/drbd

同步还在进行

经过一段时间的等待,你会发现成功完成!

同步完成以后,在drbd2上查看硬盘状态

注意磁盘状态是:\"Secondary/Primary\" 格式化网络磁盘

6)设置drbd开机启动 在两台机器上都执行 chkconfigdrbd on

7)手工测试drbd是不是正常工作 在drbd1上建立3个文件

在drbd2上验证结果

ok,我们现在已经确定drbd是正常工作的了。也相信在这么细致的介绍下,你已经熟悉了它是怎么工作了。我们现在有了“网络存储”了。下一步就是让一个东东帮我们调度资源了。简单的几步配置有请heartbeat出场

建立/data/mysql 文件夹 用来移植MYSQL数据文件 3.配置heartbeat 1)安装heartbeat

apt-get install heartbeat 2)配置heartbeat vi /etc/heartbeat/ha.cf logfacility local0 keepalive 2 deadtime 10 auto_failback off bcast eth0

node drbd1 drbd2

vi /etc/heartbeat/haresources

heart2drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3

vi authkeys auth 3 3 md5 abc

chmod 600 authkeys 3)相同的配置复制到drbd2

scpauthkeysharesources ha.cf root@192.168.1.12:/etc/heartbeat/

4)确保服务都是正常运行的 /etc/init.d/drbd start /etc/init.d/heartbeat start

5)切换测试

通过cat /proc/drbd查看drbd的状态或者mount查看/mnt是不是已经挂载确定资源所在的机器。然后在那台机器的/mnt新建立一些文件并停掉那台机器上的heartbeat。看另一台机器上/mnt是不是被自动挂载了呢?里面是不是有刚创建的文件?good luck!

总结:基本两台linux实现的双机热备到此就要结束了。回顾一下环境:两台机器;两块的分区,最好是一样大,只分区,而没有格式化;linux操作系统;drbd网络磁盘;heartbeat实现资源调度;好像就这么多东西吧。可能您要说了,看完这篇文章,一点实际意义都没有,因为只是实现了共享磁盘。哈哈,我要说,要想发挥威力就要仔细的看一下heartbeat的资源调度了,有了这位大管家,还有啥实现不了的服务呢?

本文出自 “rainbird” 博客,转载请与作者联系!

安装MYSQL

取消mysql自动启动

service mysql stop

update-rc.d -f mysql remove

update-rc.d-f tomcat6 remove

update-rc.d-f heartbeatremove update-rc.dheartbeat defaults

迁移MySQL数据目录

05.24.2010, 未分类, by Athurg Feng.

话说在VPS中,重装系统也许是不可避免的事。对于很多VPS供应商而言,尤其是Linux客户机的VPS。所谓的重装,也就是直接用一块已经安装好系统的新硬盘镜像,替换掉以前的就是了。因此很多VPS供应商明确的指出——“VPS系统重装后,Windows客户机的C盘数据将清空,Linux客户机所有数据将清空,

请客户做好备份”。

大家都知道,中国的拨号式“宽带”。对于备份整个服务器,简直是有点找抽的做法。因此作为服务商推出一项新策略——智能备份。简单的说,就是直接将给你的硬盘空间一分为二,一半用于运行,一半用于备

份。所以常常号称40G硬盘空间的你,实际上只能得到20G可用空间。这样的确起到了备份的作用,但

是付出的代价也是极为巨大的。

既然服务商的方案我们不想采用,又更不想每次重装都要下载、上传整个硬盘。那我们怎么办呢?方法很简单,借鉴Windows的做法,将数据和程序物理性的分开处理。即将磁盘分区修改为两个以上,一个存

储系统程序,一个用于存储数据。这里,我们要说的就是MySQL数据的剥离。

知道MySQL的人都知道,MySQL的默认数据存放于/var/lib/mysql。这里我们假定将这个数据位置修改

为/home/mysql。于是就有了我们三步走的迁移攻略了:

1. 停下mysql服务;

2. 复制数据到新位置:要注意的是,mysql的数据及其数据存储目录的属主和属组都是mysql。

而通常我们貌似也不知道mysql用户的密码,所以怎么办呢?当然是以root用户来复制咯。所以这一要注意,复制完成后,切记要将新目录及其子目录、文件的属组、属主修改为mysql; 3. 修改MySQL配置文件/etc/mysql/my.cnf,将datadir设置项的值设置为新的数据位置

/home/mysql。

这里提供个小脚本,请注意这个脚本的适用环境是ArchLinux,其他发行版可参考。主要的差别在于默认

的MySQL配置文件路径、默认的MySQL数据存储目录、修改后的MySQL数据存储目录。

OLD_PATH=/var/lib/mysql NEW_PATH=/data/mysql

#很多发行版的MySQL配置目录可能是/etc/my.cnf

CFG_PATH=/etc/mysql/my.cnf

install -D ${NEW_PATH}

cp -rvf ${OLD_PATH}/* ${NEW_PATH} chown -R mysql:mysql ${NEW_PATH}

sed -ibackup \"s/^datadir.*/datadirt= /data/mysql/p\"

${CFG_PATH}

修改my。Cnf文件 [mysqld] #

# * Basic Settings #

user = mysql

pid-file = /var/run/mysqld/mysqld.pid socket port

= /var/run/mysqld/mysqld.sock = 3306

= /usr

= /data/mysql/mysql = /tmp

basedir datadir tmpdir

language = /usr/share/mysql/English

修改vi /etc/heartbeat/haresources 加入mysql,tomcat

ha1 IPaddr::192.168.1.88/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data/mysql::ext3 drbddisk::r1 Filesystem::/dev/drbd1::/home::ext3 mysqltomcat6

将MYSQL数据库映射到第二台机器上启动myslq出错的解决方式 拷贝第一台机器/etc/mysql/debian.cnf /usr/../mysqladmin 覆盖第二台机器

取消mysql自动启动

servicemysql stop

update-rc.d -f mysql remove tomcat6也不自动启动

drbd脑裂处理

一个朋友告诉我要是脑裂了,一般管理员也就脑裂了,你不知道哪台现在正在提供服务,我的例子倒是很好找,我有个虚IP,这个虚IP在哪漂着,哪台就是主,然后在从机上手动恢复

步骤是:

1、先umountdrbd的分区 2、drbdadm disconnect all

3、drbdadm secondary all

4、drbdadm -- --discard-my-data connect all

如果还不行,在主上执行drbdadm connect all就行了

我试验时是这么恢复的,仅供参考。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务