Windows 2000 Server实用手册(一) 闵军 2000年 第53期 #1 第一部分 Windows 2000四兄弟 #1 一、Windows 2000 Professional Windows 2000 Professional是Windows NT Workstation 4.0的升级版本,最大支持2个CPU和4G内存,最小硬件需求为Pentium133或兼容CPU、64M内存、1G硬盘空间。它继承了Windows NT的先进技术,融合了Windows 98在Internet、工作、移动办公方面的易用性,拥有更好的可靠性、安全性和易管理性,速度比Windows NT Workstation 4.0或Windows 98都要快。对于电脑和网络系统的管理员而言,Windows 2000 Professional是一套更具有可管理性的桌面系统,无论是部署、管理还是为它提供技术支持都更加容易,这意味着更低的总体拥有成本。因此Windows 2000 Professional是企业和个人用户的台式机和笔记本电脑的最佳操作系统。 #1 二、Windows 2000 Server Windows2000 Server是Windows NT Server 4.0的基础上开发出来的,最大支持4个CPU和4G内存,最小硬件需求为Pentium133或兼容CPU、256M内存、2G硬盘。它增加了“终端服务”、“活动目录服务”等新特性,具有高可靠性和高可用性。是文件、打印、Web服务器和工作组邮件的良好平台,适合于部门工作小组或中小型公司的网络操作系统。 #1 三、Windows 2000 Advanced Server Windows 2000 Advanced Server是Windows NT Server 4.0企业版的升级产品,最大支持8个CPU和8G内存,最小硬件需求为Pentium133或兼容CPU、256M内存、2G硬盘。除了具有Windows 2000 Server的所有功能和特性之外,还具有更高的可靠性和高可用性、更强的特性和功能。提供两个节点的群集、32节点网络负载平衡、组件负载平衡、高性能排序、通过WHCL测试的组件,通过SMP(对称多处理器)和可扩展内存支持来提供增强性能和可伸缩性等。对于在线商务和.com后台而言是良好的平台,适合于Internet服务的部门和应用程序服务器的操作系统。 #1 四、Windows 2000 Datacenter Server Windows 2000 Datacenter Server是微软提供的功能最强的操作系统,最大支持32个CPU和64G内存,由于该版本还未正式发布,最小硬件需求和价格都等待宣布。具有最大的可靠性和可用性,提供四个节点群集、32节点网络负载平衡、通过数据中心HCL测试的系统,支持服务器合并和增强的可伸缩性。另外,它还为大型的数据仓库、经济分析、科学和工程模拟、联机交易服务等应用进行了专门的优化。对于大型在线商务和企业.com后台而言是良好的平台,适合于苛刻的可用性和可伸缩性要求的操作系统。 #1 第二部分 更为可靠的操作系统 #1 一、Windows 2000 Server在可靠性方面的优良好表现 对于网络服务器来说,系统的可靠性是相当重要的。微软在Windows 2000的研发上,特别把稳定性放在了第一位。在吸取了Windows NT 4.0的经验和教训之后,Windows 2000在系统的稳定性方面有了很大的提高,已经具备了一个“不眠”操作系统(7×24小时连续工作)的能力。 #1 二、Windows 2000 Server在可靠性方面所作的改进 1.可靠性和可用性 对操作系统来说,用户的主要需求就是系统的可靠性。我们平常提到的可靠性实际上指的是两个方面的操作系统特性:可靠性和可用性。在提到操作系统的时候,可靠性是指一台服务器如何相容的运行应用程序和服务而尽量少的发生错误,可靠性越高就表示系统发生错误的机会越少;而可用性是指系统可以使用的时间,可用性高就表示系统可用使用的时间多,因为日常维护和意外错误导致的死机时间就少。可靠性可以通过减少潜在的系统失败的原因来提高,而可用性则可以通过解决死机的原因来解决。简而言之,一个可靠的和可用的系统很少失败,在关机后也很容易重新启动。 2.微软的努力 在Windows NT Server 4.0中的蓝屏死机是系统稳定性难以抹去的阴影。为了诊断蓝屏死机的原因,微软分析了运行Windows NT Server 4.0的约1,200台服务器,发现65%的机器重启是由于安装和配置硬件、操作系统和应用程序所必需的有计划重启。这包括企图刷新服务器内容所执行的“预防性重启”。在无计划的重启中,21%是由于应用程序出错,14%是由于系统出错。超过半数的系统错误和设备驱动程序,反病毒软件及硬件出错有关。微软定位并且消除了大多数有计划和无计划的停机问题的因素,结果在维护和硬件安装导致的重启方面有90%的降低。同时,微软也和反病毒及驱动程序开发者所在的实验室进行了协作,进行了密集的重点测试来减少系统错误发生的可能性。 3.具体的改进 微软在找到蓝屏死机的诸多原因之后,针对可能影响可靠性的软硬件和系统管理问题进行了专门的加强,在内存管理、磁盘管理、安全模式等方面都进行了较大的改进,使得服务器减少了系统在计划内和在发生故障时的重启次数,大大增加了系统的稳定性和可靠性。具体地说,Windows 2000在三个主要的方面改进了可靠性。 (1)对结构进行了修改,主要目的在保护操作系统的内核和共享内存,因此增强了系统的稳定性; (2)开发了新的工具可以帮助开发者创建更可靠的代码; (3)提供了新的管理工具来提高可靠性。 #1 三、理解运行模式和内存管理模式 为了理解Windows 2000 Server在可靠性方面所作的改进,这里先简单介绍一下Windows 2000 Server的运行模式和内存管理模式。 1.系统结构和内存使用 可靠性和可用性的改进的核心是对操作系统和内存的保护。许多会引起系统不稳定的问题主要是由于对操作系统内核(在内核中执行着基本的系统服务)的意外的影响。因为内核控制着整个操作系统,所以影响内核的代码错误对可靠性有极大的影响。 Windows 2000操作系统提供了一个应用程序运行的环境。它包含了一系列的小软件组件,它们在一起工作来执行任务。每一个组件提供了一系列的功能来作为系统其它部分的接口。这些模块提供了访问CPU和其他硬件资源的方式。操作系统还提供了使程序和组件可以互相通信的机制。 2.执行代码分为两种模式 Windows 2000将执行代码分为以下两种模式:用户模式和核心模式。 用户模式中的软件在没有特权的状态下运行,对系统资源只有有限的访问权限。例如,软件不能直接访问硬件。Windows 2000基础的应用程序和被保护的子系统运行在用户模式下。被保护的子系统运行在自己的空间内,不会互相干涉。 在核心模式中,软件可以访问所有的系统资源,例如计算机硬件和敏感的系统数据。核心模式中的软件构成了操作系统的核心,它们可以分为如下几组: Executive(执行体) 包含为环境子系统和其他执行体组件提供系统服务的系统组件。它们执行的系统任务包括输入/输出,文件管理,虚拟内存管理,资源管理,以及进程内部通信等等。 Device drivers(设备驱动程序) 将组件的调用(例如,请求打印机)翻译为硬件操作。 Hardware abstraction layer(HAL,硬件抽象层) 将Windows 2000 Executive 的其它部分与特定的硬件分离开来,使操作系统与多处理器平台相兼容。 Microkernel(微内核) 管理微处理器。它执行一些重要的功能,例如调度,中断,以及多处理器同步等。 3.内存管理模型 Windows 2000 Server增添了新的特性以解决因为共享内存的不同的处理方式引起得问题。要理解这些改进,就要先理解Windows 2000是如何管理内存的。Windows 2000使用虚拟内存管理器来管理虚拟内存和物理内存。 虚拟内存指操作系统如何使内存对应用程序可以使用。Windows 2000支持4GB的虚拟内存。其中2GB为核心模式使用,另外2GB为核心模式和用户模式共同使用。 物理内存指计算机中安装的内存芯片。虚拟内存管理器(VMM)使用内存映射表来跟踪每一个进程使用的虚拟内存地址以及这些地址引用得实际数据在物理内存中的位置。为了让多个应用程序可以共享内存空间,VMM使用一个叫做PAGING的进程在物理内存和硬盘之间交换内容。这些被交换的内容叫做page files。 #1 四、系统结构进行的修改 从结构修改操作系统内核,使系统的稳定性得到了增强。系统结构的修改主要集中在保护操作系统的内核和共享内存方面,这具体表现在以下三个方面: 内核模式的写保护,这有助于阻止错误的代码干涉操作系统的工作; Windows文件保护,阻止新的软件安装替代了基本的系统文件; Windows 2000使用Driver Signing (驱动程序数字签名)来识别通过了Windows Hardware Quality Labs测试的驱动程序,并且在用户将要安装没有数字签名的驱动程序时对用户提出警告。 1.内核模式的写保护 为了保护操作系统中的每一部分不会受其它部分的错误的影响,Windows 2000对核心模式程序的内存进行写保护,在内核部分和设备驱动程序中添加了写保护和只读部分。为了提供这种保护,物理内存映射标志出包含代码的内存页面,保证它们不能够被覆盖,即使是操作系统也不能。这些特性在缺省情况下是激活的。另外,为了保证一个程序的失败不会导致影响操作系统或者其他应用程序的运行,其他的子系统与应用程序都被隔离在单独的内存空间中。 这样即阻止了应用程序、服务或设备驱动程序对内存的不正确使用,也阻止了核心模式软件破坏了其他核心模式软件。操作系统可以非常出色的管理应用程序以及系统的错误,使得系统不会死机。 2.Windows文件保护 Windows文件保护在安装前检查原来的系统文件的版本。这样就保证像.sys、.dll、.ocx、.ttf、.fon、.exe等系统文件不会被替代。Windows文件保护在后台运行,保护所有的由Windows 2000 Server安装程序安装的文件。它检测其他程序要替换或删除一个被保护的系统文件的企图。Windows文件保护检查文件的数字签名来确定新文件是否为正确的版本。如果这个文件的版本不正确,Windows文件保护就从dllcache目录、网络安装路径或者Windows 2000光盘中替换这个文件。如果Windows文件保护找不到合适的文件,它就会提示用户输入正确的路径。Windows文件保护还会将替换文件的企图写入事件日志。 缺省情况下,Windows文件保护是被激活的,只允许在安装下面的软件时替换被保护的系统文件: 使用Update.exe安装Windows 2000 Service Packs 使用Hotfix.exe 使用Winnt32.exe进行操作系统升级 Windows Update Windows 2000 Device Manager/Class Installer 3.驱动程序签名 驱动程序签名有助于提高驱动程序的质量,因为它允许Windows 2000和Windows 98通知用户他们安装的驱动程序是否通过了微软的认证程序。驱动程序签名将一个加密的数字签名附加在通过了Windows Hardware Quality Labs (WHQL)测试的代码文件上。 如果驱动程序运行在Windows 2000和Windows 98操作系统中,那么给驱动程序签名则是WHQL测试的一部分。数字签名与独立的驱动程序包结合在一起,Windows 2000可以识别它。这种认证证明用户使用的驱动程序是经过微软测试的驱动程序,如果在该驱动程序被放在HCL中后被修改过,Windows 2000就会通知用户。驱动程序允许三种反应: Warn:在被安装的驱动程序没有数字签名的情况下,让用户了解,并且让用户决定是否安装。Warn还让用户可以选择安装一个被保护的驱动程序文件的没有签名的版本。 Block:禁止安装所有的没有签名的驱动程序。 Ignore:允许安装所有文件,不管这些程序是否有数字签名。 缺省情况下,Windows 2000以Warn方式发布。 #1 五、核心模式代码开发和用户模式代码开发 为了使Windows 2000 Server更为可靠地运行,微软将应用程序的开发分为核心模式代码开发和用户模式代码开发,并分别为这两种不同的开发模式提供了不同的代码开发工具。 1.核心模式代码开发 设备驱动程序是核心模式代码,它将操作系统和硬件联系到一起。为了使系统的性能达到最大,核心模式代码没有应用程序那样的内存保护机制。相反,操作系统充分信任核心模式代码没有错误。这就是为与其他的驱动程序和操作系统组件安全的协调工作,这些驱动程序和核心模式代码必须遵循复杂的规则的原因。一点点偏差就会导致其他核心模式的错误。 某些核心模式代码错误在测试阶段就可以发现。但是,像内存不足等错误,则可能经过很长时间才能导致系统崩溃,因此要找到在那儿产生的错误非常困难。另外,对驱动程序开发人员来说,要完全测试核心模式代码也是非常困难的,为了解决这些问题,Windows 2000 Server增加了下面的特性和工具来帮助开发人员创建更高质量的驱动程序:Pool Tagging、Guard Pages、Driver Verifier、Device Path Exerciser。 2.用户模式代码开发 Windows 2000包括一个新的工具——PageHeap。它可以帮助开发人员在开发非核心模式代码的时候找到内存访问错误。Heap(堆)指的是用于临时存放代码的内存。堆错误在应用程序开发中是一个经常遇到的问题。最典型的发生堆错误的情况是一个应用程序分配了一个特定大小的内存块,但是却在该范围之外进行写操作。另一个发生错误的原因是正在写的内存块已经被释放掉了。在这些情况下,可能会出现两个应用程序写同一部分内存,从而导致系统失败。Windows 2000中新添加的PageHeap特性就可以帮助开发人员发现它们的内存错误。 当PageHeap被激活时,该应用程序的所有的堆分配被放到内存中,这样堆的边界就与虚拟内存的边界排在一起了。与堆相邻的虚拟内存页面被设置为NO_ACCESS。在该应用程序中对堆后面的空间的访问就会立刻引起错误,这就可以在一个调试工具中被捕获,开发人员就可以找到出错的代码。在释放堆时,过程与之类似。PageHeap修改释放的应用程序虚拟页面为NO_ACCESS,这样,如果应用程序试图读写该内存时就会发生访问错误。 如果为一个应用程序运行PageHeap特性,应用程序要比正常时运行得慢,并且需要更多的虚拟内存,因为每一个堆的分配都需要两个完整的虚拟内存页面。随着应用程序对堆的使用的增加,可能需要增加系统的虚拟内存的大小,否则会出现虚拟内存不够的错误信息。除非系统有相当大的虚拟内存,否则建议不要同时运行两个以上的激活了PageHeap特性的应用程序。 #1 六、提供了新的管理工具以提高可靠性 在减少系统正常维护所需的离线时间、增加系统的可用时间方面,Windows 2000 Server进行了以下改进。 1.灵敏的即插即用特性 Windows 2000不仅完全支持“即插即用”技术,支持更多的新设备。这一特性,大大减少了在Windows 2000中安装硬件的时间和出现故障的几率。Windows 2000的PnP技术主要应用于以下几个方面: (1)对安装硬件的自动和动态识别:包括初始的系统安装、系统启动期间对即插即用硬件更改的识别以及对运行时的硬件事件的反应等。 (2)硬件资源分配以及重新分配:即插即用设备的驱动程序并不能分配它们自己的资源,相反,设备所需要的资源是在该设备被操作系统列举出来时才被标识的。在分配资源期间,“即插即用”管理器为每一个设备取出资源需求,在每个设备所需资源的基础上,“即插即用”管理器再分配适当的硬件资源,如I/O端口、IRQ和DMA通道以及内存位置等。这样就极大地降低了硬件冲突的几率。 (3)加载合适的驱动程序:“即插即用”管理器将决定需要哪些驱动程序来支持某一特定的设备并加载相应的驱动程序。 2.减少维护死机时间和重启次数 在Windows NT 4.0中有许多配置修改需要重新启动计算机,在Windows 2000中不再需要了。在Windows 2000中,在进行文件系统维护、硬件安装和维护、网络和通信、内存管理、软件安装、性能优化等许多方面的操作时,都能够快速地完成,并不需要重新启动系统。 3.改进了系统诊断能力 为了帮助用户快速排除系统错误,Windows 2000提供了更为完善的内存转储功能,即在系统崩溃时将内存信息转储到硬盘上的功能(Kernel-Only Crash Dumps)。Windows 2000除了完全的崩溃时内存转储之外,Windows 2000 Server支持核心模式的崩溃时内存转储,允许具有大内存的系统能够更快的重新启动。管理员和开发人员使用这些信息(这些信息被称为crash dump)进行排错。为了保证这些信息被安全的转移到硬盘上,操作系统使用相当保守的算法来处理这些内存信息。 4.更快的系统恢复和重新启动 Windows 2000中的改进减少了从一个崩溃的系统中进行恢复的时间,也较少了重新启动操作系统的时间。这些改进包括Recovery Console、Safe Mode Boot、Kill Process Tree、Recoverable File System、Automatic Restart、IIS Reliable Restart等方面。 5.存储管理的改进 为了避免缺少磁盘空间带来的系统问题,Windows 2000提供了一些存储上的改进来帮助管理员花费最少的工作来维护足够的自由空间。Windows 2000中的存储管理特性包括: (1)Remote Storage Services (RSS),自动监视本地硬盘的自由空间。一旦主硬盘的自由空间在必须的水平以下,RSS就自动将已经备份的数据自动移动到远程的存储设备上,这样就可以提供需要的自由空间了。 (2)Removable Storage Manager (RSM),允许多个应用程序共享本地的软盘和磁带驱动器,在一个服务器的系统中控制可以移动的媒体。 (3)Disk Quotas,Windows 2000 Server支持磁盘配额,这个功能可以监测和限制NTFS分区的磁盘空间。操作系统根据用户拥有的文件和文件夹计算每个用户使用的磁盘空间。应用程序分配给用户的磁盘空间不能超过用户的磁盘配额减去已用的空间。 (4)Dynamic Volume Management,允许不用关闭系统或者打断用户的工作就可以进行在线的管理任务。 6.Clustering(集群) 集群是指将单独的服务器连接起来并且协调他们之间的通信,使他们可以作为一个整体来运行,一个服务器集群就是一个独立的服务器集合,这些服务器可以互相管理。集群的目标是提供高度的应用程序和数据的可用性。如果任何一个服务器不能工作了,它的工作就自动转移到另外一台服务器继续进行(这个过程称为FAILOVER)。某些形式的集群使用负载平衡,这种功能使得计算的工作可以通过网络分配到相互连接的服务器上。集群使死机的时间减到最少,减少了IT支持的花费,因为它提供了一个即使一个系统失败了整个系统也可以继续运行的结构。这就意味着集群解决了计划中的死机(例如硬件或软件升级)和意外的死机。 Windows 2000 Advanced Server中集群统服务是一个标准的部件,它支持两个节点的集群。这个技术基于非常成熟的Windows NT Server 4.0 Enterprise Edition中的Microsoft Cluster Services (MSCS)两节点集群技术,并且还进行了改进和增强。Windows 2000 Datacenter Server则支持四个节点的集群。