Jun 092013
 

现在国内关注alexa排名比以前好像少很多。不过我一直都认为alexa排名是非常科学的。至少是目前我知道的唯一的工具,可以评价你的网站的工具。

Alexa排名,更多是检验你的工作结果,而不是目的,单纯为了提高Alexa排名是没啥意义的,我对这个还是很有研究的,想当年1个人维护的网站,alexa排名都是在10w以内。

blog迁移到bluehost,从2012年6月到现在,这个时候的可以看一下alexa的数据。记录一下,看看自己的进步如何。

以后这个应该倒着写。上面是最新的。

2013年6月9日

昨晚启用了七牛的cdn加速,感觉blog的访问速度快很多,顺便去看一下Alexa的排名,记录一下。最近一个月,也就更新1篇blog,后面需要勤奋点更新。也顺便看了一下百度统计,IP数量大概在300左右,比以前多一点。

关注一个地方,就是alexa的网页访问速度,看看一个月后,是否有所提升。

快照1

2013年1月6日

记录一下新的一年的情况,看看1年后什么结果。目前每天的IP访问量还是在300左右,没太多变化。

alexa

 

2012年10月16日

alexa排名

刚查看了一下阮一峰 日志,排名是28752.大概是100倍的差距。看看以后能不能缩小点。

 

2012年10月26日

今天去查一下alexa排名,已经进入到200万以内。看了一下百度统计,现在每天大概是200个IP。这次已经有国内的排名。根据3个月的排名,是160万名。如果是这样,年底前,进入100w名,应该不是难事。我就要看看,需要多久,才能进入10w名。

alexa26

2012年11月22日

看来不需要到年底,今天就已经进入100w以内。我肯定是没做过任何的手脚,包括我的机器也是没安装alexa工具条。完全是真实的数据。

快照18

我比较关心的一个问题就是,一个网站,如果alexa排名100w以内,那么他的网站每天的真实IP访问量是多少呢?

看看百度统计里的结果,黄色那两天是周末。那么大个IP量也就是平均300,就很不错了。

快照20

基本可以得出一个结论:Alexa排名在100w的网站,IP也就大概300个。根据alexa排名,你就可以了解很多网站的背后的情况。

上面还有一个数据比较有意思的,就是中文网站排名。我是5.5w,就是说中文网站,大概是5.5万个,有一定的访问量的。刚才看了一下vpsee.com 网站的alexa排名:17万,中国排名1.7万。看来我什么时候到达这样的水平,

Jun 052013
 

Grizzly 是4月5号发布,不过我一直折腾Quantum网络是有问题的。其实我相信解决这些问题,应该有很多办法,需要的其实是时间。

过去如果测试Qauntum和OVS,我们需要一台服务器有3块网卡,这样很多朋友是不具备这样的条件,大家的情况都一样,都是只有一台服务器,2块网卡。我这次安装是使用老外的脚本去安装,目前脚本是支持GRE和VLAN模式,如果脚本装完后没问题,那么step by step的安装,其实也就简单。

文档更新记录

2013年6月5日:完成了基本文档,虚拟机可以创建成功,可以ping通虚拟机,不过meta有问题,密钥无法注入。看了一下quantum的配置,发现和Folsom版本差异不小。改天就研究。

网络拓扑

对于Quantum来说,他是至少需要3个网络,

  1. 管理网络(Management/API Network )例如消息队列,mysql访问的网络
  2. 数据网络(Data Network)就是虚拟机间的通讯网络
  3. 公共网络(Public / API Netwrok)  就是外界可以访问的网络
+------------------- Public/API Network
|
+------------+
|vm|vm|...   |
+------------+
| all in one |
+------------+
|     |      
+-----)------------- Management/API Network
      |             
      +------------- Data Network

当服务器只有两块网卡的时候,把Data Network和Management合并。

我的网络设置 /etc/network/interface

auto lo
iface lo inet loopback

# this NIC must be on management network
auto eth0
iface eth0 inet static
address 10.1.199.8
netmask 255.255.255.0
network 10.1.199.0
gateway 10.1.199.1
dns-nameservers 8.8.8.8 8.8.4.4


# this NIC will be used for VM traffic to the internet
auto eth1
iface eth1 inet static
    up ifconfig $IFACE 0.0.0.0 up
    up ip link set $IFACE promisc on
    down ip link set $IFACE promisc off
    down ifconfig $IFACE down
    address 192.168.98.8
    netmask 255.255.255.0

eth0,是管理网络,不过他是需要访问外网,安装的源,需要通过管理网络访问。如果你通过eth1去访问外网,会导致安装到一半的时候中断,因为脚本会对eth1设置bridge,导致网络无法使用。

简单点说,就是管理网络的网关是10.1.199.1,192.168.98.1是公网的IP的网关,这个在脚本里指定。

使用脚本

git clone git://github.com/jedipunkz/openstack_grizzly_install.git
cd openstack_grizzly_install

设置 setup.conf,你需要根据你的情况调整

#HOST_IP='10.200.10.57'
#HOST_PUB_IP='10.200.9.57'
#PUBLICNETWORK_NIC='eth0'
HOST_IP='10.1.199.8'
HOST_PUB_IP='192.168.98.8'
PUBLICNETWORK_NIC='eth1'

#CINDER_VOLUME='/dev/sdb'
CINDER_VOLUME='/dev/sda7'

# ---------------------------------------------------------------
# quantun parameters
# VM will be on this networks
# int_net : internal network
# ext_net : external network (floating ip range)
# ---------------------------------------------------------------
# NETWORK_TYPE must be 'vlan' or 'gre'
NETWORK_TYPE='gre'
INT_NET_GATEWAY='172.24.17.254'
INT_NET_RANGE='172.24.17.0/24'
EXT_NET_GATEWAY='192.168.98.1'
EXT_NET_START='192.168.98.220'
EXT_NET_END='192.168.98.229'
EXT_NET_RANGE='192.168.98.0/24'

# ---------------------------------------------------------------
# OS image paramters
# ---------------------------------------------------------------
#OS_IMAGE_URL="https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"
#OS_IMAGE_NAME="Cirros 0.3.0 x86_64"
OS_IMAGE_URL="http://10.1.199.5/image/ubuntu-12.04-server-cloudimg-amd64-disk1.img"
OS_IMAGE_NAME="Ubuntu 12.04 x86_64"

运行脚本

脚本会自动添加Grizzly的源。

./setup.sh allinone

附录

https://bugs.launchpad.net/quantum/+bug/1160955

May 022013
 

现在使用cobbler安装Ubuntu,你有时候会遇到麻烦,自动安装过程中断,根据界面的提示,有时候很难找到原因,那么你就必须看log,才能更好的判断。

今天刚好遇到麻烦,就记录一下排错过程。

aa

这个时候,选择 <Go Back>

快照6

表示你安装到grub的时候遇到麻烦。你可以选择Exceute a Shell, 这个时候你可以有一个shell,可以看log,不过这样很不方便。我们选择Save debug logs

快照7

选择web,这个时候,就会启动一个web,让你可以直接访问log。

快照8

这个时候,你就可以看到通过web看到相关的log

快照9

看了一下log,造成上面的原因是我机器里有多块硬盘,我装完Centos后,再重装Ubuntu,就会遇到这个问题,原因是

May  2 06:34:16 90linux-distro: result: /dev/sdb1:CentOS release 6.4 (Final):RedHat:linux

感觉是装CentOS的时候,把Grub装在sdb1上,这导致Ubuntu的安装中断。

在Ubuntu的preseed文件里

# Boot-loader
d-i grub-installer/skip boolean false
d-i lilo-installer/skip boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean false
d-i finish-install/keep-consoles boolean false
d-i grub-installer/bootdev string /dev/sda
d-i finish-install/reboot_in_progress note 

搞定.

Apr 272013
 

默认Cobbler对IPMI就只有电源管理,你可以对机器进行远程的开机,关机,重启。不过其实很多IPMI的功能没有集成进去。好久已经没有做产品经理的感觉,这次自己感觉还是很良好的。

看一下我增加的功能

快照3

第二排菜单是我增加,大概是1000行的代码量。这些功能基本是围绕着IPMItool的功能去实现。下面就简单介绍一下。

Remote Control

以前如果你希望访问IPMI里的kvm,你需要访问IPMI地址,登陆,下载jviewer,比较麻烦。能不能直接在Cobbler web直接打开Jviewer呢?

Cobbler电源管理,是保存了IPMI的访问的IP,用户名和密码,所以实现这个应该是可能的。相信很多人会有相同的需求,搜索一下,找到一个python脚本,通过这个脚本,先把Jviewer下载到Cobbler服务器上,我从web下载就可以。

这个是比较有技术含量的活。终于比较完美解决。公司目前的所有机器都搞定。

参加资料

https://github.com/spotify/moob/tree/master/lib/moob

http://kaiyou.fr/2012/07/12/cette-horreur-de-jviewer/

Bios

这其实是让机器下次启动的时候进入Bios,方便修改Bios,这个实现比较简单。

ipmitool -I lan -H 10.1.199.212 -U ADMIN -P ADMIN chassis bootdev bios

PXE

这个其实和Bios实现原理是一样。就是把上面的命令最后改成 bootdev pxe。这个功能其实很实用,你不需要把网卡设置成最新启动,机器每次启动的时候都需要pxe一次,现在只需要在需要重装机器的时候,才让网卡发出pxe请求。当然你的网卡的PXE功能需要在Bios启用。

Bios和PXE,都是临时,机器下次启动的时候生效。

Rebuild

这个功能是比较实用的。正常重装一台机器,需要下面的步骤

  1. net_boot enable
  2. Sync
  3. 设置机器下次启动pxe
  4. 重启机器

这几个步骤,需要简化,希望一个按钮来完成。

快照4

Start,就会把上面4个工作完成。

Power

这其实是机器的电源按钮。他会检查机器状态,如果是关机状态,会开机,如果是开机状态,他会重启机器。

Apr 252013
 

 

使用Openstack,基本都是通过nova来管理KVM,自己对kvm的各种管理命令,其实是很陌生。所以这次就抛弃各种管理工具,直接在CentOS下使用KVM,创建虚拟机和模板。

参考文档

http://jingshengsun888.blog.51cto.com/1767811/1180585

http://linuxvpsblog.com/virtualization-with-kvm-on-a-centos-6-3-server/

准备

  • CPU支持kvm
  • 最小化安装CentOS6.4
  • 关闭Selinux
  • 关闭iptables或者打开相应的端口,vnc需要用到
  • 源,需要用到epel源

在Centos下检查cpu是否支持VT,没Ubuntu那么方便,输入下面命令,有内容输出,就表示支持,没任何显示,表明不支持。

egrep '(vmx|svm)' –color=always /proc/cpuinfo

查看Selinux状态

# sestatus
SELinux status:                 disabled

KVM

yum install kvm libvirt python-virtinst qemu-kvm virt-viewer

启动libvirt服务

/etc/init.d/libvirtd start

查看kvm服务是否正常,目前没任何虚拟机,所以没有内容显示

virsh -c qemu:///system list

Bridge

我们需要对网卡进行设置一下 创建一个文件 /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.1.199.138
NETMASK=255.255.255.0

修改 /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0

重启网络服务

/etc/init.d/network restart

查看桥接网络

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00e081de016c       no              eth0
virbr0          8000.5254009219a2       yes             virbr0-nic

VNC

yum install tigervnc-server

设置

编辑 /etc/sysconfig/vncservers 增加一行

VNCSERVERS="1:root"

设置password

vncpasswd

启服动务

# /etc/init.d/vncserver start
Starting VNC server: 1:root xauth:  creating new authority file /root/.Xauthority

New 'g138.chenshake.com:1 (root)' desktop is g138.chenshake.com:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/g138.chenshake.com:1.log

                                                           [  OK  ]

查看服务端口

# netstat -nulpt | grep vnc
tcp        0      0 0.0.0.0:5901        0.0.0.0:*     LISTEN      6508/Xvnc           
tcp        0      0 0.0.0.0:6001        0.0.0.0:*     LISTEN      6508/Xvnc           
tcp        0      0 :::6001                  :::*              LISTEN      6508/Xvnc    

创建虚拟机

准备好iso

ls /home/
CentOS-6.4-x86_64-bin-DVD1.iso

创建一个20G qcow2格式的磁盘文件,虚拟机的image放在 /home/kvm 目录下

qemu-img create -f qcow2 -o preallocation=metadata /home/kvm/centos64.qcow2 20G

查看该磁盘文件,注意文件的大小

# ls -lash /home/kvm/
total 3.3M
4.0K drwxr-xr-x  2 root root 4.0K Apr 27 11:04 .
4.0K drwxr-xr-x. 3 root root 4.0K Apr 27 11:04 ..
3.3M -rw-r--r--  1 root root  21G Apr 27 11:04 centos64.qcow2

创建虚拟机

virt-install \
--name=centos6.4 \
--ram 1024 \
--vcpus=2 \
-f /home/kvm/centos64.qcow2 \
--cdrom /home/CentOS-6.4-x86_64-bin-DVD1.iso \
--graphics vnc,listen=0.0.0.0,port=5920,  \
--network bridge=br0  \
--force  --autostart

你可以看到下面输出

快照2

VNC连接

这个时候你在windows的客户端,就可以通过vnc连接过去,完成虚拟机的安装 vnc客户端很多。我是使用TightVNC,安装的时候最好选择定制,只安装客户端,而不安装server端。

IP:5920,就可以访问。