In the past, storage systems served the simple purpose of data storage. However, in contemporary times, there is a trend towards designing storage systems that cater to diverse user requirements, particularly in cloud and data center environments. Despite this, the challenge of redesigning storage systems to meet user needs persists due to the intricate software stack and internal hardware structures they possess. This dissertation proposes a system that meets user requirements by concurrently designing hardware and software based on a comprehensive understanding of storage systems. The proposed solutions address three primary user requirements. Firstly, in a cloud environment with multiple containers, designing a storage system as if each container operates independently requires careful consideration. Chapter 2 tackles this by isolating input/output resources per container to ensure consistent I/O performance for each. Secondly, in a log-structured merge key-value store execution environment, ensuring uniform performance for all read latencies is imperative. Chapter 3 designs a storage system that guarantees a specific level of latency for read requests. Lastly, in an environment offering deep learning services for large-scale graphs, there is a demand to accelerate application services. Chapter 4 designs a dedicated computational storage for graph deep learning services.
기존에 스토리지 시스템은 단순히 데이터를 저장하는 용도로만 사용됐으나, 현대에 들어서 클라우드 및 데이터센터는 다양한 사용자 요구사항을 만족할 수 있도록 스토리지 시스템을 설계하려는 추세이다. 하지만 스토리지 시스템은 복잡한 소프트웨어 스택 및 하드웨어 내부 구조를 가지고 있어서, 사용자 요구사항을 만족하도록 재설계하는 것은 어려운 일이라고 할 수 있다. 본 논문에서는 스토리지 시스템의 종합적인 이해를 기반으로 하드웨어와 소프트웨어를 동시에 디자인함으로써 사용자의 요구사항을 만족할 수 있는 시스템을 제안한다. 이는 총 세 가지 사용자 요구사항을 만족하는 솔루션을 포함한다. 첫 번째로, 다중 컨테이너를 실행하는 클라우드 환경에서는 마치 각 컨테이너가 개별적으로 실행되고 있는 것처럼 스토리지 시스템을 설계하기를 요구한다. 이를 위해 챕터 2에서는 컨테이너별 입출력 자원을 격리함으로써 각 컨테이너가 일정한 입출력 성능을 보장받을 수 있도록 하였다. 두 번째로, 로그 구조 병합 키-값 저장소 실행 환경에서는 모든 읽기 지연시간이 동일한 성능을 보장받기를 요구한다. 이를 위해 챕터 3에서는 읽기 요청에 대해 특정 수준의 지연시간을 보장하는 스토리지 시스템을 설계하였다. 마지막으로 대규모 그래프에 대한 딥러닝 서비스를 제공하는 환경에서는 응용 서비스를 가속하기를 요구한다. 이를 위해 챕터 4에서는 그래프 딥러닝 서비스 전용 연산 스토리지를 설계한다.