上次说到MySQL可靠性方案分析与比较,这回简单介绍下 mysql-master-master的安装,希望有使用过的兄弟多多讨论 ...
作用: 高可用性 mysql 集群,也称不上集群,主要体现在高可用性上吧!
原理: 在 master-master (互为 master-slave) 基础上,用 perl 写的脚本,提供虚拟IP,并实现HA
-------------------- 警用分隔线 ------------------------
下载: http://code.google.com/p/mysql-master-master/
安装: 1. 解压 mmm-1.0.tar.bz2
2. 运行 install.pl
3. 一般情况下会提示一下依赖包未安装,安装即可.
cpan Time::HiRes
cpan DBI
cpan DBD::mysql
cpan Algorithm::Diff
安装 DBD::mysql 可能会遇到的问题: (1).mysql_config 提示为找到. --- 加入 /usr/local/mysql/bin 到 path 里即可
(2).mysql.so,类似找不到 mysql 客户端库文件,请执行:
cp /usr/local/mysql/lib/mysql/* /usr/lib/
cp /usr/local/mysql/include/mysql/* /usr/include/
(3). make test 时候提示拒绝访问错误:
perl -MCPAN -e shell
force install DBD::mysql 强制安装,跳过 make test
作用: 高可用性 mysql 集群,也称不上集群,主要体现在高可用性上吧!
原理: 在 master-master (互为 master-slave) 基础上,用 perl 写的脚本,提供虚拟IP,并实现HA
-------------------- 警用分隔线 ------------------------
下载: http://code.google.com/p/mysql-master-master/
安装: 1. 解压 mmm-1.0.tar.bz2
2. 运行 install.pl
3. 一般情况下会提示一下依赖包未安装,安装即可.
cpan Time::HiRes
cpan DBI
cpan DBD::mysql
cpan Algorithm::Diff
安装 DBD::mysql 可能会遇到的问题: (1).mysql_config 提示为找到. --- 加入 /usr/local/mysql/bin 到 path 里即可
(2).mysql.so,类似找不到 mysql 客户端库文件,请执行:
cp /usr/local/mysql/lib/mysql/* /usr/lib/
cp /usr/local/mysql/include/mysql/* /usr/include/
(3). make test 时候提示拒绝访问错误:
perl -MCPAN -e shell
force install DBD::mysql 强制安装,跳过 make test
最新版本:2007-11 5.3.0
前提: 使用DELL品牌机器,其实也就是要有DELL主板上的一块小小芯片(BMC)就成!
官方公布测试通过可使用型号:
PowerEdge 10th generation system family:
R200, R900
PowerEdge 9th generation system family:
1900, 1950, 1955, 2900, 2950, 2970, 6950
PowerEdge 8th generation system family:
800, 830, 840, 850, 860, 1800, 1850, 1855MC, 2800, 2850, 6800, and 6850
PowerEdge 7th generation system family:
700, 750, 1750
PowerEdge 6th generation system family:
600SC, 650, 1600SC, 1650, 1655MC, 2600, 2650, 4600, 6600, 6650
PowerVault system family:
NX1950, PV100, PV500, PV600
目的: 监控系统硬件状态,配合 IT Assistant 可实现N台机器集中管理主动硬件报警,包括一些硬件驱动的更新提示,
当然报警级别可自定义!
附加功能,硬件配置,硬件的插槽位置,硬盘的raid情况,重启,关机,机器序列号,自定义标签,液晶面板的自定义显示等等等 ...
官方详细说明:
* Added support for the following Dell systems: T105, M600, M605, R805,
R200, and R900.
前提: 使用DELL品牌机器,其实也就是要有DELL主板上的一块小小芯片(BMC)就成!
官方公布测试通过可使用型号:
PowerEdge 10th generation system family:
R200, R900
PowerEdge 9th generation system family:
1900, 1950, 1955, 2900, 2950, 2970, 6950
PowerEdge 8th generation system family:
800, 830, 840, 850, 860, 1800, 1850, 1855MC, 2800, 2850, 6800, and 6850
PowerEdge 7th generation system family:
700, 750, 1750
PowerEdge 6th generation system family:
600SC, 650, 1600SC, 1650, 1655MC, 2600, 2650, 4600, 6600, 6650
PowerVault system family:
NX1950, PV100, PV500, PV600
目的: 监控系统硬件状态,配合 IT Assistant 可实现N台机器集中管理主动硬件报警,包括一些硬件驱动的更新提示,
当然报警级别可自定义!
附加功能,硬件配置,硬件的插槽位置,硬盘的raid情况,重启,关机,机器序列号,自定义标签,液晶面板的自定义显示等等等 ...
官方详细说明:
* Added support for the following Dell systems: T105, M600, M605, R805,
R200, and R900.
长期生活在 Linux 环境里,渐渐地就有一种环保意识油然而生。比如,我们会在登录提示里写上“悟空,我跟你说过叫你不要乱扔东西,乱扔东西是不对的。哎呀我话没说完你怎么把棍子扔掉了?月光宝盒是宝物,乱扔它会污染环境,要是砸到小朋友怎么办?就算砸不到小朋友,砸到了花花草草也不好嘛...”;在用户缺省目录里放一个题为 “自觉保护环境 请勿堆放垃圾”的空文件,并用 chattr +i 设为不可修改;看到垃圾文件就立即扫入 /tmp 目录,然后发广播通知垃圾制造者自己去 /tmp 认领,且警告其下不为例...我们深知,系统环境的整洁有利于系统管理员保持良好的心情、清晰的思路和稳定的工作状态。
有一类垃圾却并非这么容易打扫,那就是我们常见的状态为 D (Uninterruptible sleep) ,以及状态为 Z (Zombie) 的垃圾进程。这些垃圾进程要么是求而不得,像怨妇一般等待资源(D),要么是僵而不死,像冤魂一样等待超度(Z),它们在 CPU run_queue 里滞留不去,把 Load Average 弄的老高老高,没看过我前一篇blog的国际友人还以为这儿民怨沸腾又出了什么大事呢。怎么办?开枪!kill -9!看你们走是不走。但这两种垃圾进程偏偏是刀枪不入的,不管换哪种枪法都杀不掉它们。无奈,只好reboot,像剿灭禽流感那样不分青红皂白地一律扑杀!
悟空,我们所运维的可是24*7全天候对外部客户服务的系统,怎么能动不动就 reboot ?我们的考核指标可是4个9(99.99%,全年计划外当机时间不得超过52分钟34秒),又不是4个8,你稍微遇到点事就reboot,还要不要可用性了?再说,现在社会都开始奔和谐去了,我们对于 D 和 Z 这两种垃圾进程,也该尽可能采取慈悲手段,能解决其困难的,就创造条件,解决其实际困难,能消除其冤结的,就诵经烧纸,消除其前世冤结,具体问题应具体分析具体解决,滥杀无辜只会导致冤冤相报因果循环...$^#$%#%^@#
有一类垃圾却并非这么容易打扫,那就是我们常见的状态为 D (Uninterruptible sleep) ,以及状态为 Z (Zombie) 的垃圾进程。这些垃圾进程要么是求而不得,像怨妇一般等待资源(D),要么是僵而不死,像冤魂一样等待超度(Z),它们在 CPU run_queue 里滞留不去,把 Load Average 弄的老高老高,没看过我前一篇blog的国际友人还以为这儿民怨沸腾又出了什么大事呢。怎么办?开枪!kill -9!看你们走是不走。但这两种垃圾进程偏偏是刀枪不入的,不管换哪种枪法都杀不掉它们。无奈,只好reboot,像剿灭禽流感那样不分青红皂白地一律扑杀!
悟空,我们所运维的可是24*7全天候对外部客户服务的系统,怎么能动不动就 reboot ?我们的考核指标可是4个9(99.99%,全年计划外当机时间不得超过52分钟34秒),又不是4个8,你稍微遇到点事就reboot,还要不要可用性了?再说,现在社会都开始奔和谐去了,我们对于 D 和 Z 这两种垃圾进程,也该尽可能采取慈悲手段,能解决其困难的,就创造条件,解决其实际困难,能消除其冤结的,就诵经烧纸,消除其前世冤结,具体问题应具体分析具体解决,滥杀无辜只会导致冤冤相报因果循环...$^#$%#%^@#
什么是我们能和应该优化的
Hardware
OS / libraries
SQL server (setup and queries)
API
Application
优化硬件
如果你需要大表(>2G),你应该考虑使用64位硬件,像Alpha,Sparc或者IA64.由于MySQL使用大量内部的64位整型,64位的CPU将有更好的表现.
对于大数据库,优化顺序通常是内存,硬盘,CPU.
更多的内存可以通过把更多的索引页保留在内存中来提高索引更新的速度
如果你不使用事务安全表或者有一个大硬盘并且想避免大文件检查,有一个UPS是个好办法,它能在断电的时候使系统正常关闭.
对于数据库运行在专用的服务器上的系统来说,应该考虑1G的网络,传输延迟和吞吐量同样重要.
优化磁盘
Hardware
OS / libraries
SQL server (setup and queries)
API
Application
优化硬件
如果你需要大表(>2G),你应该考虑使用64位硬件,像Alpha,Sparc或者IA64.由于MySQL使用大量内部的64位整型,64位的CPU将有更好的表现.
对于大数据库,优化顺序通常是内存,硬盘,CPU.
更多的内存可以通过把更多的索引页保留在内存中来提高索引更新的速度
如果你不使用事务安全表或者有一个大硬盘并且想避免大文件检查,有一个UPS是个好办法,它能在断电的时候使系统正常关闭.
对于数据库运行在专用的服务器上的系统来说,应该考虑1G的网络,传输延迟和吞吐量同样重要.
优化磁盘
从基本情况、成本、优缺点和应用场合等方面对5种MySQL的可靠性方案进行了分析和比较,对MySQL的开发和管理有一定的借鉴作用。
1.MySQL Clustering(ndb-cluster stogare)
简介:
MySQL公司以存储引擎方式提供的高可靠性方案,是事务安全的,实时复制数据,可用于需要高可靠性及负载均衡的场合。该方案至少需要三个节点服务器才能达到较好的效果。
成本:
节点服务器对RAM的需求很大,与数据库大小呈线性比例;
最好使用千兆以太网络;
还需要使用Dolphin公司提供的昂贵的SCI卡。
优点:
可用于负载均衡场合;
可用于高可靠性场合;
高伸缩性;
真正的数据库冗余;
容易维护。
缺点:
随着数据库的变大,对RAM的需求变得更大,因此成本很高;
1.MySQL Clustering(ndb-cluster stogare)
简介:
MySQL公司以存储引擎方式提供的高可靠性方案,是事务安全的,实时复制数据,可用于需要高可靠性及负载均衡的场合。该方案至少需要三个节点服务器才能达到较好的效果。
成本:
节点服务器对RAM的需求很大,与数据库大小呈线性比例;
最好使用千兆以太网络;
还需要使用Dolphin公司提供的昂贵的SCI卡。
优点:
可用于负载均衡场合;
可用于高可靠性场合;
高伸缩性;
真正的数据库冗余;
容易维护。
缺点:
随着数据库的变大,对RAM的需求变得更大,因此成本很高;
一.KVM简介
虚拟化技术已经成为未来计算机技术的一个重要的发展方向.linux在虚拟化方面已经有了很多中解决方案,
如:VMware,VirtualBox,Xen和KVM.
KVM是一个全虚拟化的解决方案.可以在x86架构的计算机上实现虚拟化功能. KVM只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU.
Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中.Xen的实现方法是,运行支持Xen功能的
kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上
使用qemu软件,虚拟出多个系统.Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核,
而且,稍有设置不慎,系统就无法启动.
相比较,KVM就简化的多了.它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块.
它结构更加精简,代码量更小,所以,出错的可能性更小.并且在某些方面,性能比Xen更胜一筹.
二.KVM的使用
现在以Turbolinux 11版本为基础,介绍KVM的使用方法.
在安装之前,你需要先确认,你的CPU是否支持虚拟化技术,执行:
虚拟化技术已经成为未来计算机技术的一个重要的发展方向.linux在虚拟化方面已经有了很多中解决方案,
如:VMware,VirtualBox,Xen和KVM.
KVM是一个全虚拟化的解决方案.可以在x86架构的计算机上实现虚拟化功能. KVM只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU.
Xen也是Linux下的一个虚拟化解决方案,也将很快被编入内核中.Xen的实现方法是,运行支持Xen功能的
kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上
使用qemu软件,虚拟出多个系统.Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核,
而且,稍有设置不慎,系统就无法启动.
相比较,KVM就简化的多了.它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块.
它结构更加精简,代码量更小,所以,出错的可能性更小.并且在某些方面,性能比Xen更胜一筹.
二.KVM的使用
现在以Turbolinux 11版本为基础,介绍KVM的使用方法.
在安装之前,你需要先确认,你的CPU是否支持虚拟化技术,执行:
















