keepalived节省公网地址

一般情况下,每个keepalived需要一个公网地址,一个内网地址。

另外需要若干公网地址作为浮动地址,对外提供业务。

使用下面的方式,可以节省每个keepalived上的公网地址:

将keepalived的缺省路由使用内网,metric设置为10
vi /etc/sysconfig/network-scripts/route-br-mgt
172.16.0.0/12 via 172.17.96.1
192.168.0.0/16 via 172.17.96.1
default via 172.17.96.1 metric 10

如果仲裁获得浮动地址,则设置一条缺省路由,从公网地址出去:
1. 必须正确设置浮动地址的掩码(缺省32会到达不了网关)
2. 加一条路由,metric缺省为0,比内网的缺省路由优先级高

# 虚拟IP,由于VRRP协议限制20个IP,仅放一个主虚拟IP
# 其余的虚拟IP都放到 virtual_ipaddress_excluded
virtual_ipaddress {
221.228.198.220/27 dev br2200
}
# 其余所有的虚拟IP
virtual_ipaddress_excluded {
221.228.198.219/27 dev br2200
122.193.200.92/28 dev br2200
122.193.200.91/28 dev br2200
}
virtual_routes {
default via 221.228.198.193 dev br2200
}

发表在 公告声明 | 留下评论

CentOS 7 下,如何设置DNS服务器

在CentOS 7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了。和CentOS 6下的设置DNS方法不同,有几种方式: 1、使用全新的命令行工具 nmcli 来设置

#显示当前网络连接
#nmcli connection show
NAME UUID                                 TYPE           DEVICE
eno1 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eno1

#修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识
#nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8"

#将dns配置生效
#nmcli con up eno1

2、使用传统方法,手工修改 /etc/resolv.conf

  • 修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:
[main]
plugins=ifcfg-rh
dns=none
  • NetworkManager重新装载上面修改的配置
# systemctl restart NetworkManager.service
  • 手工修改 /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8

详细参见:

# man NetworkManager.conf
# man nmcli
发表在 公告声明 | 留下评论

CentOS 7控制台屏幕分辨率问题

我们在服务器上,很少会安装图形化界面,一般都使用字符界面的控制台。CentOS 下,控制台分辨率缺省情况下,变得很高,导致在显示器上花屏或者只能显示局部。

这是由于使用了frame buffer,好处是可以在高分辨率显示器上显示更多内容,让我们视野更加开阔,带来的问题是在普通的显示器上会出现问题。

CentOS 6下,我们一般是在安装启动的时候,加入 “vga=711″的参数,但是到了CentOS 7下,这个方法失去了作用。

解决方法:

在安装启动的时候,加入 nomodeset 参数。

如果你已经安装完毕,则可以修改 vi /etc/sysconfig/grub,加入 nomodeset 参数:

GRUB_CMDLINE_LINUX=”rd.md=0 rd.dm=0 KEYTABLE=us SYSFONT=True
rd.lvm.lv=vg/lv_root rd.luks=0 rd.lvm.lv=vg/lv_swap LANG=en_US.UTF-8
rhgb quiet nomodeset”

然后执行:

grub2-mkconfig -o /boot/grub2/grub.cfg

请参见:

发表在 公告声明 | 留下评论

CentOS 7下网络设备命名

在CentOS 5的时候,我们习惯了eth0 这样的网络设备命名,在CentOS 6下,发现网络设备变成了em1 这样的命名。那时我们在安装的时候,给启动参数加上 biosdevname=0,就可以继续使用 eth0 这样的命名。

到了CentOS 7的时候,原有的参数biosdevname=0不起作用了,网络设备变成了 eno1 这样的名称。如果你希望继续使用 eth0 这样的传统名称,那么在安装启动时加上参数:

net.ifnames=0 biosdevname=0

如果你已经安装完了,希望改成eth0这样的名称,那么需要:

  • 修改grub2启动参数

vi /etc/sysconfig/grub

GRUB_CMDLINE_LINUX=”rd.lvm.lv=vg0/swap vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 net.ifnames=0 biosdevname=0 rd.lvm.lv=vg0/usr rhgb quiet”

grub2-mkconfig -o /boot/grub2/grub.cfg

  • 重新对 文件进行命名:

/etc/sysconfig/network-scripts/ifcfg-*

 

CentOS 7 这种变化的原因,是由于systemd 和 udev 引入了一种新的网络设备命名方式–一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING) 。可以根据固件、拓扑、位置信息来设置固定名字,带来的好处是命名自动化,名字完全可预测,在硬件坏了以后更换也不会影响设备的命名,这样可以让硬件的更换无缝化。带来的不利是新的设备名称比传统的名称难以阅读。比如心得名称是enp5s0.

详细的命名规则,请参见网络指南。

 

详细参见:

 

 

 

发表在 DEVOPS | 留下评论

云存储可以替代Time Machine吗

https://github.com/pubyun/macdev

第一次使用Mac OS X下的时光机器(Time Machine),就被苹果如此完美贴心的备份恢复方案打动。数>据无价,电脑里留下了岁月的痕迹和凝结了我们的心血,数据备份的重要性是怎么强调都不为过的。Time Machine是对这些数据最好的保护。只要你已经使用Time Machine备份郭,设想一下:

* 当你的Mac丢失或者硬件损坏了以后,你只要从苹果商店新买一台Mac,然后从Time Machine备份中>恢复。你会看到一个和之前一模一样的系统,包括数据、设置、状态。
* 当你给自己奖赏了一台新Mac时候,可以使用Time Machine将所有东西迁移过去。
* 当你误删除一个文档,几个月以后再想起来,可以从Time Machine恢复。
* 当你对一个文档做了多次修改,引入了一个错误,希望恢复某次正确的一个版本的时候,Time Machine可以帮助你。

如果你熟悉git,那Time Machine简直就是一个操作系统级别的版本控制!

当我安装好一个新的Mac OS X系统以后,第一件事情,就是设置Time Machine。

现在云存储已经普及,容量也足够大,但是Time Machine还是有不可替代的优势:

* 云存储没有版本历史,不能对之前的数据恢复。删除了就是删除了,也不能恢复之前某个时刻版本>的数据资料。
* 云存储有隐私泄露的问题,爱德华·斯诺登给我们好好上了一课。
* 云存储不能解决恢复问题,仅仅只能做最基本的文件存储,不能在一台新的Mac上恢复所有数据和配置

简单地说,云存储就是一个简单的Windows操作系统级别的拷贝备份,和Time Machine细颗粒度,多版本,包括数据、配置、状态的完整备份恢复方案相比,弱爆了。

基于上述理由,郑重提醒,在设置Time Machine的exclude目录的时候,千万不要将云存储映射的目录排除在外。否则这些你认为已经被云存储过的资料,就不能享受Time Machine的保护,而这些资料往>往是你最重要的资料。

发表在 其他 | 留下评论

开发人员Mac OS X的常见设置

在github上建立了一个项目:
https://github.com/pubyun/macdev

Mac for Developer v0.1

将本人在使用Mac作为开发工具的过程中的一些体会做个记录和整理,方便以后 自己和团队的参考,提高效率。如果本文对其他开发人员也有所帮助,欢迎您给 给出反馈或者提出改进意见

 

本文假设您是一个开发工程师,并且是一个Mac的新手。这些步骤在OS X Mavericks 下测试通过。

 

欢迎大家一起改进这个项目,请Fork、Star或在Issues中提交 🙂

您也可以关注我的新浪微博,以获取最新消息。

 

发表在 其他 | 留下评论

测试云主机的磁盘IO性能

磁盘IO是云主机的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。

fio 是测试磁盘性能的最佳工具:

1、测试顺序读性能


fio --filename=/home/test -iodepth=64 -ioengine=libaio --direct=1 --rw=read --bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting --name=test-read

2、测试顺序写性能


fio -filename=/home/test -iodepth=64 -ioengine=libaio -direct=1 -rw=write -bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write

3、测试随机读性能

fio -filename=/home/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-read

4、测试随机写性能

fio -filename=/home/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-write

参数说明:
filename=/home/test 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=4k 单次io的块文件大小为4k
size=2g 本次的测试文件大小为2g,以每次4k的io进行测试。
numjobs=64 本次的测试线程为64.
runtime=20 测试时间为20秒,如果不写则一直将2g文件分4k每次写完为止。

报告如何查看:
fio的结果报告内容丰富,我们主要关心的是两项:

磁盘的吞吐量bw,这个是顺序读写考察的重点
磁盘的每秒读写次数iops,这个是随机读写考察的重点

比如,下面是4个测试的结果部分截取:

test-read: (groupid=0, jobs=4): err= 0: pid=4752
read : io=839680KB, bw=76823KB/s, iops=75 , runt= 10930msec

顺序读,带宽76823KB/s,iops 75

test-write: (groupid=0, jobs=4): err= 0: pid=4758
write: io=899072KB, bw=42854KB/s, iops=41 , runt= 20980msec

顺序写,带宽42854KB/s, iops=41

test-rand-read: (groupid=0, jobs=64): err= 0: pid=4619
read : io=72556KB, bw=3457.4KB/s, iops=864 , runt= 20986msec

随机读,带宽3457.4KB/s, iops=864

test-rand-write: (groupid=0, jobs=64): err= 0: pid=4685
write: io=129264KB, bw=6432.4KB/s, iops=1608 , runt= 20097msec

随机写,带宽6432.4KB/s, iops=1608

发表在 公告声明 | 留下评论

云计算中的安全责任划分

 

下图分别列出了SaaS,PaaS,IaaS 云计算平台下安全责任的划分。

即使用了云计算,租户还是有责任保证数据的安全。

发表在 云计算 | 留下评论

找到并修正RHEL 6.4中xfs的一个bug

github上的issue:

https://github.com/facebook/flashcache/issues/113

redhat的bug report(需要权限才能查看):

https://bugzilla.redhat.com/show_bug.cgi?id=956947

这个bug,在kernel 2.6.32-279.22以后的版本引入的,当使用flashcache时,如果文件系统是XFS,则频繁出现core dump和系统重新启动,发生的概率百分之百,系统一般在刚刚启动完几十秒以后,就奔溃了。

将系统降级到 2.6.32-279,系统恢复正常。目前RedHat,CentOS 6的系统,都有这个问题,在最新的内核2.6.32-358.11.1中,问题依然存在。

经过分析,已经确定问题的位置,并且修正了内核,目前稳定跑了两个月,一些其他用户使用我patch以后的内核,也反应问题已经得到修正。

红帽子在 #BZ956947,确认问题,并且已经在内部的版本号kernel-2.6.32-387.el6中修正了这个问题。在内核的下一个正式发布版本中,将正式修正这个问题。

发表在 其他 | 留下评论

rhsummit上发布的几个关于RHEL的改变

1、用MariaDB替代MySQL

2、RHEL 7中,xfs将是缺省的文件系统,并可以作为启动分区

For RHEL 7, we’ve got multiple file systems. We’re looking at more improvements to btrfs — we’re doing a lot of testing with that. We’ll be supporting EXT 4, XFS and btrfs in addition to EXT2 and EXT3, but we’re looking to make XFS the new default for boot, for root and for user data predictions because it’s a better match for our enterprise customers than btrfs seems to be. [Btrfs] will certainly be supported, and you’ll be able to choose it if that’s you want, it’s just not going to be our default. …

3、6.5中,正式支持 open vswitch,并且加入用户空间的软件包(6.4只有内核模块,没有管理工具)。open vswitch对于openstack等虚拟化很重要。

4、支持 namespace(名字空间),这个已经在 RDO 正式发布了。同样,这个对于openstack quantum项目很重要。

And we’ve also got Open vSwitch. We added it in support of things like OpenStack. We’re looking at network namespace changes as well in support of OpenStack. VSwitch is a software switch that lets you use it as a virtual switch for virtual server environments. It forwards traffic between different VMs [virtual machines] on the physical host and also lets you forward traffic between VMs on the physical network. It’s tied to a bunch of different management interfaces, and it has programmatic extension and control through things likeOpenFlow. We put initial support in for 6.4, but we’re re-basing it and pulling it out as fully supported and adding the user space packages in 6.5.

发表在 OpenStack | 留下评论