ops

records of learning.

使用国内源部署Ceph

由于网络方面的原因,Ceph的部署经常受到干扰,通常为了加速部署,基本上大家都是将Ceph的源同步到本地进行安装。根据Ceph中国社区的统计,当前已经有国内的网站定期将Ceph安装源同步,极大的方便了我们的测试。本文就是介绍如何使用国内源,加速ceph-deploy部署Ceph集群。 关于国内源 根据Ceph中国社区的统计,国内已经有四家网站开始同步Ceph源,分别是: 网易镜像源http://mirrors.163.com/ceph 阿里镜像源http://mirrors.aliyun.com/ceph 中科大镜像源http://mirrors.ustc.edu.cn/ceph 宝德镜像源http://mirrors.plcloud.com/ceph 安装Ceph(Jewel版) 由于Jewel版本中已经不提供el6的镜像源,所以只能使用CentOS 7以上版本进行安装。我们并不需要在repos里增加相应的源,只需要设置环境变量,即可让ceph-deploy使用国内源,具体过程如下: export CEPH_DEPLOY_REPO_URL=http://mirrors.aliyun.com/ceph/rpm-jewel/el7 export CEPH_DEPLOY_GPG_URL=http://mirrors.aliyun.com/ceph/keys/release.asc 之后的过程就没任何区别了 # Create monitor node ceph-deploy new node1 node2 node3 # Software Installation ceph-deploy install deploy node1 node2 node3 # Gather keys ceph-deploy mon create-initial # Ceph deploy osd create disk ceph-deploy osd create node1:sdb:/dev/sdc ceph-deploy osd create node2:sdb:/dev/sdc ceph-deploy osd create node3:sdb:/dev/sdc # Make 3 copies by default echo "osd pool default size = 3" | tee -a $HOME/ceph.

R420服务器idrac连接用户数超限制

Dell R420服务器中,比较经常出现idrac无法连接,或者连接用户数超限(RAC0218错误)的问题,升级iDrac卡firmware至1.57.57即可解决。 该版本的bug fix中提到过一点: Fix for issues that cause iDRAC7 sluggish responsiveness after a prolonged period of time (approx. 45-100 days, depending on the usage). In some cases, if the iDRAC is not reset, the iDRAC may become unresponsive and requires a server AC Power on reset. This issue was introduced in firmware release 1.50.50 and fixed in 1.56.55. RAC0218: The maximum number of user sessions is reached. 2种临时解决方法(idrac重新初始化)

Git常用命令备忘

配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。 # 显示当前的Git配置 $ git config --list # 文本编辑器 $ git config --global core.editor vim # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]" FAQ 1. 如果在你Fork之后,原始的repo更新了,怎么将原始的更新内容与你当前的合并? 1. 增加原分支为远程分支,命名为upstream git remote add upstream https://github.com/vinsonzou/docker-images.git 2. fetch该远程仓库下的所有分支到remote-tracking分支 git fetch upstream 3. 确保你当前在master分支 git checkout master 4. Fork同步 两种方式,任选其一即可 a) 如果你已经对当前自己的副本做过更改,并且想要保留,则将更新合并到主分支 git merge upstream/master b) 如果想要保留所有原仓库的历史更新则使用rebase复写当前分支(`本地所有修改丢失`) git rebase upstream/master 5.

Docker for Mac Beta尝鲜

Docker for Mac Docker for Mac 是一个原生的苹果应用程序,被安装到 /Application 目录。安装时会创建 /usr/local/bin 目录下的 docker、docker-compose、docker-machine 符号链接,这些符号链接指向 ~/Library/Group Containers/group.com.docker/bin 目录下的各类文件,而 ~/Library/Group Containers/group.com.docker/bin 的文件实际上也是符号链接,他们指向 /Applications/Docker.app/Contents/Resources/bin 目录下的实际二进制文件。 Docker for Mac 使用通过 Hypervisor.framework 提供的轻量级的 xhyve 虚拟化技术 Docker for Mac 不使用 docker-machine 管理虚拟机 Docker for Mac 不通过 TCP 端口通信,反而使用 /var/tmp/docker.sock 套接字文件通信(实际上是将 /var/tmp 目录挂载到了虚拟机中,虚拟机在其中生成套接字文件) 由于使用了 xhyve 虚拟机,所以可以模拟不同架构的处理器,这样开发者就直接能在 Mac 上使用 Docker 使用诸多平台的镜像文件,比如 arm 等。 为了能主机虚拟机共享文件,Docker 使用 osxfs 作为全新的文件共享方案,在很多方面都有全新的特性,比如在文件权限、命名空间、文件所有者、文件系统事件、挂载点、符号链接、文件类型、扩展属性等方面都有了全新的内容,并且,所有产生的日志都能通过 syslog 查询,非常方便。不过现在依旧存在许多问题,比如没有设置 docker daemon 各项参数的接口。 如何为Docker Engine设置代理 screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty 敲一下回车,登录,用户名root,没有密码,直接回车。编辑/etc/init.

kernel igb 00000500 0 eth0 reset adapter

系统环境 CentOS 6.4 igb driver version 4.0.1-k 报错信息如下 Jun 3 13:20:05 localhost kernel: igb 0000:05:00.1: eth1: Reset adapter Jun 3 13:20:06 localhost kernel: igb 0000:05:00.0: eth0: Reset adapter Jun 3 13:20:11 localhost kernel: igb: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX Jun 3 13:20:12 localhost kernel: igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX Jun 3 13:55:26 localhost kernel: igb 0000:05:00.

DNSPOD API SSL证书调整(subjectAltName)引起的报错

报错信息如下: Python 2.7 (r27:82500, Jan 7 2014, 23:14:35) [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> r = requests.get("https://dnsapi.cn") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/requests-2.0.0-py2.7.egg/requests/api.py", line 55, in get return request('get', url, **kwargs) File "/usr/local/lib/python2.7/site-packages/requests-2.0.0-py2.7.egg/requests/api.py", line 44, in request return session.request(method=method, url=url, **kwargs) File "/usr/local/lib/python2.7/site-packages/requests-2.0.0-py2.7.egg/requests/sessions.py", line 361, in request resp = self.

俄罗斯永久冬令时的坑

本文更新说明 2017.03.17: 修复java时区更新方法 系统环境 OS: CentOS 6.X JDK: 6 背景 因游戏在俄罗斯运营,采用了莫斯科时间,俄罗斯宣布2014年10月26日开始永久冬令时。 过程 更新了系统时区文件,保证系统时间不会切换至夏令时,执行yum update tzdata即可。 但在莫斯科时间的2015年3月29日凌晨2点,java游戏进程的日志时间跳到了凌晨3点(比系统时间快了1个小时) 解决方法 使用Oracle TZUpdater进行更新即可 java -jar tzupdater.jar -l http://www.iana.org/time-zones/repository/tzdata-latest.tar.gz 工具地址:http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html 参考:http://www.jvmhost.com/articles/java-and-timezones/

利用TsunamiUDP加速跨机房迁移

部署 yum -y install automake autoconf git clone git://github.com/rriley/tsunami-udp.git cd tsunami-udp ./recompile.sh cp server/tsunamid client/tsunami /usr/bin #或者从sf.net下载 wget http://iweb.dl.sourceforge.net/project/tsunami-udp/tsunami-udp/tsunami-v1.1-cvsbuild42/tsunami-v1.1-cvsbuild42.tar.gz tar zxf tsunami-v1.1-cvsbuild42.tar.gz cd tsunami-udp-v11-b42 ./recompile.sh cp server/tsunamid client/tsunami /usr/bin 使用 #1、防火墙调整 #服务端:开启TCP 46224(默认端口) #客户端:开启UDP 46224(默认端口) #2、开启服务端 #待迁移文件都放在/app/game_data目录下(也可指定单文件传输) tsunamid --hbtimeout 60 /app/game_data/* #PS:这里设定心跳包超时时间为60秒,默认为15秒,在使用中很容易中断导致传输失败 #3、开启客户端 # 拉取服务端(122.225.100.100)的game_db.lz4文件,并限速100M(建议限制下,不然机房带宽就满了哦) tsunami set rate 100M connect 122.225.100.100 get gcmob_db.lz4 # 拉取目录下所有文件 tsunami set rate 100M connect 122.225.100.100 get \* #文档:http://tsunami-udp.cvs.sourceforge.net/viewvc/tsunami-udp/docs/USAGE.txt PS:未避免泄密,IP是随机填的 跨机房迁移示例 场景: 将14G文件从杭州机房迁移至北京机房

Zabbix使用Telegram发送报警

环境 CentOS 6.X x86_64 编译Telegram yum -y install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel git clone --recursive https://github.com/vysheng/tg.git cd tg ./configure make mkdir /usr/local/tg cp tg-server.pub /usr/local/tg cp bin/telegram-cli /usr/local/tg zabbix报警脚本/usr/local/tg/telegram.sh: #!/bin/sh cd `dirname $0` ./telegram-cli -k tg-server.pub -WDCRE -P 8890 -d &>/dev/null & Zabbix报警配置 将如下Zabbix Server配置注释并修改如下 AlertScriptsPath=/usr/local/zabbix/alertscripts /usr/local/zabbix/alertscripts/tg.sh内容如下: #!/bin/sh export to=$1; export subject=$2; export body=$3; echo -e "msg $to ${subject}_#_${body}" | nc localhost 8890 #注意事项: body只能有一行内容,超过一行的内容是不会发送的。 Zabbix添加Media types PS:Telegram已于2015年7月10日被天朝和谐。。。