回到node-a机器
[root@node-a ~]# drbdadm -- --overwrite-data-of-peer primary mysql
以node-a为主服务开始同步
[root@node-a ~]# watch cat /proc/drbd 查看同步信息
Every 2.0s: cat /proc/drbd Sat Mar 28 21:46:44 2009
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-bui
ld, 2008-10-03 11:42:32
0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r---
ns:745388 nr:0 dw:0 dr:753568 al:0 bm:45 lo:1 pe:1 ua:256 ap:0 oos:2891724
[===>................] sync'ed: 20.7% (2891724/3637100)K
同时在node-b机器上查看同步信息
[root@node-b ~]# cat /proc/drbd
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32
0: cs:SyncTarget st:Secondary/Primary ds:Inconsistent/UpToDate C r---
ns:0 nr:2894368 dw:2894304 dr:0 al:0 bm:176 lo:3 pe:2008 ua:2 ap:0 oos:742796
[==============>.....] sync'ed: 79.7% (742796/3637100)K
finish: 0:00:26 speed: 27,744 (17,124) K/sec <-- 同步的传输速度
node-a机器查看同步完后的信息 总共花了total 147 sec
[root@node-a ~]# tail -f /var/log/messages
Mar 28 21:46:09 node-a kernel: drbd0: writing of bitmap took 9 jiffies
Mar 28 21:46:09 node-a kernel: drbd0: 3552 MB (909275 bits) marked out-of-sync by on disk bit-map.
Mar 28 21:46:09 node-a kernel: drbd0: Writing meta data super block now.
Mar 28 21:46:09 node-a kernel: drbd0: conn( Connected -> WFBitMapS )
Mar 28 21:46:09 node-a kernel: drbd0: conn( WFBitMapS -> SyncSource )
Mar 28 21:46:09 node-a kernel: drbd0: Began resync as SyncSource (will sync 3637100 KB [909275 bits set]).
Mar 28 21:46:09 node-a kernel: drbd0: Writing meta data super block now.
Mar 28 21:48:37 node-a kernel: drbd0: Resync done (total 147 sec; paused 0 sec; 24740 K/sec)
Mar 28 21:48:37 node-a kernel: drbd0: conn( SyncSource -> Connected ) pdsk( Inconsistent -> UpToDate )
Mar 28 21:48:37 node-a kernel: drbd0: Writing meta data super block now.
开始建立node-a 的DRBD使用的文件磁盘
[root@node-a ~]# mkfs.ext3 -L mysql /dev/drbd0
mke2fs 1.39 (29-May-2006)
Filesystem label=mysql
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
455168 inodes, 909275 blocks
45463 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=931135488
28 block groups
32768 blocks per group, 32768 fragments per group
16256 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@node-a mnt]# mkdir /mnt/mysql
[root@node-a mnt]# mount /dev/drbd0 /mnt/mysql
[root@node-a mysql]# vi /etc/my.cnf <-- 修改mysql数据库存放路径
datadir=/mnt/mysql
[root@node-a mysql]# /etc/init.d/mysqld start <-- 启动mysql
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h node-a password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
[ OK ]
Starting MySQL: [ OK ]
[root@node-a mysql]# cd /mnt/mysql/
[root@node-a mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 lost+found mysql test
有数据存在了
[root@node-a mysql]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-logV0100
7.7G 868M 6.4G 12% /
/dev/hda1 99M 24M 71M 25% /boot
tmpfs 125M 0 125M 0% /dev/shm
/dev/drbd0 3.5G 92M 3.2G 3% /mnt/mysql <-- 已经挂载好了
[root@node-a mysql]# scp /etc/my.cnf root@192.168.1.12:/etc/my.cnf
[root@node-a mysql]# /etc/rc.d/init.d/drbd status <-- 状态为一主一副了
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32
m:res cs st ds p mounted fstype
0:mysql Connected Primary/Secondary UpToDate/UpToDate C /mnt/mysql ext3
cd .. 退出/mnt/mysql目录
umount /mnt/mysql <-- 卸载/mnt/mysql
[root@node-a mnt]# drbdadm secondary mysql (把node-a机器设置为次用机器)
登陆node-b机器
[root@node-b ~]# mkdir /mnt/mysql
[root@node-b mysql]# /etc/init.d/drbd strat
[root@node-b mysql]# drbdadm primary mysql (把node-b机器设置为主机 这样才能挂载到/mnt/mysql)
[root@node-b mysql]# mount /dev/drbd0 /mnt/mysql
等几十秒后
[root@node-b mysql]# cd /mnt/mysql
[root@node-b mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 lost+found mysql test
说明node-a机器上建立的数据库 已经自动同步到node-b机器上了
[root@node-b ~]# umount /mnt/mysql
[root@node-b ~]# drbdadm secondary mysql <-- 再将node-b设置为次要机器
[root@node-a mnt]# drbdadm primary mysql <-- 将node-a设置为主要机器
修改heartbeat的配置文件
[root@node-a] cp /usr/share/doc/heartbeat-*/ha.cf /etc/ha.d/
[root@node-a] vi /etc/ha.d/ha.cf
ucast eth0 192.168.1.12
ucast eth1 192.168.100.12
ping 192.168.1.1
respawn hacluster /usr/lib/heartbeat/ipfail
respawn hacluster /usr/lib/heartbeat/dopd
apiauth dopd gid=haclient uid=hacluster
udpport 694
warntime 5
deadtime 15
initdead 60
keepalive 2
node node-a
node node-b
auto_failback off
watchdog /dev/watchdog
use_logd yes
#crm yes
在node-b机器上编辑
[root@node-b ~]# vi /etc/ha.d/ha.cf
ucast eth0 192.168.1.11
ucast eth1 192.168.100.11
ping 192.168.1.1
respawn hacluster /usr/lib/heartbeat/ipfail
respawn hacluster /usr/lib/heartbeat/dopd
apiauth dopd gid=haclient uid=hacluster
udpport 694
warntime 5
deadtime 15
initdead 60
keepalive 2
node node-a
node node-b
auto_failback off
watchdog /dev/watchdog
use_logd yes
#crm yes
[root@node-a ~]# cp /usr/share/doc/heartbeat-*/logd.cf /etc/
[root@node-a ~]# vi /etc/logd.cf <-- 设置软件日志
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility none
[root@node-a ~]# cp /usr/share/doc/heartbeat-*/authkeys /etc/ha.d/
[root@node-a ~]# vi /etc/ha.d/authkeys <-- 设置验证方式采用 crc 可以节省cpu的消耗
auth 1
1 crc
[root@node-a ~]# chmod 600 /etc/ha.d/authkeys <-- 设置认证文件只能是root访问
编辑资源文件
[root@node-a ~]# vi /etc/ha.d/haresources
node-a \ <-- 资源名称 用"uname-n"就能显示出来
IPaddr2::192.168.1.10/24/eth0/192.168.1.255 \ <-- 资源虚拟的ip和网卡和子网掩码
drbddisk::mysql \ <-- drbd的资源
Filesystem::/dev/drbd0::/mnt/mysql \ <-- 使用得文件系统
mysqld <-- 使用mysql
把authkeys haresources ha.cf 都复制到node-b机器
scp ha.cf haresources authkeys root@192.168.1.12:/etc/ha.d/
[root@node-b ~]# vi /etc/ha.d/haresources
node-b \ <-- 这个需要修改为node-b
IPaddr2::192.168.1.10/24/eth0/192.168.1.255 \
drbddisk::mysql \
Filesystem::/dev/drbd0::/mnt/mysql \
mysqld
0 评论:
发表评论