KR20130104099A - 나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스 - Google Patents

나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스 Download PDF

Info

Publication number
KR20130104099A
KR20130104099A KR1020120025285A KR20120025285A KR20130104099A KR 20130104099 A KR20130104099 A KR 20130104099A KR 1020120025285 A KR1020120025285 A KR 1020120025285A KR 20120025285 A KR20120025285 A KR 20120025285A KR 20130104099 A KR20130104099 A KR 20130104099A
Authority
KR
South Korea
Prior art keywords
nas
data
operating environment
storage
data input
Prior art date
Application number
KR1020120025285A
Other languages
English (en)
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 KR1020120025285A priority Critical patent/KR20130104099A/ko
Publication of KR20130104099A publication Critical patent/KR20130104099A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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/22Microcontrol or microprogram arrangements
    • 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/451Execution arrangements for user interfaces

Abstract

본 발명은 NAS에서 동작 환경 설정 방법에 관한 것이다. 본 발명의 일 실시예에서, 데이터 입출력에 대해서 사용된 장치 및 데이터 용량 정보를 포함하는 데이터 입출력 이력이 저장되고, 상기 저장된 이력이 분석되고, 상기 분석 결과에 따라 NAS의 동작 환경이 설정될 수 있다. 네트워크 사용량과 스토리지 사용량의 비교 또는 연속 기록 또는 재생 회수와 랜덤 기록 또는 재생 회수의 비교를 통해 상기 데이터 입출력 이력이 분석될 수 있다. 상기 데이터 입출력 이력 중에서 일정 크기 이상의 파일 데이터의 읽기 또는 쓰기 동작이 상대적으로 많으면, 송수신되는 데이터를 임시로 저장하는 버퍼에 많은 공간을 할당하거나 스토리지에 데이터를 쓰는 명령 또는 상기 스토리지로부터 데이터를 읽는 명령에 대해서 둘 이상을 한 번에 처리할 수 있다. 또한, 상기 데이터 입출력 이력 중에서 파일 크기가 작은 파일에 대한 읽기 동작이 상대적으로 많으면, 상기 NAS의 메모리 내에서 송수신되는 데이터를 임시로 저장하는 버퍼의 크기를 줄이거나 스토리지로부터 읽어 상기 버퍼에 저장되는 파일을 지우는 시간 간격을 늘릴 수 있다. 따라서, 사용자의 사용 패턴에 맞게 NAS의 동작 환경이 최적화될 수 있다.

Description

나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스 {Method for setting operating environment in NAS and NAS capable of setting operating environment}
본 발명은 NAS에서 동작 환경 설정 방법에 관한 것으로, 구체적으로는 사용자가 NAS를 사용하는 목적에 따라 NAS의 성능이 최적화되도록 동작 환경을 설정하는 방법에 관한 것이다.
최근 태블릿 PC, 노트북 PC, 스마트 폰과 같은 휴대용 컴퓨터를 사용하는 사람들이 많이 늘어나고, 잘 갖춰진 인터넷 인프라 덕에 카페나 지하철에서는 물론이고 집안에서조차 고정된 데스크톱 PC에 만족하지 못하고 이동하며 휴대용 컴퓨터를 사용하곤 한다. 또한, 자신이 보유한 많은 양의 데이터를 인터넷을 통해 가져와 쓰고자 하는 욕구가 늘어, 인터넷만 연결되면 언제 어디서나 자신의 데이터를 이용할 수 있도록 하는 장치인 나스(NAS: Network Attached Storage)가 인기를 끌게 된다.
나스는 네트워크에 연결돼 있는 스토리지라고 간단히 정의할 수 있는데, 컴퓨터에 장착돼 의존적으로 실행되지 않고 독립적인 전원과 IP 주소를 가지고 있어 굳이 컴퓨터의 전원을 켜놓지 않아도 적은 소비 전력으로 오랫동안 사용할 수 있다.
가상 서버라 불리는 클라우드 시장이 성장함에 따라 NAS 시장은 위축될 것이라는 말이 많은데, 이는 네트워크를 이용하여 사용자가 원하는 파일을 넣고 빼는 기능들이 클라우드와 거의 흡사하기 때문이다. 하지만, NAS 시장은 위축되지 않고 꾸준히 성장하고 있는데, 이는 일반 소비자들에게 아직 클라우드에 대한 개념이 자리잡지 않았고, 아직 안정화되지 않은 클라우드를 이용하기에는 심적 부담감이 있고, 더욱이 보안에 대해 극도로 민감해진 사용자들이 개인용 클라우드이자 개인용 네트워크 HDD로 볼 수 있는 NAS를 더 선호하기 때문이다.
이와 같이 NAS가 주로 개인용 클라우드 또는 개인용 네트워크 HDD 용도로 사용되고 있기 때문에, NAS의 성능은 주로 데이터 전송 속도를 위주로 평가되어 성능 측정 툴인 NAS PT, robocopy 등에서 성능 수치가 잘 나오도록 NAS의 동작 환경이 파일 전송 위주로 설정되고 있다.
하지만, 일반 사용자의 경우 이런 파일 전송 속도에 민감하기보다는 웹 서버나 메일 서버와 같은 일반적 사용 성능이 더 중요할 수 있지만, 사용자는 자신의 NAS 사용 목적과 관계없이 통일화되어 동작 환경이 설정된 NAS를 사용할 수 밖에 없었다. 그리고, 일반 사용자에게는 NAS의 동작 환경을 자신의 사용 패턴에 맞도록 바꾸는 것이 쉽지는 않다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은, 파일 전송, 데이터베이스, 웹, 메일 서버 등과 같이 사용자가 NAS를 사용하는 목적에 따라 NAS의 성능을 최적화시키는 동작 환경을 설정하는 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 실시예에 따른 NAS에서의 데이터 공유 방법은, 데이터 입출력에 대해서 사용된 장치 및 데이터 용량 정보를 포함하는 데이터 입출력 이력을 저장하는 단계; 상기 저장된 이력을 분석하는 단계; 및 상기 분석 결과에 따라 NAS의 동작 환경을 설정하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
일 실시예에서, 네트워크 사용량과 스토리지 사용량의 비교 또는 연속 기록 또는 재생 회수와 랜덤 기록 또는 재생 회수의 비교를 통해 상기 데이터 입출력 이력을 분석할 수 있다.
일 실시예에서, 상기 데이터 입출력 이력 중에서 일정 크기 이상의 파일 데이터의 읽기 또는 쓰기 동작이 상대적으로 많으면, 상기 NAS의 동작 환경을 파일 서버에 맞도록 설정하는데, 송수신되는 데이터를 임시로 저장하는 버퍼에 많은 공간을 할당하거나 스토리지에 데이터를 쓰는 명령 또는 상기 스토리지로부터 데이터를 읽는 명령에 대해서 둘 이상을 한 번에 처리할 수 있다.
일 실시예에서, 상기 데이터 입출력 이력 중에서 스토리지에 쓰기 동작이 상대적으로 적으면, 상기 NAS의 동작 환경을 메일 서버에 맞도록 설정할 수 있다.
일 실시예에서, 상기 데이터 입출력 이력 중에서 파일 크기가 작은 파일에 대한 읽기 동작이 상대적으로 많으면, 상기 NAS의 동작 환경을 웹 서버에 맞도록 설정하는데, 송수신되는 데이터를 임시로 저장하는 버퍼의 크기를 줄이거나 스토리지로부터 읽어 상기 버퍼에 저장되는 파일을 지우는 시간 간격을 늘릴 수 있다.
본 발명의 다른 실시예에 따른 동작 환경 설정이 가능한 NAS는, 운영 체제의 커널을 적재하고 응용 프로그램의 실행 과정에서 생성되는 데이터를 임시로 저장하기 위한 메모리; 상기 메모리에 적재된 커널이라 응용 프로그램을 실행시키고 그에 따른 제어 신호를 출력하고 상기 응용 프로그램의 실행 과정에서 생성되는 데이터를 상기 메모리에 저장시키는 중앙 처리 장치; 상기 운영 체제, 응용 프로그램, 데이터 파일 중 적어도 하나 이상을 저장하기 위한 스토리지; 및 IP 연결을 위한 네트워크 인터페이스를 포함하여 구성되고, 상기 응용 프로그램이 상기 중앙 처리 장치에 의해 실행되어, 상기 커널에서 발생하는 데이터 입출력에 대해서 사용된 장치 및 데이터 용량 정보를 포함하는 데이터 입출력 이력을 상기 메모리에 저장하고, 상기 저장된 데이터 입출력 이력을 분석한 결과에 따라 NAS의 동작 환경을 설정하는 것을 특징으로 한다.
일 실시예에서, 상기 응용 프로그램은, 네트워크 사용량과 스토리지 사용량의 비교 또는 연속 기록 또는 재생 회수와 랜덤 기록 또는 재생 회수의 비교를 통해 상기 데이터 입출력 이력을 분석할 수 있다.
일 실시예에서, 상기 응용 프로그램은, 상기 데이터 입출력 이력 중에서 일정 크기 이상의 파일 데이터의 읽기 또는 쓰기 동작이 상대적으로 많으면 상기 NAS의 동작 환경을 파일 서버에 맞도록 설정하는데, 송수신되는 데이터를 임시로 저장하는 버퍼에 많은 공간을 할당하거나 상기 스토리지에 데이터를 쓰는 명령 또는 상기 스토리지로부터 데이터를 읽는 명령에 대해서 둘 이상을 한 번에 처리하도록 제어할 수 있다.
일 실시예에서, 상기 응용 프로그램은, 상기 데이터 입출력 이력 중에서 상기 스토리지에 쓰기 동작이 상대적으로 적으면 상기 NAS의 동작 환경을 메일 서버에 맞도록 설정할 수 있다.
일 실시예에서, 상기 응용 프로그램은, 상기 데이터 입출력 이력 중에서 파일 크기가 작은 파일에 대한 읽기 동작이 상대적으로 많으면 상기 NAS의 동작 환경을 웹 서버에 맞도록 설정하는데, 송수신되는 데이터를 임시로 저장하는 버퍼의 크기를 줄이거나 상기 스토리지로부터 읽어 상기 버퍼에 저장되는 파일을 지우는 시간 간격을 늘릴 수 있다.
따라서, 사용자의 사용 패턴에 맞게 NAS의 동작 환경이 최적화될 수 있다.
도 1은 본 발명의 일 실시예에 따라 NAS의 사용 이력을 모아 저장하고 분석하는 실시예를 개념적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 동작 환경 설정 방법이 적용되는 NAS에 대한 구성을 도시한 것이고,
도 3은 본 발명의 일 실시예에 따른 NAS에서 동작 환경 설정 방법에 대한 동작 흐름도를 도시한 것이다.
이하, 본 발명에 따른 NAS에서 동작 환경 설정 방법에 대한 실시예를 첨부하는 도면에 의거하여 상세히 설명한다.
대개의 NAS 사용자는 파일 서버, 웹 서버, 메일 서버 등 여러 용도의 범용으로 사용하기 위해 NAS를 구입하여 설치하지만, 사용자의 성향, 취향, 습성 등에 따라 NAS의 쓰임새가 한쪽으로 치우치는 경향이 있다.
하지만, 앞서 언급한 대로, NAS가 성능 지수로 인용되는 파일 전송 성능을 높이는 방향으로 주로 동작 환경이 설정되기 때문에, 사용자가 NAS를 파일 서버가 아닌 웹 서버나 메일 서버 위주로 사용하는 경우 제 성능을 발휘하지 못할 수도 있다. 또한, 사용자의 NAS 사용 패턴이 고정되지 않고 시간이나 요일 또는 다른 조건에 따라 달라질 수 있기 때문에, NAS의 동작 환경을 사용자가 원하는 환경으로 설정하여도 이내 사용자의 사용 패턴과 맞지 않게 될 수 있다.
따라서, 본 발명에서는, NAS에 대한 사용자의 사용 이력을 모아 저장하고 이를 분석하여 사용자의 사용 패턴을 얻고 사용자의 사용 패턴에 맞게 사용자에 최적인 동작 환경을 설정할 수 있다.
도 1은 본 발명의 일 실시예에 따라 NAS의 사용 이력을 모아 저장하고 분석하고 분석 결과에 따라 NAS의 동작 환경을 최적화하는 실시예를 개념적으로 도시한 것으로, 도 1에서 DPO는 동적 성능 최적화기(Dynamic Performance Optimizer)를 가리킨다
NAS는 데몬(daemon)을 통해 사용자가 NAS를 통해 어떤 기능을 주로 사용하는지 모니터링 하고 분석하여 최적의 동작 환경을 설정하는데, 도 1에서 NAS의 동작 환경 설정 동작은 DPO 컬렉터(collector), DPO 데이터 베이스(database), DPO 행위자(actor)를 포함하는 최적화 어플리케이션을 통해 이루어진다.
데몬은 유닉스와 같은 멀티태스킹 운영 체제에서 사용자가 직접 제어하지 않고 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 시스템이 시작할 때 데몬을 시작하는 경우가 많으며, 이런 데몬들은 네트워크 요청, 하드웨어 동작, 여타 프로그램에 반응하는 기능을 담당하는데, 하드웨어 설정이나 주기적인 작업을 실행하는 등 다양한 목적으로 사용된다.
DPO 컬렉터는, 리눅스 커널 레이어(Linux Kernel layer)에서 동작하여 VFS(Virtual File System)를 통해 디스크, USB(Universal Serial Bus), 또는 네트워크에서 데이터의 입출력이 어떻게 이루어지는지 데이터 입출력 이력을 모으는 역할을 수행한다. 데이터 입출력 이력은 데이터 입출력 명령이 향하는 장치가 무엇인지를 가리키는 사용 장치, 데이터 입출력 명령에 의해 전달되는 데이터의 용량 등의 정보를 포함할 수 있다. DPO 컬렉터는 수집한 데이터 입출력 이력을 리눅스 어플리케이션 레이어(Linux Application layer)에서 동작하는 DPO 데이터 베이스에 저장한다.
DPO 데이터 베이스는, DPO 컬렉터가 수집한 데이터 입출력 이력을 입출력 발생 시간, 사용 장치, 데이터 용량 중 하나 이상을 기준으로 정렬하여 관리할 수 있다.
리눅스 어플리케이션 레이어에서 동작하는 DPO 행위자는, DPO 데이터 베이스에 관리되는 데이터를 분석하여 사용자가 어떤 형태로 NAS를 사용하는지 판단하여 사용자의 사용 패턴을 얻고 이를 기초로 사용자의 사용 패턴에 최적인 동작 환경을 설정할 수 있다. DPO 행위자는 일정 시간 간격, 예를 들어 주 단위로 데이터 입출력 이력을 분석하여 사용 패턴을 얻고 NAS 동작 환경을 변경할 수 있는데, 요일이나 시간대마다 사용 패턴을 얻고 그에 맞는 동작 환경을 설정할 수 있다. 예를 들어, 낮 시간대에는 웹 서버에 맞게 환경을 설정하고 저녁 시간대에는 파일 서버에 맞게 환경을 설정하거나, 평일에는 웹 서버에 맞게 환경을 설정하거나 주말에는 파일 서버에 맞게 환경을 설정할 수 있다.
이러한 기능을 수행하는 소프트웨어 모듈인 DPO 컬렉터, DPO 데이터 베이스, DPO 행위자를 포함하는 최적화 어플리케이션은 데몬 형태로 백그라운드로 동작하고 시스템이 시동할 때 시작할 수 있다.
한편, 리눅스 파일 시스템에는 인터페이스 세트가 추상화되어 있으며 그 결과 유연성과 확장성이 지원되는데, 이러한 인터페이스 세트의 핵심이 VFS(Virtual File System)이다.
VFS는 파일 시스템 중에 하나이다. 파일 시스템이란 것은 저장을 위한 장치에 파일의 정보와 데이터를 체계적으로 기록하여 파일을 읽고, 쓰고, 지울 때 편리하도록 하기 위해 존재한다. 윈도우는 FAT or NTFS라는 파일 시스템을 사용하고, 리눅스에도 RFS, NFS, JFFS 등 여러 가지의 파일 시스템이 존재하며, 또한 광 디스크에는 ISO9660, UDF, UDF 등의 파일 시스템이 존재하여, 각각의 파일 시스템은 파일 시스템을 얹을 장치나 운영 체제에 따라 달라지게 된다.
VFS는 다양한 파일 시스템 세트에서 데이터 입출력(I/O: Input/Output)을 실행할 수 있도록 상위 계층 애플리케이션에 표준 인터페이스 세트를 제공하는 역할을 하여, 여러 파일 시스템의 저장 장치를 하나의 명령어로 제어할 수 있도록 합니다. 즉, VFS는 하나 이상의 기본 장치에서 동시에 다수의 파일 시스템을 지원하는 방식으로 인터페이스를 제공하므로, VFS를 이용하면 Windows, 유닉스, 리눅스 등의 운영 체제와 상관없이 파일 및 폴더에 대한 접근이 용이해진다. 이때, 파일 시스템은 정적일 필요가 없으며 스토리지 장치의 일시적 특성에 따라 변화할 수 있다.
최적화 어플리케이션은, HDD나 SDD의 스토리지, USB 인터페이스에 연결된 USB 메모리나 광 디스크 드라이브, 또는 네트워크 인터페이스에 연결되고 원격에 위치하는 IP 기기에 데이터를 쓰거나 데이터를 읽기 위한 명령이 발행되는지 등을 리눅스 커널 레이어에서 동작하는 VFS를 통해 검출하여 데이터 입출력 이력을 얻을 수 있는데, 이러한 데이터 입출력 이력은 데이터 읽기/쓰기 명령의 대상이 되는 장치 정보(디스크, USB, 네트워크 등), 읽기/쓰기 명령에 의해 요청된 데이터 용량 정보, 시간 정보 등을 데이터 베이스로 관리할 수 있다.
또한, 최적화 어플리케이션은, 데이터 베이스에 관리되는 데이터 입출력 이력을 분석하여 사용자가 NAS를 어떻게 사용하는지를 가리키는 사용 패턴을 얻는데, 네트워크 사용량 대비 디스크 사용량의 비를 확인하거나 읽기나 기록 명령이 연속적으로 발행되는지 아니면 랜덤 하게 발행되는 지 등을 확인하여 사용 패턴을 얻을 수 있다.
최적화 어플리케이션은, 일정 크기 이상의 파일이 지속적으로 쓰이는지, HDD로 가는 기록 명령이 거의 없는지 작은 크기의 많은 개수의 파일에 대한 읽기/쓰기가 많은지 등을 확인하여, 파일 전송이 많으면 사용자가 NAS를 파일 서버로 사용하는 것으로 판단할 수 있고, HDD로 가는 기록 명령의 거의 없으면 사용자가 NAS를 메일 서버로 사용하는 것으로 판단할 수 있고, 작은 크기의 파일을 많이 읽고 쓰면 사용자가 NAS를 웹 서버로 사용하는 것으로 판단할 수 있다.
또한, 최적화 어플리케이션은, 사용자가 NAS를 사용하는 패턴을 얻으면 사용자가 주로 사용하는 기능에 따라 NAS의 동작 환경을 최적화시키는데, 파일 전송이 많아 주로 파일 서버로 사용된다고 판단되면 데이터의 송수신에 필요한 버퍼 크기를 크게 잡거나 HDD와 같은 디스크에서 데이터를 읽거나 쓸 때 최대한 많은 양의 데이터를 읽거나 쓸 수 있다.
또한, 최적화 어플리케이션은, 작은 크기의 여러 파일을 읽거나 쓰는 동작이 많아 주로 웹 서버로 사용된다고 판단되면 송수신에 필요한 버퍼 크기를 줄이고 메모리에 파일을 최대한 오래 상주시킬 수 있다.
또한, 최적화 어플리케이션은, HDD로 가는 기록 명령의 거의 없어 주로 메일 서버로 사용된다고 판단되는 경우, 메일 서버는 시스템 성능에 크게 영향을 받지 않기 때문에 현재 동작 환경을 유지하거나 파일 서버와 웹 서버의 중간 정도의 동작 환경으로 설정할 수 있다.
도 2는 본 발명의 일 실시예에 따른 동작 환경 설정 방법이 적용되는 NAS에 대한 구성을 도시한 것이다.
본 발명의 일 실시예에 따른 NAS(100)는 메모리(Memory)(110), 중앙 처리 장치(CPU: Central Processing Unit)(120), 스토리지(Storage)(130), USB 인터페이스(140), 및 네트워크 인터페이스(150)를 포함하여 구성될 수 있다.
상기 메모리(110)는, 램(RAM: Random Access Memory)과 롬(Read Only Memory)를 포함하여 구성될 수 있고, 롬은 NAS(100)가 최초로 구동될 때 실행되어야 하는 메모리 테스트와 같은 부팅 프로그램을 저장하고, 램은 운영 체제(OS: Operating System)의 커널과 응응 프로그램을 적재하고 프로그램의 실행 과정에서 생성되는 데이터를 임시로 저장한다.
상기 중앙 처리 장치(120)는 상기 메모리(110)에 적재된 커널이나 응용 프로그램을 실행시키거나 상기 스토리지(130)에 저장된 소프트웨어를 실행시키고 그에 따른 제어 신호를 출력하고, 프로그램 실행 과정에서 생성되는 데이터나 결과 데이터를 상기 메모리(110)에 저장시킨다.
상기 스토리지(130)는, 운영 체제, 응용 프로그램, 콘텐츠 데이터, 사용자 데이터 등의 대용량의 데이터를 보관하기 위한 하드 디스크 드라이브(HDD)나 SSD(Solid State Disk)와 같은 저장 장치로, 대용량의 데이터를 저장하기 위한 물리적 저장 매체(하드 디스크 또는 플래시 메모리)와 상기 중앙 처리 장치(120)의 제어에 따라 저장 매체를 제어하는 디스크 컨트롤러를 포함할 수 있다. 상기 스토리지(130)는 SD(Security Digital), 메모리 스틱과 같은 착탈식 플래시 메모리가 장착된 메모리 인터페이스가 될 수도 있다.
상기 USB 인터페이스(140)는 NAS(100)와 주변 기기를 연결하기 위한 입출력 수단으로 USB 컨트롤러와 USB 포트로 구성될 수 있고, 유사한 고성능 직렬 버스로 디지털 기기 사이의 정보 전송 수단인 IEEE 1394(Firewire) 인터페이스로 대체될 수도 있다.
상기 네트워크 인터페이스(150)는 외부 기기와 IP(Internet Protocol)를 통해 연결하여 데이터를 주고 받기 위한 수단으로 네트워크 컨트롤러와 네트워크 포트로 구성될 수 있다.
본 발명의 일 실시예에 따른 최적화 어플리케이션은, 상기 메모리(110)에 적재되어 상기 중앙 처리 장치(120)에 의해 실행되는데, 데몬 형태로 다른 어플리케이션과 별개로 백그라운드로 동작하고 NAS 시스템이 시작할 때 그 동작을 시작할 수 있다.
상기 중앙 처리 장치(120)에 의해 실행되는 최적화 어플리케이션은, 리눅스 커널 레이어의 VFS를 통해서 데이터 입출력 이력을 수집하고 이를 데이터 베이스로 저장하고, 데이터 입출력 이력을 정기적으로 분석하여 사용 패턴을 얻어 하드웨어와 소프트웨어의 동작 환경을 설정하거나 변경한다.
도 3은 본 발명의 일 실시예에 따른 NAS에서 동작 환경 설정 방법에 대한 동작 흐름도를 도시한 것이다.
상기 중앙 처리 장치(120)에 의해 실행되는 최적화 어플리케이션은, 리눅스 커널 레이어의 VFS를 통해서 HDD나 SDD와 같은 스토리지(130)나 USB 인터페이스(140)에 연결된 외장형 HDD나 ODD에 대한 데이터 읽기 또는 쓰기 동작이 발생하거나 또는 네트워크 인터페이스에 연결된 외부 IP 기기에 데이터 전송하거나 수신하는 동작이 발생하면, 이에 대한 입출력 대상이 되는 사용 장치, 데이터의 용량 등을 포함하는 데이터 입출력 이력을 수집하고 이를 데이터 베이스로 상기 메모리(110) 내에 저장한다(S310).
상기 최적화 어플리케이션은, 사용자의 NAS 사용 패턴을 얻을 수 있을 정도의 충분한 데이터 입출력 이력이 메모리(110)에 데이터 베이스로 저장되어 있는지 확인하는데(S320), 데이터 입출력 이력을 정기적으로 분석하는 경우 S320 단계는 소정의 정해진 시간의 경과 여부를 묻는 단계로 치환될 수도 있다.
상기 메모리(110)에 충분한 데이터 입출력 이력이 수집되면(S320에서 YES), 상기 최적화 어플리케이션은, 수집된 데이터 입출력 이력에서 네트워크 사용량 대비 디스크 사용량의 비나 읽기/쓰기 명령의 발행이 연속적인지 랜덤한지 등의 확인하고 분석하여 사용자 패턴을 얻는데(S330), 일정 크기 이상의 파일이 지속적으로 쓰이는 것과 같이 파일 전송이 많으면 NAS가 주로 파일 서버로 동작하는 것으로 판단하고, 상기 스토리지(130)로 가는 기록 명령이 거의 없으면 NAS가 주로 메일 서버로 동작하는 것으로 하고, 상기 스토리지(130)에서 작은 크기의 파일을 많이 읽거나 쓰면 NAS가 주로 웹 서버로 동작하는 것으로 판단할 수 있다.
상기 최적화 어플리케이션은, 상기 분석 결과를 맞게 NAS의 동작 환경의 설정을 변경하여 NAS 동작을 최적화시키는데(S340), NAS가 주로 파일 서버로 동작하는 것으로 판단되면, 데이터의 송수신에 필요한 버퍼, 예를 들어 상기 스토리지(130)의 디스크 컨트롤러에 마련된 버퍼 크기를 크게 잡거나, 상기 네트워크 인터페이스(150)의 네트워크 컨트롤러에 마련된 버퍼 또는 상기 메모리(110)의 램에 마련된 버퍼 중 하나 이상에 많은 공간을 할당할 수 있다.
또한, 최적화 어플리케이션은, NAS가 주로 파일 서버로 동작하는 것으로 판단되면, 상기 메모리(110)에 적재되어 상기 중앙 처리 장치(120)에 의해 실행되는 운영 체제의 커널을 통해 구현되는 디스크 스케줄러(disk scheduler) 또는 I/O 스케줄러, 예를 들어 블록 디바이스 플러깅(block device plugging) 기법 등을 이용하여 HDD와 같은 스토리지(130)에서 데이터를 읽거나 쓸 때 최대한 많은 양의 데이터를 읽거나 쓸 수 있다.
블록 디바이스 플러그에 대해 살펴보면, 먼저 디스크 특성에 대해 간단한 설명이 필요하다. HDD의 경우 두드러지는 특성이지만 SSD도 특성은 크게 다르지 않다. 디스크에서 I/O 요청(request)를 처리하는 속도는 요청의 크기, 즉 I/O 요청에 포함된 데이터의 용량에 영향을 받지만, 요청의 개수에도 영향을 받는다. 다시 말해, 8KB를 한번 읽는 것보다, 4KB를 두 번 읽는 게 훨씬 느리다. 실제로 디스크가 플래터에서 정보를 읽어내는 시간에 비해 그 외의 준비하는 데에도 시간이 적잖게 걸리기 때문이다.
디스크 상에서 연속적인(contiguous) 요청 두 개를 처리하려고 하는 상황에서, 두 개 또는 그 이상의 요청을 하나의 요청으로 합쳐서 처리한다면 빨리 처리할 수 있게 된다. 하지만, 플러그(plug)가 없는 상황에서 기본적인 동작은 제1 요청이 들어오자마자 디스크가 제1 요청을 처리하기 시작하고, 곧 제2 요청이 들어올 예정인데 디스크는 제1 요청을 처리하고 있기 때문에, 결과적으로 제2 요청은 별도로 처리되어 처리 시간이 많이 걸린다. 하지만, 플러그를 이용한다면 제1 요청과 제2 요청을 한꺼번에 처리할 수 있다.
즉, 제1 요청을 보내기 전에 플러그 해서, 디스크가 요청을 즉석에서 처리하지 않도록 멈춰 놓은 다음, 제1 요청과 제2 요청을 보내는 것이다. 제2 요청을 보낸 다음 언플러그(unplug)를 수행하면, 디스크는 한꺼번에 제1 요청과 제2 요청을 처리할 수 있다. 결과적으로 더 빨리 끝나게 되는 것이다.
또한, 최적화 어플리케이션은, NAS가 주로 웹 서버로 동작하는 것으로 판단되면, 데이터의 송수신에 필요한 버퍼에 할당된 공간을 줄이고, 업로드나 다운로드 되면서 상기 메모리(110)이나 버퍼에 임시로 보관되는 많은 수의 파일을 청소하는 시간의 주기 또는 간격을 길게 하여, 한 번 방문한 페이지에 포함된 파일들을 읽기 위해 상기 스토리지(130)를 다시 접근하는 동작의 수를 줄일 수 있다.
이상 전술한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.
100: NAS 110: 메모리
120: 중앙 처리 장치 130: 스토리지
140: USB 인터페이스 150: 네트워크 인터페이스

Claims (16)

  1. 데이터 입출력에 대해서 사용된 장치 및 데이터 용량 정보를 포함하는 데이터 입출력 이력을 저장하는 단계;
    상기 저장된 이력을 분석하는 단계; 및
    상기 분석 결과에 따라 NAS의 동작 환경을 설정하는 단계를 포함하여 이루어지는 NAS에서 동작 환경 설정 방법.
  2. 제 1항에 있어서,
    네트워크 사용량과 스토리지 사용량의 비교 또는 연속 기록 또는 재생 회수와 랜덤 기록 또는 재생 회수의 비교를 통해 상기 데이터 입출력 이력을 분석하는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  3. 제 2항에 있어서,
    상기 데이터 입출력 이력 중에서 일정 크기 이상의 파일 데이터의 읽기 또는 쓰기 동작이 상대적으로 많으면, 상기 NAS의 동작 환경을 파일 서버에 맞도록 설정하는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  4. 제 3항에 있어서,
    송수신되는 데이터를 임시로 저장하는 버퍼에 많은 공간을 할당하는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  5. 제 3항 또는 제 4항에 있어서,
    스토리지에 데이터를 쓰는 명령 또는 상기 스토리지로부터 데이터를 읽는 명령에 대해서 둘 이상을 한 번에 처리하는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  6. 제 1항에 있어서,
    상기 데이터 입출력 이력 중에서 스토리지에 쓰기 동작이 상대적으로 적으면, 상기 NAS의 동작 환경을 메일 서버에 맞도록 설정하는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  7. 제 1항에 있어서,
    상기 데이터 입출력 이력 중에서 파일 크기가 작은 파일에 대한 읽기 동작이 상대적으로 많으면, 상기 NAS의 동작 환경을 웹 서버에 맞도록 설정하는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  8. 제 7항에 있어서,
    송수신되는 데이터를 임시로 저장하는 버퍼의 크기를 줄이는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  9. 제 7항 또는 제 8항에 있어서,
    스토리지로부터 읽어 상기 버퍼에 저장되는 파일을 지우는 시간 간격을 늘리는 것을 특징으로 하는 NAS에서 동작 환경 설정 방법.
  10. 운영 체제의 커널을 적재하고 응용 프로그램의 실행 과정에서 생성되는 데이터를 임시로 저장하기 위한 메모리;
    상기 메모리에 적재된 커널이라 응용 프로그램을 실행시키고 그에 따른 제어 신호를 출력하고 상기 응용 프로그램의 실행 과정에서 생성되는 데이터를 상기 메모리에 저장시키는 중앙 처리 장치;
    상기 운영 체제, 응용 프로그램, 데이터 파일 중 적어도 하나 이상을 저장하기 위한 스토리지; 및
    IP 연결을 위한 네트워크 인터페이스를 포함하여 구성되고,
    상기 응용 프로그램이 상기 중앙 처리 장치에 의해 실행되어,
    상기 커널에서 발생하는 데이터 입출력에 대해서 사용된 장치 및 데이터 용량 정보를 포함하는 데이터 입출력 이력을 상기 메모리에 저장하고, 상기 저장된 데이터 입출력 이력을 분석한 결과에 따라 NAS의 동작 환경을 설정하는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
  11. 제 10항에 있어서,
    상기 응용 프로그램은, 네트워크 사용량과 스토리지 사용량의 비교 또는 연속 기록 또는 재생 회수와 랜덤 기록 또는 재생 회수의 비교를 통해 상기 데이터 입출력 이력을 분석하는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
  12. 제 11항에 있어서,
    상기 응용 프로그램은, 상기 데이터 입출력 이력 중에서 일정 크기 이상의 파일 데이터의 읽기 또는 쓰기 동작이 상대적으로 많으면 상기 NAS의 동작 환경을 파일 서버에 맞도록 설정하는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
  13. 제 12항에 있어서,
    상기 응용 프로그램은, 송수신되는 데이터를 임시로 저장하는 버퍼에 많은 공간을 할당하거나 상기 스토리지에 데이터를 쓰는 명령 또는 상기 스토리지로부터 데이터를 읽는 명령에 대해서 둘 이상을 한 번에 처리하도록 제어하는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
  14. 제 11항에 있어서,
    상기 응용 프로그램은, 상기 데이터 입출력 이력 중에서 상기 스토리지에 쓰기 동작이 상대적으로 적으면 상기 NAS의 동작 환경을 메일 서버에 맞도록 설정하는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
  15. 제 11항에 있어서,
    상기 응용 프로그램은, 상기 데이터 입출력 이력 중에서 파일 크기가 작은 파일에 대한 읽기 동작이 상대적으로 많으면 상기 NAS의 동작 환경을 웹 서버에 맞도록 설정하는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
  16. 제 15항에 있어서,
    상기 응용 프로그램은, 송수신되는 데이터를 임시로 저장하는 버퍼의 크기를 줄이거나 상기 스토리지로부터 읽어 상기 버퍼에 저장되는 파일을 지우는 시간 간격을 늘리는 것을 특징으로 하는 동작 환경 설정이 가능한 NAS.
KR1020120025285A 2012-03-13 2012-03-13 나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스 KR20130104099A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120025285A KR20130104099A (ko) 2012-03-13 2012-03-13 나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120025285A KR20130104099A (ko) 2012-03-13 2012-03-13 나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스

Publications (1)

Publication Number Publication Date
KR20130104099A true KR20130104099A (ko) 2013-09-25

Family

ID=49452999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120025285A KR20130104099A (ko) 2012-03-13 2012-03-13 나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스

Country Status (1)

Country Link
KR (1) KR20130104099A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230154531A (ko) 2022-05-02 2023-11-09 에스앤즈 주식회사 Cpu 내부의 데이터 병목처리 기능을 지원하는 네트워크 저장 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230154531A (ko) 2022-05-02 2023-11-09 에스앤즈 주식회사 Cpu 내부의 데이터 병목처리 기능을 지원하는 네트워크 저장 장치

Similar Documents

Publication Publication Date Title
US10509739B1 (en) Optimized read IO for mix read/write scenario by chunking write IOs
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
JP5185445B2 (ja) ストレージシステム及びストレージシステムにおける使用容量管理方法
US8966218B2 (en) On-access predictive data allocation and reallocation system and method
KR102236419B1 (ko) 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체
US10719245B1 (en) Transactional IO scheduler for storage systems with multiple storage devices
US8521692B1 (en) Storage system and method for controlling storage system
JP2014513338A (ja) 仮想ディスクの最適圧縮
CN103348331A (zh) 具数据管理的层级式数据储存系统及其操作方法
US9021204B1 (en) Techniques for managing data storage
US20140201175A1 (en) Storage apparatus and data compression method
EP2981920A1 (en) Detection of user behavior using time series modeling
US20180181307A1 (en) Information processing device, control device and method
US20210109822A1 (en) Systems and methods for backup and restore of container-based persistent volumes
US10592123B1 (en) Policy driven IO scheduler to improve write IO performance in hybrid storage systems
US9135191B1 (en) Techniques for storage network bandwidth management
JP2019191886A (ja) 情報処理装置,情報処理方法およびプログラム
EP4283472A1 (en) Method for caching data, a host device for caching data, and a storage system for caching data
US10599340B1 (en) Policy driven IO scheduler to improve read IO performance in hybrid storage systems
KR20130104099A (ko) 나스에서 동작 환경 설정 방법 및 환경 설정이 가능한 나스
KR20130104111A (ko) 나스에서 데이터 처리 방법
Meyer et al. Supporting heterogeneous pools in a single ceph storage cluster
JP6497233B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US10346054B1 (en) Policy driven IO scheduler resilient to storage subsystem performance
CN115878580A (zh) 一种日志管理方法及装置

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination