Author Archives: debugo

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

Posted in Linux, MySQL, Ops.

使用registry构建Docker私有仓库

在Docker生态圈中,Docker仓库用于存储Docker镜像。官方的Docker hub存储了大量镜像,但是对于实际生产环境中,考虑到pull/push速度和保密性等因素,我们往往需要建立自己的镜像仓库服务。官方(docker-registry github )提供了一个registry images,使用这个images就可以快速完成本地镜像仓库的建立。 Continue reading

Posted in Virtualization.

Squid快速配置攻略

Squid是Linux下一个缓存Internet数据的代理服务器软件,它接收用户的下载申请并自动处理所下载的数据。另外,它还可以作为一个cache服务器来加速访问。关于cache,详细的信息可以参考《Squid权威指南》Continue reading

Posted in Ops, Tools.

HDP/Ambari集群扩容笔记

最近HDP的一次扩容工作中(Ambari 1.6.x, CentOS 6.6),遇到了大大小小不少坑。借此总结一下: Continue reading

Posted in BigData, Hadoop.

JVM进程性能监控工具

1. jps — Java process state, 针对JVM进程的PS命令
相关参数:
-v 显示启动时给定的JVM参数
-q jps默认只带着类的短名称,如果指定-q则只显示pid
-l 显示完整类名
-m 显示传递给main主函数的参数,例如:

Continue reading

Posted in Dev, Java|Scala, Linux.

使用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

Posted in Ops, Tools, Virtualization.

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

Posted in Linux, Ops, Virtualization.

Nginx基本服务与upstream配置详解

Nginx (“engine x”) 是一个高性能的HTTP 和反向代理 服务器,在大负载的情况下表现十分优秀。本文简单介绍一下安装、web服务和反向代理服务配置方法。 Continue reading

Posted in Ops, Tools.

etcd使用手记

etcd是一个用于共享配置和服务的高可用键值存储系统,由CoreOS使用开发并作为CoreOS的基础服务启动。etcd的灵感来源于Apache ZooKeeper和doozer,其特点:
· 简单:可用curl进行操作(HTTP+JSON)
· 安全:可使用SSL客户端证书验证
· 快速:基准测试在每个实例1000次写入每秒
· 可靠: 使用Raft协议来进行合理的分布式
etcd是go语言写的,并使用Raft一致性算法来管理一个高可用的复制日志。Raft协议这里有个动画版教程,很赞的哦。当前etcd版本为0.4.6。 Continue reading

Posted in Ops, Virtualization.

Containerized MySQL&Redis by Docker

随着Docker和CoreOS的火爆,服务容器化将称为一种趋势,从而降低操作系统和应用程序的耦合度。本文在ubuntu 14.10下对MySQL和Redis的docker images进行简单测试。 Continue reading

Posted in Ops, Tools, Virtualization.