如果您用的是微软平台,如果您准备走上云计算之路,估计您首先关心的是云服务商有没有提供合适的Windows操作系统. 这里把我们知道的知名云服务商提供的Windows操作系统列出来,供大家参考. 1. 亚马逊AWS 2. 微软Azure 3. 阿里云 4. UCloud 从中可以看出,亚马逊AWS提供的Windows操作系统最全,微软Azure反而提供的最少. 如果让我们自由选择,我们首选的是Windows Server 2012 x64英文版,备选的是Windows Server 2008 x6…
虚拟机自定义镜像(Image)是一个很有用的功能,可以在一台虚拟机上配置好基本的系统环境,然后做个镜像,以后创建虚拟机直接从这个镜像创建,会省掉很多重复的配置工作. 阿里云与UCloud都有这个功能,Azure当然也少不了,这也是云服务商标配的免费服务. 下面我们分享一下我们在Azure中试用“制作虚拟机自定义镜像”功能的经历. (一)准备工作 创建一台原装虚拟机,假设名叫blogserver1.创建好之后,登录进去进行基本部署环境的配置,比如安装IIS并进行相关配置(支持高并发的IIS Web…
从阿里云的踩坑大师,到Azure的抹黑大师,我们似乎成了云计算负面用户的典型,可是我们还是忍不住想表达自己真实的使用感受.如果有错误的地方,欢迎大家批评! 在Azure上建好虚拟网(Vitual Network)之后(详见云计算之路-试用Azure:如何建立虚拟机之间的内网连接),虚拟机(Virtual Machine)之间需要进行内网通信,通信时使用计算机名比直接使用内网IP更友好.更方便.更能应对变化. 在使用阿里云的时候,我们只能在每台虚拟机的hosts中添加计算名与IP之间的映射,但是如…
测试环境:Windows Azure上海机房,虚拟机配置为大型(四核,7 GB 内存),磁盘情况见下图. 数据库备份压缩文件大于为12.0 GB (12,914,327,552 bytes),放置于Temporary Storage(D:). 数据库恢复操作命令如下: , MOVE N'CNBlogsText' TO N'F:\DATA\CNBlogsText.mdf', MOVE N 也就是从D盘恢复至F盘. 实测恢复耗时1小时44分15秒. 与其他云服务商的对比: 4月份在阿里云上做的数据库…
在忘记管理员密码的情况下,可以远程重置服务器的管理员密码是云计算服务的一个优势,这是使用自己的物理服务器无法实现的. 但是,在使用Azure的时候,我们找遍Azure管理控制台也没找到可以重置虚拟机(Virtual Machine)管理员密码的地方. Google一下发现原来Azure根本没有提供这个功能: 来自微软Windows Azure论坛上的官方回答(Forgotten VM Password): As of now there is no way Subscription owner…
这篇博文吐槽的是Azure(Virtual Machine)的虚拟机删除功能. 在阿里云中,没有提供直接的虚拟机删除操作,如果不用某台虚拟机,“停止”即可,过期一段时间后会自动释放(这里的释放相当于删除),你也可以设置自动释放,所以你不用担心误删虚拟机. 在UCloud中,提供了删除主机的操作,但不允许删除运行中的虚拟机,要先关机然后才能删除,所以你也不用担心误删除. 而在Azure中,不仅可以删除虚拟机,而且可以直接删除运行中的虚拟机. 甚至,在删除Cloud Service时也可以把Clou…
之前我们写过一篇博文谈到Azure内置的内网DNS服务器不能跨Cloud Service,而我们的虚拟机部署场景恰恰需要跨多个Cloud Service,所以目前只能选择用Azure虚拟机搭建自己的内网DNS服务器.这篇博文分享的是我们在Azure上搭建自己的内网DNS服务器的经过. 1.创建1台用于跑DNS服务的虚拟机,假设名叫dnsserver. 2.登录这台虚拟机,安装DNS服务. 3.安装时Windows警告虚拟机用的是动态IP,推荐使用静态IP.听从该警告,接下来我给虚拟机配置静态IP…
当初迁移至阿里云遇到的第一个问题是在程序中通过Request.UserHostAddress得到的是负载均衡(SLB)的内网IP,而不是用户的真实IP.真实IP存储在服务器变量HTTP_X_Forwarded_For中,后来通过IIS的Url Rewrite Module将HTTP_X_Forwarded_For的值重写入REMOTE_ADDR解决了问题. 这个问题是由于使用七层负载均衡( Layers 7 Load Balancing)带来的,而使用四层负载均衡不会有这个问题.但是如果让我们选…
负载均衡是云服务商标配的免费服务.阿里云的对应产品叫SLB,UCloud的对应产品叫ULB,操作都很简单直观,进入负载均衡管理控制台,添加负载均衡,选择相应的虚拟机即可. 而Azure则完全不一样,在Azure管理控制台,你是不能直接看到负载均衡(Load-balanced set)这个东西的,它藏得有点深.而且只有在同一个Cloud Service中的虚拟机(Virtual Machine)才能组建负载均衡,一开始不知道这点,走了不少弯路. 下面分享一下如何在Azure中创建负载均衡. 1.首…
在阿里云上,同一个帐户创建的所有虚拟机(云服务器)之间的内网是直接连通的.而Azure则完全不一样,一开始使用时有点不知所措,后来摸索出来了——在Azure中只有处于同一个虚拟网络(Virtual Network)的同一个子网(subnet)中的虚拟机才能直接通过内网通信,通过这篇博文分享一下. 开始使用Azure时,如果你直奔主题直接创建虚拟机(Virtual Machine),虽然虚拟机有内网IP(INTERNAL IP ADDRESS),但它们之间是隔离的,无法直接进行内网通信. 要想实现…
如果数据库用的是SQL Server,那SQL Azure无疑是最吸引人的地方之一.在测试了虚拟机磁盘IO之后,我们迫不急待地进行了SQL Azure的测试. (一) 首先进入manage.windowsazure.cn -> SQL DATABASES,创建一个数据库(如下图). 输入数据库名称,选择BUSINESS版本,选择数据库空间大小,最后还要选择一下“New SQL  database server”(明明是第1次创建数据库,默认却显示Choose a server,让用户多了2次鼠标…
上周由于园子后院起火,不得不调兵回去救火,出海记暂时停更,这周继续更新,"出海记"记录的是我们在 AWS 上建设博客园海外站的历程. 在这一记中记录的是我们基于 AWS 免费套餐(Free Tier)创建一个 Amazon RDS for SQL Server 实例,这也是我们第一次使用 AWS RDS,之前只用过阿里云 RDS. 首先进入 AWS RDS 控制台,AWS 在控制台推荐了他们自主研发的云数据库 Amazon Aurora,但我们目前只能用 SQL Server,忽略此推…
如果说2013年云计算之路的主题是“踩坑”,那么2014年我们希望云计算之路的主题变成“填坑”——当然填坑是阿里云来完成的,我们只是见证曾经的坑坑洼洼变成平坦大道. 15号(周四)晚上我们发现了SLB会话保持的坑,16号晚上阿里云成功定位并进行修复,这两天正式发布后会填平这个坑.这次从踩坑到填坑的过程是最痛快的一次. 接下来我们的目标锁定在“黑色n秒”(刚发现一个英文说法:stuck for x seconds)这个坑我们最多.最神秘.最诡异的坑. 受“云计算之路:2009年Xen一个补丁背后那…
今天上午11:35~11:40左右,由于负载均衡中的两台云服务器CPU占用突然飚至100%,造成网站5分钟左右不能正常访问,请大家带来了麻烦,请谅解! (上图中红色曲线表示CPU占用) 经过分析,我们确认CPU 100%问题与启用Windows虚拟内存有关. 原先这两台云服务器是禁用虚拟内存的,但昨天由于虚拟内存不够用,造成了服务器自动重启(详见云计算之路-阿里云上:禁用Windows虚拟内存引发的重启),于是启用了Windows虚拟内存.在今天访问高峰期高并发的情况下,引发了CPU 100%故…
在之前对“黑色1秒”问题的分析博文中,我们将最大嫌疑对象锁定在了Xen,在这篇博文我们将从Xen的角度进行分析.也许有人会问,为什么不知道天多高地多厚地去研究不属于自己范围的问题?只因我们对一个问题的强烈好奇心——究竟是不是我们用Windows的错? (注1:文中所说的Xen补丁问题只是提供一种分析问题的思路,我们遇到的“黑色1秒”问题与有没有打这个补丁没有关系) (注2:关于这个Xen补丁背后的故事,推荐阅读阿里云分享的博文:云计算之路:2009年Xen一个补丁背后那不为人知的故事) 2009…
2013年7月24日,18:20~18:50左右,处于阿里云云服务最前沿的SLB(负载均衡)出现故障,造成了网站不能正常访问(由于是最前沿,这次连502也看不到了). 在大家对昨日RDS故障带来的麻烦还记忆犹新的时候,今天又给大家带来新的麻烦,我们真的真的很抱歉! 我们本来想走上云计算之路之后,可以更专心于开发出更好的产品,为大家提供更好的服务,哪知道国内云计算厂商连云计算的根本——稳定性都不能保证. 在艰苦走了一段云计算之路之后,突然发现面前竟然是一条十字路口:国内云计算厂商的不争气,国外云计…
今天是愚人节,而我们却被阿里云OCS愚,很多地方的缓存一直不过期,造成很多页面中的数据一直不更新.这篇博文将向您分享我们这两天遇到的OCS问题. 阿里云OCS(Open Cache Service)是阿里云提供的开放缓存服务,简单来说就是一个巨大的memcached.我们是从2013年12月12日开始使用阿里云OCS的(详见云计算之路-阿里云上:用上了开放缓存服务OCS).OCS是保证网站性能的最重要的功臣之一,而随着网站访问量的快速增长,OCS更加举足轻重.曾经有一个周末,我们因为清空了OCS…
在这篇博文中,我们抛开对阿里云的怀疑,完全从ASP.NET的角度进行分析,看能不能找到针对问题现象的更合理的解释. “黑色30秒”问题现象的主要特征是:排队的请求(Requests Queued)突增,到达HTTP.SYS的请求数(Arrival Rate)下降,QPS(Requests/Sec)下降,CPU消耗下降,Current Connections上升. 昨天晚上18:08左右发生了1次“黑色30秒”,正好借此案例分析一下. 1.为什么Requests Queued会突增? 最直接的原因…
今天下午访问高峰的时候,主站的Web服务器出现奇怪的问题,开始是2台8核8G的云服务器(ECS),后来又加了1台8核8G的云服务器,问题依旧. 而且3台服务器特地使用了不同的配置:1台是禁用了虚拟内存的临时磁盘云服务器,1台是启用了虚拟内存的临时磁盘云服务器,1台是禁用了虚拟内存的云盘云服务器.这样排除了磁盘IO与虚拟内存的原因. 问题的表现是这样的(以下监视截图来自Windows性能监控器Performance Monitor): 1. ASP.NET请求执行时间(Request Execut…
正如大家在之前公告中所看到的,多个SAP应用程序已获得认证可在 Azure虚拟机中运行,未来还会有更多 SAP应用程序获得认证.对于希望在 Azure中运行 SAP应用程序的客户来说,这是个激动人心的进展,更多详情,请单击此处.在此博客中,我想集中讨论Azure为 SAP 提供的增强监控解决方案,当您在 Microsoft Azure 虚拟机上运行基于 SAP NetWeaver的系统时需要用到这种解决方案.SAP系统通常是企业在其 IT环境中运行的最关键的应用程序,有特定的性能和可用性要求.因…
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月22日,我们进行移除与重启节点的操作时引发了故障,详见 云计算之路-阿里云上-容器服务:移除节点引发博问站点短暂故障 . 3月24日,我们参考阿里云容器服务帮助文档-指定多节点调度通过给节点添加用户标签的方式成功移除了部分节点.我们是这么操作的,当时所有节点没有添加用户标签,给待移除节点之外的所有节…
在云上真是无奇不有,昨天偶然间发现在IIS的应用程序池回收设置中,仅仅设置了一下基于虚拟内存限制的回收,就引发了CPU有规律的波动.在这篇博文中,我们将向大家汇报一下云计算之路上的这个小发现. 在之前我们使用阿里云云服务器(虚拟机)遇到一个左右为难的情况: 如果开启虚拟内存页面交换文件,会造成CPU占用高,在高并发情况下会引发CPU 100%.系统无响应的故障,详见云计算之路-阿里云上:启用Windows虚拟内存引发的CPU 100%故障. 如果关闭虚拟内存页面交换文件,在某种因素引起的短时间虚…
冒着被大家厌烦的风险,今天再发一篇“云计算之路-阿里云上”.这是在前一篇发过之后真实发生的事情,我们觉得定位问题的过程值得分享.而且估计园子里不少朋友被这个问题骚扰过,我们有责任让大家知道问题的真正原因. 快下班之前,园区里另外一家公司的朋友说他们公司有的人不能正常访问园子——会出现HTTP Error 400错误,而其他人可以正常访问.这个问题立即引起了我们的警觉,因为之前也有园友反馈过同样的问题,当时什么也没动,后来就好了,以为是他们公司网络代理服务器的问题.由于我们从未遇到过这个问题,而且…
在昨天的博文(云计算之路-阿里云上:读取缓存时的“黑色0.1秒”)中我们犯了一个很低级的错误——把13ms算成了130ms(感谢陈硕发现这个错误!),从而对问题的原因作出了错误的推断,望大家谅解! 从中我们吸取到了一个教训:趁热打铁要小心,容易失去冷静,作出错误的判断. 今天我们痛定思痛,用了一个下午的时间重新分析了“黑色0.1秒”问题,这次从EnyimMemcached的源代码下手(https://github.com/enyim/EnyimMemcached). 怎么下手呢?我们用了最粗鲁.…
昨天(2013年8月6日)下午,承载www.cnblogs.com主站的两台云服务器分别自动重启了1次,由于这两台云服务器使用了负载均衡(SLB),重启并未影响网站的正常访问. 与这次重启相关的Windows事件日志如下: 云服务器1(8核CPU,8G内存): 14:36:22 —— Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most vir…
(上图是今天出问题期间Web服务器性能监控图,紫色表示的是Request Execution Time) 昨天我们发布了一篇博客分享了我们这两天遇到的OCS(开放缓存服务)问题,详见云计算之路-阿里云上:愚人节被阿里云OCS愚. 后来,阿里云确认了问题的原因:在OCS升级过程中造成了写入的缓存数据过期时间丢失,只需删除这些有问题的缓存数据就不会再出现这个问题. 今天一大早访问低峰的时候,我们进行了清空OCS实例缓存的操作,解决了OCS缓存不能过期的问题. 今天中午11:30左右,园子访问速度突然…
一,引言 之前我们讲解到使用 Azure Traffic Manager.Azure LoadBalancer.Azure Application Gateway,作为项目的负载均衡器来分发流量,转发访问请求.尤其之前在介绍到 Azure Traffic Manager是一种具有基于DNS的流量负载均衡器,可以在全球区域内以最佳方式分发流量,同时提高高可用性和响应性.流量管理器的配置路由方式可以是 "Geographic"(基于地理位置的路由策略),也就是在不同的地址位置上部署服务器以…
昨天对“黑色n秒”问题的最终猜想以失败而告终,从而让我们结束了被动猜想阶段,进入了主动进攻阶段——出招. 今天出第一招——用C#写个小程序,让其在每个CPU核上运行一个线程,不让任何一个CPU核进入空闲(idle)状态,以进一步排除CPU idle引起的“黑色n秒”. 在这一招中,借助的最重要的武器是System.Diagnostics.ProcessThread.ProcessorAffinity.通过给ProcessorAffinity设置一个掩码,就可以指定当前线程运行于哪个CPU核上.…
 发布于 2013-12-11 作者 Ross Gardler 微软开放技术有限公司 (MS Open Tech) 很高兴地宣布发行新的 Windows Azure Puppet 模块.通过这个模块,可以使用流行的开源 DevOps 工具 Puppet 在 Windows Azure 上提供 Linux 和 Windows 虚拟机.产品的支持以Puppet专属 Windows Azure 模块的形式发布在 Puppet Forge 上.此外,还支持网络配置和数据库等关键服务的管理.这样一来,…
Configuring and Deploying the Windows Azure Email Service application - 2 of 5 This is the second tutorial in a series of five that show how to build and deploy the Windows Azure Email Service sample application. For information about the application…