CN102207876B - 流式传输客户端系统基本镜像 - Google Patents
流式传输客户端系统基本镜像 Download PDFInfo
- Publication number
- CN102207876B CN102207876B CN201110079096.1A CN201110079096A CN102207876B CN 102207876 B CN102207876 B CN 102207876B CN 201110079096 A CN201110079096 A CN 201110079096A CN 102207876 B CN102207876 B CN 102207876B
- Authority
- CN
- China
- Prior art keywords
- base image
- client
- storage device
- remote storage
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及流式传输客户端系统基本镜像。实施例提供了配置来提供可选桌面计算解决方案的系统、方法、装置和计算机程序产品。实施例总体上对使用本地基本镜像和远程存储的基本镜像中的一个的客户端设备提供了远程存储用户指定数据的用户指定覆盖镜像。该客户端用于下载并本地存储该基本镜像。
Description
技术领域
这里呈现的主题通常涉及可选桌面(desktop)计算方案。更特别的,主题涉及与一个或多个例如为存储局域网(SAN)设备的存储设备联网的中心管理的个人计算机(PC)系统。
背景技术
商业频繁涉及成本节省和安全。在IT成本领域,商业日益涉及减少维护企业PC的成本的要求。此外,商业寻求省钱且无需损失性能的安全可靠的方案。为了满足这样的要求,各PC生产商已引入了聚焦瘦客户端的方案(thinsclient focused solution),这样叫是因为瘦客户端在某方面依赖于一个或者多个其他计算机系统(例如,SAN)来提供传统的PC功能。在其他特征中,聚焦瘦客户端的方案允许中央管理和增加的安全性。一种这样的方法已被用于虚拟化客户端,更多依赖于后端服务器。另一种方法是Lenovo的安全管理的客户端(Secure Managed Client,SMC)。
作为可选桌面操作环境的示例,Lenovo的安全管理的客户端(SMC)提供中心管理的PC。在一种实现中,SMC采用具有处理器的客户端、iSCSI(互联网小型计算机系统接口)协议、共同开发的软件堆栈和由提供动力的Lenovo存储阵列装置。即使SMC提供了瘦客户端方案的所有优点和功能,SMC也避免了损失重要的特征,例如应用兼容性、图形性能、可用的桌面选项的数目等等。通过平衡集中的客户端管理,SMC使得容易管理和提供用户和镜像,最小化所有权的总成本,及其他。这主要是归因于SMC排除了对于桌面侧支持的要求并且降低了成本(例如与安装、改变、开发和能耗相关的成本)的事实。
然而,本发明人已认识到可能存在SMC操作环境的某些改进。
发明内容
概括的说,一方面提供了一种装置,包括:一个或多个处理器;网络接口,用于通过网络访问在远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像;以及硬盘;其中,响应于该一个或多个处理可访问的计算机可读程序代码的执行,该一个或多个处理器用于:确定该硬盘是否已被提供用作客户端本地高速缓冲存储器;以及,在确定该硬盘已被提供用作客户端本地高速缓冲存储器后,从该远程存储设备下载该基本镜像。
另一方面提供一种方法,包括:在用于访问远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像的装置中,确定该装置的硬盘是否已被提供用作客户端本地高速缓冲存储器;以及,在确定该硬盘已被提供用作客户端本地高速缓冲存储器后,从该远程存储设备下载基本镜像。
再一方面提供一种计算机程序产品,包括:计算机可读存储介质,具有嵌入到其中的指令程序,该指令程序允许装置访问在远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像,该指令程序进一步包括:计算机可读程序代码,用于确定该装置的硬盘是否已被提供用作客户端本地高速缓冲存储器;并且,在确定该硬盘已被提供用作客户端本地高速缓冲存储器后,从该远程存储设备下载基本镜像。
前述为概要且因此可能包含细节的简化、概括和省略;因此,本领与普通技术人员将意识到,该概要仅是示意性的并不意图成为任何方式的限制。
为了更好理解实施例及其其他和进一步的特征和优点,将结合附图参考下面的具体实施方式。将在所附的权利要求书中指出本发明的范围。
附图说明
图1示出了可选桌面(desktop)操作环境。
图2示出了可选桌面操作环境。
图3A和3B示出了修改的OS和客户端设备。
图4示出了磁盘提供的示例。
图5A和5B示出了磁盘提供的另外的示例。
图6示出了基本镜像流式传输(streaming)的示例。
图7示出了多个分区的OS迁移的示例。
图8示出了确定启动位置、修补和数据取回的示例。
图9示出了计算机系统。
具体实施方式
将会容易理解到,如这里的附图中通常描述和示出的实施例的元件可以以除了所描述的实施之外的广泛的不同的配置进行排列和设计。因此,如附图所呈现的实施例的下面的更详细的说明并不意图限制权利要求的范围,而仅仅是这些实施例的代表。
通篇说明书中参考为“一个实施例”或“实施例”(等)意味着在至少一个实施例中包含了结合实施例描述的特定特征、结构或特性。因此,通篇说明书不同位置出现的措辞“在一个实施例中”或“在实施例中”不必然所有都涉及同一实施例。
此外,可以在一个或多个实施例中以任何适合的方式组合所描述的特征、结构或者特性。在下面的描述中,提供大量特定细节以给出实施例的全面的理解。然而,一个相关领域的技术人员将会意识到,可以无需一个或多个该特定细节,或采用其他方法、元件、材料等来实施方面。在其他实例中,未详细示出或描述已知的结构、材料或操作,以避免引起困惑。
本发明的实施例提供了用于提供可选桌面计算方案的系统、方法、装置以及计算机程序产品。本发明的实施例通常提供用于将共同的基本镜像流式传输下载到本地存储同时从远程存储设备并行访问该基本镜像的客户端设备。该客户端用于远程地在用户特定覆盖镜像上存储用户特定数据。
通过参考附图会更好的理解所描述的实施例。以下的描述仅是指示例的方式,并简单地描述某些实施例。
在安全管理的客户端(SMC)操作环境中使用的无磁盘客户端的操作是例如在2007年3月29日递交的发明名称为“DISKLESS CLIENT USING AHYPERVISOR”的且通过参考引入于此的、待审且共同受让的US专利申请序列号No.11/693,515中所描述的那些。如那里所描述的,在无磁盘客户端系统中采用管理程序(hypervisor)来更有效的促进和极大扩展操作系统(OS)的启动能力。更特别的,管理程序优选地“捕获”来自OS的所有磁盘和LAN访问。
换句话说,对于多个OS通常用于在启动期间写入本地硬盘方面以及一种方法希望将这样的OS引入到无磁盘系统中,依据在2007年3月29日递交的发明名称为“DISKLESS CLIENT USING A HYPERVISOR”的、待审且共同受让的US专利申请序列号No.11/693,515的管理程序排除了需要对用于启动情境会显著不同的无磁盘环境的OS进行昂贵的重配置。任意和所有至远程存储的平移(translation)可以由管理程序执行且因此实质上对于OS是“隐蔽的”。
图1示出了高阶SMC操作环境。SMC使用连接客户端101a、101b和后端设备(例如,SAN设备102a、102b)的高性能网络基础设施。一个实施方式使用具有虚拟LAN的1G以太网交换机103。
管理器104是提供用于管理并维护SMC系统的中心设备(服务器)。管理器104可被用于例如处理来自客户端(例如,客户端101a)的用户认证。客户端101a,例如Lenovo的具有vProTM的M58P超小型(Ultra Small Form Factor,USFF)桌面PC,被用于DHCP动态地址分配并使用DHCP服务器的启动路径选项来进行至SAN 102a的iSCSI(互联网小型计算机系统接口)连接,这将启动共同的用户登陆屏幕。
在登陆时,将用户的凭证发送到客户端连接网页服务,该客户端连接网页服务认证用户并返回启动客户端101a所需的信息到SAN 102a上的客户OS。因此,无磁盘客户端进行至SAN 102a的iSCSI连接并启动用户镜像。管理器104可用于在后台自动产生包括密码的iSCSI登陆信息,并将信息安全地传送到客户端101a。为了增加安全性,用户不必知道用于用户镜像的低阶访问的密码。
SAN 102a是安全地存储客户端101a的数据的设备。SAN 102a包括具有特定软件的iSCSI SAN,该iSCSI SAN配有RAID磁盘和GB以太网端口。可以通过管理控制台105远程地管理和提供SAN 102a。管理控制台105可以用于产生用于访问SAN 102a的用户帐号和密码。
现在参考图2,示出了另一个SMC操作环境的高阶示例。与图1示出的SMC操作环境相同,图2示出的SMC操作环境使用连接客户端201a、201b和后端设备(例如,SAN设备202a、202b)的高性能网络基础设施。一种实施方式使用具有虚拟LAN的1G以太网交换机203。管理器204可用于在后台自动产生包括密码的iSCSI登陆信息,并将信息安全地传送到客户端201a。
SAN 202a是安全地存储客户端201a的数据的设备。SAN 202a包括具有特定软件的iSCSI SAN,该iSCSI SAN配有RAID磁盘和GB以太网端口。可以通过管理控制台205远程地管理和提供SAN 202a。管理控制台205可以用于产生用于访问SAN 202a的用户帐号和密码。
然而,与图1示出的SMC操作环境不同,图2中的SAN设备202a、202b包括(1)包含操作系统的磁盘的基本镜像,及(2)用户覆盖镜像(user overlayimage)。操作系统的基本镜像是可以由SAN设备(例如,202a)的所有用户访问和利用的。通过使用用户覆盖来实施个体用户对基本镜像的任何修改。该覆盖优选地对于所有用户是不可访问的,且指示了特定用户对基本镜像进行了何种改变。例如,这可以通过记录包含了由用户改变的数据的基本镜像的那些扇区来实现。这可以通过使用查询表实现。包含了改变的数据的扇区也被优选地存储在用户覆盖中。
安装在客户端(例如,201a)中的管理程序下载包含了关于已由用户改变了的基本镜像的那些扇区的信息的查询表。在由客户端201a上运行的软件调用关于特定扇区的信息时,管理程序决定是从存储在SAN 202a上的共同的基本镜像还是从SAN 202a上存储的用户覆盖图获得该扇区。
在第一次启动期间最小化设置时间
通常,例如在无磁盘客户端的情境下,存在可用于开发SMC环境下的客户OS的多种方法。标准PC镜像(例如,用于预下载客户端(例如,Lenovo的或)的相同镜像)被用作对该镜像的每个用户创建虚拟用户硬驱动的模板。例如通过提供的应用程序(utility)、或通过安装该用户镜像(使用iSCSI启动器(initiator))然后将该用户镜像拷贝到SAN 102a,来上传该用户图形。
通常,可以通过使用许多不同的方法,例如使用标准安装CD、使用如系统预备(sysprep)的成像工具、以及例如ImageUltra Builder的Lenovo的成像工具,来创建SMC平台支持的镜像。无论哪个用于创建该用户镜像,都例如使用sysprep的通用传递特征(general pass feature)来泛化(generalize)该用户镜像。在这样的动作中,作为镜像创建处理的一部分将与用于创建该用户镜像的机器相关的特定信息从系统移除。在该泛化处理中从操作系统移除的信息的类型的示例包括计算机的名称、已安装的设备驱动器,等等。在从SAN驱动第一次启动该用户镜像时,该信息会被重新插入或重新安装到操作系统(用户覆盖)中。这样的重新安装可能依赖于客户端(例如,101a)的硬件配置。
可以使用启动加速程序或更快的网络来加速客户端101a、101b的启动。通常,通过优化SAN高速缓冲存储器来实现了启动加速。SAN高速缓冲存储器减少了启动循环中所需的磁盘寻找和磁盘读取的数目。在连接到SAN的大多数客户端101a、101b使用相同镜像时SAN高速缓冲存储器工作效率最高。例如,如果SAN上的大多数卷是Vista OS,而少数是XPOS,则会对Vista OS优化SAN高速缓冲存储器。每个SAN具有自身的高速缓冲存储器策略来捆绑类似的OS以获得最大的启动加速。
在依据实施例(如图2所示)将操作系统的镜像划分成共同的基本镜像和用户覆盖时,本发明人已意识到在应用基本镜像和用户覆盖后,许多共同的OS文件存在于覆盖镜像上。这增加了覆盖镜像的大小并增加了OS的初始化或第一次启动所需的时间量,因为各种设备驱动器等是基于客户端(例如,210a)的硬件配置而安装的。因此,实施例在非传统的镜像创建处理中利用传统的成像工具来加速启动并减少用户覆盖的大小。
如图3A、3B所示,为了以这样的方式修改OS镜像,一实施例通过调节现有镜像生成工具(例如Sysprep)来减小第一次启动期间安装的共同的OS文件的数目从而修改镜像生成。这减少了OS的设置时间并增加了共同的OS文件的量。为了加速启动,这些共同的OS文件可以特别地包括在使用成像应用程序(例如,sysprep/generalize)将镜像泛化时从基本镜像共同卸载并且然后在客户端计算机上安装的镜像的第一次启动期间重新安装的那些文件。例如,共同的OS文件可以包括已知要被包含在共同的客户端301a上的标准的设备驱动器。
OS镜像设置的例子如图3B所示。在实施例中,使用X86 Microsoft-Windows-pnpSysprep-neutral镜像组件将PersistAllDevice设置改为True 310。该Microsoft-Windows-pnpSysprep组件指定了所有即插即用信息在该泛化回合(generalized pass)期间是否持续。典型地,在该泛化回合期间将所有设备信息从计算机移除。如果在该泛化回合期间移除了设备信息,则在下一次计算机运行即插即用时,会重新初始化设备。典型地,在下一次计算机启动时,该专化(specialize)回合运行,并且该即插即用运行。这确保了在运行Sysprep的泛化回合时320,不卸载(跳过)共同的OS文件330。
返回参考图3A,然后将这些共同的OS文件提供在SAN 302a上的基本镜像306中。然后在该泛化回合期间不会卸载所有已经安装的共同的OS文件(例如,设备驱动器),这使得这些共同的OS文件存在于基本镜像306中。这在客户端具有相同硬件配置时,正如典型地在组织应用SMC计算环境时的情况下工作得最好。
示出了SAN 302a具有共同的基本镜像306和用户覆盖307。客户端301a上的管理程序308控制是否从共同的基本镜像306或用户覆盖307拉出磁盘扇区读取被。如这里所描述的,在对基本镜像306做出改变时,改变的数据所存在的磁盘扇区被存储在用户覆盖307中。在用户覆盖307中也可以保持查询表,在启动时将这样的查询表加载到管理程序中。管理程序使用该查询表来记住哪个磁盘扇区被存储在用户覆盖307中。
磁盘提供
如图4所示,可以将只读的本地高速缓冲存储器408a(例如,闪存设备或硬盘驱动(HDD))中的基本镜像406的拷贝提供给客户端401a。基本镜像408a的这个本地拷贝允许进一步减少第一次启动(设置)时间并减少网络通信量,因为客户端401a可以(通过管理程序408)访问基本镜像408a的本地拷贝而不是访问SAN 402a上存储的基本镜像406。如这里所讨论的,可以将特定用户做出的所有改变存储在用户覆盖图407中。应当注意到,本地高速缓冲存储器408a可以包含多个基本镜像的本地拷贝。例如,一个这样的基本镜像可以是XP OS,而第二个这样的基本镜像可以是7OS。可选的,如果不同用户具有基本镜像的不同建筑的情况下应用SMC操作环境(例如学院或大学(教工/职工和学生)),则一个这样的基本镜像可以是教工/职工建筑,而第二个这样的基本镜像可以是学生建筑。在这样的环境中,本地高速缓冲存储器还包括指示哪个基本镜像在本地高速缓冲存储器上可用。可以使用任何数目的多个基本镜像,仅受到硬件限制(即,镜像大小、可用的磁盘空间,如这里将进一步描述的限制)。还可以在本地高速缓冲存储器中放置额外的项目,例如管理程序启动代码本身。在所有这样的实例中,管理程序被用于记住哪个基本镜像可以被任何给定的用户使用。
在图5A和图5B中示出了磁盘提供的例子。为了设置具有本地高速缓冲存储器508a的客户端,可以使用该客户端的HDD。本地高速缓冲存储器508a通常会是本地存储设备,该本地存储设备被提供来包括基本镜像(包括共同的OS文件,如这里所讨论的)、开销空间(overhead space)和可选的用户空间。提供客户端的一个阻碍是客户端具有不同大小的HDD的事实;因此对于IT管理员,可能很难确保不同类的客户端会接受给定的基本镜像。
如图5A所示,实施例提供了方法来提供用作本地高速缓冲存储器508a(具有可选的用户存储)的客户端的本地磁盘,而无需IT管理员知道客户端的本地HDD大小。当前,为了对磁盘分区,IT管理员需要知道客户端HDD的大小和期望的分区大小。这些要求在存在作为单个组进行管理的客户端的不同类集合(HDD的大小)时特别加剧。例如,如果管理员正在管理100个客户端系统,则它们可能包含尺寸在80GB到1TB范围内的HDD。本质上,IT管理员的目标是确定与所有客户端系统匹配的磁盘布局。传统的解决方案默认没有考虑最小的镜像大小要求的百分比。
因此,实施例允许本地高速缓冲存储器508提供有基本镜像(和开销),以及分配给用户数据的本地存储的可选空间。当在本地高速缓冲存储器中包括可选的用户空间时,这样的用户空间可以例如呈现为一旦被正确地格式化用户可以访问的分立硬盘驱动,或者,呈现为用户可见的分立分区。为了安全的原因,本地高速缓冲存储器508需要仅包括用于基本镜像和开销的空间;因此,最小的本地高速缓冲存储器分区大小不必包括可选的用户空间。在本地高速缓冲存储器中没有包括可选的用户空间时,基本镜像和开销空间在用户不能访问的硬盘驱动或分区(即,隐藏的硬盘驱动或隐藏的分区)上。
现在参考图5B,IT管理员通过在SAN上设置基本镜像来配置用于本地高速缓冲存储器的客户端510。如图5A所示,IT管理员具有选择权来确定不由基本镜像和开销使用的本地磁盘的百分比,如果存在,分配用于用户数据。一旦在SAN上设置了基本镜像,管理员将客户端配置成从SAN启动520。客户端的管理程序检查SAN以确定基本镜像的大小530。如果在540确定了用户端具有足够的磁盘空间用于给定的基本镜像、开销(和可选的用户数据),如IT管理员配置的那样,则然后通过管理程序格式化该磁盘、(例如使用在存储了管理程序的RAM磁盘的特权域内的Fdisk)创建适合大小的分区550并且从SAN取回基本镜像560,来提供客户端的驱动。如果客户端不具有足够的空间,则可能按照传统的无磁盘客户端操作,从SAN启动并运行客户端。
例如可以通过客户端的管理程序计算本地高速缓冲存储器(基本镜像)加上开销(如果有,则还加上可选的用户数据)所需的空间量来提供磁盘。例如通过使用分配给用户的SAN上的基本镜像的大小、分配给用户的OS的存储器的大小以及启动文件所需的空间,加上更新(开销)来确定该空间量。以下公式示出了如何计算所需的空间的例子:
本地高速缓冲存储器分区大小=(基本镜像大小)+2(客户OS存储器,即,可用于操作系统的存储器)+(本地启动文件+开销,即,管理程序等所需的存储器)+(如果有,IT管理员确定的、要用于本地高速缓冲存储器的剩余本地磁盘空间的百分比)
以上的2(客户OS存储器)项是表示为页文件预留的空位,尽管可以选择其他的值(2.5倍,等)。本地启动文件对应于SMC代码。开销项对应于为本地启动文件的更新保留的空间(允许后退到上一次知道的好的配置)。该剩余本地磁盘空间可以被分配给本地高速缓冲存储器或可选的分配给用户数据。该用户空间分区大小是从分配给用户的OS的存储器的大小确定的。以下公式示出了如何计算该所需的空间:
用户空间分区大小=2(客户OS存储器)+(如果有,IT管理员确定的、要用于用户空间的剩余本地磁盘空间的百分比)
当已经从SAN下载了基本镜像时,用户可以继续进行第一启动处理,并且如上将所有用户特定数据存储到SAN(除非IT管理员已经决定了允许用于用户数据的本地磁盘区域,在这种情况下,分区(驱动器号)可用于用户)。将会理解的是,最大安全意识的选择是将0%分配给可选的用户数据(迫使用户特定数据到SAN)。如果有,分配给可选的用户数据的空间可能具有增加的安全性,例如,对驱动的该区域采用全磁盘加密,等。
从SAN流式传输下载基本镜像
实施例提供了方法来成像本地磁盘同时用户从SAN运行镜像。传统地,镜像应用涉及在顾客侧或在制造处理期间的预加载。在大多数情况下,存在额外的端用户镜像定制步骤(第一启动处理),该步骤可以涉及大量的时间。如果用户必须等到定制完成后才开始工作则浪费了大量的时间。
使用无磁盘客户端,在SMC用户首次登陆时,从SAN启动用户的镜像。如依据这里的实施例所描述的,在SMC客户端具有本地高速缓冲存储器的情况下,可以从SAN或从本地高速缓冲存储器启动用户的基本镜像。
不过,即使对本地高速缓冲存储器提供有客户端,在第一次本地高速缓冲存储器用户登陆时,由于需要连接到SAN下载基本镜像,因此,基本镜像是本地不可用的。然而,如果其他用户登陆到相同的客户端并且该其他用户的基本镜像不同(例如,不同的OS),则本地高速缓冲存储器会同样地不具有本地可用的其他用户的基本镜像。因此,实施例被配置来并行地运行客户OS(guestOS)和将特定用户的基本镜像从SAN下载到本地高速缓冲存储器作为后台任务。(存储器中)提供的管理程序具有其可用的信息,用于提供磁盘(如这里所描述的)并定位/从SAN流式传输下载正确的基本镜像。
返回图6,在用户登陆时,如果已提供了本地磁盘(如这里所描述的)则进行检查610。该检查确定是否本地磁盘已经格式化以及是否安装了启动代码。如果没有,则首先需要提供磁盘。接下来,进行检查620以检测是否需要下载基本镜像(即,确定是否基本镜像已下载在本地高速缓冲存储器中)。假设基本镜像还未下载,使用来自用户覆盖逻辑单元号(LUN)的信息将具有基本镜像的逻辑单元号连接到客户端。然后,开始后台处理650以将基本镜像从SAN下载到本地高速缓冲存储器。可以将该处理设置为低的优先级以允许从SAN640访问的客户OS运行平稳。因此用户可以持续使用客户OS同时从SAN流式传输下载基本镜像。基本镜像下载处理在中断时(例如,在下载完成之前重新启动客户端)会自动恢复。在下载完成后,将基本镜像进行哈希运算,以通过将文件大小和哈希值与SAN上的基本镜像进行匹配来验证660基本镜像是否已经全部或正确下载。此后,随后的用户启动670可以从基本镜像的本地拷贝进行,并且可以进行定期检查用于已下载的基本镜像的更新(通过连接到SAN)。
从本机(native)OS到SMC OS的迁移(migration)
在可选桌面用户情境下,用户通常期望保持他或她当前(本机)OS并简单地迁移至远程设备(SAN)以供使用。不幸的是,一些OS不容易以此方式迁移。特别是对于具有趋向于在迁移时不充分更新的独立分区的多分区OS的情况。例如,当用户想要迁移现有多分区OS镜像(例如或7OS)时,这些用户在分区的已分配的驱动器号在迁移后不匹配时可能具有启动问题。今天,典型的用于对计算机构建或7OS预加载的处理包括制作多个分区(包括系统和OS分区),然后安装启动加载器和OS。最后,如新系统的应用那样配置设备驱动器。
在具有虚拟化的HDD的无磁盘客户端中,留给IT管理员少数选择。IT管理员可以将OS直接安装到无磁盘系统的远程存储中,并配置OS;然而,如果IT管理员希望从具有HDD的系统迁移现有的预加载,或如果OS已由端用户暂时使用,则IT管理员可能在将镜像迁移到远程存储(SAN)时遇上启动问题。这是由于注册和启动配置数据(BCD)入口没有指向正确的分区导致的,即使使用现有镜像配置工具(例如Ghost和IMAGEX)对每个分区如实地拷贝了它们。
因此,如图7所示,实施例提供了一种迁移工具,该迁移工具自动将用户的现有多分区OS迁移(拷贝)到SAN数据库,针对一致性问题检查迁移后的OS,并自动修补任何检测到的问题。实施例将已预下载的客户端HDD的每个分区拷贝到用于迁移的SAN上的虚拟磁盘710,包括任何分区和文件系统信息。接下来,对每个安装设备识别系统BCD和注册入口720以确定启动配置文件的完整性。例如,通过检查HKLM\SYSTEM\MountedDevices入口的对应的驱动器号来对所有不同分区确定卷信息(名称和值)。分析结果被用于更新/调整730BCD和注册入口,以指向正确的安装设备。例如,获得的卷信息被用于调整目标分区的HKLM\SYSTEM\MountedDevices入口。同样,调整BCD中的“device”和“osdevice”入口以匹配对应的目标分区。一旦完成,就可以对虚拟化的(SAN)HDD无缝地重新启动740客户端系统并且为端用户准备好客户端系统。
通过提供这样的迁移操作,实施例允许灵活地准许用户访问他们现有个人化的操作环境而无需牺牲安全或中心管理性。
确定启动位置
在使用无磁盘客户端的iSCSI环境中,用户的OS通常存储在服务器(SAN)上而不是本地磁盘上,尽管这个远程服务器位置如同本地磁盘一样呈现给客户端。在这样的iSCSI环境中,大多数的客户端会包含具有iSCSI选项ROM的NIC卡。在启动时,这个选项ROM包含将客户端连接到iSCSI服务器并将iSCSI目标位置呈现为客户端系统的本地驱动的代码。然后客户端BIOS启动该iSCSI驱动(具有启动镜像),如同该iSCSI驱动是本地驱动一样。
依据实施例,客户端可以提供有专门的ROM,该ROM具有在启动处理中用于辅助的启动镜像。本地存储的该启动镜像会减少启动时间(在数十秒的级别),因为避免了从SAN下载启动镜像。这也减少了网络通信量。
然而,在该情境下,对于客户端而言确定是否从SAN(远程)或本地获得了启动代码还是重要的,因为如果已经本地启动客户端则客户端将必须进行某些额外的处理。这是部分由于如果从SAN启动客户端,则客户端将被提供有与SAN正确通信所必要的位置信息,而这在本地启动客户端(即,不与SAN接触)时不会发生。例如,如果已经本地启动客户端,则客户端还将必须访问SAN(至少周期性地)来确定是否更新的启动镜像文件和/或元数据可用(如这里进一步描述的)。
此外,如果用户的客户端系统不具有包含iSCSI选项ROM的NIC,则不存在直接从SAN启动iSCSI的方法。在启动代码是必要的时,由于BIOS可用的有限资源导致标准的复制实践通常太昂贵。
提供一种方法来将SAN上的启动代码(镜像)和本地存储的启动代码(镜像)同步。由此提供一种本地复制启动代码的方法。该解决方案解决了关于跨网络的iSCSI启动的多种问题。具有本地启动镜像的实施例允许在系统上启动而无需本机iSCSI支持(即,无需本地选项ROM),避免了周期更长的启动时间、以及iSCSI启动服务器不可用时的故障切换机制(fail over mechanism)。
转到图8,在启动时,提供一种允许确定客户端是本地加载启动代码还是远程(经由iSCSI从SAN)加载启动代码的方法。这在某种程度上难以完成,因为,在启动处理中的这个时候,iSCSI磁盘典型地通过标准BIOS引导程序(bootstrap)机制(例如,如同INT 13h设备)像呈现本次磁盘一样将自身呈现给客户端。
为了克服该困难,该方法进行检查以确定是否已从SAN启动了客户端810。例如,执行代码来确定在ACPI(Advanced Configuration and PowerInterface,高级配置和电源接口)表中是否存在iBFT(iSCSI Boot FirmwareTable,iSCSI启动固件表)数据。这提供了与客户端是否接触DHCP服务器并获得SAN信息有关的信息。然而,该自身的初始检查可能不够充分,因为,NIC可能初始化iSCSI,即使客户端未从它启动。因此,可以进行额外的检查来确定是否从SAN启动客户端820。例如,可以进行从iBFT数据的启动路径的检查来确定iSCSI SAN是否可用。然后,进行经由该iSCSI数据库将本地设备与启动路径匹配来确定哪个驱动(HDD)(/dev/sda,或/dev/sdb)已用于启动。然后,这提供了关于客户端从哪个设备启动的足够的信息(即,客户端是已本地启动还是从网络连接设备启动)。
如果从SAN加载启动镜像,则该启动继续至用户的操作系统860。如果从本地磁盘加载启动镜像830,则存在至SAN的连接来获得更新的元数据(站点配置数据)以确定是否本地启动代码是最新的。例如,检查是否本地磁盘上的启动代码的哈希值与SAN上存储的哈希值匹配840。如果这些哈希值不匹配,则从SAN下载适合(更新后)的启动文件到本地磁盘850,并且典型地,会重新启动客户端以确保用户始终使用最近的启动环境。
本领域技术人员将理解到,可以通过具有适当地配置的电路(例如桌上或者膝上计算机系统等)的电子设备来实现这些实施例。以下描述了计算机系统的非限制性例子。
这里使用的术语“电路”包括所有等级的可用的集成电路,例如,从分立逻辑电路到高级的集成电路(例如VLSI),并包括可编程逻辑组件以及通用或专用处理器,该可编程逻辑组件被编程来执行实施例的功能,该通用或专用处理器被以指令编程来执行这些功能。
图9示出了计算机系统和电路的一个例子的框图,尽管可以使用各种其他电路。该系统可以是:桌上计算机系统,例如,由NC的Morrisville的Lenovo(US)Inc.出售的个人计算机或系列中的一个;或者,工作站计算机,例如由NC的Morrisville的Lenovo(US)Inc.出售的然而,如从这里的描述显而易见,客户端设备、服务器或其他机器可以包括其他特征或图9所示的系统的仅仅一些特征。
图9的计算机系统包括所谓的芯片组110(一起工作的集成电路或芯片的组,多个芯片组),该芯片组110具有可以基于制造商(例如,等)变化的架构。芯片组110的架构包括核和存储器控制组120以及I/O控制器集线器150,该核和存储器控制组120以及该I/O控制器集线器150经由直接管理接口(DMI)142或链路控制器144交换信息(例如,数据,信号,指令等等)。在图9中,DMI 142是芯片到芯片的接口(通常被称为“北桥”和“南桥”之间的链路)。该核和存储器控制组120包括一个或更多处理器122(例如,单或多核)以及存储器控制器集线器126,处理器122与存储器控制器集线器126经由前端总线(FSB)124交换信息;注意到,组120的组件可以集成在取代了传统“北桥”型架构的芯片中。
在图9中,存储器控制器集线器126与存储器140接口(例如,用于对可以被称作“系统存储器”的RAM类型提供支持)。该存储器控制器集线器126进一步包括用于显示设备192(例如,CRT,平板,投影仪等)的LVDS接口132。方框138包括可以经由LVDS接口132(例如,串行数字视频,HDMI/DVI,显示端口)支持的一些技术。存储器控制器集线器126还包括可以支持离散图形136的PCI高速接口(PCI-E)134。
在图9中,I/O集线器控制器150包括SATA接口151(例如,用于HDD、SDD等),PCI-E接口152(例如,用于无线连接182),USB接口153(例如,用于诸如键盘、鼠标、照相机、电话、存储等输入设备184),网络接口154(例如,LAN),GPIO接口155,LPC接口170(用于ASIC 171、TPM 172、超级I/O 173、固件集线器174、BIOS支持175,以及诸如ROM 177、闪存178和NVRAM 179的各种类型的存储器176),电源管理接口161,时钟发生器接口162,音频接口163(例如,用于扬声器194),TCO接口164,系统管理总线接口165和SPI闪存166,该SPI闪存166包括BIOS 168和启动代码190。I/O集线器控制器150可以包括千兆比特以太网支持。
系统在上电时可以配置用于对BIOS 168执行启动代码190(因为启动代码190、BIOS 168存储在SPI闪存中),并且然后在(例如存储在系统存储器140中的)一个或更多操作系统和应用软件的控制下处理数据。可以将操作系统存储在多种位置中的任何位置,并且例如依据BIOS 168的指令访问操作系统。如这里所描述的,设备可以包括相比图9的系统中示出的更少或更多的特征。
此外,实施例可以采用计算机程序产品的形式,该计算机程序产品包含在包含有计算机可读程序代码的一个或更多计算机可读介质中。
可以使用一个或更多计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于,电子、磁、光、电磁、红外或半导体系统,装置或者设备,或者前述的任何适当的组合。计算机可读存储介质的更具体的例子(非排他性列表)将包括以下:具有一条或更多线的电子连接、便携式计算机磁碟、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备、或前述的任何适当的组合。在本文档的情境下,计算机可读存储介质可以是任何有形介质,可以包括或存储由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备关联使用的程序。
计算机可读信号介质可以包括其中包含了计算机可读程序代码的传播数据信号,该数据信号例如以基带传播或作为载波的一部分传播。这样的传播信号可以采用多种形式中的任何形式,包括但不限于,电磁、光学或其任何适当的组合。计算机可读信号介质可以是:不是计算机可读存储介质但能传送、传播或传输由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备关联使用的程序的任何计算机可读介质。
计算机可读介质上包含的程序代码可以使用任何适合的介质发送,该介质包括但不限于无线、有线线路、光纤光缆、RF等或前述的任何适当的组合。
可以以一种或更多编程语言的任何组合写用于执行操作的计算机程序代码,编程语言包括:面向对象的编程语言,例如JavaTM、Smalltalk、C++等;以及,传统的程序编程语言,例如“C”编程语言或类似编程语言。程序代码可以全部在用户的计算机(设备)上执行,部分在用户的计算机上执行,作为独立的软件包部分在用户的计算机上执行且部分在远程计算机上执行,或者全部在远程计算机或服务器上执行。在后者的模式中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以(例如,利用互联网服务提供商通过互联网)连接至外部计算机。
在这里参考了方法、装置(系统)和计算机程序产品的流程图和/或框图说明了实施例。将理解到,该流程图和/或框图的每个方框以及该流程图和/或框图中的方框的组合可以通过计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器来产生机器,从而这些指令在通过计算机或其他可编程数据处理装置的处理器执行时产生用于实现在流程图和/或框图方块中指定的功能/动作的手段。
这些计算机程序指令也可以存储在能指引计算机、其他可编程数据处理装置或其他设备以特定方式运行的计算机可读介质中,从而存储在计算机存储介质中的指令产生制品(article of manufacture),该制品包括实现在流程图和/或框图方框中指定的功能的指令。
还可以将计算机程序指令加载到计算机、其他可编程数据处理装置或其他设备来使一系列操作步骤在计算机、其他可编程装置或设备上执行,以产生计算机执行的处理,从而这些指令在计算机或其它可编程装置上执行时提供用于实现在流程图和/或框图方框中指定的功能的处理。
为了描述和说明的目的但并不是排他或限制性地呈现了本披露。许多修改和变形对于本领域技术人员是明显的。选择并描述这些实施例是为了说明原理和实际应用,并且使本领域技术人员能够理解本披露用于具有适于预期的特定用途的各种修改的各种实施例。
尽管在这里已参考附图描述了示意性的实施例,但可以理解的是,实施例并不限于这些明确的描述,在不偏离本披露的范围或精神的情况下本领域技术人员可以实现各种其他改变和修改。
Claims (18)
1. 一种用于从存储局域网SAN流式传输下载基本镜像的装置,包括:
一个或多个处理器;
网络接口,用于通过网络访问在远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像;以及
硬盘;
其中,响应于所述一个或多个处理可访问的计算机可读程序代码的执行,所述一个或多个处理器用于:
确定所述硬盘是否已被提供用作客户端本地高速缓冲存储器;以及
在确定所述硬盘已被提供用作客户端本地高速缓冲存储器后,运行客户操作系统,根据客户操作系统将客户的基本镜像从SAN下载到本地高速缓冲存储器,进而从所述远程存储设备下载所述基本镜像。
2.根据权利要求1所述的装置,其中,响应于所述一个或多个处理器可访问的计算机可读程序代码的执行,所述一个或多个处理器进一步确定所述基本镜像是否已下载到所述硬盘。
3.根据权利要求2所述的装置,其中,响应于所述一个或多个处理器可访问的计算机可读程序代码的执行,所述一个或多个处理器进一步响应于所述基本镜像还未被下载到所述硬盘的确定,访问所述远程存储设备的客户操作系统。
4. 根据权利要求3所述的装置,其中,从远程存储设备下载基本镜像进一步包括:流式传输下载基本镜像作为后台任务,同时运行所述远程存储设备的客户操作系统。
5. 根据权利要求4所述的装置,其中,所述客户操作系统包括所述远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像。
6. 根据权利要求1所述的装置,其中,响应于所述一个或多个处理器可访问的计算机可读程序代码的执行,所述一个或多个处理器进一步用于:
响应于中断事件,暂停从所述远程存储设备下载所述基本镜像;以及
响应于所述中断事件的结束,恢复从所述远程存储设备下载所述基本镜像。
7. 根据权利要求1所述的装置,其中,响应于所述一个或多个处理器可访问的计算机可读程序代码的执行,所述一个或多个处理器进一步用于:响应于所述硬盘未被提供用作客户端本地高速缓冲存储器的确定,将所述硬盘提供用作客户端本地高速缓冲存储器,并且然后从所述远程存储设备流式传输下载所述基本镜像。
8. 根据权利要求1所述的装置,其中,响应于所述一个或多个处理器可访问的计算机可读程序代码的执行,所述一个或多个处理器进一步用于:在将所述基本镜像下载到所述硬盘后,利用所述基本镜像的客户端本地高速缓冲存储器拷贝。
9. 根据权利要求8所述的装置,其中,响应于所述一个或多个处理器可访问的计算机可读程序代码的执行,所述一个或多个处理器进一步用于:确定对所述远程存储设备上存储的基本镜像的一个或多个更新是否可用,并将所述一个或多个更新应用于所述基本镜像的客户端本地高速缓冲存储器拷贝。
10. 一种用于从存储局域网SAN流式传输下载基本镜像的方法,包括:
在用于访问远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像的装置中,确定所述装置的硬盘是否已被提供用作客户端本地高速缓冲存储器;以及
在确定所述硬盘已被提供用作客户端本地高速缓冲存储器后,运行客户操作系统,根据客户操作系统将客户的基本镜像从SAN下载到本地高速缓冲存储器,进而从所述远程存储设备下载基本镜像。
11. 根据权利要求10所述的方法,进一步包括:确定所述基本镜像是否已被下载到所述硬盘。
12. 根据权利要求11所述的方法,进一步包括:响应于所述基本镜像还未被下载到所述硬盘的确定,访问所述远程存储设备的客户操作系统。
13. 根据权利要求12所述的方法,其中,从所述远程存储设备下载基本镜像进一步包括:流式传输下载基本镜像作为后台任务,同时运行所述远程存储设备的客户操作系统。
14. 根据权利要求13所述的方法,其中,所述客户操作系统包括所述远程存储设备上存储的基本镜像和用户覆盖镜像中的一个或多个镜像。
15. 根据权利要求10所述的方法,进一步包括:
响应于中断事件,暂停从所述远程存储设备下载所述基本镜像;以及
响应于所述中断事件的结束,恢复从所述远程存储设备下载所述基本镜像。
16. 根据权利要求10所述的方法,进一步包括:响应于所述硬盘未被提供用作客户端本地高速缓冲存储器的确定,将所述硬盘提供用作客户端本地高速缓冲存储器,并且此后从所述远程存储设备流式传输下载所述基本镜像。
17. 根据权利要求10所述的方法,进一步包括:在将所述基本镜像下载到所述硬盘后,利用所述基本镜像的客户端本地高速缓冲存储器拷贝。
18. 根据权利要求17所述的方法,进一步包括:
确定对所述远程存储设备上存储的基本镜像的一个或多个更新是否可用;以及
响应于确定了对所述基本镜像的一个或多个更新可用,将所述一个或多个更新应用于所述基本镜像的客户端本地高速缓冲存储器拷贝。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/750,322 US8463873B2 (en) | 2010-03-30 | 2010-03-30 | Streaming client system base images |
US12/750,322 | 2010-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102207876A CN102207876A (zh) | 2011-10-05 |
CN102207876B true CN102207876B (zh) | 2014-04-02 |
Family
ID=44696724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110079096.1A Active CN102207876B (zh) | 2010-03-30 | 2011-03-28 | 流式传输客户端系统基本镜像 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8463873B2 (zh) |
CN (1) | CN102207876B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473588B2 (en) * | 2010-03-30 | 2013-06-25 | Lenovo (Singapore) Ptd. Ltd. | Local and remote client computer system booting |
US8843650B2 (en) * | 2012-01-09 | 2014-09-23 | Fujitsu Limited | Trusted network booting system and method |
US8904113B2 (en) * | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Virtual machine exclusive caching |
CN102833344B (zh) * | 2012-09-04 | 2015-02-25 | 中国人民解放军国防科学技术大学 | 基于本地启动映像文件的无盘计算机启动方法 |
CN107025113A (zh) * | 2017-04-11 | 2017-08-08 | 广东浪潮大数据研究有限公司 | 一种基于驱动光盘实现一键安装驱动的方法及系统 |
CN114651232A (zh) * | 2019-11-22 | 2022-06-21 | 惠普发展公司,有限责任合伙企业 | 数据管理 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334510A (zh) * | 2001-09-07 | 2002-02-06 | 清华大学 | 一种网络环境下的计算机远程启动方法 |
US7272687B2 (en) * | 2005-02-01 | 2007-09-18 | Lsi Corporation | Cache redundancy for LSI raid controllers |
CN101378331A (zh) * | 2008-09-26 | 2009-03-04 | 浪潮电子信息产业股份有限公司 | 一种操作系统的部署安装方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765195A (en) * | 1995-12-08 | 1998-06-09 | Ncr Corporation | Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms |
US7523319B2 (en) * | 2005-11-16 | 2009-04-21 | Lenovo (Singapore) Pte. Ltd. | System and method for tracking changed LBAs on disk drive |
US7752386B1 (en) * | 2005-12-29 | 2010-07-06 | Datacore Software Corporation | Application performance acceleration |
DE102006061962A1 (de) * | 2006-11-13 | 2008-05-15 | Abb Technology Ag | Echtzeit Prozesshistorien-Server |
JP4795378B2 (ja) * | 2008-04-01 | 2011-10-19 | レノボ・シンガポール・プライベート・リミテッド | コンピュータおよびブート方法 |
US8095764B1 (en) * | 2008-06-30 | 2012-01-10 | Emc Corporation | Dynamic application aware storage configuration |
US8285821B2 (en) * | 2009-02-10 | 2012-10-09 | Lenovo (Singapore) Pte. Ltd. | Method, apparatus, and system of forward caching for a managed client |
-
2010
- 2010-03-30 US US12/750,322 patent/US8463873B2/en active Active
-
2011
- 2011-03-28 CN CN201110079096.1A patent/CN102207876B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1334510A (zh) * | 2001-09-07 | 2002-02-06 | 清华大学 | 一种网络环境下的计算机远程启动方法 |
US7272687B2 (en) * | 2005-02-01 | 2007-09-18 | Lsi Corporation | Cache redundancy for LSI raid controllers |
CN101378331A (zh) * | 2008-09-26 | 2009-03-04 | 浪潮电子信息产业股份有限公司 | 一种操作系统的部署安装方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102207876A (zh) | 2011-10-05 |
US20110246613A1 (en) | 2011-10-06 |
US8463873B2 (en) | 2013-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473588B2 (en) | Local and remote client computer system booting | |
EP3557410B1 (en) | Upgrade orchestrator | |
US8438564B2 (en) | Systems and methods for minimizing client computer system set-up time | |
US8924703B2 (en) | Secure virtualization environment bootable from an external media device | |
CN101206581B (zh) | 用于使用外部存储设备引导的系统和方法 | |
US9015705B2 (en) | Computing device having a migrated virtual machine accessing physical storage space on another computing device | |
US8527466B2 (en) | Handling temporary files of a virtual machine | |
CN102779050B (zh) | 提供加速的引导性能的系统和方法 | |
CN101650660B (zh) | 从中央存储装置引导计算机系统 | |
JP6397113B2 (ja) | リモーティングセッションを通じた非サポートファイル形式の開封 | |
CN102207876B (zh) | 流式传输客户端系统基本镜像 | |
CN102193817B (zh) | 简化物理和虚拟部署的管理 | |
CN102200921A (zh) | 智能引导设备选择和恢复 | |
US10817319B1 (en) | Compatibility-based configuration of hardware with virtualization software | |
CN102567052A (zh) | 启用配置有图形处理器的服务器的远程管理的技术 | |
US20110246714A1 (en) | Migrating client operating systems to remote storage | |
US20110246719A1 (en) | Provisioning a disk of a client for local cache | |
CN104010022A (zh) | 管理服务器节点的管理装置和方法 | |
US11194605B1 (en) | Synchronizing settings associated with virtual computing environments | |
US11182347B2 (en) | File sharing among virtual containers with fast recovery and self-consistency | |
US9852029B2 (en) | Managing a computing system crash | |
US20060047927A1 (en) | Incremental provisioning of software | |
US20240053992A1 (en) | Systems and Methods for Automated Operating System Migration | |
CN115509590B (zh) | 持续部署方法及计算机设备 | |
Vugt et al. | Creating an Open Source SAN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |