[size=large]
已在Xen下制作完Linux镜像,windows镜像也做了10来天了,现来个总结,镜像一览表:
[table]
|windows2003 Server|windows2003_64 Server|
|windows 自家的服务器|...64自家服务器|
|windows 自家的loadBalancer|...64|
|windows 自家的portal Server|...64 :P |
|windows mysql5.1|...64|
|windows apache loacBalancer|...64|
[/table]
每个镜像都拥有的“六脉神剑":
JDK1.6.22, intel-agent, cloud-agent,
VNC server, Ssh Server, XenTools
在此基础上再安装特性东东,如Mysql镜像安装mysql+apache+php+phpMyAdmin,apache LoadBalancer镜像就安装apache LoadBalancer... ...
——————————————安装过程概览——————————————
1、 如何将Apusic作为windows服务启动
Cmd中切换到%Apusic_Home%/domain/mydomain/bin目录
.安装 apusicsvc.exe -install -name xxx
.移除 apusicsvc.exe -uninstall xxx 后可带参数(查看帮助)
2、 如何将.bat作为windows服务(.bat文件怎么注册成windows服务)
.使用sc命令
sc create 服务名 binPath= xxx type= share start= auto display= yyy...可选参数,具体的参数请google
注意: = 后面的空格不能省略。如果路径中含有空格则使用双引号括起来...
[color=red]声明:[/color]本人使用此方法并未达到目标。
拓展:要创建服务,使用sc命令即可,但要能作为服务运行必须符合MS的相关规范。我使用命令成功的创建了服务但服务没有生效,觉得去研究MS相关规范成本太高因此放弃... ...
启动服务过程中所经历的错误:
A、 错误5拒绝访问
B、 错误1053: 服务没有及时相应启动或控制请求
想让.bat做成服务运行,sc不行,不止.bat不行,一般.exe都不行。还是上面的理由做成服务的编写是有固定格式的... ...
推荐使用软件magic starter。但是我本人采用的是java wrapper service
3、 参考我的《将java程序做成windows系统服务》
[url]http://liaoshaoyao.iteye.com/admin/blogs/809134[/url]
4、 扩展之.bat与.cmd的区别
bat用的是16位的dos运行,而cmd则是通过xp系统的32位dos运行的。有些命令在bat可以使用但是在cmd中却不能使用。
5、 将Apusic as配置成Apusic LoadBalancer的两种方法:
方法一:
方法二:在/mydomain/bin下找到startapusic.cmd中,修改此启动脚本,在其中所有的%JAVA_RUN%后添加 -config /config/loadbalancer.conf文件
6、 windows2003 server每次开机时都需要点击ctrl+alt+del的方式才能登录,如何去掉这一限制呢?
“运行”——gpedit.msc——组策略——计算机配置——windows设置——安全设置——本地策略——安全选项,将“交互式登录:不需要按ctrl+alt+del”勾上OK!
7、 关于远程服务
windows的远程服务有我们大家都熟知的Telnet方式,但是那种方式不太安全,况且考虑到与Linux镜像保持一致在此处我们仍然使用VNC来进行远程访问。
拓展:
A、 Linux下访问windows远程桌面
.启服务中的Terminal Services
.开启我的电脑——远程中的选项(windows的远程桌面需要用到的端口为3389),如果要修改端口可以参照下面的方式:
进入注册表: HKEY_LOCAL_MACHINE\System\currentControlSet\Control\Terminal Server\wds\rdpwd\tds\tcp\portNumber 进行编辑。
8、 负载均衡器
作用:
A、将客户端的请求均匀地分流给后端真实的服务器
B、 一台做主机另一台做热备份
9、 Apache在windows环境下的配置
首先得打开httpd.conf这个配置文件,找到如下代码:
LoadModule proxy_module modules/mod_proxy.so//提供代理服务器功能
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so//提供负载均衡功能
LoadModule proxy_http_module modules/mod_proxy_http.so//支持http协议
默认的httpd.conf中只含#ProxyRequests On,添加如下配置:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080(使用BlancerMember添加真实的服务器地址)
BalancerMember http://node-b.myserver.com:8080
</Proxy>
ProxyPass / balancer://mycluster(协议地址可以随便定义)[/color] 调试时可以添加如下代码来监视负载均衡器(不要带入到生产环境):
[color=red]<Location /balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Deny from all
Allow from localhost
</Location> [/color]如此般配置好之后访问 http://localhost/balancer-manager/ 即可看到负载均衡的工作状况。
改完之后重启服务器,访问你的Apache所在服务器的地址,即可看到负载均衡的效果了。打开 balancer-manager 的界面,可以看到请求是平均分配的。
如果不想平均分配怎么办?给 BalancerMember 加上 loadfactor 参数即可,取值范围为1-100。比如你有三台服务器,负载分配比例为 7:2:1,只需这样设置:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080 loadfactor=7
BalancerMember http://node-b.myserver.com:8080 loadfactor=2
BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster[/color] 默认情况下,负载均衡会尽量让各个服务器接受的请求次数满足预设的比例。如果要改变算法,可以使用 lbmethod 属性。如:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080 loadfactor=7
BalancerMember http://node-b.myserver.com:8080 loadfactor=2
BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster
ProxySet lbmethod=bytraffic[/color]
lbmethod可能的取值有:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
——————关于热备份(Hot StandBy)————————
只需添加 status=+H 属性,就可以把某台服务器指定为备份服务器:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080
BalancerMember http://node-b.myserver.com:8080 status=+H
</Proxy>
ProxyPass / balancer://mycluster[/color]从 balancer-manager 界面中可以看到,请求总是流向 node-a ,一旦node-a挂掉, Apache会检测到错误并把请求分流给 node-b。Apache会每隔几分钟检测一下 node-a 的状况,如果node-a恢复,就继续使用node-a。
10、 Apache2.0+性能调优
2.0中影响性能的最核心特性:MPM(Multi-Processing Modules,多道处理模块),在此主要阐述prefork和worker这两种和性能关系最大的产品级MPM:
A、 prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能
B、 worker的工作原理及配置
由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求
调优工作主要针对httpd.conf中的如下两处的参数值进行调节:
[color=red]
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>[/color]
[color=red]
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>[/color]
我们可以显示地指定使用那种MPM.
11、 windows启动之后总是弹出提示框"发现新硬件,已安装完更新,...需重启"的提示,然而本身并需要重启的。怀疑是XenServer启动的途中往其中插入了配置IP的xxx.iso,如何去掉这个提示呢?
网上一般的说法是重新安装设备的驱动... ... (排除)
12、 windows修改主机名而不重启
从网上搜到了相关的脚本,试验成功,然而当使用远程连接时却提示“不在域内...”,然而我使用VNC Client是可以连接成功的。 VNC与Telnet使用的是不同的连接方式,如何解决Telnet连接不成功的问题呢?
13、 windows查看进程号及kill进程的方法
windows任务管理器——查看——选择列 选择
命令行: tasklist 列出所有的进程和进程的相应信息
杀进程的命令:
taskill 进程号(程序名)
强力杀进程:
ntsd -c q -p PID
14、 小知识: Linux下不识别localhost,得换成对应的127.0.0.1,而windows对于两者都能正确识别。
待续... ...
反思:
1、 起初并没有弄明白intel-agent与cloud-agent及其伴随os启动的整个原理。傻B似的在那里修改每一个模板的ip与主机名,结果发现不能用。
—————————————[b][color=red]突破障碍[/color][/b]——————————————
制作好了Windows虚拟镜像之后在应用平台启动,能够正常启动与关闭但是一旦关闭则不能再被启动了(也不能被重启)... ...
这个问题整整折磨我跟师兄近达两个星期,一直到今天才水落石出,原来是我们将windows虚拟机的最大cpu个数设置为32个的缘故(linux也是32个)。查看文档发现如下东东:
[img]http://dl.iteye.com/upload/attachment/374945/46b61d3b-9efe-31d7-8a4b-5bade6838495.png[/img]
[img]http://dl.iteye.com/upload/attachment/374947/5c9ccc22-ab5b-38c8-a41c-568e92edc4a1.png[/img]
[color=red]虽然说早就意识到了阅读文档的重要性,然而却一再视而不见!!![/color]
[/size]
已在Xen下制作完Linux镜像,windows镜像也做了10来天了,现来个总结,镜像一览表:
[table]
|windows2003 Server|windows2003_64 Server|
|windows 自家的服务器|...64自家服务器|
|windows 自家的loadBalancer|...64|
|windows 自家的portal Server|...64 :P |
|windows mysql5.1|...64|
|windows apache loacBalancer|...64|
[/table]
每个镜像都拥有的“六脉神剑":
JDK1.6.22, intel-agent, cloud-agent,
VNC server, Ssh Server, XenTools
在此基础上再安装特性东东,如Mysql镜像安装mysql+apache+php+phpMyAdmin,apache LoadBalancer镜像就安装apache LoadBalancer... ...
——————————————安装过程概览——————————————
1、 如何将Apusic作为windows服务启动
Cmd中切换到%Apusic_Home%/domain/mydomain/bin目录
.安装 apusicsvc.exe -install -name xxx
.移除 apusicsvc.exe -uninstall xxx 后可带参数(查看帮助)
2、 如何将.bat作为windows服务(.bat文件怎么注册成windows服务)
.使用sc命令
sc create 服务名 binPath= xxx type= share start= auto display= yyy...可选参数,具体的参数请google
注意: = 后面的空格不能省略。如果路径中含有空格则使用双引号括起来...
[color=red]声明:[/color]本人使用此方法并未达到目标。
拓展:要创建服务,使用sc命令即可,但要能作为服务运行必须符合MS的相关规范。我使用命令成功的创建了服务但服务没有生效,觉得去研究MS相关规范成本太高因此放弃... ...
启动服务过程中所经历的错误:
A、 错误5拒绝访问
B、 错误1053: 服务没有及时相应启动或控制请求
想让.bat做成服务运行,sc不行,不止.bat不行,一般.exe都不行。还是上面的理由做成服务的编写是有固定格式的... ...
推荐使用软件magic starter。但是我本人采用的是java wrapper service
3、 参考我的《将java程序做成windows系统服务》
[url]http://liaoshaoyao.iteye.com/admin/blogs/809134[/url]
4、 扩展之.bat与.cmd的区别
bat用的是16位的dos运行,而cmd则是通过xp系统的32位dos运行的。有些命令在bat可以使用但是在cmd中却不能使用。
5、 将Apusic as配置成Apusic LoadBalancer的两种方法:
方法一:
方法二:在/mydomain/bin下找到startapusic.cmd中,修改此启动脚本,在其中所有的%JAVA_RUN%后添加 -config /config/loadbalancer.conf文件
6、 windows2003 server每次开机时都需要点击ctrl+alt+del的方式才能登录,如何去掉这一限制呢?
“运行”——gpedit.msc——组策略——计算机配置——windows设置——安全设置——本地策略——安全选项,将“交互式登录:不需要按ctrl+alt+del”勾上OK!
7、 关于远程服务
windows的远程服务有我们大家都熟知的Telnet方式,但是那种方式不太安全,况且考虑到与Linux镜像保持一致在此处我们仍然使用VNC来进行远程访问。
拓展:
A、 Linux下访问windows远程桌面
.启服务中的Terminal Services
.开启我的电脑——远程中的选项(windows的远程桌面需要用到的端口为3389),如果要修改端口可以参照下面的方式:
进入注册表: HKEY_LOCAL_MACHINE\System\currentControlSet\Control\Terminal Server\wds\rdpwd\tds\tcp\portNumber 进行编辑。
8、 负载均衡器
作用:
A、将客户端的请求均匀地分流给后端真实的服务器
B、 一台做主机另一台做热备份
9、 Apache在windows环境下的配置
首先得打开httpd.conf这个配置文件,找到如下代码:
LoadModule proxy_module modules/mod_proxy.so//提供代理服务器功能
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so//提供负载均衡功能
LoadModule proxy_http_module modules/mod_proxy_http.so//支持http协议
默认的httpd.conf中只含#ProxyRequests On,添加如下配置:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080(使用BlancerMember添加真实的服务器地址)
BalancerMember http://node-b.myserver.com:8080
</Proxy>
ProxyPass / balancer://mycluster(协议地址可以随便定义)[/color] 调试时可以添加如下代码来监视负载均衡器(不要带入到生产环境):
[color=red]<Location /balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Deny from all
Allow from localhost
</Location> [/color]如此般配置好之后访问 http://localhost/balancer-manager/ 即可看到负载均衡的工作状况。
改完之后重启服务器,访问你的Apache所在服务器的地址,即可看到负载均衡的效果了。打开 balancer-manager 的界面,可以看到请求是平均分配的。
如果不想平均分配怎么办?给 BalancerMember 加上 loadfactor 参数即可,取值范围为1-100。比如你有三台服务器,负载分配比例为 7:2:1,只需这样设置:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080 loadfactor=7
BalancerMember http://node-b.myserver.com:8080 loadfactor=2
BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster[/color] 默认情况下,负载均衡会尽量让各个服务器接受的请求次数满足预设的比例。如果要改变算法,可以使用 lbmethod 属性。如:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080 loadfactor=7
BalancerMember http://node-b.myserver.com:8080 loadfactor=2
BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster
ProxySet lbmethod=bytraffic[/color]
lbmethod可能的取值有:
lbmethod=byrequests 按照请求次数均衡(默认)
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)
——————关于热备份(Hot StandBy)————————
只需添加 status=+H 属性,就可以把某台服务器指定为备份服务器:
[color=red] ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080
BalancerMember http://node-b.myserver.com:8080 status=+H
</Proxy>
ProxyPass / balancer://mycluster[/color]从 balancer-manager 界面中可以看到,请求总是流向 node-a ,一旦node-a挂掉, Apache会检测到错误并把请求分流给 node-b。Apache会每隔几分钟检测一下 node-a 的状况,如果node-a恢复,就继续使用node-a。
10、 Apache2.0+性能调优
2.0中影响性能的最核心特性:MPM(Multi-Processing Modules,多道处理模块),在此主要阐述prefork和worker这两种和性能关系最大的产品级MPM:
A、 prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。这就是预派生(prefork)的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能
B、 worker的工作原理及配置
由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求
调优工作主要针对httpd.conf中的如下两处的参数值进行调节:
[color=red]
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>[/color]
[color=red]
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>[/color]
我们可以显示地指定使用那种MPM.
11、 windows启动之后总是弹出提示框"发现新硬件,已安装完更新,...需重启"的提示,然而本身并需要重启的。怀疑是XenServer启动的途中往其中插入了配置IP的xxx.iso,如何去掉这个提示呢?
网上一般的说法是重新安装设备的驱动... ... (排除)
12、 windows修改主机名而不重启
从网上搜到了相关的脚本,试验成功,然而当使用远程连接时却提示“不在域内...”,然而我使用VNC Client是可以连接成功的。 VNC与Telnet使用的是不同的连接方式,如何解决Telnet连接不成功的问题呢?
13、 windows查看进程号及kill进程的方法
windows任务管理器——查看——选择列 选择
命令行: tasklist 列出所有的进程和进程的相应信息
杀进程的命令:
taskill 进程号(程序名)
强力杀进程:
ntsd -c q -p PID
14、 小知识: Linux下不识别localhost,得换成对应的127.0.0.1,而windows对于两者都能正确识别。
待续... ...
反思:
1、 起初并没有弄明白intel-agent与cloud-agent及其伴随os启动的整个原理。傻B似的在那里修改每一个模板的ip与主机名,结果发现不能用。
—————————————[b][color=red]突破障碍[/color][/b]——————————————
制作好了Windows虚拟镜像之后在应用平台启动,能够正常启动与关闭但是一旦关闭则不能再被启动了(也不能被重启)... ...
这个问题整整折磨我跟师兄近达两个星期,一直到今天才水落石出,原来是我们将windows虚拟机的最大cpu个数设置为32个的缘故(linux也是32个)。查看文档发现如下东东:
[img]http://dl.iteye.com/upload/attachment/374945/46b61d3b-9efe-31d7-8a4b-5bade6838495.png[/img]
[img]http://dl.iteye.com/upload/attachment/374947/5c9ccc22-ab5b-38c8-a41c-568e92edc4a1.png[/img]
[color=red]虽然说早就意识到了阅读文档的重要性,然而却一再视而不见!!![/color]
[/size]