KR20220107775A - Apparatus and method for preventing bootstorm in No-HDD service - Google Patents

Apparatus and method for preventing bootstorm in No-HDD service Download PDF

Info

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
Application number
KR1020210010851A
Other languages
Korean (ko)
Inventor
조한범
Original Assignee
주식회사 케이티
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020210010851A priority Critical patent/KR20220107775A/en
Publication of KR20220107775A publication Critical patent/KR20220107775A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

Disclosed is an apparatus and a method for preventing a boot storm from occurring by appropriately distributing simultaneous access requests from multiple users in consideration of the data capacity of a central infrastructure in providing a No-HDD service. According to an embodiment, the apparatus for providing a no-hard (No-HDD) service to a plurality of user terminals without a disk comprises: a pre-boot group creation unit for creating a pre-boot group for each time zone for the plurality of user terminals based on available resources; an image allocator unit for allocating a booting image to each user terminal and storing the booting image of each user terminal in a storage unit; and a remote booting unit for remotely booting by transmitting the booting image to at least one user terminal belonging to the pre-booting group for each time slot.

Description

노하드(No-HDD) 서비스에서 부트스톰을 방지하기 위한 장치 및 방법{Apparatus and method for preventing bootstorm in No-HDD service}Apparatus and method for preventing bootstorm in No-HDD service

본 발명은 노하드 서비스를 위한 장치 및 방법에 관한 것으로, 보다 구체적으로 부트스톰(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 central server 110 , a plurality of user terminals 130 and and a network 150 connecting the central server 110 and the plurality of user terminals 130 .

사용자 단말(130)은, 물리적 디스크가 없는 연산 장치로서, 중앙처리장치(CPU), 그래픽 컨트롤러 및 입력/출력(I/O) 장치를 포함하며, 입력/출력(I/O) 장치는 시리얼 포트 컨트롤러, 패러럴 포트 컨트롤러, USB 컨트롤러, 키보드 및 마우스를 포함할 수 있으나 이에 한정되는 것은 아니다. CPU는 DRAM(dynamic random access memory)을 포함하는 시스템 메모리에 연결되며, PROM(programmable read only memory) 또는 플래시 메모리와 같은 비휘발성 메모리를 포함할 수 있다. 물리적 디스크가 없는 사용자 단말(130)을 디스크리스(diskless) 사용자 단말 또는 노하드 사용자 단말이라고 칭할 수 있다.The user terminal 130 is a arithmetic device without a physical disk, and includes a central processing unit (CPU), a graphic controller, and an input/output (I/O) device, and the input/output (I/O) device is a serial port It may include, but is not limited to, a controller, a parallel port controller, a USB controller, a keyboard, and a mouse. The CPU is coupled to system memory including dynamic random access memory (DRAM) and may include non-volatile memory such as programmable read only memory (PROM) or flash memory. The user terminal 130 without a physical disk may be referred to as a diskless user terminal or a no-hard user terminal.

사용자 단말(130)은, 네트워크(150)를 통해 중앙 서버(110)로부터 원격 부팅을 위한 신호(예, WOL(Wake On Lan))를 수신하면, 전원을 자동으로 켜고, 메인보드에 설정된 PXE(Pre-boot eXecution Environment) 부팅 순서에 따라 중앙 서버(110)로 부팅을 위한 데이터를 요청하고, 중앙 서버(110)로부터 부팅 이미지 및 시스템 데이터를 수신하여 부팅을 완료한다. 부팅이 완료되면, 사용자 단말(130)에는 중앙 서버(110)에서 할당된 디스크 드라이브 이미지가 마운트된다. When the user terminal 130 receives a signal for remote booting (eg, Wake On Lan (WOL)) from the central server 110 through the network 150, the user terminal 130 automatically turns on the power, and PXE ( Pre-boot eXecution Environment) requests booting data to the central server 110 according to the booting order, and completes booting by receiving a boot image and system data from the central server 110 . When booting is completed, the disk drive image allocated from the central server 110 is mounted on the user terminal 130 .

중앙 서버(110)는, 하나 이상의 물리적 디스크와 같은 대용량 저장 장치를 포함하고, 물리적 디스크가 없는 복수의 사용자 단말(130)에 대해 가상 디스크 드라이브를 제공하여 컴퓨팅 환경을 제공하는 장치이다. 중앙 서버(110)는 NIC, 대용량 저장 장치, CPU, 광 드라이브, 입력/출력(I/O) 장치를 포함한다. NIC는 네트워크(150)로의 인터페이스를 제공한다. 대용량 저장 장치는 하나 이상의 RAID 어레이로 구성되거나 독립적으로 동작하는 하나 이상의 하드디스크 드라이브를 포함할 수 있다. 대안적으로, 대용량 저장 장치는 SAN(storage area network) 또는 NAS(network attached storage) 서브시스템을 사용하여 구현될 수 있다.The central server 110 is a device that includes a mass storage device, such as one or more physical disks, and provides a virtual disk drive for a plurality of user terminals 130 without a physical disk to provide a computing environment. The central server 110 includes a NIC, a mass storage device, a CPU, an optical drive, and an input/output (I/O) device. The NIC provides an interface to the network 150 . The mass storage device may be configured as one or more RAID arrays or may include one or more hard disk drives operating independently. Alternatively, the mass storage device may be implemented using a storage area network (SAN) or network attached storage (NAS) subsystem.

중앙 서버(110)는, 사용자 단말들(130)의 동시 다발적인 접속 요청에 따른 부하를 적절히 분산하기 위해, 즉 부트스톰을 방지하기 위해, 사전 부팅 그룹들을 생성하고, 사전 부팅 그룹들에 속하는 사용자 단말들(130)에 대해서는 해당 사용자 단말들(130)이 접속하기 전에 미리 부팅을 진행해 놓는다. 따라서, 사용자 단말들(130)의 접속을 적절히 분산하여 부트스톰을 방지한다. 이에 관해서는 이하에서 도면을 참조하여 보다 자세하게 설명한다.The central server 110 creates pre-boot groups in order to properly distribute the load according to the simultaneous access requests of the user terminals 130 , that is, to prevent a boot storm, and a user belonging to the pre-boot groups For the terminals 130 , booting is performed in advance before the corresponding user terminals 130 connect. Accordingly, the bootstorm is prevented by properly distributing the connections of the user terminals 130 . This will be described in more detail below with reference to the drawings.

네트워크(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 network 150 refers to a connection structure capable of exchanging information between nodes such as terminals and servers, and includes a local area network (LAN), a wide area network (WAN), and the Internet. (WWW: World Wide Web), wired and wireless data networks, telephone networks, wired and wireless television networks, and the like. Examples of wireless data communication networks include 3G, 4G, 5G, 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), World Interoperability for Microwave Access (WIMAX), Wi-Fi, Bluetooth communication, infrared communication, ultrasound communication, Visible Light Communication (VLC), LiFi, and the like, but are not limited thereto.

도 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 central server 110 according to the present embodiment includes a pre-boot group creation unit 210 , an image allocator 220 , a remote boot unit 230 , a service provider 240 , and a storage unit. 250 , which may be implemented as a program, stored in a memory, and executed by at least one processor, or may be implemented as a combination of software and hardware.

사전 부팅 그룹 생성부(210)는, 복수의 사용자 단말(130)들에 대해 사용자 단말(130)의 요청과 무관하게 사전 부팅을 수행할 사전 부팅 그룹들을 시간대별로 생성한다. 사전 부팅 그룹 생성부(210)는, 중앙 서버(110)의 사용 가능한 자원을 기초로 사전 부팅 그룹들을 생성하고, 각 사전 부팅 그룹들의 부팅 시간대를 설정할 수 있다.The pre-boot group generator 210 creates pre-boot groups for performing pre-booting for each of the plurality of user terminals 130 irrespective of the user terminal 130's request. The pre-boot group generator 210 may create pre-boot groups based on available resources of the central server 110 and set a boot time period for each pre-boot group.

사전 부팅 그룹 생성부(210)는, 중앙 서버(110)의 사용 가능한 자원을 기초로 수용 가능한 최대 사용자 단말의 수와, 각 사용자 단말(130)의 부팅시 소요되는 시간을 계산한 후, 수용 가능한 최대 사용자 단말의 수와, 사용자 단말당 부팅 소요 시간을 기초로, 사전 부팅 그룹들을 생성하고, 각 사전 부팅 그룹들의 부팅 시간대를 설정한다. 여기서 사용 가능한 자원은, 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭, 중앙 서버(110)의 전체 네트워크 대역폭을 포함한다. The pre-boot group generator 210 calculates the maximum number of acceptable user terminals based on the available resources of the central server 110 and the time required for booting each user terminal 130 , and then Based on the maximum number of user terminals and the booting time required for each user terminal, pre-boot groups are created, and a booting time period of each pre-boot group is set. Here, the usable resources include a network bandwidth required for booting one user terminal and a total network bandwidth of the central server 110 .

사전 부팅 그룹 생성부(210)는, 중앙 서버(110)의 전체 네트워크 대역폭과 1대의 사용자 단말(130)의 부팅시 필요한 네트워크 대역폭을 이용하여 중앙 서버(110)의 수용 가능한 최대 사용자 단말의 수를 계산한다. 이를 수학식으로 표현하면 다음 (수학식1)과 같다.The pre-boot group generation unit 210 calculates the maximum number of user terminals that can be accommodated in the central server 110 by using the total network bandwidth of the central server 110 and the network bandwidth required for booting one user terminal 130 . Calculate. If this is expressed as an equation, it is as follows (Equation 1).

(수학식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 central server 110 . Accordingly, the pre-boot group generator 210 sets the number of user terminals belonging to each pre-boot group within the maximum number of acceptable user terminals calculated by Equation 1 above. Preferably, in order to prepare for the case where any user terminal 130 not belonging to the pre-boot group boots while performing the pre-boot for the pre-boot group, the number of user terminals in each pre-boot group is It is preferable to set less than the number of acceptable maximum user terminals calculated by (Equation 1). To this end, by adding a buffer value to the network bandwidth required for booting of one user terminal substituted into the denominator of the right term of Equation 1 above, the number of the maximum allowable user terminals can be calculated to be small. For example, when the maximum number of simultaneously accommodated user terminals of the central server 110 is 70, a plurality of pre-boot groups may be created and then 65 user terminals may be allocated to each pre-boot group.

사전 부팅 그룹 생성부(210)는, 사전 부팅 그룹들이 결정되면, 각 사전 부팅 그룹마다 사전 부팅 시간대를 설정한다. 먼저, 사전 부팅 그룹 생성부(210)는, 각 사전 부팅 그룹마다 각 사용자 단말(130)의 부팅시 소요되는 시간을 계산한다. 사용자 단말(130)의 부팅시 소요되는 시간(즉, 부팅 소요 시간)은, 다음의 (수학식2)에 의해 계산된다.When the pre-boot groups are determined, the pre-boot group generator 210 sets a pre-boot time period for each pre-boot group. First, the pre-boot group generator 210 calculates a time required for booting each user terminal 130 for each pre-boot group. The time required for booting of the user terminal 130 (ie, the time required for booting) is calculated by the following (Equation 2).

(수학식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 user terminal 130 is about 1083 MB. When the network bandwidth required for booting of the specific user terminal 130 is 18 MB/s, the booting time of the corresponding user terminal 130 is about 60 seconds (1083/18).

사전 부팅 그룹 생성부(210)는, 각 사전 부팅 그룹마다 각 사용자 단말(130)의 부팅 소요 시간을 계산한 후, 각 사전 부팅 그룹마다 부팅 소요 시간이 가장 긴 사용자 단말(130)을 기준으로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정한다. 예를 들어, 사전 부팅 그룹 A의 사용자 단말(130)의 수가 70대이고, 그 중에서 부팅 소요 시간이 가장 긴 사용자 단말(130)의 부팅 소요 시간이 1분 30초라면, 1분 30초에 버퍼 시간(예, 30초)을 더하여, 해당 사전 부팅 그룹 A의 사전 부팅 시간대로서 8시 40분부터 8시 42분까지를 설정한다. 여기서는 버퍼 시간을 더하는 것으로 설명하나 여기에 제한되는 것은 아니며 버퍼 시간을 고려하지 않고 사전 부팅 시간대를 설정할 수도 있다.The pre-boot group generator 210 calculates the booting time required for each user terminal 130 for each pre-boot group, and then, based on the user terminal 130 having the longest booting time for each pre-boot group. Set the pre-boot time zone of the pre-boot group. For example, if the number of user terminals 130 in the pre-boot group A is 70, and the booting time of the user terminal 130 having the longest booting time among them is 1 minute and 30 seconds, the buffer is set to 1 minute and 30 seconds. By adding the time (eg, 30 seconds), 8:40 to 8:42 is set as the pre-boot time of the corresponding pre-boot group A. Here, it is described as adding the buffer time, but is not limited thereto, and the pre-boot time period may be set without considering the buffer time.

사전 부팅 그룹 생성부(210)는, 각 생성된 사전 부팅 그룹의 정보를 저장부(250)에 저장한다. 사전 부팅 그룹의 정보는, 각 사전 부팅 그룹에 속하는 사용자 단말(130)의 식별정보와, 각 사전 부팅 그룹의 사전 부팅 시간대를 포함한다. The pre-boot group generation unit 210 stores information of each generated pre-boot group in the storage unit 250 . The pre-boot group information includes identification information of the user terminal 130 belonging to each pre-boot group and a pre-boot time period of each pre-boot group.

다시 도 2를 참조하면, 이미지 할당부(220)는, 각 사용자 단말(130)마다 부팅 이미지 및 디스크 드라이브 이미지를 할당한다. 여기서 부팅 이미지는, 원격지의 사용자 단말(130)로 전송되어 사용자 단말(130)이 부팅 동작을 수행할 수 있도록 하는 ISO 이미지이고, 디스크 드라이브 이미지는, 운영체제와 각종 프로그램이 설치되어 있는 디스크 드라이브 이미지이다. 바람직하게, 이미지 할당부(220)는, 마스터 디스크 드라이브 이미지를 생성한 후, 이로부터 복사된 디스크 드라이브 이미지를 각 사용자 단말(130)에 할당한다. 이미지 할당부(220)는, 저장부(250)에 각 사용자 단말(130)에 할당한 부팅 이미지 및 디스크 드라이브 이미지를 각 사용자 단말(130)의 식별정보와 함께 매칭하여 저장한다. Referring back to FIG. 2 , the image allocator 220 allocates a boot image and a disk drive image to each user terminal 130 . Here, the boot image is an ISO image that is transmitted to the remote user terminal 130 so that the user terminal 130 can perform a booting operation, and the disk drive image is a disk drive image in which an operating system and various programs are installed. . Preferably, the image allocator 220 creates a master disk drive image and then allocates the copied disk drive image to each user terminal 130 . The image allocator 220 matches and stores the boot image and disk drive image allocated to each user terminal 130 in the storage 250 together with identification information of each user terminal 130 .

원격 부팅부(230)는, 저장부(250)에 저장된 각 사전 부팅 그룹의 정보를 기초로 각 사전 부팅 그룹의 사용자 단말(130)들을 지정된 사전 부팅 시간대에 원격 부팅시킨다. 구체적으로, 원격 부팅부(230)는, WOL(Wake On Lan) 기능을 이용하여 각 사용자 단말(130)의 전원을 켜고, 전원이 켜진 각 사용자 단말(130)에 대해 PXE(Pre-boot eXecution Environment) 부팅을 수행한다. 원격 부팅부(230)는, 사용자 단말(130)에 대응하는 부팅 이미지를 저장부(250)에서 조회하고 부팅 이미지 및 시스템 데이터를 사용자 단말(130)로 전송한다.The remote booting unit 230 remotely boots the user terminals 130 of each prebooting group based on the information of each prebooting group stored in the storage 250 at a specified prebooting time period. Specifically, the remote booting unit 230 turns on the power of each user terminal 130 using a Wake On Lan (WOL) function, and for each turned on user terminal 130 , a Pre-boot eXecution Environment (PXE) ) to boot. The remote booting unit 230 searches the storage unit 250 for a booting image corresponding to the user terminal 130 and transmits the booting image and system data to the user terminal 130 .

예를 들어, 사전 부팅 그룹 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 user terminals 130 are allocated, at 8:40, 70 user terminals 130 belonging to the pre-booting group A are simultaneously remotely booted, and at 8:42, 70 user terminals belonging to the pre-booting group B are remotely booted. (130) at the same time remote boot. Therefore, if the present invention is applied in a company, the user terminals 130 of the employees are in a booted state before the employees in the company go to work.

서비스 제공부(240)는, 원격 부팅부(230)에 의해 부팅 성공된 사용자 단말(130)에 대해 노하드 서비스를 제공한다, 즉 서비스 제공부(240)는, 부팅에 성공한 사용자 단말(130)에 대해 저장부(250)에 저장된 해당 사용자 단말(130)의 디스크 드라이브 이미지를 전송하여 해당 사용자 단말(130)에 마운트되도록 한다. 따라서, 사용자는 자신의 사용자 단말(130)에 물리적 디스크가 있는 것처럼, 운영체제 및 응용 프로그램을 사용하여 작업을 수행할 수 있다. 서비스 제공부(240)는, 사용자 단말(130)에 의해 작업이 종료되면, 작업 데이터가 반영된 디스크 드라이브 이미지를 저장부(250)에 업데이트하여, 사용자가 추후 다시 접속하였을 때 기존 작업이 그대로 유지되도록 한다.The service providing unit 240 provides a no-hard service to the user terminal 130 successfully booted by the remote booting unit 230 , that is, the service providing unit 240 , the booting successful user terminal 130 . The disk drive image of the corresponding user terminal 130 stored in the storage unit 250 is transmitted to be mounted on the corresponding user terminal 130 . Accordingly, the user can perform tasks using the operating system and application programs as if there is a physical disk in his or her user terminal 130 . When the operation is terminated by the user terminal 130 , the service providing unit 240 updates the disk drive image reflecting the operation data to the storage unit 250 so that the existing operation is maintained when the user reconnects later. do.

도 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 central server 110 accommodates the central server 110 using the entire network bandwidth of the central server 110 and the network bandwidth required for booting one user terminal 130 . Calculate the maximum possible number of user terminals. That is, the maximum number of user terminals that can be accommodated is calculated by Equation 1 above. The maximum number of user terminals that can be accommodated means the maximum number of user terminals that can be simultaneously processed in parallel by the central server 110 .

일 실시예에서, 중앙 서버(110)는, 사전 부팅 그룹에 대해 사전 부팅을 수행하는 중에 사전 부팅 그룹에 속하지 않은 임의의 사용자 단말(130)이 부팅을 하는 경우를 대비하기 위해, 수용 가능한 최대 사용자 단말의 수로서, 상기 (수학식1)에 의해 계산된 실제 수용 가능한 최대 사용자 단말의 수 보다 더 적게 설정하는 것이 바람직하다. 이를 위해, 상기 (수학식1)의 우항의 분모에 대입하는 1대의 사용자 단말의 부팅시 필요한 네트워크 대역폭에 버퍼 값을 더하여 수용 가능한 최대 사용자 단말의 수가 적게 계산되도록 할 수 있다.In one embodiment, the central server 110 may provide the maximum number of acceptable users in case any user terminal 130 not belonging to the pre-boot group boots while performing the pre-boot on the pre-boot group. As the number of terminals, it is preferable to set it to be smaller than the actual number of acceptable maximum user terminals calculated by Equation 1 above. To this end, by adding a buffer value to the network bandwidth required for booting of one user terminal substituted into the denominator of the right term of Equation 1 above, the number of the maximum allowable user terminals can be calculated to be small.

단계 S302에서, 중앙 서버(110)는, 상기 단계 S301에서 계산된 수용 가능한 최대 사용자 단말의 수를 기초로, 사전 부팅 그룹을 생성한다. 중앙 서버(110)는, 사전 부팅 그룹 내의 사용자 단말의 수를 상기 수용 가능한 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성한다. 중앙 서버(110)는, 복수의 사전 부팅 그룹을 생성할 수 있다. 중앙 서버(110)는, 사전 부팅 그룹의 정보, 예를 들어, 그룹 식별정보와 각 사용자 단말(130)의 식별정보를 매칭하여 저장부(250)에 저장한다.In step S302, the central server 110 creates a pre-boot group based on the number of acceptable maximum user terminals calculated in step S301. The central server 110 creates the pre-boot group so that the number of user terminals in the pre-boot group is less than or equal to the maximum number of user terminals that can be accommodated. The central server 110 may create a plurality of pre-boot groups. The central server 110 matches information of the pre-boot group, for example, group identification information and identification information of each user terminal 130 , and stores the matching information in the storage unit 250 .

단계 S303에서, 중앙 서버(110)는, 각 사전 부팅 그룹마다 각 사용자 단말(130)의 부팅시 소요되는 시간(즉, 부팅 수요 시간)을 계산한다. 사용자 단말(130)의 부팅 소요 시간은, 상기 (수학식2)에 의해 계산된다. 예를 들어 설명하면, 윈도우 10 기준으로 1대의 사용자 단말(130)의 부팅시 발생하는 총 데이터량은 약 1083MB이다. 특정 사용자 단말(130)의 부팅시 필요한 네트워크 대역폭이 18MB/s인 경우, 해당 사용자 단말(130)의 부팅 소요 시간은 약 60초(1083/18)이다. In step S303 , the central server 110 calculates a time required for booting each user terminal 130 (ie, a boot demand time) for each pre-boot group. The boot-up time required for the user terminal 130 is calculated by Equation 2 above. For example, based on Windows 10, the total amount of data generated during booting of one user terminal 130 is about 1083 MB. When the network bandwidth required for booting of the specific user terminal 130 is 18 MB/s, the booting time of the corresponding user terminal 130 is about 60 seconds (1083/18).

단계 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 central server 110 sets a pre-boot time period of each pre-boot group created in step S302 based on the boot-up time required for each user terminal 130 calculated in step S303. For example, if the number of user terminals 130 in the pre-boot group A is 70, and the booting time of the user terminal 130 having the longest booting time among them is 1 minute and 30 seconds, the buffer is set to 1 minute and 30 seconds. By adding the time (eg, 30 seconds), 8:40 to 8:42 is set as the pre-boot time of the corresponding pre-boot group A. Here, it is described as adding the buffer time, but is not limited thereto, and the pre-boot time period may be set without considering the buffer time. The central server 110 stores the pre-boot time information of the pre-boot group in the storage unit 250 .

단계 S305에서, 중앙 서버(110)는, 각 사전 부팅 그룹에 속하는 각 사용자 단말(130)마다 부팅 이미지 및 디스크 드라이브 이미지를 할당한다. 여기서 부팅 이미지는, 원격지의 사용자 단말(130)로 전송되어 사용자 단말(130)이 부팅 동작을 수행할 수 있도록 하는 ISO 이미지이고, 디스크 드라이브 이미지는, 운영체제와 각종 프로그램이 설치되어 있는 디스크 드라이브 이미지이다. 바람직하게, 중앙 서버(110)는, 마스터 디스크 드라이브 이미지를 생성한 후, 이로부터 복사된 디스크 드라이브 이미지를 각 사용자 단말(130)에 할당한다. 중앙 서버(110)는, 저장부(250)에 각 사용자 단말(130)에 할당한 부팅 이미지 및 디스크 드라이브 이미지를 각 사용자 단말(130)의 식별정보와 함께 매칭하여 저장한다. In step S305, the central server 110 allocates a boot image and a disk drive image to each user terminal 130 belonging to each pre-boot group. Here, the boot image is an ISO image that is transmitted to the remote user terminal 130 so that the user terminal 130 can perform a booting operation, and the disk drive image is a disk drive image in which an operating system and various programs are installed. . Preferably, the central server 110 creates a master disk drive image and then allocates the copied disk drive image to each user terminal 130 . The central server 110 matches and stores the boot image and the disk drive image allocated to each user terminal 130 in the storage unit 250 together with the identification information of each user terminal 130 .

단계 S306에서, 중앙 서버(110)는, 사전 부팅 시간이 도래하였는지 판단한다. 중앙 서버(110)는, 저장부(250)에 저장된 각 사전 부팅 그룹의 사전 부팅 시간 정보를 기초로 사전 부팅 시간이 도래하였는지 판단할 수 있다.In step S306, the central server 110 determines whether the pre-boot time has arrived. The central server 110 may determine whether the pre-boot time has arrived based on the pre-boot time information of each pre-boot group stored in the storage unit 250 .

특정 사전 부팅 그룹의 사전 부팅 시간이 도래한 경우, 단계 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 central server 110 remotely boots each user terminal 130 of the specific pre-boot group. Specifically, the central server 110 turns on the power of each user terminal 130 using a Wake On Lan (WOL) function, and PXE (Pre-boot eXecution Environment) for each user terminal 130 that is powered on perform boot. The central server 110 searches the storage unit 250 for a booting image corresponding to the user terminal 130 and transmits the booting image and system data to the user terminal 130 .

특정 사전 부팅 그룹의 원격 부팅을 완료한 후, 단계 S308에서, 중앙 서버(110)는, 모든 사전 부팅 그룹의 원격 부팅이 완료되었는지 확인하고, 사전 부팅을 수행할 사전 부팅 그룹이 남아 있는 경우, 단계 S306으로 되돌아 가서 사전 부팅 시간이 도래하였는지 확인하는 과정 및 단계 S307, 그리고 단계 S308을 반복 수행한다. 사전 부팅 그룹들 모두 원격 부팅이 완료된 경우, 중앙 서버(110)는 사전 부팅 작업을 종료한다. 이러한 사전 부팅 작업은, 매일 하루에 한 번씩 수행될 수 있다.After completing the remote booting of a specific pre-boot group, in step S308, the central server 110 checks whether the remote booting of all pre-boot groups is completed, and if there are remaining pre-boot groups to perform pre-booting, step S308 Returning to S306, the process of checking whether the pre-boot time has arrived, and steps S307 and S308 are repeatedly performed. When remote booting of all of the pre-boot groups is completed, the central server 110 ends the pre-booting operation. This pre-booting operation may be performed once a day, every day.

원격 부팅이 완료된 후, 중앙 서버(110)는, 각 사용자 단말(130)에 할당된 디스크 드라이브 이미지를 저장부(250)에서 조회하여 전송한다. 따라서, 해당 사용자 단말(130)에 디스크 드라이브 이미지가 마운트되고, 사용자는 자신의 사용자 단말(130)에 물리적 디스크가 있는 것처럼, 운영체제 및 응용 프로그램을 사용하여 작업을 수행할 수 있다.After the remote booting is completed, the central server 110 inquires the disk drive image assigned to each user terminal 130 from the storage unit 250 and transmits it. Accordingly, the disk drive image is mounted on the corresponding user terminal 130 , and the user can perform an operation using the operating system and the application program as if there is a physical disk in the user terminal 130 .

이상의 도 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 user terminal 130 as an example. That is, the diskless user terminal 130 is provided for each employee in the company, and before the user goes to work, the user terminal 130 of each user is pre-booted, and the user goes to work and separates the user terminal ( 130), you can work immediately without booting. However, it is not limited to this embodiment, and the user accesses the user terminal 130 using TeamViewer or a remote desktop protocol using a computing device such as a personal computer or notebook computer in another remote location, and , it is also possible to receive a screen image from the user terminal 130 to control the user terminal 130 remotely.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.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)

디스크가 없는 복수의 사용자 단말들로 노하드(No-HDD) 서비스를 제공하는 장치에 있어서,
사용 가능한 자원을 기초로 상기 복수의 사용자 단말에 대해 시간대별 사전 부팅 그룹을 생성하는 사전 부팅 그룹 생성부;
각 사용자 단말마다 부팅 이미지를 할당하고 각 사용자 단말의 부팅 이미지를 저장부에 저장하는 이미지 할당부; 및
상기 시간대별로 상기 사전 부팅 그룹에 속하는 적어도 하나의 사용자 단말들로 상기 부팅 이미지를 전송하여 원격 부팅시키는 원격 부팅부를 포함하는 장치.
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항에 있어서,
상기 사전 부팅 그룹 생성부는,
전체 네트워크 대역폭과 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.
제2항에 있어서,
상기 사전 부팅 그룹 생성부는,
각 사전 부팅 그룹 내의 사용자 단말의 수를 상기 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성하는 것을 특징으로 하는 장치.
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.
제2항에 있어서,
상기 사전 부팅 그룹 생성부는,
상기 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.
제1항에 있어서,
상기 사전 부팅 그룹 생성부는,
각 사전 부팅 그룹마다 사전 부팅 그룹 내 각 사용자 단말의 부팅 소요 시간을 계산하고 이를 기초로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정하는 것을 특징으로 하는 장치.
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.
제5항에 있어서,
상기 사전 부팅 그룹 생성부는,
각 사전 부팅 그룹에서 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간을 기준으로 사전 부팅 시간대를 설정하는 것을 특징으로 하는 장치.
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.
제6항에 있어서,
상기 사전 부팅 그룹 생성부는,
부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간에 버퍼 시간을 더 고려하여 사전 부팅 시간대를 설정하는 것을 특징으로 하는 장치.
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.
제1항에 있어서,
상기 이미지 할당부는,
각 사용자 단말에 디스크 드라이브 이미지를 할당하고 각 사용자 단말의 디스크 드라이브 이미지를 상기 저장부에 저장하며,
상기 장치는,
상기 원격 부팅부에 의해 원격 부팅이 완료된 사용자 단말로 상기 디스크 드라이브 이미지를 전송하는 서비스 제공부를 더 포함하는 것을 특징으로 하는 장치.
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.
중앙 서버에서 디스크가 없는 복수의 사용자 단말들로 노하드(No-HDD) 서비스를 제공하는 방법에 있어서,
사용 가능한 자원을 기초로 상기 복수의 사용자 단말에 대해 시간대별 사전 부팅 그룹을 생성하는 단계;
각 사용자 단말마다 부팅 이미지를 할당하고 각 사용자 단말의 부팅 이미지를 저장부에 저장하는 단계; 및
상기 시간대별로 상기 사전 부팅 그룹에 속하는 적어도 하나의 사용자 단말들로 상기 부팅 이미지를 전송하여 원격 부팅시키는 단계를 포함하는 방법.
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.
제9항에 있어서,
상기 사전 부팅 그룹을 생성하는 단계는,
전체 네트워크 대역폭과 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.
제10항에 있어서,
상기 사전 부팅 그룹을 생성하는 단계는,
각 사전 부팅 그룹 내의 사용자 단말의 수를 상기 최대 사용자 단말의 수 이하가 되도록 사전 부팅 그룹을 생성하는 것을 특징으로 하는 방법.
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.
제10항에 있어서,
상기 사전 부팅 그룹을 생성하는 단계는,
상기 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.
제9항에 있어서,
상기 사전 부팅 그룹을 생성하는 단계는,
각 사전 부팅 그룹마다 사전 부팅 그룹 내 각 사용자 단말의 부팅 소요 시간을 계산하고 이를 기초로 각 사전 부팅 그룹의 사전 부팅 시간대를 설정하는 것을 특징으로 하는 방법.
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.
제13항에 있어서,
상기 사전 부팅 그룹을 생성하는 단계는,
각 사전 부팅 그룹에서 부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간을 기준으로 사전 부팅 시간대를 설정하는 것을 특징으로 하는 방법.
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.
제14항에 있어서,
상기 사전 부팅 그룹을 생성하는 단계는,
부팅 소요 시간이 가장 긴 사용자 단말의 부팅 소요 시간에 버퍼 시간을 더 고려하여 사전 부팅 시간대를 설정하는 것을 특징으로 하는 방법.
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.
제9항에 있어서,
각 사용자 단말에 디스크 드라이브 이미지를 할당하고 각 사용자 단말의 디스크 드라이브 이미지를 상기 저장부에 저장하는 단계; 및
상기 원격 부팅이 완료된 사용자 단말로 상기 디스크 드라이브 이미지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
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.
제9항 내지 제16항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium as a computer program for executing the method according to any one of claims 9 to 16 through a computer system.
KR1020210010851A 2021-01-26 2021-01-26 Apparatus and method for preventing bootstorm in No-HDD service KR20220107775A (en)

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)

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