Jerry's profile三角阳台的LIVE记事本PhotosBlogListsMore Tools Help

Blog


    9/30/2009

    读毕Windows Command-Line Administrator’s Pocket Consultant 2nd Edition

    终于读完了。

    从9月4日入手到今天,耗时1个月,终于在10月之前读完了。

    这是我第一本从首页读到末页的英文原版计算机书。

    庆祝一下。

    9/29/2009

    【转】老菜鸟说给新菜鸟的存储基础知识

    博主注:从版本号上看,此文原创者写于2006年9月4日,但是网上搜了很久也没找到原创作者的名字和博客URL,在这里只能说抱歉了。文章写的实在是好,深入浅出,非常适合当作培训教材。忍不住转载一下。(莫非是开心网的转帖瘾犯了。。。笑。。。)

    相关URL: http://www.ixpub.net/archiver/tid-638595.html

    =========以下为转帖的原文=============

    内容:存储和相关基础知识
    范围:限opensystem和windows
    版本:Version 0.1 build 20060904

    有些新手总是在各式各样的概念里绕来绕去,弄的不亦乐乎。所以我就把我的一些理解写了下来,供您参考。我说的不局限于任何一种具体产品和厂家,也可能有些说法和某些厂家的说法不一样,但是我觉得应该算的上是本原的东西,有以不变应万变之功效,呵呵,见笑。

    1、关于HBA
    HBA的全称为Host Bus Adapter,即主机总线适配器。

    a、总线适配器是个什么东西呢?
    我们首先要了解一下主机的结构,一台计算机内部多半由两条总线串在起来(当然实际情况会有不同,这里只讨论常见的,简单的情况),一条总线叫系统总线,一条叫I/O总线。系统总线上接了CPU,MEmory,cache什么的,I/O总线上接的就是外围设备,现如今最常见的就是PCI总线了。这两条总线之间用桥接的芯片或者说电路连接起来。举个形象的例子,就好比一个城市里,有两条主干道,一条属于行政区,一条属于商业区,中间有个环岛,将两条主干道连接到了一起,系统总线就好比行政区里的主干道,而I/O总线就好比商业区的主干道。系统总线和I/O总线的带宽的单位都是以Gbyte来记,但是显而易见的是,行政区的主干道和商业区的主干道相比的话,前者肯定更“核心”,更宽,更顺畅,设计的要求也高。
    我们知道,在向公仆部门要求服务的时候,是要有一些接口的部门和程序的,而桥接芯片的作用就是连接和协调两条总线的工作的。
    虽然I/O总线的速度和系统总线的带宽相比要低很多,但是好歹也是以G来计量的,而我们知道外围设备的速度,往往只有几百兆,甚至几十k而已,怎么协调工作呢?好比卖煎饼果子摊子不能直接戳到城市主干道上,怎么办?好办,在主干道边上开个2000平米的小吃城,把摊子都收进去好了。那么主机总线适配器的作用也就是这个,我们就是要把外设组织起来,连接到I/O总线上去!HBA就是指Host和I/O BUS直接的一个适配器,也好比一个水管工常说的“双通”。

    b、常见的HBA有哪些呢?
    比如显卡,网卡,scsi卡,1394卡等等。我要拿出来说的就是FCHBA和ATA&IDE。我们通常说的什么Emulex的LP9002,什么Qlogic的QLA2340都是FCHBA卡,就是将Fibre Channel的设备和IO总线连接起来的适配器。ATA也是一种适配器技术,我们PC主板上的ATA接口,就是一个磁盘适配器的对外接口,要强调的就是,ATA说的是适配器技术,IDE是说得存储外设技术,比如我们可以说IDE硬盘,IDE光驱,说ATA接口,但是说IDE接口,ATA硬盘就不时那么合适了,虽然很多情况下,大家都习惯把他们混在一起说。
    描述HBA的时候,有几个主要的规范要说一下
      > 一个承上,就是说,HBA和IOBUS怎么连,我们经常说的PCI接口卡,就是指这个HBA卡是要插在PCI BUS上的PCI slot上的,但是现在的计算机上,不仅仅只有PCI总线而已,大家碰到的时候留意。
      >一个启下,就是说HBA要和外设怎么连,这样的规范就很多了。
      >再说HBA本身,比如带宽,比如运行机制(protocol等),独立处理能力等等
    Tips:有时候我们看到的一块卡,看到的实际是一个物理的卡,有的时候实际上是多个Adapter,好比一家机构,挂多个牌子,有的时候,一块卡有两条通道,好比一家公司,有两套人马。

    2、关于lun

    a、lun的概念
       lun的全称是logical unit number,也就是逻辑单元号。我们知道scsi总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用target ID(也有称为scsi id的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。
       而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了lun的概念,也就是说lun id的作用就是扩充了target id。每个target下都可以有多个lun device,我们通常简称lun device为lun,这样就可以说每个设备的描述就有原来的target x变成target x lun y了,那么显而易见的,我们描述设备的能力增强了.就好比,以前你给别人邮寄东西,写地址的时候,可以写:
       xx市人民大街54号 xxx(收)
       但是自从高楼大厦越来越多,你不得不这么写:
       xx市人民大街54号xx大厦518室 xxx (收)
       所以我们可以总结一下,lun就是我们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方。

    b、lun是什么东西?
       lun id不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的lun可能是磁盘空间,可能是磁带机,或者是media changer等等.
       lun的神秘之处(相对于一些新手来说)在于,它很多时候不是什么可见的实体,而是一些虚拟的对象。比如一个阵列柜,主机那边看作是一个target device,那为了某些特殊需要,我们要将磁盘阵列柜的磁盘空间划分成若干个小的单元给主机来用,于是就产生了一些什么逻辑驱动器的说法,也就是比target device级别更低的逻辑对象,我们习惯于把这些更小的磁盘资源称之为lun0,lun1,lun2....什么的。而操作系统的机制使然,操作系统识别的最小存储对象级别就是lun device,这是一个逻辑对象,所以很多时候被称之为logical device。
       有人说,我的windows里,就认到一个磁盘呀,没看到什么lun的说法,是不是lun=physical disk呢?回答是否定的,只要你注意,磁盘的属性里就可以看到有一个lun的值,只是因为你的disk没有被划分为多个存储资源对象,而将整个磁盘当作一个lun来用,lun id默认为零,如此而已。
       我们曾经碰到过这样的问题,比如有人问,我们有一个磁盘阵列,连到了两个主机上,我们划分了一个lun给两个主机认到,然后我们想,先在操作系统将磁盘分为两个区,让两个主机分别使用两个分区,然后再出现某一台主机宕机之后,使用集群软件将该分区切换到另外一个主机上去,这样可行吗?答案也是否定的,集群软件操作的磁盘单元是lun,而不是分区,所以该操作是不可行的。当然,在一些环境,一般也是一些要求比较低的环境,可以在多个主机上挂载不同的磁盘分区,但是这种情况下,实际上是没有涉及到磁盘的切换的,所以在一些高要求的环境里,这种情况根本就不允许存在。
       还要说明的地方是,在有些厂商和有些产品的概念里,lun id被绑定到了具体的device上,比如ibm的一些带库,整个带库只有一个target id,然后changer,tape drive被分别分配为lun0,lun1,lun2.....,但是我们要注意到,这只是产品做了特别设计,也是少数情况。

    c、存储和主机的电气独立时代的lun的概念
    还有很多新手总是把阵列里面的磁盘和主机的内部磁盘的一些概念搞混淆了。
    在磁盘阵列和磁带库大行其道的时代,存储越来越智能化,越来越像一个独立的机器,实际上存储和主机的电气独立本来就是一个必然趋势,俗话说得好,儿大要分家嘛。在存储越来越重要的时代,存储要自立门户是必然的事。
    如果我们把存储当作一个独立的主机来看,理解起来就很简单了。我们说到lun的概念的时候,我们就要将分为两个层面。一个层面就是在阵列这个机器的os识别到的范围,一个层面就是服务器的os识别到的范围。这两个层面是相对独立的,因为如果我们把存储当作一个主机来看,那么它自然有自己的device,target,lun之说,而服务器也有自己的device,target,lun之说;另外一方面,这两个层面又是相互关联的,一个阵列的控制系统,大多都有虚拟化的功能,阵列想让主机看到什么样的东西,主机才能看到相应的东西。当然,服务器识别到的最小的存储资源,就是lun级别的。那么主机的HBA卡看到的存储上的存储资源就靠主要两个东西来定位,一个就是存储系统的控制器(target),一个就是lun id,这个lun是由存储的控制系统给定的,是存储系统的某部分存储资源。

    d、lun masking,lun mapping
    我们有了独立的磁盘阵列用了之后,服务器只要看到存储的控制系统,就有可能使用磁盘阵列的磁盘资源,但是磁盘阵列不可能只为某一个服务器来使用,所以他必须管制主机使用某部分磁盘资源。这个管制分为两个部分:一部分就是lun mapping,类似于绿色通道,就是保证服务器能看到某部分存储资源,一部分就是lun masking,类似于警戒线,就是保证服务器只可访问给它分配的存储资源,而没分配给服务器的资源,就不要染指了。
    实现lun masking和lun mapping有三种方法:一个是基于存储控制系统来设置,一个是基于存储交换系统来设置,一个是基于服务器os来设置。
    基于存储控制系统得设置,是比较常见的设置,比如很多磁盘阵列的控制系统,本身就能设置lun被某服务器看到。比如FastT的partition功能。
    基于存储交换系统的设置,也是一种常用的方法,比如常说的zoning。
    基于服务器os的设置,比较少采用,一般采用安装某些操作系统上安装某些软件来实现,因为这个方法全靠服务器自觉,所以比较少用,呵呵。

    e、lun的multi-path
    现在,存储网络越来越发达了,一个lun有多条通路可以访问也不是新鲜事了。
    服务器使用多个HBA连接到存储网络,存储网络又可能是由多个交换设备组成,而存储系统又可能有多个控制器和链路,lun到服务器的存储网络链路又可能存在着多条不同的逻辑链路。那么,必然的,同一个physical lun在服务器上必然被识别为多个设备。因为os区别设备无非用的是总线,target id,lun id来,只要号码不同,就认为是不同的设备。
    由于上面的情况,多路径管理软件应运而生了,比如emc的powerpath,这个软件的作用就是让操作系统知道那些操作系统识别到lun实际上是一个真正的physical lun,具体的做法,就是生成一个特别的设备文件,操作系统操作这个特殊的设备文件。而我们知道,设备文件+driver+firmware的一个作用,就是告诉操作系统该怎么使用这个设备。那么就是说,多路径管理软件从driver和设备文件着手,告诉了操作系统怎么来处理这些身份复杂的lun。

    3、关于备份(Backup)和高可用性(High availability)
    备份,从字面的意思来理解,其实就是现时存在和应用的一个实体的后备实体;
    高可用性,即是指我们硬件的环境、设施、数据、应用系统等,在复杂环境下可用的能力和可能性达到一个较高的值;
    在现实世界里,我们都讲究有一个稳定,可靠,所以我们经常在计算机环境设计里,涉及到高可用性和备份等等元素。
    我首先把这两个词拿出来说,就是不想让新手们在什么双机热备,数据备份亚,集群等等概念里晕的不也乐乎。

    对于备份我主要说说以下几个方面:
        a、设备的备份
        设备的备份,也就是我们在现时使用的设备之外,采取相同或者类似的设备做后备。
        比如我们在服务器上采用冗余电源,也叫后备电源,我们使用单独的硬盘来做RAID的备用盘,也叫热备盘。
        如果我们采取单独的一台服务器来做后备,这就成了主机的备份,主机的备份有很多种方式,比较著名的就是所谓的cluster,所谓的双机热备和双机容错,我很不喜欢鼓捣这些概念,我一概称他们为主机热备,因为他们有一个共同的特点,就是都是为了实现主机的备份,即某一个主机失效了,有另外一个主机顶替它来运行。实现主机热备的软件有很多,比如IBM的HACMP,HP的MCSG,SUN的sun cluster,Compaq的Ture Cluster,Veritas的VCS,EMC的autostart,ROSE HA等等

        b、数据的备份
        数据的备份,就是我们在现时使用的数据之外,实现或设置另外一份不同物理体现的、内容相同的的有效数据拷贝
        比如我们将生产数据拷贝到磁带上,就是一种数据备份方式。
        比如我们将生产数据复制到磁盘的另一个分区,另一个文件系统,或者拷贝到别的主机的磁盘上,等等,都是一种数据备份的方式。
        实现数据备份的软件有很多,比如一些磁带操作的小工具,tar,cpio等,大的工具软件有什么EMC Networker, Symantec Netbackup,CommVault,tapeware等等,数据复制的工具就更多了,操作系统的复制命令呀,emc replicator呀,srdf等等

        c、应用系统的备份
        应该说应用系统的备份,包含了以上两种备份,因为一个完善的应用系统,其设备和数据都是要求有备份的,那么初次之外,做为一个应用系统,除了设备和数据,他还包含了业务程序,人员,业务逻辑,外部环境等等一系列让应用跑起来的东西。
        在这个层面,就有一个比较热火的东西,那就是常说的远程容灾。远程容灾,就是在生产系统环境之外,在相隔较远的物理空间,构建相同或类似的一个应用系统,以达到在必要的时候顶替原生产系统工作的目标。
        要实现远程容灾的目的,除了我们说的外部环境,比如机房,电力,后勤保障,人员配备,业务程序之外,我们比较着重的一个环节,就是数据的问题,也就是我们在两个系统之间要保证数据的相对一致,实现这个目标的方法有很多,比如磁盘阵列之间的卷复制,比如两个主机之间文件系统上的复制,等等。当然,在一个系统里,把数据用磁带导出来,快递到另外一个系统地点,在用磁带把数据导进取,也不能说不是一个办法,但是这样操作,经常会和业务的逻辑相违背(呵呵,这么麻烦又耽误时间,估计一般很难接受)。

    对于高可用性,我要说的是:
        可用性,即是指在各种复杂环境下,我们的数据,应用等计算资源都可以保持使用的能力和可能性。比如服务器配备冗余电源,就提高了服务器的可用性,好理解,一个电源工作不正常或者能力不够的是候,服务器不受影响嘛。再比如,我们的磁盘阵列采用双控制器,当某个控制器和链路工作不正常的时候,数据的访问能平滑的过渡到另外一个控制器上和链路上,这也是提高了数据和存储设备的可用性。
        那么什么是高可用性呢,我们就是一切为了提高系统可用性的实现方法和结果。
        要拿出来说的就是cluster,或者双机什么的。我们为了实现生产的应用系统的高可用性,其中一个环节就是实现服务器的高可用性,就是某服务器失效或者能力不足时,应用能平滑的过渡到另外的主机上,也就是说对于应用系统来说,服务器保证了相对的可用
    那备份和高可用性有什么区别呢?
        那我要说,这根本没有可比性!因为这是两个不同的概念,他们的着眼点是不同的。备份只是保证了有后备,而高可用性则是为了保证应用的尽快恢复。
        打个比方,我们说备份就好比买保险,买保险不能保证你平安无事,但是肯定能减轻损失。我们说搞可用性,就是安全气囊,ABS,能让你快速的重新开始或者说将危险消弭于萌芽时刻。
        所以说我们做备份和提高可用性,两手都不可放松,也不互相矛盾。就好比买了好车,你就不买保险,或者你买了保险,就可以飙车,都是愚蠢的。

    9/28/2009

    基本磁盘和动态磁盘


    * Windows磁盘分基本(basic)磁盘和动态(dynamic)磁盘。
    * 基本(Basic disk)是传统的磁盘类型,动态磁盘是Windows 2000新引入的概念。
    * 基本磁盘不支持多分区卷,动态磁盘支持多分区卷。
    * 基本磁盘只支持从Windows NT升级携带过来的多分区卷。这只发生在Windows2000时。Windows2003开始不支持基本磁盘上的多分区卷。
    * 基本磁盘可以单向转换为动态磁盘(在保留磁盘中分区和数据的同时)。但是动态磁盘无法转换回去。只能删除动态磁盘中的所有的卷,清空后再转换成基本磁盘。
    * 基本磁盘转换成动态磁盘,至少要有1MB的可用磁盘空间。
    * 笔记本电脑的硬盘、移动硬盘、位于1394或USB总线上的磁盘,以及共享的集群服务器硬盘总是基本磁盘,不能用动态磁盘。
    * 动态磁盘上的多分区卷提供的新特性:尺寸变化(弹性),可靠性(raid 1),性能(raid 0)
    * Windows默认将磁盘当作基本磁盘。
    * Microsoft推荐你用基本磁盘。除非你需要动态磁盘的多分区特性。
    * 注:实践中,很少用Windows自带的多分区特性。(俗称软raid)。通常使用性能更好可靠性更高的硬件阵列卡来构造Raid磁盘阵列。所以在多数情况下动态磁盘基本没有需求。
    * 因为基本磁盘不支持多分区卷,只支持单分区的简单卷,所以,对基本磁盘而言,卷和分区是一个概念,有时候可以混用。
    * 也有些文档或者书籍为了更好地区分这2者,特地在说到基本磁盘的时候用术语“分区”(partition),而提起动态磁盘的时候使用术语“卷”(volume)。
    * 五种特别的类型:活动(Active),启动(Boot),故障转储(Crash Dump),页面文件(Page File),系统(System)
    * 下图显示的是一个Windows 7 的硬盘分区,请特别注意,系统分区(也是活动分区)是一个100MB的存放WinRE的保留分区,而不是如同以往是C:
    Snap1

    基本磁盘转动态磁盘
    * 扇区>512字节的不能转
    * 必须至少1MB可用空间,少于1MB不能转
    * 便携式电脑不能转

    9/27/2009

    启动和停机(part 1)

    (本读书笔记为《Windows Internals》第5版第13章的部分要点记录和心得,并非翻译。)

    * HD的一个扇区512字节,CD-ROM的一个扇区2048字节
    * MBR - Master Boot Record 主引导记录
    * MBR位于HD的第一个扇区内。第一个扇区不属于任何分区。
    * MBR包括引导代码(boot code)和分区表(partition table)。分区表含最多4个entry,记录了最多4个主分区的信息(位置和类型)。
    * 分区类型有很多种,分区类型指定了该分区包含的文件系统的类型,比如FAT32或者NTFS。
    * 每个分区的第一个扇区是引导扇区(boot sector)
    * 引导卷/引导分区 (Boot volume/Partition),是含有%windir%,也就是Windows目录所在那个卷(分区)。
    * 系统分区 (System Patition)是引导扇区所在的那个分区。一般是C:
    * 引导分区(Boot Patition)必须是NTFS分区  (注:针对Windows 2008/Vista/7) 
    * Boot Sector中的引导代码不认识分层的目录结构,所以bootmgr是放在根目录下的。但是bootmgr的文件系统已经能认的出子目录了。

    引导过程

    Windows 2008/Vista Windows 2000/2003/XP

    1) BIOS中的代码选择引导设备(注:这在BIOS中设置;有些新的BIOS可以在开机时按F9来人为干预),例如某一个硬盘。然后去该硬盘的第一个扇区读取MBR

    1) BIOS中的代码选择引导设备,并读取MBR中的代码

    2) MBR中的code会扫描分区表,找到带有Active标志的那个分区(即活动分区)

    2) MBR中的code会扫描分区表,找到带有Active标志的那个分区(即活动分区)

    3) 将活动分区的第一个扇区(也就是引导扇区)中的代码读取到内存,并将控制权移交。

    3) 将活动分区的第一个扇区(也就是引导扇区)中的代码读取到内存,并将控制权移交。

    4) 引导扇区中的代码做:i) 读取Volume的结构和格式,ii) 并从根目录读取Bootmgr

    4) 引导扇区中的代码:i) 读取Volume的结构和格式,ii) 并从根目录读取ntldr

    5) 如果找不到bootmgr,则显示出错信息“BOOTMGR is missing ” (注:Vista/2008的引导分区必须是NTFS)

    5) 如果找不到ntldr,引导区是FAT时显示“BOOT: Couldn't find NTLDRP”,引导区是NTFS时显示“NTLDR is missing”

    6) Bootmgr运行在x86 real mode,也就是没有 physical-virtual内存的转换,都直接用物理内存寻址。这时候只有最低位的1MB内存可以访问

    6) 此时NTLDR运行在x86 实模式,此时仍没有物理-虚拟内存地址的转译

    7) Bootmgr的第一个动作就是将模式转换成保护模式(protected mode)。等到最低16MB内存都能访问了,Bootmgr就启用paging。带有paging enable的保护模式,就是windows运行的常态。

    7) NTLDR的第一个动作就是将模式转换成保护模式(protected mode)。等到最低16MB内存都能访问了,Bootmgr就启用分页机制(paging)

    8) 运行在保护模式下的bootmgr这时候仍然依靠BIOS中的驱动程序来访问IDE硬盘和控制显示。与引导扇区代码不同的是,此时bootmgr已经可以认子目录了

    8) 此时,NTLDR仍然依靠BIOS中的驱动程序来访问IDE硬盘和控制显示。与引导扇区代码不同的是,此时NTLDR已经可以认子目录了

    9) Bootmgr 清屏(这个时候你将看见一个黑色的屏幕)

    9) NTLDR清屏(这个时候你将看见一个黑色的屏幕)

    10) 如果上次关机时选择的是Hybernating状态,则将控制权移交给winresume.exe

    10) 如果系统卷根目录下存在一个有效的hiberfil.sys文件,将此文件读入内存,并将控制权交给一段能恢复休眠状态的代码。

    11) Bootmgr读取BCD,如果其中只有唯一的项,则跳过引导菜单。否则显示引导菜单。

    11) 从根目录下读取boot.ini,如果其中只有唯一的引导项,则跳过引导菜单。否则显示引导菜单。

    12) 读BCD中的引导入口信息(boot entry point),通常这是\Windows目录。
    (2008/Vista不同时支持DOS)

    12) boot.ini中的选项告诉NTLDR,被选中的Windows系统驻留在那个分区;
    12.1) 如果boot.ini指向一个MS-DOS系统,NTLDR将bootsect.dos文件内容读入内存,并切换回16位实模式;Bootsect.dos中的代码继续进行MS-DOS的引导过程。

    13) 运行Winload.exe 并将控制权移交。

    13) NTLDR清除屏幕。并(Windows 2000)显示“Starting Windows”进度条。进度条下显示“For troubleshooting and advanced startup options for Windows, Press F8”。此时按下F8,可以进入一个菜单,包括选择安全模式。
    (Windows 2003/XP),显示带Windows Logo的启动屏幕。
    9/16/2009

    Microsoft LCDS

    哈,总算有一种微软产品先有简体中文版,而不是先出日文版。

    Snap1

    Q.
    什么是LCDS? (LCDS)?

    A. 是
    Learning Content Development System的简写,意思就是课件开放系统,这是微软提供的一个免费的课件开发系统。你可以用LCDS来开发一些在线的多媒体的自学课程。

    LCDS网站:
    http://www.microsoft.com/learning/en/us/training/lcds.aspx#tab1


    附上几张截图
    LCDs的界面
    Snap2

    生成的在线课件的示意图
    Snap3

    Windows 名字解析顺序

    (注:本文涉及的都是多年前的Windows产品。仅做培训教材之用)

    Windows中名字解析的顺序是怎样的?很多中文的技术文章或者前后矛盾,或者语焉不详,是他们错了么?不是,只是没有把特定的条件说清楚了罢了。

    比如这个常见的说明名字解析顺序的图片:
    post-44-1139253229
    但是这个顺序一定正确吗?回答应该是,在特定的场合下,是正确的。这个特定场合指的是1)OS是Windows 2000或更新版本,2)采用了H-Mode的节点模式。但是这些,很多引用了这张图片的文档都没有解释。

    决定名字解析顺序的2个重要的因素:第一,OS版本,第二,节点模式
    OS版本决定了名字解析优先DNS还是优先查询NetBIOS。节点模式决定了先查WINS还是先广播。
    Windows 2000以后(包括2000、XP、Vista、Win7、2003、2008)都先查DNS,后查NetBIOS。
    Windows 9x/NT以前的,都先查NetBIOS,后查DNS。
    节点模式见后文解释。

    接下去我们用问答的方式来解释一些常见问题。

    Q: DNS名的查询顺序:
    DNS cache --> HOSTS 文件 --> DNS Server

    Q: NetBIOS名的查询顺序:
    如果是H-mode的话: NetBIOS cache --> WINS Server --> 广播 --> LMHOSTS 文件
    如果是其他模式,WINS和广播的顺序会有不同,见下文。

    Q: HOSTS 和LMHOSTS文件的位置
    %SystemRoot%\System32\drivers\etc
    %SystemRoot%通常都是C:\Windows,NT下是C:\WINNT
    (查看SystemRoot的路径,可以在cmd下输入set命令)
    缺省情况下, lmhosts 文件并不存在,系统有一个 lmhosts 样本文件 lmhosts.sam ,您可以仿照 lmhosts.sam 文件来编写您的 lmhosts

    Q: 如何看当前节点模式?
    ipconfig /all
    Snap1

    Q: 有那些mode?
    有四种mode:b,p,m,h

    Q: 每种mode的具体含义?
    B-mode:Broadcast Mode,只广播
    P-mode: Point-to-point mode,只查WINS
    M-mode: Mixed mode,先广播,后WINS
    H-mode: Hybrid mode,先WINS,后广播

    Q: 默认mode是什么?
    设置了WINS时,默认mode是H-mode,没设置WINS默认mode是B-mode

    Q: 各个mode的Reg键值
    B-mode:0x1
    P-mode: 0x2
    M-mode: 0x4
    H-mode: 0x8

    Q: mode的动态设定
    通过DHCP分配地址的时候,可以配置NodeType,在注册表中
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters
    DHCPNodeType的值说明了从DHCP获得的Node Type

    Q: 如何改mode?
    通常情况下,不需要改Mode!使用默认的H-mode即可!

    在注册表中添加或者修改NodeType键值。
    默认情况下,不存在NodeType键值,可以手工创建。
    NodeType键值覆盖(优先级高于)DHCPNodeType的键值。
    NodeType的位置在:

    Windows 2000 and Windows NT

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters
    Key: NodeType
    Value Type: REG_DWORD - Number
    Valid Range: 1,2,4,8 (b-node, p-node, m-node, h-node)

    Windows 9x

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP
    Key: NodeType
    Value type: DWORD
    Valid range: 1, 2, 4, or 8

    Q: 如何显示DNS Cache
    ipconfig /displaydns

    Q: 如何手工清空DNS Cache
    ipconfig /flushdns

    Q: DNS Cache有效期多少时间?
    10分钟。

    Q:如何停用DNS Cache?
    在Windows服务中的DNS Client服务(短名dnscache)负责DNS Cache任务,只要停用这个服务,就可以停用DNS Cache。
    注意,即使关掉DNS Client服务,计算机仍然可以通过DNS服务器来解析DNS名。
    关掉DNS Client服务的办法,可以输入命令:
      net stop dnscache
      或
     
    sc servername stop dnscache
    或者在图形界面,services.msc控制台中关闭该服务。

    Q:如何查看NetBIOS Cache?
     nbtstat –c

    Q: 如何清空NetBIOS Cache?
     nbtstat -R
    注意R必须大写


    总结
    最后总结一下,一台加入AD的Windows XP电脑的名字解析顺序默认应该是:
    DNS cache --> HOSTS 文件 --> DNS Server –> NetBIOS cache --> WINS Server --> 广播 --> LMHOSTS 文件
    如果是一台Win95的工作组电脑,并且没有WINS,(还记得吗?没有配WINS,默认用B模式)则是:
    NetBIOS cache --> 广播 --> LMHOSTS 文件 --> DNS cache --> HOSTS 文件 --> DNS Server


    参考文档和相关阅读

    1) 理解Windows网络中的名字解析
    http://www.winsvr.org/info/info.php?sessid=&infoid=1&page=1
    2) Windows操作系统上的一些名字解析
    http://read.newbooks.com.cn/info/132528.html
    3) How to Disable Client-Side DNS Caching in Windows XP and Windows Server 2003
    http://support.microsoft.com/kb/318803
    4) NetBIOS over TCP/IP Name Resolution and WINS
    http://support.microsoft.com/kb/119493
    5) NetBIOS Name Resolution Using DNS and the HOSTS File
    http://support.microsoft.com/kb/142309
    6) Default Node Type for Microsoft Clients
    http://support.microsoft.com/kb/160177

    9/15/2009

    McCafe开业了

    (写一篇inna式的blog)

    巧!

    早上去麦当劳吃早饭,
    意外的发现McCafe开业了!

    柜台前围了好多人,以为要排队,
    结果只有我一个是顾客。
    问,今天第一天么?
    店面经理柔声说,是的。
    又补充说,这是全中国第一家McCafe。

    巧!择日不如撞日。

    难怪那么多人,还有个老外在前前后后地指导布置工作。

    店面的布置很像星巴克,不过规模小一点,只在整个麦当劳里面占了一个小角落。
    4张小圆桌和16把沙发椅显得和周围的快餐风格布局略有不同。
    高档却也挺和谐。

    买了13元的美式和一块10元的蓝莓蛋糕,
    挑了个角落坐下,
    一边喝着咖啡,一边观察。

    嗯,人还真不少。
    有本店的,有总部的,
    有各店面来学习的,
    也有各个部门的人员,
    甚至还有测试设备的。
    略略数了下,二十多个呢!

    衣着也各不相同,
    本店经理是浅绿色的衬衫,红色的领带(男)或者丝巾(女),
    各个部门的经理或工作人员则是淡青色的衬衫,都着黑色的西裤。
    服务人员是一身黑色的工作服和围裙,还别着个McCafe的铭牌。
    一个一身黑西服的女士正在发言,看上去像是个高层,
    因为大家都认真地做笔记。

    边上一桌的聊天落入我耳中,原来是供应商们。
    一个是总包的,
    一个是广告公司设计店面的,
    还有一个是设备(咖啡机等)的供应维护商。

    跟供应商闲聊几句,
    得知本月上海还要开张四家McCafe。

    哦,真不错!