KR20220107775A - Apparatus and method for preventing bootstorm in No-HDD service - Google Patents
Apparatus and method for preventing bootstorm in No-HDD service Download PDFInfo
- Publication number
- KR20220107775A KR20220107775A KR1020210010851A KR20210010851A KR20220107775A KR 20220107775 A KR20220107775 A KR 20220107775A KR 1020210010851 A KR1020210010851 A KR 1020210010851A KR 20210010851 A KR20210010851 A KR 20210010851A KR 20220107775 A KR20220107775 A KR 20220107775A
- Authority
- KR
- South Korea
- Prior art keywords
- boot
- user terminal
- booting
- group
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 2
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
Description
본 발명은 노하드 서비스를 위한 장치 및 방법에 관한 것으로, 보다 구체적으로 부트스톰(Boot Storm)을 방지하기 위한 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for a no-hard service, and more particularly, to an apparatus and method for preventing a boot storm.
DaaS(Desktop as a Service)란 사용자들이 장소에 상관없이 원격지에서 자신의 컴퓨터에 접속 가능하여 사용할 수 있도록 해주는 서비스이다. 이러한 DaaS는 제공 방식에 따라 VDI(Virtual Desktop Infrastructure) 방식과 노하드(No-HDD) 방식이 존재한다. VDI 서비스는 호스트 서버에 하이퍼바이저를 통해 가상 머신을 구동하여 가상 데스크톱 인스턴스를 실행하고, 원격지의 클라이언트에서 이 가상 머신에 접속하여 가상 머신의 화면을 스트리밍 받아 작업을 수행하는 서비스이다. 즉, 컴퓨팅 연산이 모두 호스트 서버에서 이루어지고 원격지의 클라이언트는 컴퓨팅 화면만을 수신하여 처리하는 방식이다. 노하드 서비스는, 사용자의 개인 공간, 즉 클라이언트에는 연산 장치와 모니터, 키보드와 같은 컴퓨터 주변기기만을 두고 컴퓨터의 하드디스크와 같은 물리적 디스크를 중앙 서버에 집중시킨 방식이다. DaaS (Desktop as a Service) is a service that allows users to access and use their computer from a remote location regardless of location. Such DaaS includes a Virtual Desktop Infrastructure (VDI) method and a No-HDD method depending on the provision method. The VDI service is a service that runs a virtual desktop instance by driving a virtual machine through a hypervisor on the host server, accesses the virtual machine from a remote client, and receives the screen of the virtual machine to stream. That is, all computing operations are performed on the host server, and the remote client receives and processes only the computing screen. The no-hard service is a method in which a physical disk such as a computer's hard disk is centralized in a central server with only computer peripherals such as computing devices, monitors, and keyboards in the user's personal space, that is, the client.
노하드 방식의 경우 클라우드 환경 기반으로 컴퓨팅 기능을 제공하기에 초기 구축 비용이 저렴하고 관리가 용이하다. 이러한 특성 때문에 현재 다수의 은행, 기업, 공공기관에서 업무용 컴퓨터를 제공할 목적으로 노하드 방식을 채용하고 있다. 하지만, 노하드 방식을 기업 등에서 업무용으로 사용할 경우, 업무용 컴퓨터의 특성상 다수의 직원들이 출근 시간에 컴퓨터를 동시에 부팅하게 되고, 이로 인해 중앙 서버의 과부하로 인해 부팅이 실패하거나 부팅 지연이 발생하는 부트스톰(Boot Storm)이 발생하는 문제점이 있다. 현재까지 부트스톰 이슈를 해결하기 위한 다양한 해결책이 제시되었지만 비용 혹은 성능적인 측면에서의 단점이 존재한다.In the case of the no-hard method, the initial construction cost is low and management is easy because it provides computing functions based on the cloud environment. Because of these characteristics, a number of banks, corporations, and public institutions are currently adopting the no-hard method for the purpose of providing work computers. However, when the no-hard method is used for business purposes, the nature of the business computer causes a large number of employees to boot the computer at the same time during work hours. There is a problem that (Boot Storm) occurs. To date, various solutions have been proposed to solve the bootstorm issue, but there are disadvantages in terms of cost or performance.
본 발명은, 노하드(No-HDD) 서비스를 제공하는데 있어서 중앙 인프라의 데이터 수용량을 고려하여, 다수의 사용자의 동시 다발적인 접속 요청을 적절히 분산하여 부트스톰이 발생하지 않도록 하는 장치 및 방법을 제공하는데 그 목적이 있다.The present invention provides an apparatus and method for preventing a bootstorm from occurring by appropriately distributing simultaneous access requests of multiple users in consideration of the data capacity of a central infrastructure in providing a no-HDD service but it has a purpose.
일 실시예에 따른, 디스크가 없는 복수의 사용자 단말들로 노하드(No-HDD) 서비스를 제공하는 장치는, 사용 가능한 자원을 기초로 상기 복수의 사용자 단말에 대해 시간대별 사전 부팅 그룹을 생성하는 사전 부팅 그룹 생성부; 각 사용자 단말마다 부팅 이미지를 할당하고 각 사용자 단말의 부팅 이미지를 저장부에 저장하는 이미지 할당부; 및 상기 시간대별로 상기 사전 부팅 그룹에 속하는 적어도 하나의 사용자 단말들로 상기 부팅 이미지를 전송하여 원격 부팅시키는 원격 부팅부를 포함한다.According to an embodiment, an apparatus for providing a No-HDD service to a plurality of user terminals without a disk includes generating a pre-boot group for each time period for the plurality of user terminals based on available resources. pre-boot group creation unit; an image allocator for allocating a boot image to each user terminal and storing the boot image of each user terminal in a storage unit; and a remote booting unit for remote booting by transmitting the booting image to at least one user terminal belonging to the pre-booting group for each time period.
상기 사전 부팅 그룹 생성부는, 전체 네트워크 대역폭과 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭을 이용하여 수용 가능한 최대 사용자 단말의 수를 계산하고, 최대 사용자 단말의 수를 기초로 사전 부팅 그룹을 생성할 수 있다.The pre-boot group generation unit may calculate the maximum number of acceptable user terminals using the total network bandwidth and the network bandwidth required for booting one user terminal, and create a pre-boot group based on the maximum number of user terminals. have.
상기 사전 부팅 그룹 생성부는, 각 사전 부팅 그룹 내의 사용자 단말의 수를 상기 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성할 수 있다.The pre-boot group generator may create a pre-boot group such that the number of user terminals in each pre-boot group is equal to or less than the maximum number of user terminals.
상기 사전 부팅 그룹 생성부는, 상기 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 상기 수용 가능한 최대 사용자 단말의 수를 계산할 수 있다.The pre-boot group generator may calculate the maximum number of acceptable user terminals by adding a buffer value to a network bandwidth required for booting the one user terminal.
상기 사전 부팅 그룹 생성부는, 각 사전 부팅 그룹마다 사전 부팅 그룹 내 각 사용자 단말의 부팅 소요 시간을 계산하고 이를 기초로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정할 수 있다.The pre-boot group generator may calculate a boot-up time required for each user terminal in the pre-boot group for each pre-boot group, and set a pre-boot time period for each pre-boot group based on the calculation time.
상기 사전 부팅 그룹 생성부는, 각 사전 부팅 그룹에서 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간을 기준으로 사전 부팅 시간대를 설정할 수 있다.The pre-boot group generator may set a pre-boot time period based on a boot time of a user terminal having the longest boot time in each pre-boot group.
상기 사전 부팅 그룹 생성부는, 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간에 버퍼 시간을 더 고려하여 사전 부팅 시간대를 설정할 수 있다.The pre-boot group generation unit may set the pre-boot time period by further considering a buffer time to a boot time of the user terminal having the longest boot time.
상기 이미지 할당부는, 각 사용자 단말에 디스크 드라이브 이미지를 할당하고 각 사용자 단말의 디스크 드라이브 이미지를 상기 저장부에 저장하며, 상기 장치는, 상기 원격 부팅부에 의해 원격 부팅이 완료된 사용자 단말로 상기 디스크 드라이브 이미지를 전송하는 서비스 제공부를 더 포함할 수 있다.The image allocating unit allocates a disk drive image to each user terminal and stores the disk drive image of each user terminal in the storage unit, wherein the device is a user terminal for which remote booting is completed by the remote booting unit. It may further include a service providing unit for transmitting the image.
일 실시예에 따른 중앙 서버에서 디스크가 없는 복수의 사용자 단말들로 노하드(No-HDD) 서비스를 제공하는 방법은, 사용 가능한 자원을 기초로 상기 복수의 사용자 단말에 대해 시간대별 사전 부팅 그룹을 생성하는 단계; 각 사용자 단말마다 부팅 이미지를 할당하고 각 사용자 단말의 부팅 이미지를 저장부에 저장하는 단계; 및 상기 시간대별로 상기 사전 부팅 그룹에 속하는 적어도 하나의 사용자 단말들로 상기 부팅 이미지를 전송하여 원격 부팅시키는 단계를 포함한다.A method of providing a no-HDD service from a central server to a plurality of user terminals without a disk according to an embodiment is a method of providing a pre-boot group for each time period for the plurality of user terminals based on available resources. generating; allocating a boot image to each user terminal and storing the boot image of each user terminal in a storage unit; and transmitting the booting image to at least one user terminal belonging to the pre-booting group for each time period to remotely boot the booting image.
상기 사전 부팅 그룹을 생성하는 단계는, 전체 네트워크 대역폭과 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭을 이용하여 수용 가능한 최대 사용자 단말의 수를 계산하고, 최대 사용자 단말의 수를 기초로 사전 부팅 그룹을 생성할 수 있다.In the step of creating the pre-boot group, the maximum number of acceptable user terminals is calculated using the total network bandwidth and the network bandwidth required for booting one user terminal, and a pre-boot group is formed based on the maximum number of user terminals. can create
상기 사전 부팅 그룹을 생성하는 단계는, 각 사전 부팅 그룹 내의 사용자 단말의 수를 상기 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성할 수 있다.The generating of the pre-boot group may include creating the pre-boot group such that the number of user terminals in each pre-boot group is equal to or less than the maximum number of user terminals.
상기 사전 부팅 그룹을 생성하는 단계는, 상기 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 상기 수용 가능한 최대 사용자 단말의 수를 계산할 수 있다.The generating of the pre-boot group may include calculating the maximum number of acceptable user terminals by adding a buffer value to a network bandwidth required for booting the one user terminal.
상기 사전 부팅 그룹을 생성하는 단계는, 각 사전 부팅 그룹마다 사전 부팅 그룹 내 각 사용자 단말의 부팅 소요 시간을 계산하고 이를 기초로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정할 수 있다.The generating of the pre-boot group may include calculating a booting time required for each user terminal in the pre-boot group for each pre-boot group, and setting a pre-boot time period for each pre-boot group based on the calculation.
상기 사전 부팅 그룹을 생성하는 단계는, 각 사전 부팅 그룹에서 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간을 기준으로 사전 부팅 시간대를 설정할 수 있다.In the step of creating the pre-boot group, the pre-boot time period may be set based on a boot-up time of a user terminal having the longest boot-up time in each pre-boot group.
상기 사전 부팅 그룹을 생성하는 단계는, 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간에 버퍼 시간을 더 고려하여 사전 부팅 시간대를 설정할 수 있다.In the step of creating the pre-boot group, the pre-boot time period may be set by further considering a buffer time to a boot-up time of the user terminal having the longest boot-up time.
상기 방법은, 각 사용자 단말에 디스크 드라이브 이미지를 할당하고 각 사용자 단말의 디스크 드라이브 이미지를 상기 저장부에 저장하는 단계; 상기 원격 부팅이 완료된 사용자 단말로 상기 디스크 드라이브 이미지를 전송하는 단계를 더 포함할 수 있다.The method includes: allocating a disk drive image to each user terminal and storing the disk drive image of each user terminal in the storage unit; The method may further include transmitting the disk drive image to the user terminal on which the remote booting has been completed.
본 발명에 따르면 노하드 서비스를 제공하는데 있어서 사용자들의 동시 다발적인 접속을 분산할 수 있어 노하드 서비스를 제공하는 중앙 서버의 부하를 줄일 수 있고 이로 인한 예외 상황을 방지할 수 있으며, 사용자 단말들의 접속 시간을 줄일 수 있다.According to the present invention, in providing a no-hard service, simultaneous multiple connections of users can be distributed, thereby reducing the load on a central server that provides a no-hard service, and preventing an exception from this, and the access of user terminals time can be reduced.
본 발명에 따르면 노하드 서비스를 제공하는데 있어서 부트스톰을 해결하기 위한 별도의 인프라 확장이 불필요하여 비용을 줄이면서 최적의 서비스를 제공할 수 있다. According to the present invention, in providing a no-hard service, it is possible to provide an optimal service while reducing costs because a separate infrastructure expansion for solving the boot storm is not required.
도 1은 본 발명의 일 실시예에 따른 노하드 서비스 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 중앙 서버의 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 노하드(No-HDD) 서비스에서 부트스톰을 방지하는 방법을 설명하는 흐름도이다.1 is a diagram illustrating a no-hard service system according to an embodiment of the present invention.
2 is a diagram showing the configuration of a central server according to an embodiment of the present invention.
3 is a flowchart illustrating a method of preventing a bootstorm in a no-HDD service according to an embodiment of the present invention.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features, and advantages will become more apparent through the following detailed description in relation to the accompanying drawings, and accordingly, those of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in the description of the present invention, when it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 노하드 서비스 시스템을 나타낸 도면으로, 도 1을 참조하면, 본 실시예에 따른 노하드 서비스 시스템은 중앙 서버(110), 복수의 사용자 단말(130) 및 상기 중앙 서버(110)와 상기 복수의 사용자 단말(130)을 연결하는 네트워크(150)를 포함한다. 1 is a view showing a no-hard service system according to an embodiment of the present invention. Referring to FIG. 1 , the no-hard service system according to this embodiment includes a
사용자 단말(130)은, 물리적 디스크가 없는 연산 장치로서, 중앙처리장치(CPU), 그래픽 컨트롤러 및 입력/출력(I/O) 장치를 포함하며, 입력/출력(I/O) 장치는 시리얼 포트 컨트롤러, 패러럴 포트 컨트롤러, USB 컨트롤러, 키보드 및 마우스를 포함할 수 있으나 이에 한정되는 것은 아니다. CPU는 DRAM(dynamic random access memory)을 포함하는 시스템 메모리에 연결되며, PROM(programmable read only memory) 또는 플래시 메모리와 같은 비휘발성 메모리를 포함할 수 있다. 물리적 디스크가 없는 사용자 단말(130)을 디스크리스(diskless) 사용자 단말 또는 노하드 사용자 단말이라고 칭할 수 있다.The
사용자 단말(130)은, 네트워크(150)를 통해 중앙 서버(110)로부터 원격 부팅을 위한 신호(예, WOL(Wake On Lan))를 수신하면, 전원을 자동으로 켜고, 메인보드에 설정된 PXE(Pre-boot eXecution Environment) 부팅 순서에 따라 중앙 서버(110)로 부팅을 위한 데이터를 요청하고, 중앙 서버(110)로부터 부팅 이미지 및 시스템 데이터를 수신하여 부팅을 완료한다. 부팅이 완료되면, 사용자 단말(130)에는 중앙 서버(110)에서 할당된 디스크 드라이브 이미지가 마운트된다. When the
중앙 서버(110)는, 하나 이상의 물리적 디스크와 같은 대용량 저장 장치를 포함하고, 물리적 디스크가 없는 복수의 사용자 단말(130)에 대해 가상 디스크 드라이브를 제공하여 컴퓨팅 환경을 제공하는 장치이다. 중앙 서버(110)는 NIC, 대용량 저장 장치, CPU, 광 드라이브, 입력/출력(I/O) 장치를 포함한다. NIC는 네트워크(150)로의 인터페이스를 제공한다. 대용량 저장 장치는 하나 이상의 RAID 어레이로 구성되거나 독립적으로 동작하는 하나 이상의 하드디스크 드라이브를 포함할 수 있다. 대안적으로, 대용량 저장 장치는 SAN(storage area network) 또는 NAS(network attached storage) 서브시스템을 사용하여 구현될 수 있다.The
중앙 서버(110)는, 사용자 단말들(130)의 동시 다발적인 접속 요청에 따른 부하를 적절히 분산하기 위해, 즉 부트스톰을 방지하기 위해, 사전 부팅 그룹들을 생성하고, 사전 부팅 그룹들에 속하는 사용자 단말들(130)에 대해서는 해당 사용자 단말들(130)이 접속하기 전에 미리 부팅을 진행해 놓는다. 따라서, 사용자 단말들(130)의 접속을 적절히 분산하여 부트스톰을 방지한다. 이에 관해서는 이하에서 도면을 참조하여 보다 자세하게 설명한다.The
네트워크(150)는, 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.The
도 2는 본 발명의 일 실시예에 따른 중앙 서버의 구성을 나타낸 도면이다. 도 2를 참조하면, 본 실시예에 따른 중앙 서버(110)는, 사전 부팅 그룹 생성부(210), 이미지 할당부(220), 원격 부팅부(230), 서비스 제공부(240) 및 저장부(250)를 포함하고, 이들은 프로그램으로 구현되어 메모리에 저장되고 적어도 하나의 프로세서에 의해 실행될 수 있고 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다.2 is a diagram showing the configuration of a central server according to an embodiment of the present invention. Referring to FIG. 2 , the
사전 부팅 그룹 생성부(210)는, 복수의 사용자 단말(130)들에 대해 사용자 단말(130)의 요청과 무관하게 사전 부팅을 수행할 사전 부팅 그룹들을 시간대별로 생성한다. 사전 부팅 그룹 생성부(210)는, 중앙 서버(110)의 사용 가능한 자원을 기초로 사전 부팅 그룹들을 생성하고, 각 사전 부팅 그룹들의 부팅 시간대를 설정할 수 있다.The
사전 부팅 그룹 생성부(210)는, 중앙 서버(110)의 사용 가능한 자원을 기초로 수용 가능한 최대 사용자 단말의 수와, 각 사용자 단말(130)의 부팅시 소요되는 시간을 계산한 후, 수용 가능한 최대 사용자 단말의 수와, 사용자 단말당 부팅 소요 시간을 기초로, 사전 부팅 그룹들을 생성하고, 각 사전 부팅 그룹들의 부팅 시간대를 설정한다. 여기서 사용 가능한 자원은, 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭, 중앙 서버(110)의 전체 네트워크 대역폭을 포함한다. The
사전 부팅 그룹 생성부(210)는, 중앙 서버(110)의 전체 네트워크 대역폭과 1대의 사용자 단말(130)의 부팅시 필요한 네트워크 대역폭을 이용하여 중앙 서버(110)의 수용 가능한 최대 사용자 단말의 수를 계산한다. 이를 수학식으로 표현하면 다음 (수학식1)과 같다.The pre-boot
(수학식1)(Equation 1)
수용 가능한 최대 사용자 단말의 수 =Maximum number of user terminals that can be accommodated =
중앙 서버의 전체 네트워크 대역폭/1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭Total network bandwidth of central server/1 network bandwidth required for booting of one user terminal
상기 (수학식1)에 의해 계산되는 수용 가능한 최대 사용자 단말의 수는, 중앙 서버(110)에서 동시에 병렬로 처리할 수 있는 최대 사용자 단말의 수를 의미한다. 따라서, 사전 부팅 그룹 생성부(210)는, 각 사전 부팅 그룹에 속하는 사용자 단말의 수를 상기 (수학식1)에 의해 계산된 수용 가능한 최대 사용자 단말의 수 이내로 설정한다. 바람직하게는, 사전 부팅 그룹에 대해 사전 부팅을 수행하는 중에 사전 부팅 그룹에 속하지 않은 임의의 사용자 단말(130)이 부팅을 하는 경우를 대비하기 위해, 각 사전 부팅 그룹의 사용자 단말의 수는, 상기 (수학식1)에 의해 계산된 수용 가능한 최대 사용자 단말의 수 보다 더 적게 설정하는 것이 바람직하다. 이를 위해, 상기 (수학식1)의 우항의 분모에 대입하는 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 수용 가능한 최대 사용자 단말의 수가 적게 계산되도록 할 수 있다. 예를 들어, 중앙 서버(110)의 동시에 수용 가능한 최대 사용자 단말의 수가 70대일 경우, 복수의 사전 부팅 그룹을 생성한 후, 각 사전 부팅 그룹마다 65대의 사용자 단말을 배정할 수 있다. The maximum number of acceptable user terminals calculated by Equation 1 above means the maximum number of user terminals that can be simultaneously processed in parallel by the
사전 부팅 그룹 생성부(210)는, 사전 부팅 그룹들이 결정되면, 각 사전 부팅 그룹마다 사전 부팅 시간대를 설정한다. 먼저, 사전 부팅 그룹 생성부(210)는, 각 사전 부팅 그룹마다 각 사용자 단말(130)의 부팅시 소요되는 시간을 계산한다. 사용자 단말(130)의 부팅시 소요되는 시간(즉, 부팅 소요 시간)은, 다음의 (수학식2)에 의해 계산된다.When the pre-boot groups are determined, the
(수학식2)(Equation 2)
부팅 소요 시간 =boot time =
1대의 사용자 단말의 부팅시 발생하는 총 데이터량/1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭Total amount of data generated during booting of one user terminal/1 network bandwidth required for booting of one user terminal
예를 들어 설명하면, 윈도우 10 기준으로 1대의 사용자 단말(130)의 부팅시 발생하는 총 데이터량은 약 1083MB이다. 특정 사용자 단말(130)의 부팅시 필요한 네트워크 대역폭이 18MB/s인 경우, 해당 사용자 단말(130)의 부팅 소요 시간은 약 60초(1083/18)이다. For example, based on Windows 10, the total amount of data generated during booting of one
사전 부팅 그룹 생성부(210)는, 각 사전 부팅 그룹마다 각 사용자 단말(130)의 부팅 소요 시간을 계산한 후, 각 사전 부팅 그룹마다 부팅 소요 시간이 가장 긴 사용자 단말(130)을 기준으로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정한다. 예를 들어, 사전 부팅 그룹 A의 사용자 단말(130)의 수가 70대이고, 그 중에서 부팅 소요 시간이 가장 긴 사용자 단말(130)의 부팅 소요 시간이 1분 30초라면, 1분 30초에 버퍼 시간(예, 30초)을 더하여, 해당 사전 부팅 그룹 A의 사전 부팅 시간대로서 8시 40분부터 8시 42분까지를 설정한다. 여기서는 버퍼 시간을 더하는 것으로 설명하나 여기에 제한되는 것은 아니며 버퍼 시간을 고려하지 않고 사전 부팅 시간대를 설정할 수도 있다.The
사전 부팅 그룹 생성부(210)는, 각 생성된 사전 부팅 그룹의 정보를 저장부(250)에 저장한다. 사전 부팅 그룹의 정보는, 각 사전 부팅 그룹에 속하는 사용자 단말(130)의 식별정보와, 각 사전 부팅 그룹의 사전 부팅 시간대를 포함한다. The pre-boot
다시 도 2를 참조하면, 이미지 할당부(220)는, 각 사용자 단말(130)마다 부팅 이미지 및 디스크 드라이브 이미지를 할당한다. 여기서 부팅 이미지는, 원격지의 사용자 단말(130)로 전송되어 사용자 단말(130)이 부팅 동작을 수행할 수 있도록 하는 ISO 이미지이고, 디스크 드라이브 이미지는, 운영체제와 각종 프로그램이 설치되어 있는 디스크 드라이브 이미지이다. 바람직하게, 이미지 할당부(220)는, 마스터 디스크 드라이브 이미지를 생성한 후, 이로부터 복사된 디스크 드라이브 이미지를 각 사용자 단말(130)에 할당한다. 이미지 할당부(220)는, 저장부(250)에 각 사용자 단말(130)에 할당한 부팅 이미지 및 디스크 드라이브 이미지를 각 사용자 단말(130)의 식별정보와 함께 매칭하여 저장한다. Referring back to FIG. 2 , the
원격 부팅부(230)는, 저장부(250)에 저장된 각 사전 부팅 그룹의 정보를 기초로 각 사전 부팅 그룹의 사용자 단말(130)들을 지정된 사전 부팅 시간대에 원격 부팅시킨다. 구체적으로, 원격 부팅부(230)는, WOL(Wake On Lan) 기능을 이용하여 각 사용자 단말(130)의 전원을 켜고, 전원이 켜진 각 사용자 단말(130)에 대해 PXE(Pre-boot eXecution Environment) 부팅을 수행한다. 원격 부팅부(230)는, 사용자 단말(130)에 대응하는 부팅 이미지를 저장부(250)에서 조회하고 부팅 이미지 및 시스템 데이터를 사용자 단말(130)로 전송한다.The
예를 들어, 사전 부팅 그룹 A의 사전 부팅 시간대는 8시 40분 ~ 8시 42분이고, 사전 부팅 그룹 B의 사전 부팅 시간대는 8시 42분 ~ 8시 45분이며, 각 사전 부팅 그룹에 70대의 사용자 단말(130)이 할당되어 있을 때, 8시 40분에 사전 부팅 그룹 A에 속하는 70대의 사용자 단말(130)을 동시에 원격 부팅하고, 8시 42분에 사전 부팅 그룹 B에 속하는 70대의 사용자 단말(130)을 동시에 원격 부팅한다. 따라서, 본 발명이 기업 내 적용된다면, 기업 내 종업원들이 출근하기 전에 미리 종업원의 사용자 단말(130)들이 부팅된 상태가 된다. For example, the pre-boot time zone for pre-boot group A is 8:40 to 8:42, the pre-boot time for pre-boot group B is from 8:42 to 8:45, and 70 When the
서비스 제공부(240)는, 원격 부팅부(230)에 의해 부팅 성공된 사용자 단말(130)에 대해 노하드 서비스를 제공한다, 즉 서비스 제공부(240)는, 부팅에 성공한 사용자 단말(130)에 대해 저장부(250)에 저장된 해당 사용자 단말(130)의 디스크 드라이브 이미지를 전송하여 해당 사용자 단말(130)에 마운트되도록 한다. 따라서, 사용자는 자신의 사용자 단말(130)에 물리적 디스크가 있는 것처럼, 운영체제 및 응용 프로그램을 사용하여 작업을 수행할 수 있다. 서비스 제공부(240)는, 사용자 단말(130)에 의해 작업이 종료되면, 작업 데이터가 반영된 디스크 드라이브 이미지를 저장부(250)에 업데이트하여, 사용자가 추후 다시 접속하였을 때 기존 작업이 그대로 유지되도록 한다.The
도 3은 본 발명의 일 실시예에 따른 노하드(No-HDD) 서비스에서 부트스톰을 방지하는 방법을 설명하는 흐름도이다.3 is a flowchart illustrating a method of preventing a bootstorm in a no-HDD service according to an embodiment of the present invention.
도 3을 참조하면, 단계 S301에서, 중앙 서버(110)는, 중앙 서버(110)의 전체 네트워크 대역폭과 1대의 사용자 단말(130)의 부팅시 필요한 네트워크 대역폭을 이용하여 중앙 서버(110)의 수용 가능한 최대 사용자 단말의 수를 계산한다. 즉, 상기 (수학식1)에 의해 수용 가능한 최대 사용자 단말의 수를 계산한다. 수용 가능한 최대 사용자 단말의 수는, 중앙 서버(110)에서 동시에 병렬로 처리할 수 있는 최대 사용자 단말의 수를 의미한다. Referring to FIG. 3 , in step S301 , the
일 실시예에서, 중앙 서버(110)는, 사전 부팅 그룹에 대해 사전 부팅을 수행하는 중에 사전 부팅 그룹에 속하지 않은 임의의 사용자 단말(130)이 부팅을 하는 경우를 대비하기 위해, 수용 가능한 최대 사용자 단말의 수로서, 상기 (수학식1)에 의해 계산된 실제 수용 가능한 최대 사용자 단말의 수 보다 더 적게 설정하는 것이 바람직하다. 이를 위해, 상기 (수학식1)의 우항의 분모에 대입하는 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 수용 가능한 최대 사용자 단말의 수가 적게 계산되도록 할 수 있다.In one embodiment, the
단계 S302에서, 중앙 서버(110)는, 상기 단계 S301에서 계산된 수용 가능한 최대 사용자 단말의 수를 기초로, 사전 부팅 그룹을 생성한다. 중앙 서버(110)는, 사전 부팅 그룹 내의 사용자 단말의 수를 상기 수용 가능한 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성한다. 중앙 서버(110)는, 복수의 사전 부팅 그룹을 생성할 수 있다. 중앙 서버(110)는, 사전 부팅 그룹의 정보, 예를 들어, 그룹 식별정보와 각 사용자 단말(130)의 식별정보를 매칭하여 저장부(250)에 저장한다.In step S302, the
단계 S303에서, 중앙 서버(110)는, 각 사전 부팅 그룹마다 각 사용자 단말(130)의 부팅시 소요되는 시간(즉, 부팅 수요 시간)을 계산한다. 사용자 단말(130)의 부팅 소요 시간은, 상기 (수학식2)에 의해 계산된다. 예를 들어 설명하면, 윈도우 10 기준으로 1대의 사용자 단말(130)의 부팅시 발생하는 총 데이터량은 약 1083MB이다. 특정 사용자 단말(130)의 부팅시 필요한 네트워크 대역폭이 18MB/s인 경우, 해당 사용자 단말(130)의 부팅 소요 시간은 약 60초(1083/18)이다. In step S303 , the
단계 S304에서, 중앙 서버(110)는, 상기 단계 S303에서 계산된 각 사용자 단말(130)의 부팅 소요 시간을 기초로, 상기 단계 S302에서 생성된 각 사전 부팅 그룹의 사전 부팅 시간대를 설정한다. 예를 들어, 사전 부팅 그룹 A의 사용자 단말(130)의 수가 70대이고, 그 중에서 부팅 소요 시간이 가장 긴 사용자 단말(130)의 부팅 소요 시간이 1분 30초라면, 1분 30초에 버퍼 시간(예, 30초)을 더하여, 해당 사전 부팅 그룹 A의 사전 부팅 시간대로서 8시 40분부터 8시 42분까지를 설정한다. 여기서는 버퍼 시간을 더하는 것으로 설명하나 여기에 제한되는 것은 아니며 버퍼 시간을 고려하지 않고 사전 부팅 시간대를 설정할 수도 있다. 중앙 서버(110)는, 사전 부팅 그룹의 사전 부팅 시간 정보를 저장부(250)에 저장한다.In step S304, the
단계 S305에서, 중앙 서버(110)는, 각 사전 부팅 그룹에 속하는 각 사용자 단말(130)마다 부팅 이미지 및 디스크 드라이브 이미지를 할당한다. 여기서 부팅 이미지는, 원격지의 사용자 단말(130)로 전송되어 사용자 단말(130)이 부팅 동작을 수행할 수 있도록 하는 ISO 이미지이고, 디스크 드라이브 이미지는, 운영체제와 각종 프로그램이 설치되어 있는 디스크 드라이브 이미지이다. 바람직하게, 중앙 서버(110)는, 마스터 디스크 드라이브 이미지를 생성한 후, 이로부터 복사된 디스크 드라이브 이미지를 각 사용자 단말(130)에 할당한다. 중앙 서버(110)는, 저장부(250)에 각 사용자 단말(130)에 할당한 부팅 이미지 및 디스크 드라이브 이미지를 각 사용자 단말(130)의 식별정보와 함께 매칭하여 저장한다. In step S305, the
단계 S306에서, 중앙 서버(110)는, 사전 부팅 시간이 도래하였는지 판단한다. 중앙 서버(110)는, 저장부(250)에 저장된 각 사전 부팅 그룹의 사전 부팅 시간 정보를 기초로 사전 부팅 시간이 도래하였는지 판단할 수 있다.In step S306, the
특정 사전 부팅 그룹의 사전 부팅 시간이 도래한 경우, 단계 S307에서, 중앙 서버(110)는, 해당 특정 사전 부팅 그룹의 각 사용자 단말(130)들을 원격 부팅시킨다. 구체적으로, 중앙 서버(110)는, WOL(Wake On Lan) 기능을 이용하여 각 사용자 단말(130)의 전원을 켜고, 전원이 켜진 각 사용자 단말(130)에 대해 PXE(Pre-boot eXecution Environment) 부팅을 수행한다. 중앙 서버(110)는, 사용자 단말(130)에 대응하는 부팅 이미지를 저장부(250)에서 조회하고 부팅 이미지 및 시스템 데이터를 사용자 단말(130)로 전송한다.When the pre-boot time of the specific pre-boot group arrives, in step S307, the
특정 사전 부팅 그룹의 원격 부팅을 완료한 후, 단계 S308에서, 중앙 서버(110)는, 모든 사전 부팅 그룹의 원격 부팅이 완료되었는지 확인하고, 사전 부팅을 수행할 사전 부팅 그룹이 남아 있는 경우, 단계 S306으로 되돌아 가서 사전 부팅 시간이 도래하였는지 확인하는 과정 및 단계 S307, 그리고 단계 S308을 반복 수행한다. 사전 부팅 그룹들 모두 원격 부팅이 완료된 경우, 중앙 서버(110)는 사전 부팅 작업을 종료한다. 이러한 사전 부팅 작업은, 매일 하루에 한 번씩 수행될 수 있다.After completing the remote booting of a specific pre-boot group, in step S308, the
원격 부팅이 완료된 후, 중앙 서버(110)는, 각 사용자 단말(130)에 할당된 디스크 드라이브 이미지를 저장부(250)에서 조회하여 전송한다. 따라서, 해당 사용자 단말(130)에 디스크 드라이브 이미지가 마운트되고, 사용자는 자신의 사용자 단말(130)에 물리적 디스크가 있는 것처럼, 운영체제 및 응용 프로그램을 사용하여 작업을 수행할 수 있다.After the remote booting is completed, the
이상의 도 1 내지 도 3을 참조한 실시예에서는 사용자들이 직접 사용자 단말(130)을 물리적으로 이용하는 것을 예로 들어 설명하였다. 즉, 디스크가 없는 사용자 단말(130)은 회사 내 각 종업원들마다 구비되고, 사용자가 출근하기 전에 각 사용자의 사용자 단말(130)은 미리 사전에 부팅이 완료되고, 사용자는 출근하여 별도로 사용자 단말(130)을 부팅할 필요 없이 바로 작업을 할 수 있다. 그러나 이러한 실시예에 한정되지 않고, 사용자는 또 다른 원격지에서 본인의 퍼스널 컴퓨터나 노트북 등의 컴퓨팅 장치를 이용하여 TeamViewer나 원격 데스크톱 프로토콜(remote desktop protocol) 등을 이용하여 사용자 단말(130)에 접속하고, 사용자 단말(130)로부터 화면 이미지를 수신하여 원격으로 사용자 단말(130)을 제어할 수도 있다.In the embodiment with reference to FIGS. 1 to 3 above, it has been described that users directly physically use the
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, features described in individual embodiments herein may be implemented in combination in a single embodiment. Conversely, various features described herein in a single embodiment may be implemented in various embodiments individually, or may be implemented in appropriate combination.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although acts are described in a particular order in the drawings, it should not be understood that such acts are performed in the particular order as shown, or that all of the described acts are performed in a continuous order, or to obtain a desired result. . Multitasking and parallel processing may be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The program components and systems described above may generally be implemented as a package in a single software product or multiple software products.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a computer-readable form in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.). Since this process can be easily performed by a person of ordinary skill in the art to which the present invention pertains, it will not be described in detail any longer.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above, for those of ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible without departing from the technical spirit of the present invention. It is not limited by the drawings.
110 : 중앙 서버
130 : 사용자 단말
150 : 네트워크
210 : 사전 부팅 그룹 생성부
220 : 이미지 할당부
230 : 원격 부팅부
240 : 서비스 제공부
250 : 저장부110: central server
130: user terminal
150: network
210: pre-boot group creation unit
220: image allocation unit
230: remote boot unit
240: service provider
250: storage
Claims (17)
사용 가능한 자원을 기초로 상기 복수의 사용자 단말에 대해 시간대별 사전 부팅 그룹을 생성하는 사전 부팅 그룹 생성부;
각 사용자 단말마다 부팅 이미지를 할당하고 각 사용자 단말의 부팅 이미지를 저장부에 저장하는 이미지 할당부; 및
상기 시간대별로 상기 사전 부팅 그룹에 속하는 적어도 하나의 사용자 단말들로 상기 부팅 이미지를 전송하여 원격 부팅시키는 원격 부팅부를 포함하는 장치.In the device for providing a no-hard (No-HDD) service to a plurality of user terminals without a disk,
a pre-boot group generator for generating a pre-boot group for each time zone for the plurality of user terminals based on available resources;
an image allocator for allocating a booting image to each user terminal and storing the booting image of each user terminal in a storage unit; and
and a remote booting unit configured to remotely boot by transmitting the booting image to at least one user terminal belonging to the pre-booting group for each time period.
상기 사전 부팅 그룹 생성부는,
전체 네트워크 대역폭과 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭을 이용하여 수용 가능한 최대 사용자 단말의 수를 계산하고, 최대 사용자 단말의 수를 기초로 사전 부팅 그룹을 생성하는 것을 특징으로 하는 장치.According to claim 1,
The pre-boot group creation unit,
An apparatus comprising: calculating the maximum number of acceptable user terminals using the total network bandwidth and the network bandwidth required for booting one user terminal; and creating a pre-boot group based on the maximum number of user terminals.
상기 사전 부팅 그룹 생성부는,
각 사전 부팅 그룹 내의 사용자 단말의 수를 상기 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성하는 것을 특징으로 하는 장치.3. The method of claim 2,
The pre-boot group creation unit,
The apparatus of claim 1, wherein the pre-boot group is created such that the number of user terminals in each pre-boot group is equal to or less than the maximum number of user terminals.
상기 사전 부팅 그룹 생성부는,
상기 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 상기 수용 가능한 최대 사용자 단말의 수를 계산하는 것을 특징으로 하는 장치.3. The method of claim 2,
The pre-boot group creation unit,
and calculating the maximum number of acceptable user terminals by adding a buffer value to a network bandwidth required for booting the one user terminal.
상기 사전 부팅 그룹 생성부는,
각 사전 부팅 그룹마다 사전 부팅 그룹 내 각 사용자 단말의 부팅 소요 시간을 계산하고 이를 기초로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정하는 것을 특징으로 하는 장치. According to claim 1,
The pre-boot group creation unit,
A device, characterized in that for each pre-boot group, a time required for booting each user terminal in the pre-boot group is calculated, and a pre-boot time period of each pre-boot group is set based on the calculation.
상기 사전 부팅 그룹 생성부는,
각 사전 부팅 그룹에서 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간을 기준으로 사전 부팅 시간대를 설정하는 것을 특징으로 하는 장치.6. The method of claim 5,
The pre-boot group creation unit,
A device characterized in that the pre-boot time period is set based on the boot-up time of a user terminal having the longest boot-up time in each pre-boot group.
상기 사전 부팅 그룹 생성부는,
부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간에 버퍼 시간을 더 고려하여 사전 부팅 시간대를 설정하는 것을 특징으로 하는 장치.7. The method of claim 6,
The pre-boot group creation unit,
A device characterized in that the pre-boot time period is set by further considering the buffer time to the booting time of the user terminal having the longest booting time.
상기 이미지 할당부는,
각 사용자 단말에 디스크 드라이브 이미지를 할당하고 각 사용자 단말의 디스크 드라이브 이미지를 상기 저장부에 저장하며,
상기 장치는,
상기 원격 부팅부에 의해 원격 부팅이 완료된 사용자 단말로 상기 디스크 드라이브 이미지를 전송하는 서비스 제공부를 더 포함하는 것을 특징으로 하는 장치.According to claim 1,
The image allocator,
Allocating a disk drive image to each user terminal and storing the disk drive image of each user terminal in the storage unit,
The device is
The apparatus of claim 1, further comprising a service providing unit for transmitting the disk drive image to a user terminal on which remote booting has been completed by the remote booting unit.
사용 가능한 자원을 기초로 상기 복수의 사용자 단말에 대해 시간대별 사전 부팅 그룹을 생성하는 단계;
각 사용자 단말마다 부팅 이미지를 할당하고 각 사용자 단말의 부팅 이미지를 저장부에 저장하는 단계; 및
상기 시간대별로 상기 사전 부팅 그룹에 속하는 적어도 하나의 사용자 단말들로 상기 부팅 이미지를 전송하여 원격 부팅시키는 단계를 포함하는 방법.In the method of providing a no-HDD service to a plurality of user terminals without a disk in a central server,
creating a pre-boot group for each time zone for the plurality of user terminals based on available resources;
allocating a boot image to each user terminal and storing the boot image of each user terminal in a storage unit; and
and transmitting the booting image to at least one user terminal belonging to the pre-booting group for each time period and remotely booting the booting image.
상기 사전 부팅 그룹을 생성하는 단계는,
전체 네트워크 대역폭과 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭을 이용하여 수용 가능한 최대 사용자 단말의 수를 계산하고, 최대 사용자 단말의 수를 기초로 사전 부팅 그룹을 생성하는 것을 특징으로 하는 방법.10. The method of claim 9,
The step of creating the pre-boot group includes:
A method, comprising: calculating the maximum number of acceptable user terminals using the total network bandwidth and the network bandwidth required for booting one user terminal, and creating a pre-boot group based on the maximum number of user terminals.
상기 사전 부팅 그룹을 생성하는 단계는,
각 사전 부팅 그룹 내의 사용자 단말의 수를 상기 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성하는 것을 특징으로 하는 방법.11. The method of claim 10,
The step of creating the pre-boot group includes:
A method, characterized in that the pre-boot group is created such that the number of user terminals in each pre-boot group is equal to or less than the maximum number of user terminals.
상기 사전 부팅 그룹을 생성하는 단계는,
상기 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 상기 수용 가능한 최대 사용자 단말의 수를 계산하는 것을 특징으로 하는 방법.11. The method of claim 10,
The step of creating the pre-boot group includes:
The method according to claim 1, wherein the maximum number of acceptable user terminals is calculated by adding a buffer value to the network bandwidth required for booting the one user terminal.
상기 사전 부팅 그룹을 생성하는 단계는,
각 사전 부팅 그룹마다 사전 부팅 그룹 내 각 사용자 단말의 부팅 소요 시간을 계산하고 이를 기초로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정하는 것을 특징으로 하는 방법. 10. The method of claim 9,
The step of creating the pre-boot group includes:
A method comprising calculating a booting time required for each user terminal in the pre-boot group for each pre-boot group, and setting a pre-boot time period for each pre-boot group based on the calculation.
상기 사전 부팅 그룹을 생성하는 단계는,
각 사전 부팅 그룹에서 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간을 기준으로 사전 부팅 시간대를 설정하는 것을 특징으로 하는 방법.14. The method of claim 13,
The step of creating the pre-boot group includes:
A method characterized in that the pre-boot time period is set based on the boot-up time of a user terminal having the longest boot-up time in each pre-boot group.
상기 사전 부팅 그룹을 생성하는 단계는,
부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간에 버퍼 시간을 더 고려하여 사전 부팅 시간대를 설정하는 것을 특징으로 하는 방법.15. The method of claim 14,
The step of creating the pre-boot group includes:
A method characterized in that the pre-boot time zone is set by further considering the buffer time to the boot time of the user terminal having the longest boot time.
각 사용자 단말에 디스크 드라이브 이미지를 할당하고 각 사용자 단말의 디스크 드라이브 이미지를 상기 저장부에 저장하는 단계; 및
상기 원격 부팅이 완료된 사용자 단말로 상기 디스크 드라이브 이미지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.10. The method of claim 9,
allocating a disk drive image to each user terminal and storing the disk drive image of each user terminal in the storage unit; and
The method further comprising the step of transmitting the disk drive image to the user terminal on which the remote booting has been completed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210010851A KR20220107775A (en) | 2021-01-26 | 2021-01-26 | Apparatus and method for preventing bootstorm in No-HDD service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210010851A KR20220107775A (en) | 2021-01-26 | 2021-01-26 | Apparatus and method for preventing bootstorm in No-HDD service |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220107775A true KR20220107775A (en) | 2022-08-02 |
Family
ID=82846060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210010851A KR20220107775A (en) | 2021-01-26 | 2021-01-26 | Apparatus and method for preventing bootstorm in No-HDD service |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220107775A (en) |
-
2021
- 2021-01-26 KR KR1020210010851A patent/KR20220107775A/en active Search and Examination
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230011241A1 (en) | Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine | |
US10628209B2 (en) | Virtual machine monitor to I/O stack conduit in virtual real memory | |
US8645965B2 (en) | Supporting metered clients with manycore through time-limited partitioning | |
CN1906573B (en) | System and method for supporting multiple users | |
US7577959B2 (en) | Providing on-demand capabilities using virtual machines and clustering processes | |
US20130174151A1 (en) | Information processing apparatus and method of controlling virtual machine | |
KR100914077B1 (en) | Method and apparatus for providing virtual server blades | |
US7516336B2 (en) | System and method for power reduction by sequestering at least one device or partition in a platform from operating system access | |
US8452904B2 (en) | Client system, client control method, and computer-readable recording medium configured to store client control program using virtual machine for control by client device | |
US11169846B2 (en) | System and method for managing tasks and task workload items between address spaces and logical partitions | |
US10956170B2 (en) | BIOS setting modification system | |
WO2022143714A1 (en) | Server system, and virtual machine creation method and apparatus | |
EP3783481A1 (en) | Method and apparatus for upgrading virtualized emulator | |
US10721310B2 (en) | Device redirection support at thin client | |
CN112866395B (en) | Service request processing system and method and computing device | |
US10649832B2 (en) | Technologies for headless server manageability and autonomous logging | |
US10783108B2 (en) | Memory management process in a set of information processing devices | |
US10567239B2 (en) | Techniques of providing data to screen saver of thin client | |
US20160373523A1 (en) | Profile management method and apparatus for running of virtual desktop in heterogeneous server | |
KR20220107775A (en) | Apparatus and method for preventing bootstorm in No-HDD service | |
US10630782B2 (en) | Light-weight web browser support for thin client solution | |
AT&T | ||
US10747567B2 (en) | Cluster check services for computing clusters | |
CN114579250A (en) | Method, device and storage medium for constructing virtual cluster | |
US20220334863A1 (en) | Storage system, installation method, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |