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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务