在CentOS6.3中安装KVM
产品实验室服务器之前安装的是xen,kvm作为后起之秀也值得测试一下,于是将其中一台服务器格了,重装CentOS6和kvm。
服务器硬件:
- 2 * Intel Xeon(支持虚拟化)
- 4 * broadcom千兆网卡
- 2 * SAS 300G硬盘
产品实验室服务器之前安装的是xen,kvm作为后起之秀也值得测试一下,于是将其中一台服务器格了,重装CentOS6和kvm。
服务器硬件:
UPDATE
原文针对OpenBSD4.9,现在已经是5.2了,有些内容重新做了修订。Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器 。Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。
经过几年的发展,nginx的市场占有率稳步上升,截至2013年,市场份额占有率为15.52%(netcraft统计),微软的IIS为16.69%。nginx不日即可超越IIS。
注意:在openwrt官网中,wifi section缺乏_orig_ifname
和_orig_bridge
这两个参数,无法正常工作。
配置完成后
2年前买了个RB493G,它是MikroTik当年出品的一款高性能企业级无线路由器,一直闲置着,落了不少灰。最近恰好要将大量数据从笔记本备份至ZFS存储,实在忍受不了LinkSYS WRT54G的无线速率,于是这两天把RB493G翻出来好好地玩了一把。
RouterBOARD中的接口类型挺丰富,之前用得最多的就是千兆口和无线网卡,最近新出的RouterBOARD也带有SFP口了。当然,在RouterOS中接触最多的概念则是物理口和逻辑口。
逻辑口,也就是拨号上网。注意哦,平时经常说ADSL拨号上网,实际上是两个概念,ADSL是物理层链路,拨号上网是通过PPPoE协议实现拨号、认证和计费。现在我用的是中国移动的家庭宽带,入户的直接就是一根网线,已经不再需要ADSL modern。
我将入户网线插入到RB493G的ether1中。Oracle的两根网线分别插入ether2和ether3,另外一根ether7置空,留作测试只用。
毋庸置疑,物理口。
比较特别的地方是ether2和ether3均有一个S
的标识,这是由于创建了一个bonding逻辑接口,下属口就是ether2和ether3。
逻辑口,包含了ether2和ether3,这两个口通过两根网线与solaris 11的两个网口相连,构建Link Aggregation。
RouterOS中对802.3ad的实现并不完整,尚未兼容layer-3-and-4这种策略,因此对端也只能设置成L2,L3或L2+L3。
物理口。此处用的无线网卡是R52n,可以实现2.4G和5G的802.11n。关键在于笔记本的无线网卡,很多仅支持2.4G的802.11n。
配置很复杂,还是通过winbox方便一些。即便是再忠诚的命令行拥护者也不能阻挡GUI的诱惑。
RouterOS跟其它的网络设备配置有些区别,IP地址跟物理口的设置分别在两个不同的菜单中,最终在IP地址菜单中实现两者的捆绑。
此处仅针对wireless提供DHCP服务。
显然,需要为RouterOS中所有网段提供NAT才能正常访问互联网。
NAT配置位于firewall菜单中,其的选项也很复杂,此处的关键是out-interface需要选择pppoe-out1
。
Oracle的文档非常详尽,MikroTik的RouterOS也很简单,因此创建Link Aggregation倒是很(容易)[]。
然而,两者通过两根网线连接后,死活ping不通,我尝试着更换了各种组合,譬如solaris侧分别设置了Policy: L2、L3和L2/L3,LACPactivity: active、passive和off等各种组合,RouterOS中的link monitor也尝试了arp、mii-1等,均未成功。实在没办法,于是只能采用终极大法:升级固件。
升级之后,终于实现Link Aggregation。手工模拟故障,先在RouterOS上ping solaris11的IP地址,拔掉任意一条网线均不影响两者之间的互联,顶多掉一个包。问题得到解决,solaris 11.1最终设置成了:
我所买的RB493G的license是Level5,因此可以升级到后续的两个大版本号,比如说现在的RouterOS是V4.16,则最高可以升级到V6。
RouterBOARD的升级非常简单,在winbox界面中,打开file,然后将最新的firmware拖进winbox中,最后在terminal中system reboot
重启即可。
自从将Linksys WRT54G换成了RB493G后,一个明显的感觉就是,笔记本通过无线浏览网页的速度比以前快多了,难道是心理作用?
2013-04-03添加topology subnet和ccd配置。
2013-02-14取消whichsslconf依赖。
2012-04-12初稿。
{: .info}
OpenVPN是近年来最火的VPN软件,它部署容易,使用简单,跟IPsec相比,它所缺少的只是积累和口碑,不过没关系,已经有越来越多的公司开始在生产环境中用OpenVPN来取代IPsec。
我准备了一块160G的移动硬盘,由于容量比较大,因此格式化为exFAT格式,然而生产环境的OS分别是windows 2003和OpenSUSE11.3,都无法识别,而移动硬盘中还有其它数据,不能直接格式化,因此费了一番心思。
所以,移动介质一定要采用最普通的文件系统,譬如FAT32,windows2003和较老的linux都无法识别exFAT。
windows ntfs文件系统对付小文件力不从心,因此假如有大量小文件需要备份,有两种解决办法:
压缩-传输-解压
用winzip、winrar这样的压缩软件采用zip方式打包(不压缩,选择最快速度)小文件后,作为一个打文件传送到另外一个服务器,然后在目的地解压;
使用第三方拷贝软件
譬如fastcopy和ultracopier,千万别用teracopy,在cmoa业务数据备份的过程中发现它有两个问题:
经测试,采用CIFS/SMB共享方式,fastcopy的拷贝速度可达15MB/s,基本上是千兆网络速率的极限。
基于B/S架构的业务系统尽量用域名访问,否则IP地址变更后,如何通知几百个客户是非常痛苦的一件事情,尤其是政府客户。
2009年部署业务应用的时缺乏经验,将一些基础服务,譬如DNS、radius、AD和OpenVPN等基础服务连同业务应用全部部署在同一台物理服务器上,导致业务应用迁移前需先做好基础服务的迁移。当然,假如物理服务器数量足够的话,没有人愿意将多个服务部署在一台服务器。
很多业务应用的license都跟服务器的MAC地址进行绑定,因此需要提前了解VMware环境中的MAC地址修改技巧。
有两种方式
修改VMware的VMX文件
修改guest OS中的AMC地址,windows中我经常用的是K-mac,linux则直接在网卡的配置文件中设定即可。
前面的文件系统是这样,接下来的无线路由器也是这样,在本次迁移的过程中,顺手用一个D-link DIR600M换掉一台古老的linksys WRT54G。
DIR600M支持AP和无线路由两种无线工作方式,AP方式指的是WAN、LAN和wifi处于同一个网段:192.168.0.0/24,而且这个网段还不能手工改,无线路由方式指的是WAN连接互联网,LAN和wifi处于同一个网段。好在LAN可以自行设置IP地址。因此最终选择了“无线路由”方式。DIR600M仅有4M rom和32M ram,刷OpenWRT就不必了,还比不上两年前买的LinkSYS WRT54G mod,至少还有8M rom和64M ram呢。
所以说,并不是越新就越好,成本的下降往往意味着偷工减料。
seafile是一个非常好用的,适合于小团队的文件共享服务软件。同时,它还是一款国内的开源软件,难得可贵。这两天我花了一些时间架设seafile服务,记录下来备用。
组件
seafile环境
如图示,seafile服务器位于防火墙之后,需要在防火墙做好端口映射。
NOTE
我用的是中国移动的宽带,无法通过官网的下载链接直接下载。必须fanqiang到https://code.google.com/p/seafile/downloads/list手工下载,然后再通过winscp传送到linux服务器上,颇为费劲。
服务端支持linux和windows两种操作系统,本文的选择是debian 6 32bit。
准备存储
事先安装好nfs client,然后挂载NFS
准备运行环境
安装
查看系统架构,32bit or 64bit
# uname -m
创建seafile根目录,源文件将解压到该根目录下
# mkdir /usr/local/src/seafile
# tar -C /usr/local/src/seafile -zxvf seafile-server_1.7.0_i386.tar.gz
that's all.
配置参数如下:
参数 | 说明 |
---|---|
seafile server name | seafile服务器的名字,3~15 个字符,可用英文字母,数字,下划线 |
seafile server ip or domain | seafile服务器的IP地址或者域名。客户端将通过这个IP或者域名来访问Seafile服务。需要注意的是,在本例中,该IP地址应设为防火墙的互联网IP |
ccnet server port | 默认:10001 |
seafile data dir | seafile数据存放目录,默认是./seafile/seafile-data,建议放在一个NFS服务器中,方便日后的扩容和维护。 |
seafile server port | seafile服务器使用的TCP端口,默认为12001 |
seafile httpserver port | seafile httpserver使用的TCP端口,默认为8082 |
seahub admin email | sehaub管理员的帐户。该帐号仅是管理员帐号,用于发送邮件通知的email帐号需在seafile.conf中进行配置。 |
seahub admin password | seahub管理员的密码 |
seafile的配置文件是分布式的,不同组件的配置文件单独分开,不利于维护。
启动
停止
重启
假如seahub的端口不是默认的8000,则
由于seafile的开发非常活跃,新版本层出不穷,因而经常需要升级。
升级前需先中止seahub和seafile进程:
新下载的版本也一并解压到seafile的根目录下,在本文中指的是/usr/local/src/seafile
,读者也可以自行选择其它目录。最终的目录结构如下:
小版本升级
指的是从1.6.0升级到1.6.1。
连续版本升级
指的是从1.6.0升级到1.7.0。
非连续版本升级
现在的版本为1.4,最新版本为1.7,需连续执行
升级完毕后启动seahub和seafile进程。
随机启动
seafile服务由多个进程共同协作而成,
创建/etc/init.d/seafile-server
以上脚本仅用于start,缺乏stop和restart的功能。
更新
变更默认端口后,seafile可能会出现问题,这种情况下建议直接重装了事,包括服务端和客户端。
客户端的删除
C:\用户\<用户名>\ccnet
客户端的配置
客户端的配置文件为C:\用户\<用户名>\ccnet\ccnet.conf
,假如服务端的变更了默认端口号,需在此进行变更。
我目前的两台防火墙是OpenBSD4.9,需要升级到5.2。由于OpenBSD不支持跨版本升级,因此需要采用4.9->5.0->5.1->5.2这种逐步升级的方式。
下面步骤是官网推荐的upgrade by install kernel。
# mkdir /backup
# mv /bsd.rd /backup/bsd.rd.50
# wget http://ftp.jaist.ac.jp/pub/OpenBSD/5.2/i386/bsd.rd
# shutdown -r now
在boot的提示符中输入
>bsd.rd
选择(U)pgrade
,然后选择合适的sets: bsd.rd
,bsd
,base.tgz
,comp52.tgz
,man52.tgz
# wget http://ftp.jaist.ac.jp/pub/OpenBSD/5.2/i386/etc52.tgz
# sysmerge -x /backup/etc52.tgz
最后是确认所有的配置文件是否正确
# shutdown -r now
iSCSI作为VM的storage backend也很流行,原因是iSCSI协议非常适合于小文件的读写,而且其对硬件设备几乎没有什么要求,只要IP可达即可。
在本文中,我们仍然以solaris11作为外置存储,不得不说,solaris11实在是太强悍了,ZFS,comstar,nfs都是存储必备的组件模块。
iSCSI server安装在solaris11上,solaris11
iSCSI client将安装在hypervisor上,本文以CentOS为例。
[root@DL165-1 ~]# yum install iscsi-initiator-utils
在xen dom0中执行fdisk -l
就会看到系统中多出了一个块设备/dev/sdc,那正是ZFS storage上的iSCSI target。
最后在xen dom0机器上把domU配置文件的disk一行改成:
去年使用gitco repos成功地在CentOS5.6上安装了xen 3.4.3,已经稳定地运行了一年。前段时间CentOS和xen都升级了,于是便有了下文。
在升级之前为了稳妥起见,先备份相关的配置文件。
CentOS的升级很简单,就是yum update
,然后重启,唯一需要注意的就是重启前需要调整/boot/grub/menu.lst
中的启动顺序,因为升级后,CentOS默认的内核启动顺序是新版的kernel。
验证一下
将从xen3.4.3升级至xen3.4.4,验证一下: