《Windows Azure Platform 系列文章目录》
Windows Azure PaaS不是持久化的。
(为了更好的解释这章内容,一开始,我把Windows Azure Portal的Language改成English)
我们在使用Windows Azure Portal的时候,会发现对于Multi-instance(多实例)站点,会有Reboot和Reimage这两个按钮
这2个按钮在中文简体的Azure Portal中的翻译是
那重新启动(Reboot)是什么意思?
重新启动(Reboot)就是把Azure计算节点(Azure VM)进行重新启动。在重启期间,该计算节点不会提供正常的计算服务。
- 对于单个计算节点(1-instance)的Azure托管服务,会造成Azure托管服务短暂的不正常运行。
- 对于多个计算节点(multi-instance)的Azure托管服务,Fabric Controller (FC) 是自动把请求发送到其他正常的计算节点(Azure VM)。
比如我发布了一个Azure托管服务,这个服务有三个计算节点。如果我重新启动(Reboot)其中2个计算节点,如下图:
如果这时候有用户需要请求这个Azure 服务,Fabric Controller (FC)会把这些请求发送正常运行的第一个节点(IN_0)之上。这也是为什么Windows Azure建议用户使用至少两个实例(2-instance)来提高Windows Azure的可靠性。
其实我们也可以通过远程桌面连接到Azure VM(具体步骤,请参考Windows
Azure Platform (十八)用Visual Studio将应用程序部署到Windows Azure平台),然后像重启电脑那样重启Azure VM。如下图:
使用通过Azure Portal重启(Reboot)与远程桌面连接重启Windows Azure VM是相类似的。区别是:
- 使用Azure Portal重启,FC会充分认识到具体是哪个VM正在被重启,并且在Portal上显示出来。
- 使用远程桌面连接重启,FC不知道计算节点(VM)发生了什么事情。FC只能被动地将外部请求发送到那些正常运行的计算节点之上。
最后我们聊聊重置镜像(Reimage):
- 对Web Role和Worker Role使用Reimage,首先会让Azure托管服务离线(Offline),然后重新安装Azure 操作系统(Azure Guest Operation),最后启动服务。
- (Web and Worker Role Reimage – In this type of role, Azure brings the role offline first and applies the fresh reinstallation of the Azure Guest Operating System and make the role online again)
我们还是通过远程桌面连接到Windows Azure VM (IN_0)上。
- 我在F盘创建三个文件夹
然后我点击Reimage,重启镜像。等待重启镜像操作完成,然后我再通过远程桌面连接到Azure VM上
会发现之前我存在Azure VM本地磁盘上(Local Storage)上的内容,经过Reimage之后,都丢失了。
所以放在Azure VM本地磁盘上的数据都是非持久性的!如果我们想保存数据,必须使用Azure Storage (BLOB,Drive, Table和Queue)来实现。