上篇keepalived+MySQL双主实现高可用性介绍了使用Keepalived配置MySQL透明高可用的方法,本文趁热打铁,实现Nginx+Keepalived的高可用性架构,相比MySQL的高可用更加简单。Nginx的配置方法可以参考Nginx基本服务与upstream配置详解,并使用里面的环境。其中debugo01和debugo02作为负载均衡,而debugo03和debugo04作为web server。 Continue reading
Category Archives: Ops
keepalived+MySQL双主实现高可用性
使用MySQL主主复制技术+Keepalived是一种简单、便捷的解决方案,在高可用集群环境中,keepalived使用虚拟VIP,使用Keepalived自带的服务监控功能和自定义脚本来实现MySQL故障时自动切换,非常灵活。如果有一台MySQL服务器死机,或工作出现故障,keepalived将检测到,并将有故障的MySQL服务器从系统中去除。当MySQL服务器工作正常时,则自动将MySQL服务器加入到服务器集群中,无需人工干预。下面环境为debugo01、debugo02两个节点,使用CentOS 6.6系统。MySQL server的版本是Percona Server 5.6.21,已经配置好了两边的MySQL实例。 Continue reading
使用registry构建Docker私有仓库
在Docker生态圈中,Docker仓库用于存储Docker镜像。官方的Docker hub存储了大量镜像,但是对于实际生产环境中,考虑到pull/push速度和保密性等因素,我们往往需要建立自己的镜像仓库服务。官方(docker-registry github )提供了一个registry images,使用这个images就可以快速完成本地镜像仓库的建立。 Continue reading
Squid快速配置攻略
Squid是Linux下一个缓存Internet数据的代理服务器软件,它接收用户的下载申请并自动处理所下载的数据。另外,它还可以作为一个cache服务器来加速访问。关于cache,详细的信息可以参考《Squid权威指南》。 Continue reading
JVM进程性能监控工具
1. jps — Java process state, 针对JVM进程的PS命令
相关参数:
-v
显示启动时给定的JVM参数
-q
jps默认只带着类的短名称,如果指定-q则只显示pid
-l
显示完整类名
-m
显示传递给main主函数的参数,例如:
1 2 3 |
# jps -ml 12812 com.cloudera.cmon.firehose.Main --pipeline-type HOST_MONITORING --mgmt-home /usr/share/cmf 12705 com.cloudera.cmon.firehose.Main --pipeline-type SERVICE_MONITORING --mgmt-home /usr/share/cmf |
使用supervisord管理容器进程
Docker可以在启动容器的时候通过设置Dockerfile中的CMD条目启动一个进程,但如果要在容器中同时启动多个进程,就需要使用进程管理工具了。supervisord(http://supervisord.org/introduction.html)是一个非常优秀的进程管理工具,使用Python开发。它可以在类UNIX系统的方式让用户来准确地监视和控制后台一定数量的服务进程。并作为一个天使进程让后台进程在当发生内部错误退出、或者进程被意外杀死时自动重启。除此之外,supervisord可以监控TCP端口,让其他主机通过客户端了命令supervisorctl通过HTTP协议直接对Server端进程进行启停,避免让进程/服务器管理者直接接触Shell或root用户。进程之间也有一个优先级和进程组关系,让管理员使用start all和stop all的关系来启动。 Continue reading
Docker的CPU资源限制
Docker使用Linux cgroup来实现资源的限制(Linux Note – cgroup),对于CPU的限制有两种方法:
1.cpuset
CPU Set限定容器使用某个固定的CPU核。使用默认的libcontainer引擎时,可以通过--cpuset
来指定进程/docker容器在执行时使用某几个固定的CPU。比如0-3或以逗号分割如0,3,4(0是第一个CPU)。如果使用lxc引擎,可以指定--lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
agileek/cpuset-test给出了一种用于测试CPU的image,功能就是将指定的CPU资源用满。
Continue reading
Nginx基本服务与upstream配置详解
Nginx (“engine x”) 是一个高性能的HTTP 和反向代理 服务器,在大负载的情况下表现十分优秀。本文简单介绍一下安装、web服务和反向代理服务配置方法。 Continue reading
etcd使用手记
etcd是一个用于共享配置和服务的高可用键值存储系统,由CoreOS使用开发并作为CoreOS的基础服务启动。etcd的灵感来源于Apache ZooKeeper和doozer,其特点:
· 简单:可用curl进行操作(HTTP+JSON)
· 安全:可使用SSL客户端证书验证
· 快速:基准测试在每个实例1000次写入每秒
· 可靠: 使用Raft协议来进行合理的分布式
etcd是go语言写的,并使用Raft一致性算法来管理一个高可用的复制日志。Raft协议这里有个动画版教程,很赞的哦。当前etcd版本为0.4.6。 Continue reading
Containerized MySQL&Redis by Docker
随着Docker和CoreOS的火爆,服务容器化将称为一种趋势,从而降低操作系统和应用程序的耦合度。本文在ubuntu 14.10下对MySQL和Redis的docker images进行简单测试。 Continue reading