存档

‘只谈技术’ 分类的存档

克隆VirtualBox的虚拟机

2010年1月25日 没有评论

VirtualBox的虚拟机克隆主要就是克隆一份vdi文件,今天在克隆一台VirtualBox的虚拟机时以为和vmware那样复制粘贴注册vdi的时候会提示copy it之类的,没想到直接报错uuid重复注册。翻了下帮助原来VirtualBox有转码的工具来进行vdi克隆。
在VirtualBox的安装目录下有个 VBoxManage.exe 其实这工具有蛮多功能,有兴趣的同学可以自己看看帮助。我们这里就说下如何克隆vdi了:
VBoxManage.exe clonevdi 原始VDI文件名 新的VDI文件名
其实蛮方便的一个工具想不懂为啥不做成图形的非得要敲命令呢,用户体验真差。

linux执行脚本提示: No such file or directory

2009年12月31日 4 条评论

今天在装sphinx,收尾准备做个增量的脚本放crontab里面去,结果每次执行都是提示: No such file or directory。搞来搞去最后发现文本格式忘了改成unix的了,汗

分类: linux相关 标签: ,

VC克隆虚拟机提示虚拟机文件损坏一例

2009年11月20日 没有评论

今天在准备部署一台新的虚拟机,把模板机更新了下补丁,装了新的vmtools,克隆的时候再快结束的时候提示虚拟机文件损坏。由于模板机能正常开机运行,虚拟机内操作也很正常,所以觉得和vmdk文件没什么关系,而且克隆的时候vmdk也是克隆完成的,所以怀疑是vmx文件的问题,于是下载了下来仔细看了下,发现一个可疑之处 uuid.location = “” 内容竟然空白,又对比了一台正常的机器和一台刚刚克隆完的机器,证实确实是uuid.location问题,把uuid.location = “” 这行删除掉,上传上esx,重新启动模板机后就自动生成了。然后克隆成功,问题解决。

分类: vmware相关, 只谈技术 标签: ,

EditPlus正则替换一例

2009年11月18日 没有评论

有个mysql的查询 用的 where xxx in ('a','b','c','d'),现在有一批数据需要放入in () 来查询,在想如何批量转换成'a','b','c','d' 这样的格式。
首先我把数据处理成每行1个的格式:
a
b
c
d
这样
通过EditPlus的正则替换功能,查找^.* 替换为 '\0' 得到
'a'
'b'
'c'
'd'
然后在通过正则替换,查找 \n 替换为 , 就得到了
'a','b','c','d'
达到目标

ESX正常VC里连接不上解决办法

2009年11月17日 没有评论

今天忽然发现VC里某台ESX里面的虚拟机全部无法控制,列表里面CPU和内存信息都是0,显然这台ESX出问题了,尝试断开并重新连接这台ESX结果连接失败,弹出输入用户名和密码,填写后还是连接不上,尝试ping这台esx主机发现ping的通,直接登录到esx的console发现能登陆,检查服务也正常。看来是esx的问题了,打算重启下,可以里面有2台比较重要的虚拟机,直接重启ESX担心会造成影响,所以尝试的重启部分服务,结果service mgmt-vmware restart后正常了。

一般情况下出现esx和vc的连接问题除了重启上面的mgmt-vmware外还可以service vmware-vpxa restart重启下vpxa,说不定就能解决

分类: vmware相关, 只谈技术 标签: ,

Nginx+keepalived负载均衡篇

2009年11月6日 3 条评论

由于nginx的url hash功能可以很好的提升squid的性能,所以我把squid前端的负载均衡器更换为nginx,但是一台nginx就形成了单点,现在使用keepalived来解决这个问题,keepalived的故障转移时间很短(<1s),而且配置简单,这也是选择keepalived的一个主要原因,建议日PV值小的中小型企业web均可采用如下方案实行,下面直接上安装步骤:

一、环境:
centos5.3、nginx-0.7.51、keepalived-1.1.19
主nginx负载均衡器:192.168.0.154
辅nginx负载均衡器:192.168.9.155
vip:192.168.0.188

二、安装keepalived

#tar zxvf keepalived-1.1.19.tar.gz
#cd keepalived-1.1.19
#./configure --prefix=/usr/local/keepalived
#make
#make install
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#mkdir /etc/keepalived
#cd /etc/keepalived/
vim keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
yuhongchun027@163.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.0.155 <==辅nginx的IP地址
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.0.188 <==vip地址
}
}
#service keepalived start
我们来看一下日志:
[root@ltos ~]# tail /var/log/messages
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.
Oct 6 03:25:03 ltos avahi-daemon[2306]: Registering HINFO record with values 'I686'/'LINUX'.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for fe80::20c:29ff:feb9:eeab on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Withdrawing address record for 192.168.0.154 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Host name conflict, retrying with
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for fe80::20c:29ff:feb9:eeab on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.188 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering new address record for 192.168.0.154 on eth0.
Oct 6 03:25:23 ltos avahi-daemon[2306]: Registering HINFO record with values ‘I686′/’LINUX’.

很显然vrrp已经启动,我们还可以通过命令:#ip a 来检查

[root@ltos html]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.154/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.188/32 scope global eth0
inet6 fe80::20c:29ff:feba:9be7/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0

说明vip已经启动,这样主服务器就配置好了,辅机的配置大致一样,除了配置文件有少部分的变化,下

面贴出辅机的配置文件:

! Configuration File for keepalived
global_defs {
notification_email {
yuhongchun027@163.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.0.154 <==主nginx的IP的地址
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.0.188
}
}

检查其配置
[root@ltos html]# ip a
1: lo: mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:ba:9b:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.155/24 brd 192.168.0.255 scope global eth0
inet 192.168.0.188/32 scope global eth0
inet6 fe80::20c:29ff:feba:9be7/64 scope link
valid_lft forever preferred_lft forever
3: sit0: mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0

测试其效果方法很简单,分别在主辅机上建立不同的主页,index.html分别为192.168.0.154,192.168.0.155,然后用客户机上elinks http://192.168.0.188,主机down掉后辅机会马上接替提供服务,间隔时间几乎无法感觉出来,这个环境准备再进行下压力测试,用于我杭州网跃朋友的web服务器,如有疑问请联系yuhongchun027@163.com(抚琴煮酒)

转载至 http://hi.baidu.com/yuhongchun027/blog/item/25eca12c3442e9e68a13998c.html

从根服务器查询域名的ns记录

2009年9月23日 没有评论

有时候更新域名的域名服务器,需要查看是否生效,只能通过根服务器的NS查询来辨别。可以使用下面的命令
nslookup -qt=ns thmz.com a.gtld-servers.net
如果根服务器已经更新的话再对比运营商的dns看看有没有更新
nslookup -qt=ns thmz.com

再或者 nslookup -d thmz.com 自己看看各个节点的过期时间

分类: 软件相关 标签: ,

bind的top,dnstop安装使用教程

2009年9月22日 没有评论

安装这里以centos为例

yum install libpcap libpcap-devel ncurses-devel ncurses
wget http://dns.measurement-factory.com/tools/dnstop/src/dnstop-20090128.tar.gz
tar zxvf dnstop-20090128.tar.gz
cd dnstop-20090128
./configure
make && make install

使用方法很简单 dnstop eth0
输入? 可以看到详细帮助,这里不多介绍了。

分类: linux相关, 软件相关 标签: ,

用diskpart扩展windows磁盘空间

2009年9月20日 没有评论

Diskpart.exe 实用程序在命令行界面中管理磁盘、分区和卷。Diskpart.exe 在基本磁盘和动态磁盘上都可以使用。如果 NTFS 卷所在的硬件 RAID 5 容器具有向容器中添加空间的能力,您可以使用 Diskpart.exe 扩展 NTFS 卷,同时将磁盘保持为基本磁盘。

使用 extend 命令可以在保留数据的同时将未分配的空间合并到现有卷中。

下面是对 extend 命令的要求: • 卷必须用 NTFS 文件系统格式化。

• 对于基本卷,扩展的未分配空间必须是同一磁盘上的下一个相邻空间。
• 对于动态卷,未分配空间可以是系统上任何动态磁盘上的空白空间。
• 只支持数据卷扩展。系统卷或启动卷无法扩展,若扩展它们可能会收到以下错误消息:

DiskPart 未能扩展卷。请确定卷是有效的,可以扩展

• 如果系统页面文件在此分区,您就不能扩展该分区。请将系统页面文件移动到一个不希望扩展的分区。

要扩展分区或卷,必须先选择该卷以将焦点移到该卷,然后可以指定扩展的大小。要扩展卷,请按照以下步骤操作:

1. 在命令提示符下,键入 diskpart.exe。
2. 键入 list volume 以显示计算机上的现有卷。
3. 键入 Select volume volume number,其中 volume number 是要扩展的卷的编号。
4. 键入 extend [size=n] [disk=n] [noerr]。

下面将介绍这些参数:

size=n

要向当前分区添加的空间大小(以 MB 为单位)。如果您没有指定大小,磁盘将一直扩展到全部占用下一个相邻的未分配空间。

disk=n

在其上扩展卷的动态磁盘。将在该磁盘上分配“size=n”的空间。如果没有指定磁盘,则在当前磁盘上扩展卷。

noerr

仅用于脚本撰写。当发生错误时,此参数指定 Diskpart 继续处理命令,就像没有发生错误一样。如果没有指定 noerr 参数,错误将导致 Diskpart 退出并显示错误代码。

5. 键入 exit 退出 Diskpart.exe。

当 extend 命令完成时,您应该收到一则消息,说明 Diskpart 已成功扩展卷。新的空间应该已添加到现有驱动器,同时保留卷上的数据。

注意:在 Microsoft Windows XP 和 Microsoft Windows 2000 中,不能使用 Diskpart.exe 扩展动态磁盘上的最初在基本磁盘上创建的简单卷。只能扩展磁盘升级到动态磁盘后创建的简单卷。如果您试图扩展动态磁盘上的最初在基本磁盘上创建的简单卷,将收到以下错误消息。该限制已在 Microsoft Windows Server 2003 中去除。

DiskPart 未能扩展卷。
请确定卷是有效的,可以扩展

注意:Windows Server 2003 和 Windows XP 中包含 Diskpart.exe,并将其作为基本操作系统的一部分。

要下载用于 Windows 2000 的 Diskpart.exe 命令行实用程序,请访问以下 Microsoft 网站:

http://www.microsoft.com/downloads/details.aspx?FamilyID=0fd9788a-5d64-4f57-949f-ef62de7ab1ae&displaylang=en

注意:我们建议您在转换为动态磁盘之前,联系您的系统供应商以获得更新的 BIOS、固件、驱动程序和代理程序。

——————————————————————————–

这篇文章中的信息适用于:

• Microsoft Windows Server 2003 Standard Edition
• Microsoft Windows Server 2003 Web Edition
• Microsoft Windows Server 2003 Enterprise Edition
• Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
• Microsoft Windows XP Home Edition
• Microsoft Windows XP Professional Edition
• Microsoft Windows 2000 Server
• Microsoft Windows 2000 Advanced Server
• Microsoft Windows 2000 Professional Edition

分类: windows相关 标签:

微软补丁KB967723造成MySQL频繁无法连接

2009年9月19日 没有评论

两种解决方法:

第一种:卸载KB967723补丁
登录服务器,进入控制面板 — 添加和删除程序 — (勾选上方的“显示更新”)在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。卸载完成后重启数据库服务器。

第二种:修改注册表
本方法是微软给出的修改注册表修复该Bug的的方法,默认最大的临时 TCP 端口的数是 5000 适用于一节中包含的产品中。 在这些产品中添加一个新参数。 要提高临时端口的上限,请按照下列步骤操作:

1. 启动注册表编辑器。
2. 在的注册表中找到以下子项,然后单击 参数 :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. 在 编辑 菜单上单击 新建 ,,,然后添加下面的注册表项:
数值名称: MaxUserPort
值类型: DWORD
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0×1388 (5000 十进制)
说明: 此参数将控制程序从系统请求任何可用的用户端口时使用的最大端口数。 通常,1024 的值和包含的 5000 之间分配临时的 (短) 端口。
4. 退出注册表编辑器,并重新启动计算机。

请注意 其他的 TCPTimedWaitDelay 注册表参数确定在多长时间关闭的端口等可重复使用已关闭的端口。

微软原文链接:http://support.microsoft.com/kb/q196271