Container Node Prioritization for Storage-Aware Application Instantiation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing containerized application systems face challenges in achieving hyperconvergence without altering standard schedulers, leading to performance degradation and increased network traffic due to inter-node communication, especially in distributed and scalable environments.
Innovation Solution
A scheduler extender with a prioritization module is used to determine node prioritization based on virtual storage volume mounting and node performance, allowing for hyperconverged architectures without modifying the standard scheduler, thereby reducing inter-node traffic and improving application response time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If containerized applications are scheduled using standard schedulers in distributed environments, then basic scheduling functionality is provided, but performance degrades and network traffic increases due to inter-node communication
Solution Approach 1:
A prioritization module is introduced as an intermediary component that sits between the storage system and the container scheduling system. This module provides node prioritization information to the scheduler, enabling informed scheduling decisions without requiring complex inter-node communication. The prioritization module acts as a mediator that translates storage proximity information into scheduling priorities, resolving the contradiction between fast instantiation and low network traffic.
Solution Approach 2:
The system performs preliminary actions by pre-calculating and maintaining node prioritization information based on virtual storage volume mounting status before scheduling decisions are made. This advance preparation eliminates the need for real-time inter-node communication during scheduling, as the scheduler receives pre-computed priority data that reflects current storage topology, thus improving productivity while minimizing network traffic.
2Productivity
If hyperconverged architectures are implemented without modifying standard schedulers, then system simplicity is maintained, but performance optimization is limited
Solution Approach 1:
The prioritization module serves as an intermediary that enables hyperconverged architecture performance optimization without modifying the standard scheduler. It translates storage system state into scheduling priorities that the standard scheduler can consume, achieving performance improvement while maintaining scheduler simplicity and avoiding complex modifications to the scheduling core.
Solution Approach 2:
The system segments the scheduling functionality into two independent parts: the standard scheduler that handles basic scheduling logic, and the prioritization module that handles storage-aware priority calculation. This segmentation allows each component to remain simple while collectively achieving optimized performance, as the scheduler focuses on scheduling and the prioritization module focuses on storage topology awareness.
3Reliability
If nodes are selected for container instantiation without considering storage volume mounting status, then scheduling is simplified, but data access performance and reliability deteriorate
Solution Approach 1:
The prioritization module implements feedback by continuously monitoring the mounting status of virtual storage volumes on different nodes and using this information to dynamically adjust node priorities. This feedback mechanism ensures that containers are consistently scheduled on nodes with the required storage volumes mounted, guaranteeing data integrity while keeping the selection logic simple through automated priority-based decision-making.
Solution Approach 2:
The prioritization module acts as an intermediary that translates complex storage volume mounting status information into simple priority scores that the scheduler can use for reliable node selection. This mediation simplifies the node selection process while ensuring data integrity, as the prioritization logic encapsulates the complex criteria of storage availability and converts it into actionable scheduling priorities.
Data Source
AI summary
A method includes determining node prioritization information at a prioritization module implemented on a master node, the master node being in communication with each of a plurality of containerized application nodes, the prioritization module configured to determine node prioritization information indicating a relative prioritization of the containerized application nodes for instantiating a containerized application, wherein the determining node prioritization information includes assigning a priority score to a candidate containerized application node, wherein higher priority is given based on a number of virtual storage volumes stored on the candidate containerized application node that is designated for access by the containerized application; and transmitting, based on the prioritized information, an instruction to one of the containerized application nodes to instantiate the containerized application.


