11/5/2008
iSCSI存储
微软的Best Practice说,每一台VM都要有自己专用的独立的iSCSI LUN。不建议把多个虚机放在一个LUN上面。为啥呢?因为在虚机迁移的时候,LUN就被切换到了另外一台HOST上去了,如果2个虚机共用一个LUN,那么迁移的时候,就必须这2台虚机一起迁移。所以,建议每台虚机至少要有一个独立的LUN,如果不是每个vhd都独立一个LUN的话。
这就带来了一个大问题,LUN太多的问题。在一个100台HOST上运行1000个VM的情况下,最少需要1000个LUN,这对于LUN的管理带来了极大的问题。更有些早期的一些存储设备,最多只能支持1024个LUN。
对比ESX来说,HOST只需要建立少量的iSCSI LUN,每个LUN都可以存放很多虚机文件。因为VMWare采用了VMFS文件系统,多个HOST可以同时访问同一个LUN,因此就不存在LUN切换HOST的问题,也就不存在同一个LUN上的虚机必须同时迁移的局限。
Non-stop migration(不停机迁移)
Hyper-V的VM迁移方式是先save status,这个动作将当前的VM状态冻结住,然后将其配置文件和内存复制到Host2上,再在Host 2上恢复status,在这个过程中(Ben的讲座上讲2-3分钟,具体情况根据VM内存的大小和Host间迁移通道的网速密切相关,具体可见拙文2秒到2分钟?Hyper-V的所谓“快速”迁移不快速),2秒到几分钟,VM是不工作的。也就是有宕机时间。
VMWare用VMotion来实现不停机迁移,该技术通过Snapshot将VM的内存抓取下来,复制到另一台HOST;然后对内存的变化量再抓一次Snapshot,再复制过去,直到内存的变化量小于一个page,在此过程中,VM始终在原HOST上运行。在最后的一瞬间,虚机被切换到HOST2运行,同时最后一片内存也复制过去,整个过程只有几毫秒到几十毫秒。所以此切换对用户完全透明,一个正常的TCP session也不会中断。
在实际的企业级应用中,比如一个SQL server的transaction甚至一个简单的文件复制动作,都会因为Hyper-V的迁移被打断,甚至引起数据一致性的问题,但是却完全不会被VMotion的迁移影响到。
不停机迁移的这个功能,微软将在Hyper-V 2.0中提供,集成在Windows 2008 R2中,名字叫Live Migration
DRS
有了VirtualCenter,VMWARE可以做到动态的监控HOST的性能,在HOST的性能不平衡的时候,可以通过VMotion自动地动态地不间断地将VM从一台主机迁移到另外一台。
对比微软的方案,SCVMM类似于VirtualCenter,可以全局的管理很多Host,但是却没有监控HOST性能的组件。监控Host性能的任务被交给了System Center的另外一个成员SCOM(也就是MOM的升级)来完成。因此,必须由SCOM来监控性能,并在触发了相关的Alert时,将信号传递给SCVMM,再由SCVMM来提示用户进行手工迁移。呃,为啥是手工?因为目前微软还做不到不间断迁移,所以真正的DRS目前还不能实现。
Affinity
VMWare的Affinity设置很细致。在我们企业中有这样的应用,数台Web服务器组成一个集群,这个集群是通过一台F5 内容交换机来实现负载均衡和高可用性的。如果这些服务器是虚机,并且运行在同一台HOST上,当HOST的硬件发生故障的时候,即使可以在其他HOST节点上重启,整个服务也会中断大约5分钟。但是如果这些虚机Web服务器能分布在不同的硬件服务器上的时候,就可以避免服务的中断。VWMARE很好的用Affinity设置来解决了这个问题,我们可以强制某些VM不允许运作在同一个物理服务器上。
比较而言,微软还没有能做到这一点。(如果已经有的话,请一定马上纠正我)
上午第一场:商务智能的未来之路
讲师:Donald Farmer
提到了下一个版本的SQL Server Codename “Kilimanjaro”(乞力马扎罗,位于著名的赤道上的雪山),说Engine is same,但是在BI上做了很多工作。接着演示了很多Excel和Sharepoint环境下的再开发的组件,有点不应景。我也有点开小差,抽空看了看美国大选,奥巴马174:69领先。不过有一个还有点意思。就是一个免费的datamining云计算实验性服务。记录下网址:
http://www.sqlserverdatamining/cloud/
上午第二场:微软安全战略及新技术预览
讲师:尹川
老师课讲的挺生动,给个9分 (嘿嘿,最高分9分)
ISA将不再有下一代产品,取而代之的是名为UAG和TMG的2个产品。
UAG(Unified Access Gateway),是ISA远程接入服务的升级版本,主管“进”(in)网的安全;TMG(Threat Management Gateway),是ISA Internet访问保护的升级,主管“出”(out)网的安全。
下午第一场:Best Practice of Hyper-V & SCVMM 2008
主讲:Ben Armstrong
要点记录如下
Hyper-V
- 每台虚机都有21MB内存的额外开销
- 建议用server core模式
- CPU配置推荐每台Host用4颗4核CPU,也就是一共16个Core
- 内存配置推荐每个Core配置4GB内存(16-core配置64GB内存)
- 存储用4Gb/s光纤通道
- 网络至少留1个Gb网卡用作Cluster心跳及VM迁移,配4个Gb网卡用于VM
- 如果是生产环境,不推荐用动态增长的VHD,因为性能差
- SAN要用MPIO
- 每个VM用独立的一个LUN(个人觉得这是一大缺点,因为200个VM就要200个LUN,在LUN的管理上就很不方便)
- 网络上只支持802.3以太网,不支持WLAN、令牌网等其他网络类型
- NIC配置上应该配成Synthetic NIC(最多8个),在特定环境,比如PXE,才选Legacy NIC(最多4个)
- 备份,要确保备份软件支持VSS,比如BackupExec 12.5
- VSS,要安装hotfix KB956697,解决VSS备份在某些情况下停止工作的bug
SCVMM 2008
- VMM 2008必须安装在Windows Server 2008 64-bit版上
- Powershell必须在安装前先加好
- 必须有AD的支持
- VMM2008可以装在VM中,但要注意先有鸡还是先有蛋的问题(要用Server Manager来启动)
- 一台VMM2008服务器最多支持400个Host和8000个VM
- 物理上应该把Library服务器放在离Host近的位置
- Library Server可以装在Host的parent 分区上
- SCOM来检测CPU等性能,然后提醒,并用VMM迁移VM
下午第二场 在企业中部署Office 2007
主讲:张金宝
听了一半,讲师条理清楚,可惜讲了一大半还没讲到如何部署和分发,还在纠缠Office 2007本身的特性,实在听不下去了,溜出来跟盆盆继续探讨Hyper-V的优劣问题。
下午第三场 使用MDT高效部署Windows Vista
主讲:程尊华
程大拿也是老相识了。风格我喜欢,包袱抖的好,给9分。“不是我不明白,这产品名字变的快”。的确有点意思,从BDD2007到MD4.0再到Microsoft Deployment Toolkit 2008,1年之内3易其名。对这名字的变化的关注度超过了产品本身的吸引力。
不过部署Vista估计也用不太上,就看个大概吧。以后真要部署了,再来请教嘛。
1天半的Tech-Ed 2008很快就过去了,收获还是很大。回家继续慢慢研究。
11/4/2008
第一场,使用MDOP优化企业桌面
讲师:彭爱华
很幸运,在Tech-Ed又遇到了盆盆老大,每次听盆老师讲课,都获益非浅。
今天的主题是MDOP(Microsoft Desktop Optimization Pack)
把自己今天的收获概要如下:
微软将其几个应用程序虚拟化穿上的新的“-V”马甲,分别命名为MED-V,App-V,配合Hyper-V,形成了一个完整的V虚拟家族。
简要比较如下:
|
| CPU/RAM等资源使用情况
| 程序打包
| 网络传输和速度
| 解决的问题
|
| MED-V
| 使用本地资源
| 打包操作系统环境和应用程序
| image很大,比较慢
| 解决了OS和App直接兼容问题
|
APP-V (SoftGrid)
| 使用本地资源
| 只打包应用程序
| 比较快
| 解决了App之间的兼容问题
|
| RemoteApp
| 使用远程资源
| 运行在远程,只是抓取一个界面,不消耗任何本地资源
|
| |
DaRT - Diagnose and Recovery Toolset,就是原来ERD Commander的升级版本,DaRT 5.0支持Windows XP和Windows 2003,而最新的DaRT 6.0则支持Windows Vista和Windows Server 2008
AGPM - Advanced Group Policy Management, 是GPMC的增强版本,主要的增强在于可以对GP的历史记录、保留、回退。还增加了类似编程控制中的签入签出功能。
关于MDOP的详细资料,这篇文章介绍的相当具体:
http://technet.microsoft.com/zh-cn/magazine/cc138007.aspx
第二场,Windows Hyper-V 体系结构解密
讲师:王海勇
会后跟讲师的讨论再次确认了我先前的文章提到的问题,构建在Hyper-V Cluster高可用性构架下的虚机在Host之间的迁移是freeze内存,整体copy后再恢复的一个过程,需要数秒到数十秒,这期间服务器是停止运行的,无法做到像VMotion那样几乎平滑无中断的迁移。因此现阶段不中断的生产环境还是只能采用VMWare的解决方案。这个功能,据称要在下个版本才能推出。
Hyper-V对于VMWare的优点在于其采用一个非常小的Hypervisor层(只有735KB),而把设备驱动程序都放在父分区中,子分区的虚拟驱动程序都通过一个VMBus和父分区相连,通过父分区来驱动硬件。这样,只要父分区支持的硬件都能够运行Hyper-V。而父分区就是一个Windows 2008,本身就支持几千种不同的硬件。相比较之下,VMWare ESX的Hypervisor层则有几百MB大,包含有设备驱动程序,这就使得ESX的硬件支持比较差,通常只有在其兼容列表的那些服务器才能运行。关于Hyper-V的构架,这篇文章相当好:http://bbs.cnvz.net/thread-17234-1-1.html
所以Hyper-V是想兼容并蓄并各种硬件,而ESX则只专注做好几种特定的平台。
问题就出在了想要兼容并蓄上了。因为兼容并蓄需要考虑更多的硬件,所以现在Hyper-V平台上的虚机的USB,Serial port的模拟问题迟迟没能解决好,兼容并蓄也使得类似VMotion的功能更迟的推出。
总之,就目前看来,ESX更适合于大企业的PROD应用,而Hyper-V更适合考虑成本更多的中小企业。
11/2/2008
(本读书笔记,摘自《Windows Internals》第4版英文版)
Windows有3个环境子系统(environment subsystem)——Windows、POSIX和OS/2。(最早Windows NT是为IBM OS/2平台开发的;POSIX是为了提供一个Unix Interface)
名词介绍
| * csrss.exe 是Windows子系统(subsystem)的可执行程序。CSRSS表示Client/Server Run-time Subsystem。为啥用这个名字是有历史原因的,早先POSIX和OS/2都和Windows子系统在同一个单一的环境子系统下运行,虽然随后POSIX和OS/2子系统被移走,但是这个名字却保留了下来。 * Win32k.sys,代表Window 32-bit Kernel-mode * POSIX -- portable operating system interface based on UNIX |
Windows Subsystem
包括以下主要组件:
- 环境子系统进程(Csrss.exe),用来支持
- Console Windows
- 创建和删除进程和线程
- 支持16-bit 虚拟DOS机 (VDM, Virtual DOS Machine) 进程
- 其他函数(functions),比如GetTempFile, DefineDosDevice, ExitWindowsEx, 等 - Kernel模式设备驱动程序(Win32k.sys),包括
- 窗口管理器(Window manager),用来控制window显示, 管理屏幕输出,收集键盘鼠标及其他设备的输入
- 图形设备界面(GDI, Graphics Device Interface), 是一个图形输出设备函数库,包括线条(line), 文本(text), 绘图(figure drawing)等图形操作。 - 子系统DLLs (比如Kernel32.dll, Advapi32.dll, User32.dll和Gdi32.dll),把Windows API函数翻译成那些调用Ntoskrnl.exe和Win32k.sys的核心模式系统服务
- 图形设备驱动程序,与硬件相关的图像显示驱动,打印驱动和Video miniport驱动
POSIX Subsystem
POSIX有很多标准。Windows只实现POSIX.1标准。正因为POSIX的有限特性,Windows 2000中的POSIX子系统不包括一个完整的Unix编程环境,Windows POSIX不能完成诸如创建线程或者使用RPC(remote procedure calls)等功能。为了弥补Windows POSIX的这个缺陷,微软开发了Windows SFU(Windows Service for Unix), 这是一个增强版本的POSIX子系统,包含了2000多个Unix函数和300多个Unix工具。