KR102624607B1 - 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 - Google Patents

고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 Download PDF

Info

Publication number
KR102624607B1
KR102624607B1 KR1020230026974A KR20230026974A KR102624607B1 KR 102624607 B1 KR102624607 B1 KR 102624607B1 KR 1020230026974 A KR1020230026974 A KR 1020230026974A KR 20230026974 A KR20230026974 A KR 20230026974A KR 102624607 B1 KR102624607 B1 KR 102624607B1
Authority
KR
South Korea
Prior art keywords
rack
workload
latency
server
server nodes
Prior art date
Application number
KR1020230026974A
Other languages
English (en)
Other versions
KR20230035016A (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 삼성전자주식회사
Publication of KR20230035016A publication Critical patent/KR20230035016A/ko
Application granted granted Critical
Publication of KR102624607B1 publication Critical patent/KR102624607B1/ko

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

워크로드를 마이그레이션하는 방법은, 랙 시스템의 복수의 서버 노드들에서 구동되는 복수의 애플리케이션들로부터 생성된 워크로드들을 수신하는 단계, 상기 워크로드들에 대한 레이턴시 요건들을 모니터링하고 워크로드에 대한 상기 레이턴시 요건의 위반을 감지하는 단계, 상기 랙 시스템의 시스템 이용 정보를 수집하는 단계, 상기 워크로드를 상기 랙 시스템에 있는 다른 서버 노드들로 마이그레이션 하는데 대한 보상들을 계산하는 단계, 상기 복수의 서버 노드들 중 상기 보상들을 최대화하는 타깃 서버 노드를 판단하는 단계, 그리고 상기 워크로드를 상기 타깃 서버 노드로 마이그레이션 하는 단계를 포함한다.

Description

고성능 SSD들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링{RACK-LEVEL SCHEDULING FOR REDUCING THE LONG TAIL LATENCY USING HIGH PERFORMANCE SSDS}
본 발명은 SSD (solid-state drive)들을 포함하는 랙 시스템(rack system)에 관한 것으로, 좀 더 상세하게는, 고성능 SSD들의 롱-테일 레이턴시(long tail latency)들을 감소시키기 위한 랙-레벨(rack-level)의 스케줄링을 제공하는 시스템 및 방법에 관한 것이다.
NVMe (Non-volatile memory express)는 PCIe (peripheral component interconnect express) 버스를 통하여 불휘발성 메모리 서브 시스템(예컨대, SSD)과 통신을 수행하기 위한 호스트 소프트웨어용 레지스터-레벨 인터페이스를 정의한다. NVMeoF (NVMe over fabrics) (또는 줄여서 NVMf)는 이더넷(Ethernet), Fibre 채널, InfiniBand, 및 다른 네트워크 패브릭(network fabric)들과 같은 다양한 스토리지 네트워킹 패브릭들을 이용하여 NVMe 블록 스토리지 프로토콜을 지원하는 공용 아키텍처를 정의한다. NVMeoF는 기본적인 패브릭들을 이용하여 TCP/IP (Transmission Control Protocol/Internet Protocol) 및 원거리 다이렉트 메모리 액세스 (remote direct memory access; RDMA)를 위한 다른 네트워크 계층과 양립할 수 있다.
다양한 애플리케이션들을 타깃으로 하는 많은 대규모의 서비스들(예를 들어, 클라우드-기반의 서비스들)은 데이터 센터에 있는 복수의 서버들에 의해 호스팅 될 수 있다. 그러한 서비스들은 종종 상호 작용을 해야 하는 것이 요구되므로, 응답 시간에 민감함을 초래할 수 있다. 따라서, 높은 스루풋을 제공하면서 낮은 데이터 액세스 레이턴시를 갖는 고성능 스토리지 장치들이 오늘날의 데이터 센터들에서는 일반화되고 있다.
특히, NVMe 기반의 SSD들 및 NVMeoF 장치들은 그것의 대역폭, 낮은 레이턴시, 및 우수한 랜덤 입출력 성능으로 인하여 데이터센터용으로 선택하는 스토리지가 되어가고 있다. 그러나, 이들 고성능 스토리지 장치들은 가비지 컬렉션(garbage collection)과 같은 백그라운드 작업들로 인한 주기적인 레이턴시 스파이크(spike)들을 야기할 수 있다. 반면, 서비스들을 구동하는 애플리케이션들이 기본적인 패브릭을 이용하여 스토리지 장치들의 중앙 처리 장치들(CPUs), 메모리, 디스크 대역폭과 같은 공유된 시스템 리소스들을 놓고 경쟁할 때, 같은 서버에 공통으로 위치하는 복수의 서비스들은 레이턴시 예측 불가능성을 증가시킬 수 있다. 레이턴시 스파이크들 및 예측불가능성은 시스템 성능을 상당히 감소시키는 롱 테일 레이턴시로 이어질 수 있다.
워크로드 스케줄링은, 리소스들을 테넌트 애플리케이션(tenant application)으로 분배하는 멀티-테넌트 애플리케이션과 관련하여 중요한 이슈이다. 애플리케이션 콘테이너는 가상화 스킴의 유형에서 구동되는 애플리케이션 인스턴스(application instance)를 제어할 수 있다. 이것은 컨테이너-기반의 가상화(container-based virtualization)로 일컬어진다. 컨테어너-기반의 가상화에서, 애플리케이션의 각각의 인스턴스는, 시스템의 운영 체제(OS)를, 라이브러리들 및 다른 리소스들을 위한 단순하게 다른 코드 컨테이너들과 공유할 수 있다.
데이터 센터의 전형적인 대규모의 시스템은 데이터센터-레벨 스케줄러를 갖는다. 데이터센터-레벨 스케줄러는, CPU 코어들과 메모리 리소스들을 포함하는 애플리케이션의 QoS (quality of service) 요건과 기본의 서버-레벨 리소스들을 고려하여, 워크로드 마이그레이션에 대한 의사 결정을 집권화할 수 있다. 그러나, 서버-레벨 리소스들은 스토리지 시스템 리소스들에 대한 제한된 지원을 제공한다. 일반적으로, 데이터센터-레벨 스케줄러는 하나의 스토리지 장치로부터 또 다른 스토리지 장치로의 데이터 이동을 최소화하는 것을 시도할 수 있다. 예를 들어, 워크로드를 마이그레이션 할 때, 데이터센터-레벨 스케줄러는, 데이터가 저장되는 현재의 노드로의 근접성 및/또는 현재의 노드로부터 타깃 노드로의 데이터 이동을 위한 이용 가능한 대역폭에 기초하여, 복수의 후보 노드들 중 타깃 노드를 선택한다.
데이터센터-레벨 스케줄러가 글로벌-레벨의 리소스 가시성(global-level resource visibility) 및 복잡한 스케줄링 알고리즘을 제공하는 반면, 몇몇 단점들이 있다. 첫째로, 데이터센터-레벨 스케줄러는 더 낮은 레이턴시를 갖는 고성능 스토리지 드라이버들을 담당할 수 없다. 고성능 스토리지 드라이버들은 높은 저장 용량의 스토리지 장치들을 지원할 수 있으며, 가비지 컬렉션 (garbage collection), 웨어 레벨링 (wear leveling), 배드 블록 리맵핑 (bad block remapping), 쓰기 증폭, 오버 프로비저닝(overprovisioning) 등과 같은 스토리지 장치들의 다양한 내부 작업들을 관리하고 조율하기 위해 서버 리소스들을 효율적으로 공유할 수 있다. 그러나, 데이터센터-레벨 스케줄러는 고성능 스토리지 드라이버를 최대 용량으로 효율적으로 이용하지 않는다. 게다가, 데이터센터-레벨 스케줄러는, 스케줄러가 데이터센터 내의 랙 시스템들에 워크로드들을 부정확하게 배치하는 경우에서의 정정 동작을 취할 때, 추가적인 복잡성을 야기한다. 비록 데이터센터-레벨 스케줄러가 데이터센터 레벨에서 정장 동작을 수행할 수 있다 하더라도, 그것은 최신의 스토리지 장치 프로토콜들이 지원하는 데이터 지역성(locality) 및 원격 실행 능력을 효율적으로 이용할 수 없다.
특허 문헌 1: 한국공개특허공보 제10-2018-0106822호 (2018.10.01.)
본 발명의 목적은 고성능 SSD의 성능을 향상시키기 위한 랙-레벨의 스케줄링을 제공하는데 있다.
본 발명의 실시 예에 따른 워크로드를 마이그레이션하는 방법은, 랙 시스템의 복수의 서버 노드들에서 구동되는 복수의 애플리케이션들로부터 생성된 워크로드들을 수신하는 단계, 상기 워크로드들에 대한 레이턴시 요건들을 모니터링하고 워크로드에 대한 상기 레이턴시 요건의 위반을 감지하는 단계, 상기 랙 시스템의 시스템 이용 정보를 수집하는 단계, 상기 워크로드를 상기 랙 시스템에 있는 다른 서버 노드들로 마이그레이션하는데 대한 보상들을 계산하는 단계, 상기 보상들을 최대화하는 상기 복수의 서버 노드들 중 타깃 서버 노드를 판단하는 단계, 그리고 상기 워크로드를 상기 타깃 서버 노드로 마이그레이션 하는 단계를 포함한다.
본 발명의 실시 예에 따른 랙 시스템은, 복수의 서버 노드들, 상기 랙 시스템에 부착된 복수의 스토리지 장치들, 상기 복수의 서버 노드들과 상기 복수의 스토리지 장치들 사이의 연결을 제공하는 패브릭, 그리고 테일 레이턴시 변칙 모니터(TLAM) 및 타깃 발견 유닛(TDU)을 포함하는 랙-레벨 스케줄러를 포함하되, 상기 TLAM은 상기 워크로드들에 대한 레이턴시 요건들을 모니터링하고 워크로드에 대한 상기 레이턴시 요건의 위반을 검출하도록 구성되고, 상기 TDU는 상기 랙 시스템의 시스템 이용 정보를 수집하고 상기 워크로드를 상기 랙 시스템의 다른 서버 노드들로 마이그레이션하는데 대한 보상들을 계산하고 상기 복수의 서버 노드들 중 상기 보상을 최대화하는 타깃 서버 노드를 판단하도록 구성된다.
이벤트들의 구현 및 조합의 다양한 특허성 있는 세부사항들을 포함하는, 위의 그리고 다른 바람직한 특징들이, 첨부된 도면들을 참조하여 좀 더 상세하게 설명될 것이고 청구항들에 의해 지시될 것이다. 본 명세서에서 설명되는 특정한 시스템들 및 방법들은 한정하기 위한 것이 아니며 단지 예시적으로 보여주기 위한 것이다. 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에 의해 잘 이해될 것과 같이, 본 명세서에서 설명되는 원리들 및 기술적 특징들은 본 개시의 범위를 벗어나지 않는 범위 내에서 다양한 그리고 수많은 실시 예들에 적용될 것이다.
본 발명의 실시 예에 따르면, 랙-레벨의 스케줄링 방법을 제공함으로써 SSD의 성능을 향상시킬 수 있다.
본 출원의 일부로써 첨부된 도면들은 바람직한 실시 예를 도시한다. 그리고 앞서 설명된 일반적인 설명들과 함께 이하 설명될 바람직한 실시 예의 상세한 설명이 본 발명을 설명하기 위해 제공될 것이다.
도 1은 데이터센터-레벨 스케줄러를 구동하는 예시적인 SSD의 랜덤 쓰기-액세스 레이턴시 분포를 보여준다.
2는 예시적인 SSD의 정규화된 레이턴시 분포를 보여준다.
도 3은 다양한 스케줄링 및 리소스 관리 스킴들을 위한 함께 실행하는 컨테이너화 된 애플리케이션들의 스루풋 및 레이턴시 특성들을 보여준다.
도 4는 본 발명의 실시 예에 따른 랙-레벨 스케줄러를 포함하는 예시적인 스토리지 시스템을 보여준다.
도 5는 본 발명의 실시 예에 따른 타깃 발견 유닛에 의해 채용되는 예시적인 토큰 링의 토폴로지를 보여준다.
도 6은 본 발명의 실시 예에 따른 랙-레벨 스케줄러를 포함하는 랙 시스템의 예를 보여준다.
도 7은 본 발명의 실시 예에 따라 워크로드를 마이그레이션하는 것을 보여주는 순서도이다.
도면들은 필수적으로 스케일에 맞게 도시되지 않을 수 있으며, 유사한 구조 또는 기능들의 구성 요소들은, 도면들을 통하여 일반적으로 도시의 목적을 위해 유사한 참조 번호에 의해 표시된다. 도면들은 단지 본 명세서에서 설명되는 다양한 실시 예들의 설명을 가능하게 하기 위해 의도된 것이다. 도면들은 본 명세서에서 개시된 것들의 모든 국면을 설명하지는 않으며, 청구항들의 범위를 제한하기 위한 것도 아니다.
본 명세서에서 개시된 특징들 및 교시들 각각은 고성능 SSD들의 롱 테일 레이턴시들을 감소시키기 위한 랙-레벨 스케줄러를 제공하기 위한 다른 특징들 및 교시들과 함께 또는 분리되어 사용될 수 있다. 이러한 많은 추가적인 특징들 및 교시들이 분리되거나 결합되어 이용되는 대표적인 예들은 첨부된 도면들을 참조하여 상세히 설명된다. 이러한 상세한 설명은 단지 본 교시들의 측면들을 실시하기 위한 기술 분야에서 상세한 지식을 가진 자를 교시하기 위한 것이고, 청구항들의 범위를 제한하지 않는다. 그러므로, 상세한 설명에 상술된 특징들의 조합들은 넓은 의미에서 교시를 실시할 필요가 없을 수도 있고, 대신에 본 교시들 특히 대표적인 실시 예들을 설명하기 위해 단지 교시된다.
아래의 설명에서, 설명의 목적으로만 특정 명칭이 본 발명의 완전한 이해를 제공하기 위해 설명된다. 그러나, 이러한 특정 세부 사항들은 본 발명의 사상을 실시하기 위해 필요하지 않는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자에게 명백할 것이다.
상세한 설명의 몇몇 부분들은 알고리즘 및 컴퓨터 메모리 내 데이터 비트들에 대한 동작들의 심볼 표현의 측면에서 제공된다. 이들 알고리즘 설명들 및 표현들은 다른 분야의 당업자들에게 작업의 실체를 효과적으로 전달하기 위해, 데이터 처리 분야의 당업자들에 의해 사용된다. 여기에서 알고리즘은 일반적으로 소망하는 결과에 이르는 단계들에 대한 일관성 있는 순서일 수 있다. 단계들은 물리적 양의 물리적 조작이 필요한 것들이다. 일반적으로, 필수적이진 않지만, 이러한 양들은 저장, 전달, 결합, 비교, 그리고 다르게 조작될 수 있는 전기 또는 자기 신호의 형태를 취한다. 이러한 신호들을 비트들, 값들, 요소들, 심볼들, 특징들, 용어들, 숫자들 등으로 지칭하는 것이 주로 공통적인 사용의 이유로 때때로 편리한 것으로 입증되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리량과 연관되며 단지 이러한 양에 적용되는 편리한 라벨이라는 것을 명심해야 한다. 아래의 설명으로부터 명백한 바와 같이 특별히 다르게 설명되지 않는 한, 설명에서, 이러한 "처리", "컴퓨팅", "계산", "결정", "표시" 등과 같은 용어를 사용하는 논의는 컴퓨터 시스템 또는 컴퓨터 시스템의 레지스터 및 메모리들 내에서 물리적(전기적) 양으로서 나타나는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 정보 스토리지, 전송 또는 표시 장치들 내에서 물리적 양으로서 유사하게 나타나는 다른 데이터로 조작 및 변형하는 유사한 전자 컴퓨팅 장치의 활동 및 과정을 나타내는 것으로 이해된다.
본 명세서에서 설명된 알고리즘은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치들과 관련된 것이 아니다. 다양한 일반적인 목적의 시스템들, 컴퓨터 서버들, 또는 개인용 컴퓨터들은 본 명세서의 교시에 따른 프로그램과 함께 사용될 수 있거나 요구된 방법 단계들을 수행하기 위한 보다 특수화된 장치를 구성하는 것이 편리할 수 있다. 이러한 다양한 시스템을 위해 요구되는 구조는 이하의 설명에서 나타날 것이다. 다양한 프로그래밍 언어들이 본 명세서에서 기재된 바와 같이 발명의 교시를 구현하는데 사용될 수도 있는 것을 이해할 수 있을 것이다.
또한, 대표적인 예들에 대한 다양한 특징들 그리고 종속항들은 본 발명의 교시에 대한 유용한 추가적인 실시 예들을 제공하기 위해 명시적이지 않은 그리고 열거되지 않은 방식으로 결합될 수 있다. 또한 모든 값의 범위 또는 독립체들의 그룹들의 암시들은 모든 가능한 중간 값 또는 당해 발명을 제한하는 목적뿐만 아니라 본래의 개시 목적을 위한 중간 독립체들을 개시하는 것이 주목된다. 또한, 명시적 기준 및 도면에 도시된 구성 요소들의 형상은 본 명세서에서 실시되는 방식을 이해할 수 있도록
현 시스템 및 방법은 데이터센터 내의 랙 시스템 내에서 워크로드들을 효율적으로 스케줄링할 수 있는 랙-레벨 스케줄러를 제공한다. "랙 시스템(rack system), "랙(rack)", "새시(chassis)", "서버 랙(server rack)", 및 "랙 서버(rack server)"와 같은 용어들은 본 개시의 범위를 벗어나지 않는 범위 내에서 본 명세서에서 교환적으로 사용될 수 있다. 싱글 랙 유닛의 새시는 하나 또는 그 이상의 서버들을 포함할 수 있다.
본 랙-레벨 스케줄러는 랙 시스템에 있는 복수의 서버들 중에서 롱 테일 레이턴시를 갖는 워크로드들을 검출하고 이동시킬 수 있다. 특히, 본 랙-레벨 스케줄러는 NVMe 기반의 SSD와 같은 고성능 스토리지 드라이브들 및 NVMeoF 장치들과 같은 분산된 고성능 스토리지 드라이브들의 성능을 최대화할 수 있다. 본 랙-레벨 스케줄러는 다른 랙들에 있는 노드들 사이에서 메시지 전송을 위한 데이터 이동 및 오버헤드를 최소화한다는 점에서 기존의 글로벌 리소스 관리 스킴과는 구별된다. 최소화된 데이터 이동 및 오버헤드는 워크로드들의 테일 레이턴시를 감소시키기 위한 효율적인 솔루션을 제공할 수 있다.
나아가, 본 랙-레벨 스케줄러는 분산 고성능 스토리지 시스템에서 워크로드들을 관리할 수 있는 스케일 가능한 랙-레벨 스케줄링 솔루션을 제공한다. 본 랙-레벨 스케줄러는 드라이버에 구현될 수 있으며, 부가된 스토리지 장치들, 운영 체제, 및 랙 시스템의 다른 서브시스템들 및 구성 요소들에 대한 대규모의 변경 없이 현존하는 서버 랙들에 채용될 수 있다.
본 발명의 실시 예에 따르면, 본 스케줄러는 데이터센터-레벨 스케줄러를 보완하는 랙-레벨 워크로드 스케줄링을 제공한다. 본 랙-레벨 스케줄러는 데이터센터-레벨 스케줄러의 워크로드 스케줄링을 우선시하는 협력적인 워크로드 마이그레이션을 갖춘 보정 동작들을 수행할 수 있다. 네트워크가 부가된 스토리지 장치들의 경우에 있어서, 본 랙-레벨 스케줄러는 드라이버기반의 스토리지 관리 솔루션을 제공하여 고성능 NVMeoF와 호환이 되는 SSD 장치들과 같은 부가된 스토리지 장치들의 성능을 최대화할 수 있다.
본 스케줄러는 데이터센터-레벨 스케줄링을 보완하는 랙 레벨에서 스케줄링 지능의 제 2 레벨을 제공한다. 특히, 본 랙-레벨 스케줄러는 NVMeoF 네트워킹 스택에 있는 고성능 분산 SSD들에 대한 워크로드들을 관리하는데 사용되어, 컨테이너화 된 애플리케이션들이 애플리케이션-레벨 인터페이스 없이 시스템 이용을 최대화하도록 구동될 수 있다.
도 1은 데이터센터-레벨 스케줄러를 구동하는 예시적인 SSD의 랜덤 쓰기-액세스 레이턴시 분포를 보여준다. 데이터센터-레벨 스케줄러는 컨테이너화 된 애플리케이션들에 의해 생성된 워크로드들을 스케줄링 한다. 도 1에 도시된 레이턴시 분포는, 데이터센터-레벨 스케줄러가 워크로드들의 롱 테일 레이턴시를 감소시키는데 있어서 매우 효율적이지 못하다는 점에서, 데이터센터-레벨 스케줄러의 내재하는 이슈들을 보여준다. 본 예에 있어서, 레이턴시의 80%는 100μs 내에 있으며, 요청들의 1%는 3.9ms 보다 긴 레이턴시를 갖는다.
도 2는 예시적인 SSD의 정규화된 레이턴시 분포를 보여준다. 정규화된 레이턴시 분포는 더 많은 서비스들이 동일한 서버에서 동시에 구동됨에 따라 롱 테일 레이턴시가 지수적으로 증가하는 것을 보여준다. 즉, 서비스들은 CPU, 메모리 스토리지 및 네트워크 리소스들을 포함하는 공통 서버 리소스들을 두고 경쟁하며, 이는 증가된 레이턴시를 초래한다.
도 3은 다양한 스케줄링 및 리소스 관리 스킴들을 위한 공동으로 실행되는 컨테이너화 된 애플리케이션들의 스루풋 및 레이턴시 특성들을 보여준다. 본 실시 예에 있어서, 리소스 관리 스킴들을 스케줄링하는 native, Mesos 및 Cgroups, 그리고 NVMeoF 각각을 위한 워스트(worst) 및 베스트(best) p99 레이턴시들을 포함하는 총 8개의 워크로드들이 도시되었다. 비교 결과는, 복수의 워크로드들이 동시에 실행될 때 워크로드들의 테일 레이턴시를 줄이는데 있어서, Mesos 및 Cgroups과 같은 현존하는 스케줄링 및 리소스 관리 스킴들은 native 및 NVMeoF 스킴들만큼 효율적이지 못하다는 것을 보여준다. 비교 결과에서 흥미로운 점은 워스트 케이스 p99 레이턴시와 베스트 케이스 p99 레이턴시 사이의 차이는 native 및 NVMeoF 스킴들에 비해 Mesos 및 Cgroups 스킴들에서 더 크다는 것이다. 이것은 최악으로 실행되는 워크로드들을 현재의 노드로부터 더 많은 리소스들을 갖는 또 다른 노드로 이동시키는 것이 베스트 케이스 레이턴시와 워스트 케이스 레이턴시 사이의 차이를 감소시킬 수 있다는 것을 나타낸다.
전통적으로, 워크로드를 이동시킬 때 워크로드와 관련된 데이터를 마이그레이션 하는 것이 요구되고 데이터 마이그레이션은 어렵고 시간 소모적인 작업이기 때문에, 복수의 노드들 사이에서의 워크로드 이동은 어려운 작업이다. 그러나, NVMeoF 기반의 시스템은, 랙에서 구동되는 복수의 서버 노드들이, 이더넷과 같은 고속의 패드릭을 통하여 동일한 랙에 부착되는 복수의 NVMeoF 스토리지 장치들에 동시에 연결될 수 있도록 한다. 예를 들어, 이더넷은 40Gbps 또는 그 이상의 함께 배치되는 서버 사이에서 고속의/광대역의 링크를 제공할 수 있다. 고속의/광대역의 링크를 사용하여, 테일 레이턴시 요건(예를 들어, 최악의 99% 레이턴시)을 충족시키지 못하는 워크로드들은, 현존하는 데이터센터-레벨 스케줄러들에 비해, 더 빨리 그리고 더 쉽게 한 서버 노드로부터 다른 서버 노드로 마이그레이션 될 수 있다.
도 4는 본 발명의 실시 예에 따른 랙-레벨 스케줄러를 포함하는 예시적인 스토리지 시스템을 보여준다. 랙 시스템(400)은 복수의 컨테이너화 된 애플리케이션들(401a 내지 401n), 및 복수의 (지역적으로 또는 원격으로) 부착된 스토리지 장치들(421a 내지 421m)을 포함한다. 스토리지 드라이버(410)는 컨테이너화 된 애플리케이션들(401a 내지 401n)에 의해 생성된 워크로드들을 관리하고 스케줄링하여, 부착된 스토리지 장치들(421a 내지 421m) 중 하나 또는 그 이상을 액세스할 수 있다. 스토리지 드라이버(410)는 알맞게 대몬(daemon), 커널 모듈, 또는 장치 드라이버로써 일컬어질 수 있다. 스토리지 장치들(421a 내지 421m)은 랙 시스템(400)의 복수의 장치 포트들에 연결 될 수 있다.
랙 시스템(400)은 복수의 서버 노드들을 포함할 수 있다. 서버 노드들 각각은 하나 또는 그 이상의 컨테이너화 된 애플리케이션들(401)을 구동할 수 있다. 예를 들어, 서버 노드는 8개 (또는 그 이상의) 컨테이너화 된 애플리케이션들을 구동할 수 있다. 서버 노드들 중 일부는, 예컨대, WINDOWS 및 LINUX와 같은, 공통 호스트 운영 시스템을 구동하는 하나 또는 그 이상의 가상화된 머신들을 구동할 수 있다. 컨테이너화 된 애플리케이션들(401)은 하나 또는 그 이상의 부착된 스토리지 장치들(421)에 저장된 데이터를 동시에 액세스할 수 있다.
스토리지 장치들(421a 내지 421m) 각각은 하드웨어 구성 요소(예를 들어, 시스템-온-칩 모듈) 및/또는 플래시 메모리와 같은 스토리지 장치의 저장 매체에 저장된 데이터에 액세스하는 것을 제어하기 위한 펌웨어를 포함한다. 본 발명의 실시 예에 따르면, 스토리지 드라이버(410)는 스토리지 장치(421)의 펌웨어와 통신하기 위한 피드백 루프를 채용할 수 있다. 랙 시스템(400)에 함께 배치되는 복수의 다수의 서버 노드들(A plurality of multiple server nodes)은 컨테이너화 된 애플리케이션들(401a 내지 401n)을 구동할 수 있다. 런타임 동안, 컨테이너화 된 애플리케이션들(401a 내지 401n)은 스토리지 드라이버(410)로의 워크로드를 생성할 수 있다. 스토리지 드라이버(410)는 랙 레벨에서 관련된 스토리지 장치들(421a 내지 421m)의 제어 및 운영들을 관리한다.
스토리지 드라이버(410)는 특정한 서버 노드를 위한 호스트 OS의 커널 공간 또는 사용자 공간에서 구동될 수 있다. 스토리지 드라이버(410)는 워크로드들을 타깃 스토리지 장치(421)의 펌웨어로 전달할 수 있다. 타깃 스토리지 장치(421)의 펌웨어는 타깃 스토리지 장치(421)에 대한 워크로드들의 실제 동작(예를 들어, 읽기, 쓰기, 및 변형)을 수행할 수 있다.
본 발명의 실시 예에 따르면, 펌웨어는 스토리지 장치(421)의 데이터를 액세스할 때 데이터 압축 및/또는 복사를 관리하는 스토리지 장치(421)의 하드웨어 구성요소(예를 들어, 시스템-온-칩 모듈)에 구현될 수 있다. 지시된 동작이 완료될 때, SSD 펌웨어는 스토리지 드라이버(410)로의 응답(예를 들어, 성공 또는 실패)을 생성하고 리턴시킬 수 있다. 스토리지 드라이버(410)는 실행된 동작의 완료를 보고하기 위해 응답을 호스트 OS로 전달할 수 있다. 응답은 한 서버 노드로부터 또 다른 서버 노드로의 워크로드 마이그레이션이 성공 또는 실패하였는지를 나타내는 표시를 포함할 수 있다.
본 발명의 실시 예에 따르면, 스토리지 드라이버(410)는 테일 레이턴시 변칙 모니터(tail latency anomaly monitor; TLAM)(411), 타깃 발견 유닛(target discovery unit; TDU)(412), 및 서비스 마이그레이션 유닛(service migration unit; SMU)(413)을 포함할 수 있다. TLAM(411)은 백그라운드 대몬으로써 또는 대응하는 서버 노드의 부트 업 후에 시작되는 스토리지 드라이버(410)의 일부로써 시작될 수 있다.
본 발명의 실시 예에 따르면, TLAM(411)은 미리 정해진 레이턴시 요건을 위반하는 문턱 레이턴시(예를 들어, p99 레이턴시)를 갖는 각각의 워크로드를 끊임없이 모니터링하고 태깅(tag)할 수 있다. 워크로드에 대한 레이턴시 요건의 위반은 워크로드의 테일 레이턴시가 미리 정해진 문턱 레이턴시보다 높아졌을 때 감지될 수 있다. 만일 TLAM(411)이 미리 정해진 레이턴시 요건을 위반한 것을 감지하면, TLAM(411)은 워크로드의 ID 번호를 마킹하고 TDU(412)로 전달할 수 있다.
TDU(412)는 시스템 이용 정보를 샘플링하여 랙 시스템(400)에서 구동되는 다른 서버 노드들과 지역적으로 공유할 수 있다. TDU(412)는 시스템 이용 정보에 기초하여 워크로드를 한 서버 노드로부터 또 다른 서버 노드로 마이그레이션하기 위한 결정을 할 수 있다.
본 발명의 실시 예에 따르면, TDU(412)는 토큰 링 토폴로지(token ring topology)를 이용하여 동일한 랙 내의 다른 서버 노드들과 시스템 이용 정보를 교환할 수 있다. 도 5는 본 발명의 실시 예에 따른 TDU에 의해 채용되는 예시적인 토큰 링의 토폴로지를 보여준다. 랙 시스템은 서버 노드들(N1 내지 N5)을 포함한다. 토큰(501)은 라운드 로빈 방식으로 서버 노드들(N1 내지 N5) 사이에서 전달될 수 있다. 오직 전달되는 토큰(501)을 잡는 서버 노드만이 워크로드 마이그레이션과 관련된 결정을 할 수 있다. 어떤 실시 예들에서, 복수의 토큰들이 레지던트 호스트 운영 시스템(resident host operating systems)들 각각을 위해 사용될 수 있다. 다른 실시 예들에서, 복수의 토큰들이, 상호 배타적인 다른 스토리지 장치들을 액세스할 수 있는 컨테이너화 된 애플리케이션들의 다른 그룹들을 위해 사용될 수 있다. 도 5에 도시된 토큰 링 토폴로지는, 다른 서버 노드들에 의한 동시의 행동들의 인식 없이 워크로드들을 옮길 때 복수의 서버 노드들에 한해 동일한 후보 서버를 플러딩(flooding)할 위험들이 감소하는 것을 보여준다.
본 발명의 실시 예에 따르면, TDU(412)는 보상 함수를 사용하여 워크로드를 한 노드로부터 또 다른 노드로 마이그레이션 하는데 대한 보상들의 계산을 수행할 수 있다. 특정한 워크로드를 마이그레이션 하는 이익을 최대화할 수 있는 최고의 후보 서버 노드를 판단하기 위해 다른 보상 함수들이 사용될 수 있다. 효율성, 예를 들어, 워크로드 마이그레이션의 보상을 판단하기 위해, TDU(412)는 활발히 구동되는 서버 노드들의 시스템 이용 정보를 알아야 한다.
본 발명의 일 실시 예에 따르면, 보상 함수는 하나 또는 그 이상의 시스템 이용 파라미터들의 선형 가중 함수(linear weighted function)이다. 하나 또는 그 이상의 시스템 이용 파라미터들에게 보상 함수를 계산하기 위해 각각의 가중치들이 주어진다. 더 무거운 가중치를 갖는 시스템 이용 파라미터는 다른 시스템 이용 파라미터들에 비해 더 많은 보상을 제공함을 의미한다. 다양한 시스템 이용 파라미터들에 적용될 수 있는 보상 값을 계산하기 위해, 시스템 이용 파라미터들이 정규화될 수 있다. 예를 들어, 시스템 이용 파라미터들은 현재의 서버 노드에서 이용 가능한 리소스들에 대한 후보 서버 노드에서 이용 가능한 리소스들 (더 작은 수의 단위)의 비율로 나타낼 수 있다. 그러한 시스템 이용 파라미터들의 예들은 이용 가능한 CPU들의 개수, 이용 가능한 메모리의 크기, 이용 가능한 네트워크 대역폭, 및 이용 가능한 디스크 대역폭을 포함할 수 있으나, 이에 한정되지 않는다. 시스템 이용 파라미터들은 현재의 이용가능성 및 대응하는 시스템 리소스들의 사용에 의존하여 동적으로 변할 수 있다.
예를 들어, 보상 함수는 아래의 수학식 1에 의해 표현될 수 있다.
여기서, 노드 i는 워크로드를 마이그레이션 하기 위한 결정을 하는 노드이고, 노드 j는 워크로드를 마이그레이션 하기 위한 후보 노드이다. Ai, Bi, Ci, 및 Di는 각각 CPU, 메모리, 네트워크 대역폭, 및 디스크 대역폭에 대한 워크로드 요건에 기초하여 조정되는 서버 노드 i의 가중치들이다.
예를 들어, Rcpuj, Rmemj, Rnetj, 및 Rdiskj는, 서버 노드 i의 이용 가능한 리소스들과 비교가 되는 후보 서버 노드 j에 있는 증가된 리소스 델타(delta)와, 워크로드에 의해 요구되는 리소스의 양의 비율들이다. 예를 들어, 디스크 대역폭 Rdisk는, 노드들이 같은 랙 시스템 내에서 원격으로 스토리지를 액세스할 때의 NVMeoF 네트워크 대역폭과 동일할 수 있다. 만일 워크로드를 후보 노드로 마이그레이션 하는데 대한 계산된 보상이 문턱보다 작다면, TDU(412)는 워크로드를 마이그레이션 하지 않도록 결정할 수 있다. 만일 보상이 문턱보다 크다면, TDU(412)는 랙 시스템에 있는 모든 후보 서버 노드들 중 보상을 최대화할 수 있는 후보 노드를 확인할 수 있다. 보상 함수를 위한 문턱은 가중치들 A, B, C, 및 D의 선택에 기초하여 결정될 수 있다. 게다가, 문턱은 시스템 리소스 이용의 변화를 반영하기 위해 런타임 동안 동적으로 조정될 수 있다. 본 보상 함수가 테일 레이턴시를 줄이는 것에 포커싱 되어 있는데 반해, TDU(412)는 현재의 성능뿐만 아니라 워크로드 마이그레이션의 총 비용을 위한 통합된 결정을 하기 위한 마이그레이션 워크로드들을 위한 비용(예를 들어, 전력 및 쿨링 비용들)을 추가로 계산할 수 있는 다른 보상 함수들을 채용할 수 있다.
TDU(412)가 워크로드들을 마이그레이션 하기로 결정한 후, TDU(412)는 워크로드의 실제 마이그레이션을 수행하도록 SMU(413)에 명령할 수 있다. NVMeoF 기반의 시스템에 대해, 같은 랙에 있는 복수의 서버 노드들은 공유된 스토리지 네트워크에 연결되어 있고, 워크로드 마이그레이션과 관련된 데이터는 공유된 스토리지 네트워크에 저장될 수 있다. 이 경우, 데이터는 공유된 스토리지 네트워크를 통하여 어떤 서버 노드에도 손쉽게 이용 가능하기 때문에, 공유된 스토리지 네트워크에 있는 서버 노드들 사이에서의 워크로드 마이그레이션은 더욱 쉬워진다.
본 발명의 실시 예에 있어서, SMU(412)는 시스템 캐시와 메모리에 있는 프로세스 상태들을 타깃 스토리지 장치(421)로 플러쉬(flush)할 수 있다. 만일 타깃 스토리지 장치로의 NVMeoF 대역폭이 이용 가능하지 않다면, SMU(421)는 프로세스 상태들을 랙에 있는 로컬 디스크 또는 다른 스토리지 장치에 플러쉬 할 수 있다. 딜레이(예를 들어, 2분)가 경과한 후 미리 정해진 수의 재시도들이 실패하기까지, SMU(412)는 프로세스 상태들을 타깃 스토리지 장치(421)에 플러쉬 하기 위한 시도를 계속할 수 있다.
도 4를 참조하면, 본 랙-레벨 스케줄러의 TLAM(411)은 백그라운드 대몬으로써 또는 커널 스토리지 드라이버(410)의 일부로써 구동될 수 있다. TLAM(411)은 랙 시스템(400)에서 동시에 구동되는 컨테이너화 된 애플리케이션들(401)에 의해 생성된 워크로드들의 레이턴시 변칙들을 확인할 수 있다. TLAM(411)은 더 높은 QoS 요건들을 갖는 프로세스들과 임계치에 있는 그리고 지역에 머무를 필요가 있는 프로세스들의 추적을 유지할 수 있다. 본 발명의 실시 예에 따르면, TLAM(411) 및 TDU(412)는 유사한 메커니즘으로 구현될 수 있다. 의사 결정을 가속화하기 위해, TLAM(411) 및 TDU(412) 모두 동일한 하드웨어 또는 동일한 커널 스토리지 드라이버(410)에 구현될 수 있다. 예를 들어, TLAM(411) 및 TDU(412)는 PCIe 또는 SSD 하드웨어의 일부와 같은 시스템 인터페이스 상의 스탠드얼론(standalone) 하드웨어 가속기, 또는 네트워크 프로세싱 유닛 가속기에서 구현될 수 있다. 본 발명의 실시 예에 따르면, SMU(413)는 스탠드얼론 방식으로 또는 분산 스토리지 장치들의 일부로서 소프트웨어 모듈에 구현되어, 타깃 서버 노드가 확인된 후에 워크로드 마이그레이션을 시작할 수 있다.
본 발명의 실시 예에 따르면, TLAM(411), TDU(412), 및 SMU(413)는 랙 시스템(400)에서 구동되는 특정한 스토리지 드라이버(410)에 구현될 수 있다. 하나의 스토리지 드라이버(410) 이상이 동시에 구동될 수 있다. 본 발명의 다른 실시 예에 따르면, TLAM(411), TDU(412), 및 SMU(413)는 랙 시스템(400) 내의 노드 기저(node basis)에 분산되도록 구현될 수 있다. 이 경우, 서버 노드들의 서브셋(subset)은 TLAM 및 TDU를 포함할 수 있다. 본 발명의 또 다른 실시 예에 따르면, TLAM(411), TDU(412), 및 SMU(413)는 랙 시스템(400) 내의 오직 하나의 마스터 서버 노드에 구현되거나 TOR (top-of-rack) 스위치 하드웨어에 구현될 수 있다. 이 경우, 각각의 구성 서버 노드에서 구동되는 분산 모듈들은 노드-레벨 정보를 마스터 서버 노드에 주기적으로 제공하는 애플리케이션 프로그램 인터페이스 (application programming interface; API) 콜을 가질 수 있다.
도 6은 본 발명의 실시 예에 따른 랙-레벨 스케줄러를 포함하는 랙 시스템의 예를 보여준다. 데이터센터는 복수의 랙 시스템들을 가질 수 있으며, 데이터센터 랙(600)은 데이터센터 내의 랙 시스템들 중 하나일 수 있다. 데이터센터 랙(600)은 복수의 서버 노드들(601a 내지 601n)을 포함할 수 있으며 랙-레벨 스케줄러를 구현할 수 있다.
데이터센터에서, 복수의 랙-레벨 스케줄러들은 동시에 구동될 수 있다. 본 발명의 실시 예에 따르면, 랙-레벨 스케줄러는 데이터센터 랙(600) 내에 분배되는 각각의 서버 노드(601)마다 구현될 수 있다. 본 발명의 다른 실시 예에 따르면, 적어도 하나의 랙-레벨 스케줄러는 데이터센터 랙(600) 내의 마스터 서버 노드 또는 TOR (top-of-the-rack) 스위치 하드웨어에서 구현될 수 있다.
랙-레벨 스케줄러는 TLAM, TDU, 및 SMU를 포함할 수 있다. TLAM은 미리 정해진 레이턴시 요건을 위반하는 워크로드들을 끊임없이 모니터링하고 태깅할 수 있다. 만일 TLAM이 서버 노드(601a)에서 구동되는 특정한 워크로드에 대한 위반을 감지하면, TLAM은 워크로드의 ID 번호를 마킹하고 TDU에 전송할 수 있다. TDU는 자신의 서버-레벨 시스템 이용 정보를 샘플링하고 데이터센터 랙(600)에 있는 다른 서버 노드들과 공유할 수 있다. 유사하게, TDU는 다른 랙-레벨 서버 노드들(601b 내지 601n)의 시스템 이용 정보를 수집할 수 있으며, 워크로드를 다른 랙-레벨 서버 노드들(601b 내지 601n)로 마이그레이션하는데 대한 보상들을 계산할 수 있다. 최대 보상에 기초하여, TDU는 서버 노드들(601b 내지 601n) 중 서버 노드(601m)가 보상을 최대화하는 것으로 판단할 수 있다. 일단 TDU가 타깃 노드(601m)를 확인하면, TDU는 SMU가 워크로드의 실제의 마이그레이션 프로세스를 수행하도록 지시한다.
본 발명의 실시 예에 따르면, 랙-레벨 스케줄러의 TLAM, TDU, 및 SMU각각에, 데이터센트 랙(600)의 QoS 요건을 충족시키는 워크로드 마이그레이션을 효율적으로 확인하고 수행하기 위한 적절한 프로세스 우선 순위가 주어질 수 있다. TLAM은 시스템 이용을 주기적으로 폴링(polling)할 수 있으며 유입되는 워크로드들에 대한 레이턴시 요건들을 모니터링할 수 있다. TLAM의 폴링률은, 호스트 CPU 리소스들의 이용 가능성, 및 다른 애플리케이션들 및 워크로드들에 대한 QoS 요건의 임계성 모두에 의존할 수 있다. TLAM, TDU, 및 SMU의 적절하게 세팅된 프로세스 우선 순위는 랙-레벨 스케줄레에 의해 발생할 수 있는 오버헤드를 최소화시킬 수 있다.
본 발명의 실시 예에 따르면, SMU에 의한 마이그레이션 프로세스는 사용자에 의해 컨트롤될 수 있다. 예를 들어, 사용자는 데이터에 대한 스토리지 영역들의 속도, 시퀀스, 타이밍, 할당을 설정하고 제어할 수 있으며, 적절한 입도(granularity)에서 마이그레이션을 처리하여 랙 시스템에서 워크로드 마이그레이션을 효율적으로 제공함과 동시에 그 성능을 개선할 수 있다. 워크로드 마이그레이션을 수행할 때, SMU는 스토리지 및 랙-레벨 스케줄러의 네트워킹 스택들에서, 다양한 수준의 버퍼 크기들과 그들의 레이턴시 및 대역폭을 포함하는 다른 관련된 시스템 파라미터들을 설명할 수 있다.
본 발명의 실시 예에 따르면, 프로세스 및 데이터 마이그레이션 프로토콜은 다양한 데이터 전송 패브릭들과 양립할 수 있다. 그러한 데이터 전송 패브릭들의 예들은 이더넷 및 RDMA를 포함할 수 있으나, 이에 한정되지 않는다. 데이터센터 랙(600) 내의 데이터 패브릭은, 서버 노드들(601)이 다양한 기존의 하드웨어 아키텍쳐들과 동작하도록 한다.
본 발명의 실시 예에 따르면, 본 랙-레벨 스케줄러는 피드백 루프에 의해 타깃 서버 노드 인식(acknowledgement)을 위한 메커니즘을 제공할 수 있다. 예를 들어, 타깃 서버 노드는 성공하거나 실패한 워크로드 마이그레이션을 인식할 수 있다. 실패한 마이그레이션은 그것이 성공할 때까지 TDU 및 SMU를 통하여 반복될 수 있다. 재시도의 최대 횟수는 사용자에 의해 설정가능한 횟수로 제한될 수 있다. 성고 후 또는 사용자에 의해 설정 가능한 수의 재시도 후, 랙-레벨 스케줄러는 호스트 운영 체제로의 워크로드 마이그레이션 백(back)의 성공 또는 실패를 보고할 수 있다.
도 7은 본 발명의 실시 예에 따라 워크로드를 마이그레이션하는 것을 보여주는 순서도이다. 랙-레벨 스케줄러는 랙 시스템에 구현된다. 랙-레벨 스케줄러의 TLAM은 복수의 서버 노드들(701)에서 구동되는 애플리케이션들로부터 생성된 유입되는 워크로드들에 대한 레이턴시 요건을 모니터링할 수 있다. TLAM은 워크로드(702)에 대한 레이턴시 요건의 위반을 감지한다. TDU는 랙-레벨 스케줄러의 시스템 이용 정보(703)를 수집하고, 워크로드를 랙 시스템(704)의 다른 서버 노드들로 마이그레이션 하는데 대한 보상을 계산할 수 있다. 랙 시스템에서 구동되는 서버 노드들은 부가된 스토리지 장치들을 동시에 액세스할 수 있으며, 그 결과 마이그레이션 하는데 대한 워크로드와 관련된 데이터는 마이그레이션을 위한 서버 노드들 사이에서 마이그레이션될 필요가 없다. 일단 TDU가 보상(705)을 최대화하는 타깃 서버 노드를 판단하면, TDU는 SMU가 워크로드를 타깃 서버 노드(706)로 마이그레이션하는 것을 수행하도록 호출(invoke)할 수 있다. 랙-레벨 스케줄러는 상태를 호스트 OS(707)에 보고함으로써 호스트 OS에 피드백을 제공한다. 프로세스는 랙 시스템 내에서 워크로드 마이그레이션을 수행하는 것을 반복한다. 워크로드 마이그레이션 판단하기 위한 문턱은 애플리케이션들 및/또는 워크로드들의 QoS 요건들, 및 랙 시스템의 시스템 이용에 기초하여 동적으로 변한다. 예를 들어, 높은 QoS 요건으로 마킹된 워크로드는 일시적으로 증가된 레이턴시 문턱으로 처리되어, 처리되는 워크로드가 엄격한 레이턴시 요건을 가지고 처리되는 것을 보장한다. 레이턴시 문턱이 더 높아질수록, 워크로드가 다른 로드로 덜 마이그레이션 되기 쉽다.
본 랙-레벨 스케줄러는 소프트웨어/펌웨어 모듈 도는 하드웨어(예를 들어, SoC 모듈)에 구현될 수 있다. 노드들 사이에서의 워크로드 모니터링 및 마이그레이션은 랙 시스템의 노드들에 걸쳐 분산됨으로써 또는 마스터 서버 노드에 집적됨으로써 수행될 수 있다. 본-랙 레벨 스케줄러는 고성능 스토리지 리소스들을 담당하기 위한 제 2 레벨의 정정 스케줄링 결정을 수행할 수 있고, 랙 내의 자율적인 잡(job) 또는 애플리케이션 컨테이너 마이그레이션을 수행할 수 있다. 본 랙-레벨 스케줄러는 테일 레이턴시 변칭 감지를 수행하여, QoS 요건을 만족시키지 못하는 노드 별로(per-node-basis) 문제가 있는 워크로드들을 확인할 수 있다. 나아가, 본 랙-레벨 스케줄러는 그들의 능력들을 알릴 수 있는 잠재적인 후보 노드들을 지능적으로 감지할 수 있으며, 워크로드 마이그레이션에 대한 보상을 확인하기 위한 결정 알고리즘을 이용할 수 있다. 자율적인 워크로드 마이그레이션은, NVMeoF 기술의 장점들을 이용함으로써 워크로드 마이그레이션 동안 그리고 그 후 시스템 상태를 동기적으로(synchronous) 그리고 일관된(consistent) 상태로 유지하여, 워크로드 마이그레이션을 원격으로 실행하기 위한 로컬 유사 노드 스토리지 레이턴시(local node-like storage latency)를 달성할 수 있다.
본 발명의 실시 예에 따른 워크로드를 마이그레이션하기 위한 방법은, 랙 시스템의 복수의 서버 노드들에서 구동되는 복수의 애플리케이션들로부터 생성된 워크로드들을 수신하는 단계, 상기 워크로드들에 대한 레이턴시 요건들을 모니터링하고 워크로드에 대한 상기 레이턴시 요건의 위반을 감지하는 단계, 상기 랙 시스템의 시스템 이용 정보를 수집하는 단계, 상기 워크로드를 상기 랙 시스템에 있는 다른 서버 노드들로 마이그레이션 하는데 대한 보상들을 계산하는 단계, 상기 복수의 서버 노드들 중 상기 보상들을 최대화하는 타깃 서버 노드를 판단하는 단계, 그리고 상기 워크로드를 상기 타깃 서버 노드로 마이그레이션 하는 단계를 포함한다.
상기 방법은 상기 마이그레이션의 상태를 포함하는, 호스트 운영 시스템으로의 피드백을 제공하는 단계를 더 포함할 수 있다.
상기 랙 시스템은 복수의 스토리지 장치들을 더 포함할 수 있다.
상기 랙 시스템은 NVMeoF (nonvolatile memory express over fabrics) 표준과 양립할 수 있으며, 상기 복수의 스토리지 장치들은 NVMeoF 장치들일 수 있다.
상기 워크로드에 대한 상기 레이턴시 요건의 상기 위반은 상기 워크로드의 테일 레이턴시가 레이턴시 문턱보다 더 높을 때 감지될 수 있다.
상기 레이턴시 문턱은 상기 복수의 애플리케이션들 및/또는 워크로드들의 QoS (quality of service) 요건, 그리고 상기 랙 시스템의 시스템 이용에 기초하여 동적으로 변할 수 있다.
상기 보상들은 보상 함수에 의해 계산될 수 있으며, 상기 보상 함수는 복수의 시스템 이용 파라미터들의 선형 가중 함수일 수 있다.
상기 시스템 이용 파라미터들은 이용 가능한 CPU들의 개수, 이용 가능한 메모리의 크기, 이용 가능한 네트워크 대역폭, 및 이용 가능한 디스크 대역폭 중 하나 또는 그 이상을 포함할 수 있다.
상기 방법은 라운드 로빈 방식으로 토큰을 상기 복수의 서버 노드들 간에 전달하는 단계를 더 포함할 수 있고, 상기 복수의 서버 노드들 중 오직 상기 토큰을 잡는 서버 노드만이 상기 워크로드를 마이그레이션 시키는 것을 판단할 수 있다.
본 발명의 다른 실시 예에 따르면, 랙 시스템은 복수의 서버 노드들, 상기 랙 시스템에 부착된 복수의 스토리지 장치들, 상기 복수의 서버 노드들과 상기 복수의 스토리지 장치들 사이의 연결을 제공하는 패브릭; 및 테일 레이턴시 변칙 모니터(TLAM) 및 타깃 발견 유닛(TDU)을 포함하는 랙-레벨 스케줄러를 포함한다. TLAM은 상기 워크로드들에 대한 레이턴시 요건들을 모니터링하고 워크로드에 대한 상기 레이턴시 요건의 위반을 검출하도록 구성된다. TDU는 상기 랙 시스템의 시스템 이용 정보를 수집하고, 상기 워크로드를 상기 랙 시스템의 다른 서버 노드들로 마이그레이션하는데 대한 보상들을 계산 하고, 상기 복수의 서버 노드들 중 상기 보상을 최대화하는 타깃 서버 노드를 판단하도록 구성된다.
랙-레벨 스케줄러는 상기 타깃 서버 노드로의 상기 워크로드의 마이그레이션을 수행하도록 구성되는 서비스 마이그레이션 유닛(SMU)을 더 포함한다.
상기 SMU는 상기 마이그레이션의 상태를 포함하는 피드백을, 상기 랙 시스템의 호스트 운영 시스템으로 제공하도록 더 구성될 수 있다.
상기 랙 시스템은 NVMeoF와 양립할 수 있으며, 상기 복수의 스토리지 장치들은 이더넷에 의해 서로 연결되는 NVMeoF일 수 있다.
상기 TLAM은, 상기 워크로드의 테일 레이턴시가 레이턴시 문턱보다 더 높을 때, 상기 워크로드에 대한 상기 워크로드 요건의 상기 위반을 감지할 수 있다.
상기 레이턴시 문턱은 상기 복수의 애플리케이션들 및/또는 워크로드들의 QoS (quality of service) 요건, 그리고 상기 랙 시스템의 시스템 이용에 기초하여 동적으로 변할 수 있다.
상기 TDU는 보상 함수를 사용하여 상기 보상들을 계산할 수 있고, 상기 복상 함수는 복수의 시스템 이용 파라미터들의 선형 가중 함수일 수 있다.
상기 시스템 이용 파라미터들은 이용 가능한 CPU들의 개수, 이용 가능한 메모리의 크기, 이용 가능한 네트워크 대역폭, 및 이용 가능한 디스크 대역폭 중 하나 또는 그 이상을 포함할 수 있다.
상기 복수의 서버 노드들은 라운드 로빈 방식으로 토큰을 전할 수 있으며, 상기 복수의 서버 노드들 중 오직 사익 토큰을 잡는 서버 노드만이 상기 워크로드를 마이그레이션하는 것을 판단할 수 있다.
상기 복수의 서버 노드들의 서브셋은 TLAM 및 상기 TDU를 포함할 수 있다.
상기 복수의 서버 노드들 중 마스터 서버 노드는 상기 TLAM 및 상기 TDU를 포함할 수 있다.
랙-레벨 스케줄러는 시스템-온-칩 (SoC) 모듈에 구현될 수 있다.
상기 랙-레벨 스케줄러는 TOR (top-of-rack) 스위치 하드웨어의 펌웨어에 구현될 수 있다.
위의 예시적인 실시 예들이, 고성능 SSD들의 롱 테일 레이턴시들을 감소시키기 위한 랙-레벨 스케줄러를 제공하기 위한 시스템 및 방법을 구현하는 것의 다양한 실시 예들을 보여주기 위해 설명되었다. 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자는 개시된 예시적인 실시 예들로부터 적절히 변형시킬 수 있을 것이다. 본 발명의 범위 내에 있는 것으로 의도된 주제는 후술될 청구항들에 의해 정해질 것이다.
400: 랙 시스템 401: 컨테이너화 된 애플리케이션
410: 커널 스토리지 드라이버 411: TLAM
412: TDU 413: SMU
412a~412m: 스토리지 장치 600: 데이터센터 랙
601a~601n: 서버 노드

Claims (10)

  1. 테일 레이턴시 변칙 모니터(TLAM), 타깃 발견 유닛(TDU), 및 서비스 마이그레이션 유닛(SMU)을 포함하는 랙의 동작 방법에 있어서:
    상기 TLAM이 상기 랙에 부착된 복수의 서버 노드들 중 제1 서버 노드에서 구동하는 애플리케이션에 의해 생성된 워크로드를 수신하는 단계;
    상기 TLAM이 상기 워크로드에 대한 레이턴시 요건을 모니터링하고, 및 상기 제1 서버 노드에서 상기 워크로드를 처리하기 위한 상기 레이턴시 요건의 위반을 감지하는 단계;
    상기 TDU가 상기 레이턴시 요건의 상기 위반을 감지함에 따라, 상기 랙의 시스템 이용 상태에 기반하여, 상기 워크로드를 상기 랙에 있는 다른 서버 노드들로 마이그레이션 하는데 대한 보상들을 계산하는 단계;
    상기 TDU가 상기 보상들이 문턱보다 큰 것에 기반하여, 상기 랙에 있는 모든 후보 서버 노드들 중 상기 보상들을 최대화하는 타깃 서버 노드를 식별하는 단계; 그리고
    상기 SMU가 상기 워크로드를 상기 제1 서버 노드로부터 상기 타깃 서버 노드로 마이그레이션 하는 단계를 포함하되,
    상기 워크로드에 대한 상기 레이턴시 요건은 상기 애플리케이션의 QoS (quality of service) 요건 및 상기 랙의 상기 시스템 이용 상태에 기반하여 동적으로 가변하는 방법.
  2. 제 1 항에 있어서,
    상기 SMU가 상기 마이그레이션의 상태를 포함하는 피드백을, 호스트 운영 시스템으로 제공하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 랙은 복수의 스토리지 장치들을 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 워크로드에 대한 상기 레이턴시 요건의 상기 위반은 상기 워크로드의 테일 레이턴시가 레이턴시 문턱보다 더 높을 때 감지되는 방법.
  5. 제 1 항에 있어서,
    상기 시스템 이용 파라미터들은 이용 가능한 CPU 코어들의 개수, 이용 가능한 메모리의 크기, 이용 가능한 네트워크 대역폭, 및 이용 가능한 디스크 대역폭 중 하나 또는 그 이상을 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 위반을 감지하는 단계 이후, 상기 TDU가 라운드 로빈 방식으로 상기 복수의 서버 노드들 사이에서 토큰을 전달하는 단계를 더 포함하되,
    상기 복수의 서버 노드들 중 상기 토큰을 보유하는 서버 노드가 상기 워크로드를 마이그레이션 할 것을 결정하는 방법.
  7. 랙에 있어서:
    복수의 서버 노드들;
    상기 랙에 부착된 복수의 스토리지 장치들;
    상기 복수의 서버 노드들과 상기 복수의 스토리지 장치들 사이의 연결을 제공하는 패브릭; 그리고
    테일 레이턴시 변칙 모니터(TLAM) 및 타깃 발견 유닛(TDU)을 포함하는 스케줄러를 포함하되,
    상기 TLAM은 하나 또는 상기 복수의 서버 노드들에서 구동하는 애플리케이션들에 의해 생성된 복수의 워크로드들 각각에 대한 레이턴시 요건을 모니터링하고, 및 상기 워크로드들 중, 상기 복수의 서버 노드들 중 제1 서버 노드에서 구동하는 애플리케이션에 의해 생성된 워크로드에 대한 상기 레이턴시 요건의 위반을 검출하도록 구성되고,
    상기 TDU는 상기 랙의 시스템 이용 상태에 기반하여, 상기 워크로드를 상기 랙에 있는 다른 서버 노드들로 마이그레이션 하는데 대한 보상들을 계산하고, 상기 보상들이 문턱보다 큰 것에 기반하여, 상기 랙에 있는 모든 후보 서버 노드들 중 상기 보상들을 최대화하는 타깃 서버 노드를 식별하고, 및 상기 워크로드를 상기 제1 서버 노드로부터 상기 타깃 서버 노드로 마이그레이션 하도록 구성되고,
    상기 워크로드에 대한 상기 레이턴시 요건은 상기 애플리케이션의 QoS (quality of service) 요건 및 상기 랙의 상기 시스템 이용 상태에 기반하여 동적으로 가변하는 랙.
  8. 제 7 항에 있어서,
    상기 스케줄러는 상기 워크로드를 상기 타깃 서버 노드로 마이그레이션을 수행하도록 구성되는 서비스 마이그레이션 유닛(SMU)을 더 포함하는 랙.
  9. 제 7 항에 있어서,
    상기 TLAM은 상기 워크로드의 테일 레이턴시가 레이턴시 문턱보다 더 높을 때 상기 워크로드에 대한 상기 레이턴시 요건의 상기 위반을 감지하는 랙.
  10. 제 7 항에 있어서,
    상기 복수의 서버 노드들은 라운드 로빈 방식으로 토큰을 전달하되,
    상기 복수의 서버 노드들 중 상기 토큰을 보유하는 서버 노드가 상기 워크로드를 마이그레이션 할 것을 결정하는 랙.
KR1020230026974A 2016-12-30 2023-02-28 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 KR102624607B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662441027P 2016-12-30 2016-12-30
US62/441,027 2016-12-30
US15/467,458 US10628233B2 (en) 2016-12-30 2017-03-23 Rack-level scheduling for reducing the long tail latency using high performance SSDS
US15/467,458 2017-03-23
KR1020170174344A KR102506605B1 (ko) 2016-12-30 2017-12-18 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020170174344A Division KR102506605B1 (ko) 2016-12-30 2017-12-18 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링

Publications (2)

Publication Number Publication Date
KR20230035016A KR20230035016A (ko) 2023-03-10
KR102624607B1 true KR102624607B1 (ko) 2024-01-12

Family

ID=62711735

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020170174344A KR102506605B1 (ko) 2016-12-30 2017-12-18 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
KR1020230026974A KR102624607B1 (ko) 2016-12-30 2023-02-28 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020170174344A KR102506605B1 (ko) 2016-12-30 2017-12-18 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링

Country Status (3)

Country Link
US (2) US10628233B2 (ko)
KR (2) KR102506605B1 (ko)
CN (1) CN108268321B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US10853148B1 (en) * 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
CN108199894B (zh) * 2018-01-15 2020-02-14 华中科技大学 一种数据中心功率管理及服务器部署方法
US10609165B1 (en) * 2018-10-01 2020-03-31 Citrix Systems, Inc. Systems and methods for gamification of SaaS applications
US11836577B2 (en) 2018-11-27 2023-12-05 Amazon Technologies, Inc. Reinforcement learning model training through simulation
US11455234B2 (en) * 2018-11-21 2022-09-27 Amazon Technologies, Inc. Robotics application development architecture
US10877682B2 (en) * 2019-01-10 2020-12-29 Western Digital Technologies, Inc. Non-disruptive cross-protocol live data migration
CN110187835B (zh) * 2019-05-24 2023-02-03 北京百度网讯科技有限公司 用于管理访问请求的方法、装置、设备和存储介质
US10715463B1 (en) 2020-02-20 2020-07-14 Robert Gelfond System and method for controlling access to resources in a multicomputer network
WO2022048674A1 (zh) * 2020-09-07 2022-03-10 华为云计算技术有限公司 基于服务器机柜的虚拟机管理方法及装置
WO2022213308A1 (en) 2021-04-08 2022-10-13 Citrix Systems, Inc. Sorting optimization based on user's time preferences and habits
US11567834B2 (en) 2021-04-14 2023-01-31 Seagate Technology Llc Data center storage availability architecture using rack-level network fabric
US11861175B2 (en) 2022-03-10 2024-01-02 International Business Machines Corporation Latency in data storage systems
CN115190121B (zh) * 2022-05-25 2023-11-17 上海交通大学 基于跨地域的微服务过量负载调度系统、方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018781A1 (en) 2001-07-03 2003-01-23 Scheuermann W. James Method and system for an interconnection network to support communications among a plurality of heterogeneous processing elements
JP2011514577A (ja) 2008-01-29 2011-05-06 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 分散共有ストリーム処理システムのクエリ配備プラン
US20130055283A1 (en) 2010-05-07 2013-02-28 Dinkar Sitaram Workload Performance Control
US20140068075A1 (en) 2012-08-28 2014-03-06 International Business Machines Corporation Optimizing service factors for computing resources in a networked computing environment
US20150106522A1 (en) 2013-10-14 2015-04-16 International Business Machines Corporation Selecting a target server for a workload with a lowest adjusted cost based on component values

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7646725B1 (en) * 2004-03-02 2010-01-12 Nortel Networks Limited Self-healing containers
US8910152B1 (en) * 2007-11-30 2014-12-09 Hewlett-Packard Development Company, L.P. Migrating a virtual machine by using a hot-plug event
US7962587B2 (en) * 2007-12-10 2011-06-14 Oracle America, Inc. Method and system for enforcing resource constraints for virtual machines across migration
US9405348B2 (en) * 2008-04-21 2016-08-02 Adaptive Computing Enterprises, Inc System and method for managing energy consumption in a compute environment
JP5529114B2 (ja) * 2008-04-21 2014-06-25 アダプティブ コンピューティング エンタープライジズ インク 計算環境内のエネルギ消費を管理するシステムおよび方法
US8086359B2 (en) * 2009-02-23 2011-12-27 Novell, Inc. Dynamic thermal load balancing
US8397088B1 (en) 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
US8914598B2 (en) * 2009-09-24 2014-12-16 Vmware, Inc. Distributed storage resource scheduler and load balancer
US8365176B2 (en) * 2009-10-15 2013-01-29 International Business Machines Corporation Data center job migration and scheduling based on server chassis fan speed threshold
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US9063769B2 (en) * 2010-02-04 2015-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Network performance monitor for virtual machines
US8539059B2 (en) * 2010-06-02 2013-09-17 Hewlett-Packard Development Company, L.P. Managing cooling devices and computing nodes in an infrastructure
US8719401B1 (en) * 2010-07-12 2014-05-06 Vmware, Inc. Decentralized input/output resource management
US9467505B2 (en) * 2010-08-27 2016-10-11 Vmware, Inc. Saturation detection and admission control for storage devices
US9378058B2 (en) 2011-10-17 2016-06-28 Excalibur Ip, Llc Method and system for dynamic control of a multi-tier processing system
CN103138970B (zh) * 2011-11-28 2016-02-24 英业达科技有限公司 服务器机架系统
WO2013158139A1 (en) * 2012-04-16 2013-10-24 Hewlett-Packard Development Company, L.P. Virtual computing resource orchestration
US8771009B2 (en) * 2012-05-03 2014-07-08 Extreme Networks, Inc. 3×8 stacked RJ45 connector with integrated LEDs option for 1U product form factor
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
US9325785B2 (en) * 2012-06-29 2016-04-26 Rodolfo Kohn Device, system, and method for client-governed session persistency between one or more clients and servers of a data center
US9336030B1 (en) * 2012-09-18 2016-05-10 Amazon Technologies, Inc. Placement and tuning of virtual machines
CN103077082B (zh) * 2013-01-08 2016-12-28 中国科学院深圳先进技术研究院 一种数据中心负载分配及虚拟机迁移节能方法及系统
US20140229608A1 (en) 2013-02-14 2014-08-14 Alcatel-Lucent Canada Inc. Parsimonious monitoring of service latency characteristics
US9973375B2 (en) * 2013-04-22 2018-05-15 Cisco Technology, Inc. App store portal providing point-and-click deployment of third-party virtualized network functions
US9218221B2 (en) * 2013-06-25 2015-12-22 Amazon Technologies, Inc. Token sharing mechanisms for burst-mode operations
US9122503B1 (en) * 2013-09-05 2015-09-01 Symantec Corporation Systems and methods for adaptive throttling of input/output requests in a virtual environment
WO2015047229A1 (en) * 2013-09-24 2015-04-02 Hewlett-Packard Development Company, L.P. Sas configuration management
US9807014B2 (en) * 2013-09-27 2017-10-31 International Business Machines Corporation Reactive throttling of heterogeneous migration sessions in a virtualized cloud environment
US9843470B1 (en) * 2013-09-27 2017-12-12 Amazon Technologies, Inc. Portable data center
US9648103B2 (en) * 2014-02-11 2017-05-09 Red Hat, Inc. Non-uniform file access in a distributed file system
JP6438035B2 (ja) * 2014-02-27 2018-12-12 インテル・コーポレーション ラックスケールアーキテクチャコンピューティングシステムのためのワークロード最適化、スケジューリング及び配置
US20150263985A1 (en) 2014-03-13 2015-09-17 Jpmorgan Chase Bank, N.A. Systems and methods for intelligent workload routing
CN104935523B (zh) * 2014-03-21 2018-06-15 中国移动通信集团公司 一种负载均衡的处理方法和设备
US9411626B2 (en) * 2014-06-18 2016-08-09 International Business Machines Corporation Optimizing runtime performance of an application workload by minimizing network input/output communications between virtual machines on different clouds in a hybrid cloud topology during cloud bursting
US9935865B2 (en) * 2014-06-23 2018-04-03 Infosys Limited System and method for detecting and preventing service level agreement violation in a virtualized environment
US10044795B2 (en) * 2014-07-11 2018-08-07 Vmware Inc. Methods and apparatus for rack deployments for virtual computing environments
US10064304B2 (en) * 2014-09-08 2018-08-28 Quanta Computer Inc. Separated server back plane
US10642663B2 (en) 2014-09-10 2020-05-05 Oracle International Corporation Coordinated garbage collection in distributed systems
US9710304B2 (en) * 2015-03-05 2017-07-18 Vmware, Inc. Methods and apparatus to select virtualization environments for migration
US9800653B2 (en) * 2015-03-06 2017-10-24 Microsoft Technology Licensing, Llc Measuring responsiveness of a load balancing system
US9559968B2 (en) 2015-03-23 2017-01-31 Cisco Technology, Inc. Technique for achieving low latency in data center network environments
US9729421B2 (en) * 2015-03-25 2017-08-08 International Business Machines Corporation Outcome-based software-defined infrastructure
EP3278617B1 (en) * 2015-03-31 2019-06-26 NEC Corporation Scheduler-managed routing of information in cloud-ran data centers
US10608914B2 (en) 2015-04-01 2020-03-31 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for monitoring of network performance for container virtualization
US9612751B2 (en) * 2015-05-28 2017-04-04 Netapp, Inc. Provisioning advisor
GB2554250B (en) * 2015-07-02 2021-09-01 Google Llc Distributed storage system with replica location selection
US9684562B2 (en) * 2015-07-21 2017-06-20 International Business Machines Corporation Automatic serial starting of resource groups on failover based on the prediction of aggregate resource usage
US9710305B2 (en) * 2015-11-12 2017-07-18 International Business Machines Corporation Virtual machine migration management
CN105426229A (zh) * 2015-12-07 2016-03-23 中国联合网络通信集团有限公司 虚拟机迁移方法及装置
US11803926B2 (en) * 2015-12-10 2023-10-31 Kyndryl, Inc. Workload distribution optimizer
CN105607948A (zh) * 2015-12-18 2016-05-25 国云科技股份有限公司 一种基于sla的虚拟机迁移预测方法
US9918146B2 (en) * 2016-02-08 2018-03-13 Intel Corporation Computing infrastructure optimizations based on tension levels between computing infrastructure nodes
US10013286B2 (en) * 2016-02-24 2018-07-03 Prophetstor Data Services, Inc. Method for deploying storage system resources with learning of workloads applied thereto
US10063493B2 (en) * 2016-05-16 2018-08-28 International Business Machines Corporation Application-based elastic resource provisioning in disaggregated computing systems
US10237201B2 (en) * 2016-05-30 2019-03-19 Dell Products, L.P. Quality of service (QoS) based device for allocating compute workloads to hosts providing storage and network services in software-based data center
CN106095569B (zh) * 2016-06-01 2019-02-01 中山大学 一种基于sla的云工作流引擎资源调度与控制方法
US10509738B2 (en) * 2016-07-01 2019-12-17 Intel Corporation Remote memory operations
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
US10083123B2 (en) * 2016-08-10 2018-09-25 Vmware, Inc. Page-fault latency directed virtual machine performance monitoring
US10652092B2 (en) * 2016-08-28 2020-05-12 Vmware, Inc. Methods and systems that collect and manage latency data in an automated resource-exchange system
US10965733B2 (en) * 2016-08-28 2021-03-30 Vmware, Inc. Efficient, automated distributed-search methods and systems
US10157071B2 (en) * 2016-08-30 2018-12-18 Vmware, Inc. Method for migrating a virtual machine between a local virtualization infrastructure and a cloud-based virtualization infrastructure
US20180088977A1 (en) * 2016-09-28 2018-03-29 Mark Gray Techniques to determine and mitigate latency in virtual environments
US10241840B2 (en) * 2016-09-30 2019-03-26 Vmware, Inc. Resource based virtual computing instance scheduling
US10623526B2 (en) * 2016-10-03 2020-04-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamically configuring multi-mode hardware components based on workload requirements
US10700978B2 (en) * 2016-12-05 2020-06-30 International Business Machines Corporation Offloading at a virtual switch in a load-balanced group
US10768997B2 (en) * 2016-12-05 2020-09-08 International Business Machines Corporation Tail latency-based job offloading in load-balanced groups

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018781A1 (en) 2001-07-03 2003-01-23 Scheuermann W. James Method and system for an interconnection network to support communications among a plurality of heterogeneous processing elements
JP2011514577A (ja) 2008-01-29 2011-05-06 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 分散共有ストリーム処理システムのクエリ配備プラン
US20130055283A1 (en) 2010-05-07 2013-02-28 Dinkar Sitaram Workload Performance Control
US20140068075A1 (en) 2012-08-28 2014-03-06 International Business Machines Corporation Optimizing service factors for computing resources in a networked computing environment
US20150106522A1 (en) 2013-10-14 2015-04-16 International Business Machines Corporation Selecting a target server for a workload with a lowest adjusted cost based on component values

Also Published As

Publication number Publication date
KR20180079183A (ko) 2018-07-10
CN108268321A (zh) 2018-07-10
US10628233B2 (en) 2020-04-21
US11507435B2 (en) 2022-11-22
KR102506605B1 (ko) 2023-03-07
CN108268321B (zh) 2023-11-07
KR20230035016A (ko) 2023-03-10
US20200225999A1 (en) 2020-07-16
US20180189101A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
KR102624607B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
US11216314B2 (en) Dynamic reallocation of resources in accelerator-as-a-service computing environment
CN110869909B (zh) 应用机器学习算法来计算健康分数以进行工作负载调度的系统和方法
US10318467B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US9092266B2 (en) Scalable scheduling for distributed data processing
US8595722B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
CN108431796B (zh) 分布式资源管理系统和方法
KR102199275B1 (ko) 분산 컴퓨팅 시스템에서의 적응적 리소스 관리
US11311722B2 (en) Cross-platform workload processing
Niehorster et al. Enforcing SLAs in scientific clouds
US9262351B2 (en) Inter-adapter cooperation for multipath input/output systems
US10917496B2 (en) Networked storage architecture
US11941450B2 (en) Automatic placement decisions for running incoming workloads on a datacenter infrastructure
CN117501243A (zh) 用于管理服务网格的交换机
US20150150012A1 (en) Cross-platform workload processing
WO2013099019A1 (ja) 複数の物理マシンで動作する複数の仮想マシンの再配置を制御する管理計算機
US20240054318A1 (en) Distributed artificial intelligence runtime at the network edge as a service
Gu Efficient Resource Management for Deep Learning Clusters
Xu et al. Rack Level Scheduling for Containerized Workloads

Legal Events

Date Code Title Description
A107 Divisional application of patent
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant