Windows Azure大家或多或少都听说过,由于一直在国内没有上线,所以大家对Windows Azure总是存有很多问题。在此,我将一些常见的Windows Azure问题发布出来,希望对大家有所帮助。如果大家有其他问题,欢迎大家提问,我会附加到列表里
开通Windows Azure的账号有多种方式:
具有计费账户的用户(比如在注册过程中绑定过信用卡的用户),可以在Azure管理门户里面点击右上角图标,再点击“查看我的账单”。用户也可以直接打开订阅页面https://account.windowsazure.com/Subscriptions
没有计费账户的用户,没法查看账单和用量。这些用户包括:协同管理员,AzurePass用户
账单内容包括各服务用量统计、剩余用量,用户也可下载详细账单
突然无法登录的可能原因包括:
可能有几种情况:
对于免费账号,如果因超过额度而停机,可以等待到下一个计费周期,那时Azure会分配新的免费额度,这样账户可以继续使用了。不过30天的免费账户只有一个计费周期,用超了就失效了。所以,使用Azure前,一定要仔细看清楚有多少额度,使用中也要仔细,及时清理闲置的资源
出现以上的情况后,账户会立即进入挂起状态,所有已部署的虚拟机、网站、云服务会被删除,而存储空间则会根据情况保留一段时间。如果用户能及时付费或者将账户延期,则有可能恢复数据。所以用户需要即时关注自己账户的情况,避免意外停机
一个用户可以拥有多个订阅,或者成为其他订阅的协同管理员。Azure门户支持同时管理多个订阅的服务。为了区分不同订阅,用户可以在门户上对订阅进行过滤(点击门户右上角“订阅”),确保只管理自己关注的订阅
Azure门户菜单“设置”->管理员->页面底部“添加管理员”。添加的账号必须是微软账号
点击门户右上角-〉与Microsoft支持部门联系
然后就可以创建一个服务Ticket,等待微软技术支持联系。
如果无法打开该页面,说明是免费账号,只能通过论坛支持。
首先需要定位乱码产生的源头,如果在数据库里发现数据已经是乱码,则请参考下面数据库乱码的问题。
如果乱码来自于网站、虚拟机、云服务,则有可能是因为Azure的OS版本导致。目前Azure上所有Windows OS都是英文版,没有装中文语言包,如果程序代码里面有非Unicode字符串操作,则有可能产生乱码。具体的解决如下:
我们来打个比方:
虚拟机可以看成是积木,我们可以自由搭配积木,让它们组成各种方案。
云服务可以看出是一个打包了虚拟机和应用的白盒子。我们能透过盒子看到里面的虚拟机和应用,但是Azure不希望我们单独管理他们,而是由Azure去管理盒子内部。用户只需要管理白盒子。白盒子内的积木种类是有限的,其组合形式也是固定的,用户必须按照Azure的规则去定义虚拟机的组合。而应用的发布也需要按照Azure提供的规则和工具完成
网站是个黑盒子。用户无法看到网站内部的架构,只能把代码上传到这个黑盒子,然后通过特定的接口获得日志之类的输出。
三种服务有各自的适用场景:
Azure SDK需要Visual studio 2010和Win 7以上版本,最好是Win 8+Visual studio 2012
安装时,在Visual studio中新建一个项目:Cloud->Windows Azure云服务。之后Visual studio就会自动下载相应的SDK包,包括Azure SDK, Azure SDK for .NET, Azure tools for visual studio等
见http://blog.csdn.net/shaunfang/article/details/8939681
见http://blog.csdn.net/shaunfang/article/details/8933509
见http://blog.csdn.net/shaunfang/article/details/8933405
我们创建一个虚拟机后,会发现虚拟机有两个磁盘,一个是C盘(OS盘),一个是空的D盘。一定要注意,这两个磁盘是不同的。C盘是存储在Blob上,是可靠存储的。D盘是存储在虚拟机所在的物理机本地磁盘,是不可靠的。如果物理机发生故障,Azure会进行虚拟机故障转移,在另外的物理机上启动虚拟机,此时C盘数据保持不变,但D盘数据会被清空。除此之外,其他状况也会导致D盘数据丢失,比如Azure对物理机的HyperV进行升级、Azure对虚拟机进行主动迁移等等。因此,D盘对用户来说,应该看成是一个缓存空间,用于存储一些日志、临时文件,而不要存储业务数据。
如果希望存储业务数据,需要创建一个以Blob为后台的磁盘,具体方式是在虚拟机页面底部点击“附加”
这样,一个blob文件会创建在存储上,并且挂载给目标虚拟机。用户需要进入虚拟机磁盘管理工具对磁盘进行格式化和加载
见http://blog.csdn.net/shaunfang/article/details/8933854
Azure上创建的linux虚拟机缺省是没有root权限的,用户也无法用root登录。
要用root权限执行某项操作,用sudo即可,如
sudo mkdir如果希望进入root shell,可以用下面的命令
sudo su -其中,sudo是以root身份执行命令,"su -"是进入root shell
这里以centos为例做说明
首先,进入root shell
sudo su -
然后即可执行yum安装了。如果直接执行yum install gcc可能会报如下的错误:
Error: Package: glibc-headers-2.12-1.80.el6_3.7.x86_64 (updates) Requires: kernel-headers Error: Package: glibc-headers-2.12-1.80.el6_3.7.x86_64 (updates) Requires: kernel-headers >= 2.2.1
yum --disableexcludes=main install gcc
另外,有时候我们安装其他软件包是会报找不到源的错误,此时我们可以修改yum源,将其改为centos的公共源,而不是openlogic自己的源
修改yum源
vi /etc/yum.repos.d/CentOS-Base.repo找到[Base]项,将baseurl改为
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
见http://blog.csdn.net/shaunfang/article/details/8939692
如果用户希望使用其他的linux发行版,或者使用不同于标准镜像库版本的linux,或者是需要自行编译内核,那么用户需要自己制作并上传镜像。需要注意的是,并不是所有的镜像都可以被支持。Azure需要每个linux虚拟机都具有一个agent,这个agent对于标准版本之外的linux可能无法支持,所以,用户可以尝试自己的镜像是否被支持
具体的步骤见http://www.windowsazure.com/en-us/manage/linux/how-to-guides/prepare-a-linux-distribution/?fb=zh-cn
见http://blog.csdn.net/shaunfang/article/details/8939699
见http://blog.csdn.net/shaunfang/article/details/8622754
见http://blog.csdn.net/shaunfang/article/details/8717624