KR101864813B1 - 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치 - Google Patents

저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101864813B1
KR101864813B1 KR1020167007130A KR20167007130A KR101864813B1 KR 101864813 B1 KR101864813 B1 KR 101864813B1 KR 1020167007130 A KR1020167007130 A KR 1020167007130A KR 20167007130 A KR20167007130 A KR 20167007130A KR 101864813 B1 KR101864813 B1 KR 101864813B1
Authority
KR
South Korea
Prior art keywords
switch
request
flow table
storage
table entry
Prior art date
Application number
KR1020167007130A
Other languages
English (en)
Other versions
KR20160044555A (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 KR20160044555A publication Critical patent/KR20160044555A/ko
Application granted granted Critical
Publication of KR101864813B1 publication Critical patent/KR101864813B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L29/08
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

본 발명의 실시예에 따라서, 저장 시스템에서, 스위치는 요청 식별자를 가지고 있는 조작 요청을 수신하고; 스위치는, 요청 식별자에 따라서, 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해 스위치의 플로우 테이블을 쿼리하며; 스위치는 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 저장 장치들 중 목표 저장 장치에게 조작 요청을 전달한다. 소프트웨어 정의 네트워크의 특징을 사용하여, 조작 요청이 스위치의 플로우 테이블 엔트리의 전달 규칙에 따라서 처리됨으로써, 저장 장치들의 로드 밸런싱을 구현할 수 있으며 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.

Description

저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치 {METHOD AND DEVICE FOR PROCESSING OPERATION REQUEST IN STORAGE SYSTEM}
본 발명은 정보 기술 분야에 관한 것으로, 구체적으로는 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치에 관한 것이다.
저장 시스템에서, 메타데이터(metadata) 서버는 저장 시스템을 위한 조작 요청을 관리하고, 저장 시스템의 메타데이터를 기록하는 데 사용된다. 저장 시스템에 액세스하는 경우, 사용자는 우선 조작 요청에 의해 요구되는 메타데이터를 얻기 위해 메타데이터 서버와 통신해야 한다.
저장 시스템의 로드 밸런싱(load balancing)을 보장하기 위해, 저장 시스템은 종래 기술에서의 글로벌 분포식 로드 밸런싱(global distributed load balancing) 방식에 기초하며, 저장 시스템의 로드 밸런싱은 저장 장치들 사이의 정보 인터랙션(interaction)을 수행함으로써 실현된다. 그러나, 저장 장치들 사이의 정보 인터랙션을 수행하는 것이 번거롭다.
종래 기술에서 전술한 문제를 해결하기 위해, 본 발명의 실시예는 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치와, 비휘발성 컴퓨터 판독가능 저장 매체는 물론, 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법 및 장치와, 비휘발성 컴퓨터 판독가능 저장 매체를 제공한다.
제1 측면에 따라서, 본 발명의 실시예는 스위치와 통신하고 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하는 저장 시스템에서 조작 요청(operation request)을 처리하기 위한 방법을 제공하며,
상기 스위치에 의해, 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자(request identification)를 가지고 있는 조작 요청을 수신하는 단계;
상기 요청 식별자에 따라서 상기 스위치에 의해, 상기 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해 상기 스위치의 플로우 테이블을 쿼리하는 단계; 및
상기 스위치에 의해, 상기 매칭되는 플로우 테이블 엔트리의 전달 규칙(forwarding rule)에 따라서 상기 저장 장치들 중 목표 저장 장치에게 상기 조작 요청을 전달하는 단계를 포함한다.
제1 측면의 실시예에 따라서, 제1 가능한 구현예에서, (1) 상기 요청 식별자가 상기 사용자 그룹 정보인 경우, 상기 조작 요청의 가상 로컬 영역 네트워크 식별 비트(virtual local area network identification bit)가 상기 사용자 그룹 정보를 가지고 있고, 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트가 상기 사용자 그룹 정보를 가지고 있거나, 또는
(2) 상기 요청 식별자가 상기 저장 전략 정보인 경우, 상기 조작 요청의 인터넷 프로토콜 서비스 유형 비트(Internet Protocol Type of Service bit)가 상기 저장 전략 정보를 가지고 있고, 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트가 상기 저장 전략 정보를 가지고 있거나, 또는
(3) 상기 요청 식별자가 상기 사용자 그룹 정보와 상기 저장 전략 정보인 경우, 상기 조작 요청의 가상 로컬 영역 네트워크 식별 비트가 상기 사용자 그룹 정보를 가지고 있고, 상기 조작 요청의 인터넷 프로토콜 서비스 유형 비트가 상기 저장 전략 정보를 가지고 있으며, 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트가 상기 사용자 그룹 정보를 가지고 있고, 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트가 상기 저장 전략 정보를 가지고 있다.
제1 측면의 실시예에 따라서, 제2 가능한 구현예에서, 상기 조작 요청이 판독 요청(read request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 상기 전달 규칙이, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드(flow load)에 따라서, 상기 제어기에 의해 생성된다.
제2 가능한 구현예에 따라서, 제3 가능한 구현예에서, 상기 스위치에 의해, 상기 판독 요청이 상기 목표 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며, 상기 횟수가 상기 매칭되는 플로우 테이블 엔트리 내에 기록된다.
제1 측면 또는 제1 측면의 실시예의 제1 가능한 구현예에 따라서, 제4 가능한 구현예에서, 상기 조작 요청이 기록 요청(write request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 전달 규칙이, 상기 저장 장치들의 여유 저장 공간에 따라서, 상기 제어기에 의해 생성된다.
제4 가능한 구현예에 따라서, 제5 가능한 구현예에서, 상기 스위치에 의해, 상기 기록 요청이 상기 목표 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며, 상기 횟수가 상기 매칭되는 플로우 테이블 엔트리 내에 기록된다.
제2 측면에 따라서, 본 발명의 실시예는 스위치와 통신하고 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치를 포함하는 저장 시스템에 적용되는, 플로우 테이블 엔트리 전달 규칙(flow table entry forwarding rule)을 생성하기 위한 방법을 제공하며,
상기 제어기에 의해, 상기 스위치와 통신하는 상기 저장 장치의 여유 저장 공간 정보를 획득하는 단계; 및
상기 저장 장치의 여유 저장 공간 정보에 따라서 상기 제어기에 의해, 기록 요청에 매칭되는 전달 규칙을 생성하는 단계를 포함하며,
상기 기록 요청은 상기 스위치와 통신하는 상기 저장 장치 내에 데이터를 기록하는 데 사용된다.
제2 측면에 따라서, 제1 가능한 구현예에서, 상기 제어기에 의해, 상기 스위치와 통신하는 상기 저장 장치의 여유 저장 공간 정보를 획득하는 단계가, 구체적으로,
상기 제어기에 의해, 상기 저장 장치에 의해 보고되는 상기 여유 저장 공간 정보를 수신하는 단계를 포함한다.
제2 측면에 따라서, 제2 가능한 구현예에서, 상기 제어기에 의해, 상기 스위치와 통신하는 상기 저장 장치의 여유 저장 공간 정보를 획득하는 단계가, 구체적으로,
상기 제어기에 의해, 상기 기록 요청이 상기 저장 장치에게 전달되는 횟수와 기록된 데이터의 크기를 획득하는 단계 - 상기 횟수와 상기 크기는 상기 스위치의 플로우 테이블의 플로우 테이블 엔트리에 기록됨 -; 및
상기 제어기에 의해, 상기 저장 장치의 저장 공간, 상기 기록 요청의 횟수, 및 상기 기록된 데이터의 크기에 따라서 상기 저장 장치의 여유 저장 공간을 계산하는 단계를 포함한다.
제3 측면에 따라서, 본 발명의 실시예는 스위치와 통신하고 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하는 저장 시스템에 적용되는, 플로우 테이블 엔트리 전달 규칙(flow table entry forwarding rule)을 생성하기 위한 방법을 제공하며,
상기 제어기에 의해, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드(flow load) 정보를 획득하는 단계; 및
상기 요청된 데이터를 저장하는 상기 저장 장치들의 플로우 로드 정보에 따라서 상기 제어기에 의해, 판독 요청에 매칭되는 전달 규칙을 생성하는 단계를 포함한다.
제3 측면에 따라서, 제1 가능한 구현예에서, 상기 제어기에 의해, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보를 획득하는 단계가, 구체적으로,
상기 제어기에 의해, 상기 요청된 데이터를 저장하는 상기 저장 장치들에 의해 보고되는 상기 플로우 로드 정보를 수신하는 단계를 포함한다.
제3 측면에 따라서, 제2 가능한 구현예에서, 상기 제어기에 의해, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보를 획득하는 단계가, 구체적으로,
상기 제어기에 의해, 조작 요청이 상기 요청된 데이터를 저장하는 상기 저장 장치들에게 전달되는 횟수를 획득하는 단계를 포함하며, 상기 횟수는 상기 스위치의 플로우 테이블의 플로우 테이블 엔트리에 기록되고, 상기 조작 요청은 기록 요청 및 판독 요청을 포함한다.
제4 측면에 따라서, 본 발명의 실시예는 저장 시스템에 적용되는 스위치를 제공하며, 상기 저장 시스템은, 상기 스위치와 통신하고, 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하고,
상기 스위치는, 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자(request identification)를 가지고 있는 조작 요청을 수신하도록 구성된 수신 유닛;
상기 요청 식별자에 따라서, 상기 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해 상기 스위치의 플로우 테이블을 쿼리하도록 구성된 쿼리 유닛; 및
상기 매칭되는 플로우 테이블 엔트리의 전달 규칙(forwarding rule)에 따라서 상기 저장 장치들 중 목표 저장 장치에게 상기 조작 요청을 전달하도록 구성된 전달 유닛을 포함한다.
제4 측면에 따라서, 제1 가능한 구현예에서, 상기 조작 요청이 판독 요청(read request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 상기 전달 규칙이, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드(flow load)에 따라서 상기 제어기에 의해 생성된다.
제4 측면에 따라서, 제2 가능한 구현예에서, 상기 조작 요청이 기록 요청(write request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 상기 전달 규칙이, 상기 저장 장치들의 여유 저장 공간에 따라서 상기 제어기에 의해 생성된다.
제5 측면에 따라서, 본 발명의 실시예는 저장 시스템에 적용되는 제어기를 제공하며, 상기 저장 시스템은, 스위치와 통신하며, 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 상기 제어기, 스위치, 및 상기 스위치와 통신하는 저장 장치를 포함하고,
상기 제어기는,
상기 스위치와 통신하는 상기 저장 장치의 여유 저장 공간 정보를 획득하도록 구성된 획득 유닛; 및
상기 저장 장치의 상기 여유 저장 공간 정보에 따라서 기록 요청에 매칭되는 전달 규칙을 생성하도록 구성된 생성 유닛을 포함하며,
상기 기록 요청이 상기 스위치와 통신하는 상기 저장 장치 내에 데이터를 기록하는 데 사용된다.
제5 측면에 따라서, 제1 가능한 구현예에서, 상기 획득 유닛이, 구체적으로, 상기 저장 장치에 의해 보고되는 상기 여유 저장 공간 정보를 수신하도록 구성된다.
제5 측면에 따라서, 제2 가능한 구현예에서, 상기 획득 유닛이, 구체적으로,
상기 기록 요청이 상기 저장 장치에게 전달되는 횟수와 기록된 데이터의 크기를 획득하고,
상기 저장 장치의 저장 공간, 상기 기록 요청의 상기 횟수, 및 상기 기록된 데이터의 크기에 따라서 상기 저장 장치의 여유 저장 공간을 계산하도록 구성되며,
상기 횟수와 상기 크기가 상기 스위치의 플로우 테이블의 플로우 테이블 엔트리에 기록된다.
제6 측면에 따라서, 본 발명의 실시예는, 저장 시스템에 적용되는 제어기를 제공하며, 상기 저장 시스템은, 스위치와 통신하며, 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 상기 제어기, 스위치, 및 상기 스위치와 통신하는 저장 장치를 포함하고,
상기 제어기는,
요청된 데이터를 저장하는 저장 장치들의 플로우 로드(flow load) 정보를 획득하도록 구성된 획득 유닛; 및
상기 요청된 데이터를 저장하는 상기 저장 장치들의 플로우 로드 정보에 따라서, 판독 요청에 매칭되는 전달 규칙을 생성하도록 구성된 생성 유닛을 포함한다.
제6 측면에 따라서, 제1 가능한 구현예에서, 상기 획득 유닛이, 구체적으로 상기 요청된 데이터를 저장하는 상기 저장 장치들에 의해 보고되는 상기 플로우 로드 정보를 수신하도록 구성된다.
제6 측면에 따라서, 제2 가능한 구현예에서, 상기 획득 유닛이, 구체적으로, 조작 요청이 요청된 데이터를 저장하는 상기 저장 장치들에게 전달되는 횟수를 획득하도록 구성되며,
상기 횟수는 상기 스위치의 플로우 테이블의 플로우 테이블 엔트리에 기록되고, 상기 조작 요청은 기록 요청 및 판독 요청을 포함한다.
제7 측면에 따라서, 본 발명의 실시예는 저장 시스템에 적용되는 스위치를 제공하며, 상기 저장 시스템은, 상기 스위치와 통신하고 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하고, 상기 스위치는 중앙 처리 유닛 및 메모리를 포함하며, 상기 중앙 처리 유닛 및 상기 메모리는 버스를 사용하여 서로 연결되고, 상기 메모리는 컴퓨터 명령을 저장하도록 구성되며, 상기 중앙 처리 유닛은 상기 메모리 내에 저장된 상기 컴퓨터 명령을 실행하여, 본 발명의 제1 측면 또는 제1 측면의 제1 내지 제4 가능한 구현예 중 어느 하나를 구현한다.
제8 측면에 따라서, 본 발명의 실시예는 저장 시스템에 적용되는 제어기를 제공하며, 상기 저장 시스템은, 스위치와 통신하며, 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 상기 제어기, 스위치, 및 상기 스위치와 통신하는 저장 장치를 포함하고, 상기 제어기는 중앙 처리 유닛 및 메모리를 포함하며, 상기 중앙 처리 유닛 및 상기 메모리는 버스를 사용하여 서로 연결되고, 상기 메모리는 컴퓨터 명령을 저장하도록 구성되며, 상기 중앙 처리 유닛은 상기 메모리 내에 저장된 상기 컴퓨터 명령을 실행하여, 본 발명의 제2 측면, 또는 제2 측면의 제1 내지 제2 가능한 구현예를 구현한다.
제9 측면에 따라서, 본 발명의 실시예는 저장 시스템에 적용되는 제어기를 제공하며, 상기 저장 시스템은, 스위치와 통신하며, 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 상기 제어기, 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하고, 상기 제어기는 중앙 처리 유닛 및 메모리를 포함하며, 상기 중앙 처리 유닛 및 상기 메모리는 버스를 사용하여 서로 연결되고, 상기 메모리는 컴퓨터 명령을 저장하도록 구성되며, 상기 중앙 처리 유닛은 상기 메모리 내에 저장된 상기 컴퓨터 명령을 실행하여, 본 발명의 제3 측면, 또는 제3 측면의 제1 또는 제2 가능한 구현예를 구현한다.
제10 측면에 따라서, 본 발명의 실시예는 비휘발성 컴퓨터 판독가능 저장 매체를 제공하며, 컴퓨터 명령을 저장하고, 컴퓨터가 상기 컴퓨터 명령을 실행하는 경우, 본 발명의 제1 측면 또는 제1 측면의 제1 내지 제4 가능한 구현예 중 어느 하나를 구현하도록 구성된다.
제11 측면에 따라서, 본 발명의 실시예는 비휘발성 컴퓨터 판독가능 저장 매체를 제공하며, 컴퓨터 명령을 저장하고, 컴퓨터가 상기 컴퓨터 명령을 실행하는 경우, 본 발명의 제2 측면, 또는 제2 측면의 제1 또는 제2 가능한 구현예를 구현하도록 구성된다.
제12 측면에 따라서, 본 발명의 실시예는 비휘발성 컴퓨터 판독가능 저장 매체를 제공하며, 컴퓨터 명령을 저장하고, 컴퓨터가 상기 컴퓨터 명령을 실행하는 경우, 본 발명의 제3 측면, 또는 제3 측면의 제1 또는 제2 가능한 구현예를 구현하도록 구성된다.
본 발명의 실시예에 따라서, 저장 시스템에서, 스위치는 요청 식별자를 가지고 있는 조작 요청을 수신하고; 스위치는, 요청 식별자에 따라서, 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해 스위치의 플로우 테이블을 쿼리하며; 스위치는 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 저장 장치들 중 목표 저장 장치에게 조작 요청을 전달한다. 소프트웨어 정의 네트워크의 특징을 사용하여, 조작 요청이 스위치의 플로우 테이블 엔트리의 전달 규칙에 따라서 처리됨으로써, 저장 장치들의 로드 밸런싱을 구현할 수 있고 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
본 발명의 실시예에서의 기술적 해결수단을 더욱 명확히 기술하기 위해, 이하에서 본 발명의 실시예를 설명할 때 필요한 첨부 도면을 간략하게 소개한다. 분명한 것은, 이어질 설명에서 첨부된 도면은 단지 본 발명의 몇 가지 실시예를 나타내며, 통상의 기술자라면 첨부된 도면으로부터 창작 능력 없이도 다른 도면을 도출해 낼 수 있다는 것이다.
도 1은 본 발명의 실시예에 따른 방법의 개략적인 구성도이다.
도 2는 본 발명의 실시예에 따른 객체 저장 시스템의 개략적인 구성도이다.
도 3은 오픈플로우 프로토콜에 기초한 소프트웨어 정의 네트워크의 시스템의 구성도이다.
도 4는 소프트웨어 정의 네트워크 내의 스위치의 플로우 테이블이다.
도 5는 플로우 테이블 내의 플로우 테이블 엔트리의 개략적인 구성도이다.
도 6은 플로우 테이블 엔트리의 패킷 헤더 필드의 개략적은 구성도이다.
도 7은 본 발명의 실시예에 따른 객체 저장 시스템에서 객체 조작 요청을 처리하기 위한 방법의 개략적인 구성도이다.
도 8은 본 발명의 실시예에 따라 제어기에 의해 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법의 개략적인 구성도이다.
도 9는 본 발명의 실시예에 따라 제어기에 의해 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법의 개략적인 구성도이다.
도 10은 스위치의 개략적인 구성도이다.
도 11은 제어기의 개략적인 구성도이다.
이하에서 본 발명의 실시예에 관한 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결수단을 명확하고 상세하게 기술한다. 분명한 것은, 여기 기술된 실시예는 단지 본 발명의 실시예의 일부이며 전부가 아니라는 것이다. 본 발명의 실시예에 기초하여 창작 노력 없이 통상의 기술자에 의해 획득되는 다른 모든 실시예는 본 발명의 보호 범위 내에 포함될 것이다.
본 발명의 실시예는 저장 장치에 적용되고, 그 저장 장치는 제어기, 스위치, 및 스위치와 통신하는 저장 장치를 포함하며, 제어기는 스위치와 통신하고, 제어기는 스위치의 플로우 테이블(flow table)을 만들어서 전달하도록 구성된다. 저장 시스템은 파일 레벨 저장 시스템(file level storage system), 데이터 블록 레벨 저장 시스템(data block level storage system), 또는 객체 저장 시스템(object storage system)일 수 있다. 저장 시스템은 또한 적어도 두 개의 파일 레벨 저장 시스템, 데이터 블록 레벨 저장 시스템, 및 객체 저장 시스템을 포함할 수 있다.
도 1에 도시된 바와 같이, 본 발명의 실시예에서 제공되는 저장 시스템에서 조작 요청을 처리하기 위한 방법은 다음과 같다.
단계 101: 스위치는, 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자(request identification)를 가지고 있는 조작 요청을 수신한다.
단계 102: 스위치가, 요청 식별자에 따라서, 조작 요청에 매칭(matching)되는 플로우 테이블 엔트리를 획득하기 위해, 스위치의 플로우 테이블을 쿼리(query)한다.
단계 103: 스위치가, 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 저장 장치들 중 목표 저장 장치에게 조작 요청을 전달한다.
구현예에서, 요청 식별자가 사용자 그룹 정보인 경우, 조작 요청의 가상 로컬 영역 네트워크 식별 비트(virtual local area network identification bit)는 사용자 그룹 정보를 가지고 있고, 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있거나, 또는
요청 식별자가 저장 전략 정보인 경우, 조작 요청의 인터넷 프로토콜 서비스 유형(Internet Protocol Type of Service) 비트는 저장 전략 정보를 가지고 있고, 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 가지고 있거나, 또는
요청 식별자가 사용자 그룹 정보와 저장 전략 정보인 경우, 조작 요청의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있고, 조작 요청의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 가지고 있으며, 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있고, 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 가지고 있다.
구현예에서, 조작 요청이 판독 요청(read request)인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙은 요청된 데이터를 저장하는 저장 장치의 플로우 로드에 따라서 제어기에 의해 생성된다.
또한, 본 방법은, 스위치에 의해서, 판독 요청이 목표 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며, 여기서 횟수는 매칭되는 플로우 테이블 엔트리 내에 기록된다.
구현예에서, 조작 요청이 기록 요청(write request)인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙은 저장 장치의 여유 저장 공간에 따라서 제어기에 의해 생성된다.
또한, 본 방법은, 스위치에 의해서, 기록 요청이 목표 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며, 여기서 횟수는 매칭되는 플로우 테이블 엔트리에 기록된다.
본 발명의 실시예에 따라서, 요청 식별자는 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하며, 여기서 사용자 그룹 정보는 클라이언트의 IP 어드레스 정보, 클라이언트의 어드레스 정보 등일 수 있고; 저장 전략 정보는 저장 장치 내의 요청된 데이터의 복사본 수량(the number of copy)일 수 있거나, 또는 저장 장치 내에 기록된 요청된 데이터의 복사본 수량일 수 있다.
본 발명의 실시예에서 제공되는 저장 시스템에서 조작 요청을 처리하기 위한 방법에 따라서, 소프트웨어 정의 네트워크(Software Defined Network)의 특성을 사용하여, 조작 요청이 스위치의 플로우 테이블의 전달 규칙에 따라서 처리됨으로써, 저장 장치의 로드 밸런싱을 구현할 수 있으며 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
객체 저장 시스템을 예로 사용하는 경우, 객체 저장 시스템에서, 객체는 데이터 저장을 위한 기본 유닛으로서 사용된다. 하나의 객체는 파일 데이터와 파일 메타데이터를 포함하고; 조작 요청은 객체 판독 요청과 객체 기록 요청을 포함하는 객체 조작 요청이며; 판독 요청에 의해 요청되는, 즉, 객체 판독 요청에 의해 요청되는 데이터는 객체이고, 객체 기록 요청에 의해 기록되는 데이터는 객체이며; 객체 저장 시스템 내의 저장 장치는 객체 저장 장치이다. 본 발명의 실시예에서, 도 2에 도시된 바와 같이, 객체 저장 시스템은 메타데이터 서버(103), 제어기(104), 스위치(1051 내지 1051m), 및 저장 장치(1061, 1061, 및 1063 내지 106L), 즉 객체 저장 시스템 내의 객체 저장 장치(1061, 1062, 및 1063 내지 106L)이며, 여기서 L은 객체 저장 장치의 수를 지시하는 정수이며, 특정값으로 한정되지 않는다. 메타데이터 서버(103)는 객체 저장 장치(1061, 1062, 및 1063 내지 106L)에 저장된 데이터의 요청 식별자를 저장하도록 구성된다. 즉, 객체 저장 장치(1061, 1062, 및 1063 내지 106L)에 저장된 객체의 요청 식별자를 저장하도록 구성된다. 요청 식별자에 대해, 상세한 것은 이하에서 설명될 것이다. 객체 저장 장치(1061, 1062, 및 1063 내지 106L)는 데이터를 저장하도록 구성된다. 즉, 객체 저장 시스템에서 객체를 저장하도록 구성된다. 스위치(1051 내지 105m)와 제어기(104)는 소프트웨어 정의 네트워크를 형성한다. 스위치(1051 내지 105m)는 객체 저장 장치(1061, 1062, 및 1063 내지 106L)와 통신한다. 스위치(1051 내지 105m)는 플로우 테이블 내의 플로우 테이터의 전달 규칙에 따라서 객체 저장 시스템에서의 객체 조작 요청인 조작 요청을 객체 저장 장치(1061, 1062, 및 1063 내지 106L)에게 전달하도록 구성된다. 제어기(104)는 스위치(1051 내지 105m)의 플로우 테이블 내의 플로우 테이블 엔트리를 생성하고 업데이트하도록 구성된다. 제어기(104)만이 본 발명의 실시예에서 설명된다. 본 발명의 실시예의 객체 저장 시스템에서, 제어기의 개수는 하나로 한정되지 않으며, 로드 밸런싱과 잉여(redundancy)를 향상시키기 위해, 복수의 제어기가 있을 수 있다. 도 2에 도시된 클라이언트(1011 내지 101n)의 경우, 구현예에서, 객체 조작 요청이 객체 저장 장치(1061, 1062, 및 1063 내지 106L)를 액세스하기 위해 객체 저장 시스템 프록시(102)를 사용하여 전송되며, 여기서 n은 클라이언트의 수를 지시하는 정수이고, 특정값으로 한정되지 않는다. 본 발명의 실시예에서, 객체 저장 시스템 프록시(102)는 독립된 물리적 서버일 수 있거나, 또는 클라이언트(1011 내지 101n)에 통합될 수 있으며, 본 발명의 실시예에서는 한정되지 않는다.
제어기(104)와 스위치(1051 내지 105m)에 의해 형성되는 소프트웨어 정의 네트워크에서, 제어기(104)는 안전한 채널을 사용하여 스위치(1051 내지 105m)와 통신한다. 예를 들어, 제어기(104)는 오픈플로우(Openflow) 프로토콜을 사용하여 스위치(1051 내지 105m)와 통신할 수 있으며, 제어기(104)는 스위치(1051 내지 105m)에 저장된 플로우 테이블의 플로우 테이블 엔트리를 생성하고 업데이트한다. 본 발명의 실시예에서, 오픈플로우 프로토콜이 제어기(104)와 스위치(1051) 사이에 사용되는 것은 단지 예시적인 설명일 뿐이다. 본 발명은 또한 다른 프로토콜이 소프트웨어 정의 네트워크에서의 구현을 위해 사용되는 방식으로 적용될 수 있다. 도 3에 도시된 바와 같이, 스위치(1051)와 제어기(104)를 예로서 사용하는 경우, 제어기(104)는 스위치(1051) 내의 플로우 테이블의 플로우 테이블 엔트리를 생성하고 업데이트하며; 스위치(1051)가 객체 조작 요청을 수신하는 경우, 객체 조작 요청을 파싱(parsing)하고, 스위치(1051)의 플로우 테이블에서 객체 조작 요청에 매칭되는 플로우 테이블 엔트리를 쿼리하며, 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 조작 요청을 처리한다. 구체적으로, 구현예에서, 스위치(1051) 내의 플로우 테이블은 플로우 테이블 엔트리 1과 플로우 테이블 2 내지 R에 의해 형성되며, 여기서 R은 자연수이다. 도 4에 도시된 바와 같이, 스위치(1051)는 객체 조작 요청을 수신하고, 플로우 테이블의 플로우 테이블 엔트리를 쿼리하는데, 이 때 플로우 테이블의 플로우 테이블 엔트리는 통상적으로 스트림 라인(stream line) 방식으로 쿼리되며; 객체 조작 요청에 매칭되는 플로우 테이블 엔트리가 쿼리에 의해 획득되면, 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따른 처리를 수행한다. 도 4에 도시된 플로우 테이블의 플로우 테이블 엔트리에 대해, 특정 구조가 도 5에 도시되어 있으며, 세 개의 부분, 즉 패킷 헤드 필드(packet header field), 카운터(counter), 및 전달 규칙(forwarding rule)을 포함한다. 패킷 헤더 필드는 객체 조작 요청과의 매칭을 위해 사용되고; 카운터는 객체 조작 요청이 플로우 테이블 엔트리에 대해 처리되는 횟수를 카운트하는 데 사용되며; 전달 규칙은 객체 조작 요청의 전달 방식을 결정하는 데 사용된다. 예를 들어, 객체 조작 요청을 전달하는 방식을 결정하고, 조작 요청이 전달되는 포트를 결정하는 등의 방식을 결정하는 데 사용된다. 도 6에 도시된 바와 같이, 패킷 헤더 필드는 입력 포트, 소스 매체 접근 제어(Media Access Control, MAC) 주소, 목적지 MAC 주소, 이더넷 타입, 가상 로컬 영역 네트워크 식별자(Virtual Local Area Network Identification, VLAN ID), 소스 인터넷 프로토콜(Internet Protocol, IP) 주소, 목적지 IP 주소, IP 포트, IP 서비스 유형(Type of Service, ToS) 비트, 소스 전송 제어 프로토콜(Transmission Control Protocol, TCP) 포트, 및 목적지 TCP 포트를 포함한다. 본 발명의 실시예에서, 객체 조작 요청은 요청 식별자를 캡슐화할 수 있으며, 요청 식별자는 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함한다. 예를 들어, 사용자 그룹 정보는 객체 조작 요청 내에 캡슐화된다. 구체적으로, 사용자 그룹 정보는 객체 조작 요청의 VLAN ID 비트 내에 캡슐화될 수 있으며, 저장 전략 정보는 객체 조작 요청의 IP ToS 비트 내에 캡슐화될 수 있다. 요청 식별자의 캡슐화(encapsulation)는 객체 저장 시스템 프록시(102)에 의해 구현될 수 있다. 객체 조작 요청을 수신한 후, 스위치(1051)는 스위치(1051)의 플로우 테이블에서 객체 조작 요청에 매칭되는 플로우 테이블 엔트리를 쿼리한다. 객체 조작 요청은 쿼리에 의해 획득되는 매칭된 플로우 테이블 엔트리의 전달 규칙에 따라서 처리된다. 객체 조작 요청이 전달 규칙에 따라서 전달된 후, 카운터는 플로우 테이블 엔트리의 객체 조작 요청을 전달하기 위한 횟수를 업데이트한다. 객체 조작 요청에 매칭되는 플로우 테이블 엔트리가 존재하지 않는 경우, 객체 조작 요청은 제어기(104)에게 전달되며; 제어기(104)는 객체 조작 요청을 위한 전달 규칙을 생성하고, 플로우 테이블 엔트리를 생성하며, 스위치(1051) 내의 플로우 테이블을 업데이트한다.
전술한 설명에 기초하여, 도 7에 도시된 바와 같이, 본 발명의 실시예는 도 2에 도시된 시스템 구조하에서 객체 저장 시스템에서 객체 조작 요청을 처리하기 위한 방법을 제공하며, 다음의 단계를 포함한다.
단계 701: 스위치는 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자를 가지고 있는 객체 조작 요청을 수신한다.
단계 702: 스위치는, 요청 식별자에 따라서, 객체 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해, 스위치의 플로우 테이블을 쿼리한다.
단계 703: 스위치는 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 저장 장치들 중에서 목표 객체 저장 장치에게 객체 조작 요청을 전달한다.
객체 저장 시스템에서 객체 조작 요청을 처리하기 위한 전술한 방법에서, 요청 식별자가 사용자 그룹 정보인 경우, 객체 조작 요청의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있고, 또 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있거나; 또는
요청 식별자가 저장 전략 정보인 경우, 객체 조작 요청의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 가지고 있고, 또 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 운반하거나, 또는
요청 식별자가 사용자 그룹 정보와 저장 전략 정보인 경우, 객체 조작 요청의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있고, 또 객체 조작 요청의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 가지고 있으며, 또 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트는 사용자 그룹 정보를 가지고 있고, 또 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트는 저장 전략 정보를 가지고 있다.
본 발명의 실시예에서 제공되는 객체 저장 시스테에서, 요청 식별자를 가지고 있는 객체 조작 요청은 소프트웨어 정의 네트워크 내의 스위치를 사용하여 대응하는 객체 저장 장치에게 전달되고, 제어기는 스위치의 플로우 테이블 엔트리 내에 전달 규칙을 생성하며, 스위치는 플로우 테이블 엔트리 내의 전달 규칙에 따라서 객체 판독 요청을 전달함으로써, 객체 저장 장치의 로드 밸런싱을 향상시킬 수 있고, 객체 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
도 2를 참조하면, 구체적으로, 도 7에 도시된 객체 조작 요청을 처리하기 위한 방법에서, 객체 조작 요청이 객체 판독 요청인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙이 요청된 객체를 저장하는 객체 저장 장치의 플로우 로드에 따라서 제어기에 의해 생성된다. 스위치가 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 저장 장치들 중에서 목표 객체 저장 장치에게 객체 조작 요청을 전달한 후, 본 방법은, 스위치에 의해서, 객체 판독 요청이 목표 객체 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며, 여기서 횟수는 매칭되는 플로우 테이블 엔트리 내에 기록된다. 이하에서 상세하게 설명한다.
클라이언트(101)가 객체 저장 시스템에게 판독 요청을 전송하는 예를 사용하면, 클라이언트(101)는 판독 요청을 전송하고, 객체 저장 시스템 프록시(102)는 클라이언트(101)에 의해 전송되는 판독 요청을 수신하며, 판독 요청에 따라서 메타데이터 서버(103)를 액세스하고, 요청된 객체의 요청 식별자를 획득하는데, 이 때 요청 식별자는 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하고, 요청 식별자는, 메타데이터 서버(103)에서, 객체가 객체 저장 장치 내로 기록된 후에, 객체 기록 요청 내에 운반되는 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 저장하는 데 사용되며; 메타데이터 서버(103)에 저장되는 요청 식별자는 기록된 객체를 저장하는 객체 저장 장치에 의해서 메타데이터 서버(103)에 등록되는 객체의 요청 식별자의 내용에 의해 결정된다. 클라이언트가 객체 저장 시스템에게 객체에 대한 판독 요청을 개시하는 경우, 메타데이터 서버(103)는 객체의 요청 식별자를 획득하기 위해 쿼리되며, 이 때 사용자 그룹 정보는 객체 저장 시스템 내로 객체를 기록하는 클라이언트의 IP 주소 정보일 수 있거나, 또는 객체 저장 시스템 내로 객체를 기록하는 클라이언트를 식별할 수 있는 기타 정보일 수 있으며; 저장 전략 정보는 객체 저장 장치 내의 요청된 객체의 복사본 수량일 수 있다. 객체 판독 요청의 경우, 요청된 객체가 객체 저장 장치에 이미 저장되어 있기 때문에, 요청된 객체가 객체 저장 장치내로 기록되는 경우, 객체의 요청 식별자가 메타데이터 서버(103)에게 전송된다. 본 발명의 실시예에서, 사용자 그룹 정보와 저장 전략을 포함하는 요청 식별자는 예로서 사용되며, 이 때 사용자 그룹 정보는 객체 저장 시스템 내로 객체를 기록하는 클라이언트의 IP 주소 정보이고, 저장 전략 정보는 요청된 객체의 복사본의 수, 예를 들어 3이다. 객체 저장 시스템 프록시(102)는 객체 판독 요청을 생성하기 위해 메타데이터 서버(103)로부터 획득되는 요청 식별자를 캡슐화하며, 객체 판독 요청의 특정 포맷이 도 6에 도시되어 있다. 본 발명의 실시예에서, 사용자 그룹 정보는 객체 판독 조작 요청의 VLAN ID 비트 내에 캡슐화되고, 저장 전략 정보는 객체 판독 조작 요청의 IP ToS 비트 내에 캡슐화된다.
객체 저장 시스템 프록시(102)는 스위치(1051)에게 객체 판독 요청을 전송한다.
스위치(1051)는 저장 시스템 프록시(102)에 의해 전송되는 객체 판독 요청을 수신하고, 사용자 그룹 정보와 저장 전략 정보를 획득하기 위해 객체 판독 요청의 VLAN ID 비트와 ToS 비트 정보를 각각 파싱한다. 플로우 테이블의 플로우 테이블 엔트리는 파싱에 의해 획득되는 사용자 그룹 정보와 저장 전략 정보에 따라서 쿼리된다. 객체 판독 요청의 VLAN ID 비트로부터 파싱되는 사용자 그룹 정보와 객체 판독 요청의 IP ToS 비트로부터 파싱되는 저장 전략 정보는 매칭되는 플로우 테이블 엔트리를 찾기 위해 플로우 테이블의 각 패킷 헤더 필드와 매칭하는 데 사용되고, 그 후 객체 판독 요청은 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 전달된다. 구체적으로, 객체 판독 요청에 대해, 플로우 테이블 엔트리의 전달 규칙은 요청된 객체를 저장하는 객체 저장 장치의 플로우 로드에 따라서 제어기(104)에 의해 생성된다. 즉, 목표 객체 저장 장치가 요청된 객체가 위치하는 객체 저장 장치의 플로우 로드에 따라서 선택된다. 예를 들어, 도 4에 도시된 플로우 테이블에서, 플로우 테이블 엔트리 3이 객체 판독 요청에 매칭되는 플로우 테이블 엔트리이고, 플로우 테이블 엔트리 3의 구조가 도 5에 도시되어 있으며, 패킷 헤더 필드의 VLAN ID 내의 정보가 객체 판독 요청의 VLAN ID 내의 정보와 매칭되고, 패킷 헤더 필드의 IP ToS 비트 내의 정보가 객체 판독 요청의 IP ToS 비트 내의 정보와 매칭된다. 플로우 테이블 엔트리 3의 전달 규칙이 요청된 객체를 저장하는 객체 저장 장치의 플로우 로드에 따라서 제어기(104)에 의해 생성된다. 예를 들어, 객체 저장 장치(1061, 1062, 및 1063)가 요청된 객체의 세 개의 복사본을 저장하는 객체 저장 장치이다. 제어기(104)는, 객체 저장 장치(1061, 1062, 및 1063)의 플로우 로드에 따라서, 객체 저장 장치(1061)가 가장 가벼운 플로우 로드를 가진 객체 저장 장치인 것으로 결정하고, 전달 규칙이 객체 저장 장치(1061)에게 객체 판독 요청을 전달할 것이다. 제어기(104)는 객체 저장 장치(1061, 1062, 및 1063)의 플로우 로드에 따라서 전달 규칙을 생성하며; 구체적으로, 스위치(1051)는 주기적으로, 제어기(104)에게, 객체 조작 요청을 전달하는 횟수를 보고하며, 이 때 횟수는 플로우 테이블 내의 각 플로우 테이블 엔트리에 기록되거나, 또는 제어기(104)가 주기적으로, 스위치(1051)로부터, 객체 조작 요청을 전달하는 횟수를 획득하며, 이 때 횟수는 플로우 테이블의 각 플로우 테이블 엔트리에 기록되거나, 또는 객체 저장 장치(1061, 1062, 및 1063)가, 플로우 테이블 엔트리의 전달 규칙을 업데이트하기 위해, 제어기(104)에게 플로우 로드를 보고하며, 이 때 여기에서의 객체 조작 요청은 객체 판독 요청과 객체 기록 요청을 포함한다. 제어기(104)는 객체 조작 요청이 객체 저장 장치(1061, 1062, 및 1063)에게 전달되는 횟수에 따라서 플로우 테이블 엔트리의 전달 규칙을 생성하거나 업데이트하며, 이 때 횟수는 플로우 테이블 엔트리의 카운터에 기록된다. 예를 들어, 객체 저장 장치(1061)에게 객체 조작 요청을 전달할 전달 규칙을 갖는 50개의 플로우 테이블 엔트리가 있고, 전술한 주기에서, 50개의 플로우 테이블에 대해, 객체 조작 요청을 전달하는 전체 횟수는 5000이며, 이 때 횟수는 각 플로우 테이블 엔트리의 카운터에 의해 기록되며; 객체 저장 장치(1062)에게 객체 조작 요청을 전달할 전달 규칙을 갖는 45개의 플로우 테이블 엔트리가 있고, 전술한 주기에서, 45개의 플로우 테이블에 대해, 객체 조작 요청을 전달하는 전체 횟수는 5500이며, 이 때 횟수는 객체 조작 요청을 전달하는 횟수만큼 각 플로우 테이블 엔트리의 카운터에 의해 기록되고; 객체 저장 장치(1063)에게 객체 조작 요청을 전달할 전달 규칙을 갖는 50개의 플로우 테이블 엔트리가 있고, 전술한 주기에서, 50개의 플로우 테이블에 대해, 객체 조작 요청을 전달하는 전체 횟수는 6000이며, 이 때 횟수는 객체 조작 요청을 전달하는 횟수만큼 각 플로우 테이블 엔트리의 카운터에 의해 기록된다. 전술한 주기에서, 객체 저장 장치(1061)가 가장 가벼운 플로우 로드를 갖는다. 따라서, 본 발명의 실시예에서, 객체 판독 요청에 의해 요청되는 객체에 대해, 제어기(104)가, 객체를 저장하는 객체 저장 장치(1061, 1062, 및 1063)의 플로우 로드에 따라서, 객체 판독 요청에 대해 생성하는 전달 규칙이 객체 저장 장치(1061)에게 객체 판독 요청을 전달할 것이다. 쿼리에 의해 스위치(1051)에 의해 획득되는 매칭되는 플로우 테이블 엔트리가 없는 경우, 오픈플로우(Openflow) 프로토콜을 사용하여, 도 2에 도시된 안전한 채널을 통해서 제어기(104)에게 객체 판독 요청을 전달하며; 제어기(104)는 객체 판독 요청 내에 운반되는 요청 식별자에 따라서 요청된 객체를 결정하고, 요청된 객체를 저장하는 객체 저장 장치의 플로우 로드에 따라서 객체 판독 요청에 대한 플로우 테이블 엔트리를 생성하고, 스위치(1051) 내의 플로우 테이블을 업데이트하기 위해, 스위치(1051)에세 플로우 테이블 엔트리를 전달하며; 스위치(1051)는 제어기(104)에 의해 전달되는 플로우 테이블 엔트리에 따라서 객체 판독 요청을 전달한다.
본 발명의 실시예에서, 객체 저장 장치(1061)가 가장 가벼운 플로우 로드를 갖는 객체 저장 장치인 것으로 가정하면, 스위치는, 플로우 테이블 엔트리 3 내의 매칭되는 전달 규칙에 따라서, 객체 저장 장치(1061)와 스위치(1051)이 통신하는 포트에게 객체 조작 요청을 전달한다. 플로우 테이블 엔트리 3 내의 카운터는 객체 저장 장치(1061)에게 객체 판독 요청을 전달하는 횟수를 업데이트한다.
스위치(1051)는 객체 판독 요청의 목적지 IP 주소를 객체 저장 장치(1062)의 IP 주소로 변경하고, 객체 판독 요청의 목적지 MAC 주소를 객체 저장 장치(1062)의 MAC 주소로 변환하며, 수정된 객체 판독 요청을 객체 저장 장치(1062)에게 전달한다.
수정된 객체 판독 요청을 수신한 후, 객체 저장 장치(1062)는 요청된 객체의 내용을 객체 저장 시스템 프록시(102)에게 리턴한다.
객체 저장 시스템 프록시(102)는 요청된 객체의 내용을 클라이언트(101)에게 리턴한다.
본 발명의 실시예에 따라서, 객체 판독 요청에 대한 다른 구현 방식은, 둘 이상의 복사본을 갖고 있는 객체, 예를 들어 객체 저장 장치에서 세 개의 복사본을 갖고 있는 본 발명의 실시예에서의 요청된 객체에 대해, 객체 판독 요청에 매칭되는 플로우 테이블 엔트리의 전달 규칙이 객체 판독 요청을 두 개의 객체 저장 장치에게 전달할 수 있다. 전술한 실시예에서 설명된 바와 같이, 예를 들어, 객체 저장 장치(1061)에게 객체 조작 요청을 전달할 전달 규칙을 갖는 50개의 플로우 테이블 엔트리가 있고, 전술한 주기에서, 50개의 플로우 테이블에 대해, 객체 조작 요청을 전달하는 전체 횟수가 5000이며, 이 때 객체 조작 요청은 각 플로우 테이블 엔트리의 카운터에 의해 기록되고; 객체 저장 장치(1062)에게 객체 조작 요청을 전달할 전달 규칙을 갖는 45개의 플로우 테이블 엔트리가 있고, 전술한 주기에서, 45개의 플로우 테이블에 대해, 각 플로우 테이블 엔트리의 카운터에 의해 기록되는 객체 조작 요청을 전달하는 전체 횟수가 5500이며; 객체 저장 장치(1063)에게 객체 조작 요청을 전달할 전달 규칙을 갖는 50개의 플로우 테이블 엔트리가 있고, 전술한 주기에서, 50개의 플로우 테이블에 대해, 각 플로우 테이블 엔트리의 카운터에 의해 기록되는 객체 조작 요청을 전달하는 전체 횟수가 6000이다. 전술한 주기에서, 객체 저장 장치(1061, 1062)가 비교적 가벼운 플로우 로드를 갖는 목표 객체 저장 장치이며; 객체 판독 요청이 두 개의 목표 장치에게 전달되는 경우, 제어기(104)가 객체 판독 요청을 위해 생성하는 플로우 테이블 엔트리 전달 규칙이 객체 판독 요청을 객체 저장 장치(1061, 1062)에게 전달함으로써, 객체 판독 병행성(concurrency)을 구현할 수 있고, 객체 판독 요청의 효율을 향상시킬 수 있다.
본 발명의 실시예에서, 객체 판독 요청 내에 운반되는 요청 식별자는 또한 사용자 그룹 정보 또는 저장 전략 정보 중 하나 만을 포함할 수 있으며, 이것은 본 발명에서 한정되지 않는다.
본 발명의 실시예에서 제공되는 객체 저장 시스템에서, 소프트웨어 정의 네트워크에서 스위치를 사용하여 대응하는 객체 저장 장치에게 요청 식별자를 가지고 있는 객체 판독 요청을 전달하기 위한 처리 방법에 따라서, 제어기가 목표 객체 저장 장치의 플로우 로드에 따라서 객체 판독 요청의 전달 규칙의 플로우 테이블 엔트리를 전달하고, 스위치는 플로우 테이블 엔트리 내의 전달 규칙에 따라서 객체 판독 요청을 전달함으로써, 객체 저장 장치들의 로드 밸런싱을 구현할 수 있고, 객체 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
도 2를 참조하여, 구체적으로, 도 7에 도시된 객체 조작 요청을 처리하기 위한 방법에서, 객체 조작 요청이 객체 기록 요청인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙이 객체 저장 장치의 여유 저장 공간에 따라서 제어기에 의해 생성된다.
스위치가 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 저장 장치들 중 목표 객체 저장 장치에게 객체 조작 요청을 전달한 후, 본 방법은, 스위치에 의해서, 기록 요청이 목표 객체 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며, 여기서 횟수는 매칭되는 플로우 테이블 엔트리에 기록된다. 이하에서 상세하게 설명한다.
클라이언트(101)가 객체 저장 시스템에게 기록 요청을 전송하는 예를 사용하면, 클라이언트(101)가 기록 요청을 전송하고, 객체 저장 시스템 프록시(102)가 클라이언트(101)에 의해 전송되는 기록 요청을 수신한다. 객체가 객체 저장 시스템 내에 기록될 것이기 때문에, 메타데이터 서버(103)는 기록될 객체의 요청 식별자를 가지고 있지 않으며, 객체 저장 시스템 프록시(102)가, 기록 요청으로부터, 기록될 객체의 요청 식별자를 획득한다. 요청 식별자는 사용자 그룹 정보와 저장 전략 중 적어도 하나를 포함하며, 여기서 사용자 그룹 정보는 객체 저장 시스템 내에 객체를 기록하는 클라이언트의 IP 주소 정보일 수 있거나, 또는 객체 저장 시스템 내에 객체를 기록하는 클라이언트를 식별할 수 있는 기타 정보일 수 있으며; 저장 전략은 객체 저장 장치 내에 기록된 객체의 복사본 수일 수 있다. 본 발명의 실시예에서, 사용자 그룹 정보와 저장 전략을 포함하는 요청 식별자는 예로서 사용되며, 이 때 사용자 그룹 정보는 클라이언트의 IP 주소 정보이고, 저장 전략 정보는 구체적으로 객체 저장 장치(1061, 1062, 및 1063 내지 106L) 내에서 사용자에 의해 요청된 객체의 복사본의 수이며, 여기서 객체의 복사본의 수는 3이다.
객체 저장 시스템 프록시(102)는 객체 기록 요청을 생성하기 위해 요청 식별자를 캡슐화한다. 객체 기록 요청의 특정 포맷이 도 6에 도시되어 있다. 객체 저장 시스템 프록시(102)는 객체 기록 요청의 특정 식별 비트 내에서 획득되는 요청 식별자를 캡슐화한다. 본 발명의 실시예에서, 사용자 그룹 정보는 객체 기록 요청의 VLAN ID 비트 내에 캡슐화되고, 저장 전략 정보는 객체 기록 요청의 IP ToS 비트 내에 캡슐화된다.
객체 저장 시스템 프록시(102)는 스위치(1051)에게 객체 기록 요청을 전송한다.
스위치(1051)는 객체 저장 시스템 프록시(102)에 의해 전송되는 객체 기록 요청을 수신하고, 사용자 그룹 정보와 저장 전략 정보를 획득하기 위해 객체 기록 요청의 VLAN ID 비트와 ToS 비트 정보를 각각 파싱한다. 플로우 테이블의 플로우 테이블 엔트리는 파싱에 의해 획득되는 사용자 그룹 정보와 저장 전략 정보에 따라서 쿼리된다. 객체 기록 요청의 VLAN ID 비트로부터 파싱되는 사용자 그룹 정보와 객체 기록 요청의 IP ToS 비트로부터 파싱되는 저장 전략 정보는 각각 매칭되는 플로우 테이블 엔트리를 찾기 위해 플로우 테이블의 각 패킷 헤더 필드와 매칭하는 데 사용되며, 그 후 객체 기록 요청은 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 전달된다.
구체적으로, 객체 기록 요청에 대해, 플로우 테이블 엔트리의 전달 규칙은 객체 저장 장치(1061, 1062, 및 1063 내지 106L)의 여유 저장 공간에 따라서 제어기(104)에 의해 생성된다. 즉, 목표 객체 저장 장치는 객체 저장 장치의 여유 저장 공간에 따라서 객체 기록 요청에 대해 선택된다. 예를 들어, 도 4에 도시된 플로우 테이블에서, 플로우 테이블 엔트리 3이 객체 기록 요청에 매칭되는 플로우 테이블 엔트리이고, 플로우 테이블 엔트리 3의 구조가 도 5에 도시되어 있으며, 패킷 헤더 필드의 VLAN ID 내의 정보가 객체 기록 요청의 VLAN ID 내의 정보와 매칭되고, 패킷 헤더 필드의 IP ToS 비트 내의 정보가 객체 기록 요청의 IP ToS 비트 내의 정보와 매칭된다. 플로우 테이블 엔트리 3의 조작 규칙이 객체 저장 장치(1061, 1062, 및 1063 내지 106L)의 여유 저장 공간에 따라서 제어기(104)에 의해 결정된다. 즉, 목표 객체 저장 장치가 객체 저장 장치(1061, 1062, 및 1063 내지 106L)의 여유 저장 공간의 크기에 따라서 결정된다. 구현예는 스위치(1051)가 주기적으로, 제어기(104)에게, 객체 기록 요청을 전달하는 횟수를 보고하며, 이 때 횟수는 플로우 테이블 내의 각 플로우 테이블 엔트리에 기록되거나, 또는 제어기(104)가 주기적으로, 스위치(1051)로부터, 객체 기록 요청을 전달하는 횟수를 획득하며, 이 때 횟수는 플로우 테이블의 각 플로우 테이블 엔트리에 기록되거나, 또는 객체 저장 장치(1061, 1062, 및 1063)가 제어기(104)에게 여유 저장 공간을 보고하는 것이다. 각 객체 저장 장치의 여유 저장 공간은, 객체 기록 요청이 각 객체 저장 장치에게 전달되는 횟수와 기록되는 객체의 크기에 따라서 계산되며, 이 때 횟수는 스위치(1051)의 플로우 테이블 내의 각 플로우 테이블 엔트리에 의해 카운트된다. 구체적으로, 구현 방식은, 객체 저장 장치(1061)를 예로서 사용하는 경우, 제어기(104)가, 객체 저장 장치(1061)에 객체 기록 요청을 전달하는 횟수와 각 횟수마다 객체 기록 요청에 의해 기록되는 객체의 크기에 따라서, 저장을 위해 객체 저장 장치(1061) 내에 기록되는 객체의 전체 크기를 계산하며, 이 때 횟수는 각 플로우 테이블에 기록되고; 객체 저장 장치(1061)의 전체 저장 공간으로부터 점유되는 객체 저장 공간을 뺌으로서 객체 저장 장치(1061)의 여유 저장 공간을 획득한다. 마찬가지로, 주기 내의 객체 저장 장치(1062 내지 106L)의 여유 저장 공간이 획득될 수 있다. 본 발명의 실시예에서, 객체 기록 요청이 제1 객체 기록 요청이고, 스위치(1051)의 플로우 테이블이 매칭되는 플로우 테이블 엔트리를 가지고 있지 않은 경우, 스위치(1051)는 오픈플로우 프로토콜을 사용하여 도 3에 도시된 안전한 채널을 통해서 제어기(104)에게 객체 기록 요청을 전달한다. 제어기(104)는, 현재의 객체 저장 장치(1061, 1062, 및 1063 내지 106L)의 여유 저장 공간에 따라서, 객체 기록 요청에 대한 전달 규칙을 생성하고, 본 발명의 실시예에 따른 플로우 테이블 엔트리 3을 생성하며, 스위치(1051)에게 플로우 테이블 엔트리 3을 전달한다. 스위치(1051)는 플로우 테이블 엔트리 3에 따라서 플로우 테이블을 업데이트하고, 플로우 테이블 엔트리 3의 전달 규칙에 따라서 객체 기록 요청을 전달한다. 예를 들어, 스위치(1051)가 객체 기록 요청을 파싱하여 획득되는 저장 전략 정보에 따라서, 기록되는 객체의 복사본의 수가 3이고, 제어기는, 객체 저장 장치(1061, 1062, 및 1063 내지 106L)로부터, 최대 여유 저장 공간을 갖는 세 개의 객체 저장 장치를 목표 객체 저장 장치로 선택한다. 예를 들어, 객체 저장 장치(1063, 1067, 및 1068)가 여유 저장 공간이 모두 1000 G인, 최대 여유 저장 공간을 갖는 세 개의 객체 저장 장치이고, 기타 객체 저장 장치의 여유 저장 공간이 1000 G보다 작거나, 또는 객체 저장 장치(1063, 1067, 및 1068)가 여유 저장 공간이 연속하여 1000 G, 950 G, 및 900 G인, 최대 여유 저장 공간을 갖는 세 개의 객체 저장 장치이고, 기타 객체 저장 장치의 여유 저장 공간이 900 G보다 작다. 따라서, 제어기(104)가 객체 기록 요청에 대해 생성하는 조작 규칙은 객체 기록 요청을 객체 저장 장치(1064, 1067, 및 1068)에게 전달하는 것이다. 객체 기록 요청은 플로우 테이블 엔트리 3의 전달 규칙에 따라서 스위치(1051)의 목적지 포트에게 전달되며, 이 때 스위치(1051)의 목적지 포트는 스위치(1051)가 객체 저장 장치(1064, 1067, 및 1068)과 각각 통신하는 포트이다. 제어기(104)는, 객체 기록 요청 내에서 운반되는 요청 식별자에 따라서, 객체를 저장하는 객체 저장 장치의 정보를 기록하고; 객체를 저장하는 객체 저장 장치의 기록된 정보를 사용하여, 객체를 저장하는 객체 저장 장치의 플로우 로드를 획득할 수 있으며; 객체를 저장하는 객체 저장 장치의 플로우 로드에 따라서, 객체를 판독하는 객체 판독 요청에 대한 전달 규칙을 생성하고; 객체를 판독하는 객체 판독 요청에 매칭되는 플로우 테이블 엔트리를 생성하며, 이 때 플로우 테이블 엔트리는 객체의 요청 식별자를 가지고 있고; 객체 판독 요청 내에 운반되는 요청 식별자는, 매칭되는 플로우 테이블 엔트리를 결정하기 위해, 플로우 테이블 엔트리 내에 운반되는 요청 식별자와 매칭된다. 구체적인 과정에 대해, 본 실시예에서의 객체 판독 요청의 설명이 참조될 수 있으며, 상세한 설명은 여기에서 중복되지 않는다.
스위치(1051)는 객체 기록 요청의 목적지 IP 주소를 객체 저장 장치(1062)의 IP 주소로 변경하고, 객체 기록 요청의 목적지 MAC 주소를 객체 저장 장치(1062)의 MAC 주소로 변환한다. 본 발명의 실시예에서, 객체 기록 요청은 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 저장 장치(1064, 1067, 및 1068)에게 각각 전달된다. 이에 대응하여, 객체 기록 요청의 목적지 IP 주소가 객체 저장 장치(1064)의 IP 주소로 변경되고, 객체 기록 요청의 목적지 MAC 주소가 객체 저장 장치(1064)의 MAC 주소로 변경되며, 수정된 객체 기록 요청이 객체 저장 장치(1064)에게 전달된다. 마찬가지로, 객체 저장 장치(1067, 1068)에게 전될될 객체 기록 요청이 수정되고, 수정된 객체 기록 요청이 객체 저장 장치(1067, 1068)에게 각각 전달된다.
플로우 테이블 엔트리 3 내의 카운터는 객체 저장 장치(1064, 1067, 및 1068)에게 객체 기록 요청을 전달하는 횟수를 각각 업데이트한다.
객체 저장 장치(1064, 1067, 및 1068)는 기록된 객체를 저장하고, 기록된 객체의 요청 식별자를 메타데이터 서버(103)에게 등록하며, 여기서 메타데이터 서버(103)는 객체의 구체적인 저장 위치 정보를 저장할 수 없으나, 객체의 요청 식별자를 포함할 필요는 있다.
본 발명의 실시예에서, 객체 기록 요청 내에 운반되는 요청 식별자는 또한 사용자 그룹 정보와 저장 전략 정보 중 하나만을 포함할 수도 있으며, 이것은 본 발명에서 한정되지 않는다. 바람직하게, 요청 식별자는 적어도 사용자 그룹 정보를 포함한다.
본 발명의 실시예에서 제공되는 객체 저장 시스템에서, 소프트웨어 정의 네트워크에서 스위치를 사용하여 대응하는 객체 저장 장치에게 요청 식별자를 가지고 있는 객체 기록 요청을 전달하기 위한 처리 방법에 따라서, 제어기가 객체 저장 장치들의 여유 저장 공간에 따라서, 스위치의 플로우 테이블 엔트리를 생성하기 위해 객체 기록 요청의 전달 규칙을 전달하고, 스위치는 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 기록 요청을 전달함으로써, 객체 저장 장치들의 저장 공간의 로드 밸런싱을 구현할 수 있고, 객체 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다. 또한, 객체 저장 시스템에 기록된 객체에 대해, 메타데이터 서버는 객체의 요청 식별자를 기록하기만 할 수 있으므로, 메타데이터 서버의 작업 로드를 감소시킬 수 있다.
본 발명의 실시예에서 제공되는 객체 저장 시스템에서, 객체 저장 장치가 추가되는 경우, 예를 들어, 객체 저장 장치(1061)(L+1)이 추가되는 경우, 객체 저장 장치(1061)(L+1)이 제어기(104)에 등록되며; 제어기(104)에 등록되는 정보는 객체 저장 장치(1061)(L+1)의 MAC 주소, 스위치(1051)와 통신하기 위한 포트 번호, 및 저장 공간을 포함한다. 객체 저장 장치(1061)(L+1)의 등록 정보를 수신한 후, 제어기(104)는 객체 저장 장치(1061)(L+1)의 등록 정보를 기록하고, 전달 규칙을 생성하며, 새로운 플로우 테이블 엔트리를 생성하고, 플로우 테이블 엔트리를 스위치(1051)에게 전달한다.
본 발명의 실시예에서 제공되는 객체 저장 시스템에서, 객체 저장 시스템 내의 객체 저장 장치가 고장 또는 기타 원인에 의해 퇴출되는 경우, 예를 들어, 객체 저장 장치(1061L)가 퇴출되는 경우, 제어기(104)는 객체 저장 장치(1061L)의 상태 변경 메시지를 수신하며, 이 때 해당 메시지는 객체 저장 장치(1061L)의 MAC 주소, 스위치(1051)와 통신하기 위한 포트, 및 저장 공간 정보를 가지고 있고; 제어기(104)는, 상태 변경 메시지에 따라서, 객체 저장 장치(1061L)에게 전달할 전달 규칙을 갖는 플로우 테이블을 제거한다. 객체 저장 장치(1061L)에게 객체 기록 요청을 전달할 전달 규칙을 갖는 플로우 테이블에 대해, 제어기(104)는 객체 저장 장치(1061L)의 여유 객체 저장 장치에게 전달할 전달 규칙을 갖는 플로우 테이블 엔트리를 생성하며, 이 때 여유 객체 저장 장치는 객체 저장 장치(1061L)의 객체를 저장하는 객체 저장 장치이다.
따라서, 객체 저장 시스템에서 소프트웨어 정의 네트워크의 사용으로 인해 객체 저장 시스템의 객체 저장 장치들의 증가 또는 감소가 구현될 수 있으며, 객체 저장 시스템의 유연성이 개선될 수 있다.
저장 시스템에서 조작 요청을 처리하기 위한 방법의 실시예의 설명에 따라서, 제어기(104)가 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법을 제공하며, 도 8에 도시된 바와 같이, 다음의 단계를 포함한다.
단계 801: 제어기가 스위치와 통신하는 저장 장치의 여유 저장 공간 정보를 획득한다.
단계 802: 제어기가, 저장 장치의 여유 저장 공간 정보에 따라서, 기록 요청에 매칭되는 전달 규칙을 생성하며, 이 때 기록 요청은 스위치와 통신하는 저장 장치 내에 데이터를 기록하는 데 사용된다.
구현예에서, 제어기가 스위치와 통신하는 저장 장치의 여유 저장 공간 정보를 획득하는 단계는 구체적으로, 제어기에 의해, 저장 장치에 의해 보고되는 여유 저장 공간 정보를 수신하는 단계를 포함한다.
구현예에서, 제어기가 스위치와 통신하는 저장 장치의 여유 저장 공간 정보를 획득하는 단계는 구체적으로, 제어기에 의해, 저장 장치에게 기록 요청을 전달하는 횟수와 기록된 데이터의 크기를 획득하는 단계; 및 제어기에 의해, 저장 장치의 저장 공간, 기록 요청의 횟수, 및 기록된 데이터의 크기에 따라서 저장 장치의 여유 저장 공간을 계산하는 단계를 포함하며, 여기서 횟수와 크기는 스위치의 플로우 테이블 내의 플로우 테이블 엔트리에 기록된다.
구체적으로, 객체 저장 시스템에서, 본 발명의 실시예에서의 제어기(104)가 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법을 제공하는 방법에 따라서, 저장 장치는 구체적으로 객체 저장 장치이고, 기록 요청은 구체적으로 객체 기록 요청이며, 객체 기록 요청에 따라서 객체 저장 장치 내에 기록되는 데이터는 객체이다.
본 발명의 실시예에서 제공되는 저장 시스템에서, 소프트웨어 정의 네트워크에 기초하는 제어기가, 저장 장치의 여유 저장 공간에 따라서, 기록 요청에 매칭되는 플로우 테이블 엔트리의 전달 규칙을 생성하여, 스위치가 제어기에 의해 생성되는 전달 규칙에 따라서 기록 요청을 처리하도록 함으로써, 저장 장치들의 로드 밸런싱을 구현할 수 있으며 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다. 본 발명의 실시예에 적용될 수 있는 저장 시스템은 파일 레벨 저장 시스템, 데이터 블록 레벨 저장 시스템, 또는 객체 저장 시스템일 수 있으며, 또는 파일 레벨 저장 시스템, 데이터 블록 레벨 저장 시스템, 및 객체 저장 시스템 중 적어도 두 개의 저장 시스템을 또한 포함할 수도 있다. 구체적으로, 객체 저장 시스템에의 적용에 대해, 객체 조작 시스템에서 객체 조작 요청을 처리하는 전술한 실시예에 참조될 수 있으며, 상세한 설명은 여기에서 중복되지 않는다.
저장 시스템에서 조작 요청을 처리하기 위한 방법의 실시예에 대한 설명에 따라서, 제어기(104)가 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법을 제공하며, 도 9에 도시된 바와 같이, 다음의 단계를 포함한다.
단계 901: 제어기가 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보를 획득한다.
단계 902: 제어기가, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보에 따라서, 판독 요청에 매칭되는 전달 규칙을 생성한다.
구현예에서, 제어기가 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보를 획득하는 단계가 구체적으로, 제어기에 의해, 요청된 데이터를 저장하는 저장 장치들에 의해서 보고되는 플로우 로드 정보를 수신하는 단계를 포함한다.
구현예에서, 제어기가 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보를 획득하는 단계가 구체적으로, 제어기에 의해서, 요청된 데이터를 저장하는 저장 장치들에게 조작 요청을 전달하는 횟수를 획득하는 단계를 포함하며, 여기서 횟수는 스위치의 플로우 테이블 내의 플로우 테이블 엔트리에 기록되고, 조작 요청은 기록 요청 및 판독 요청을 포함한다.
구체적으로, 객체 저장 시스템에서, 제어기(104)가 본 발명의 실시예에서 플로우 테이블 엔트리 전달 규칙을 생성하기 위한 방법을 제공하는 방법에 따라서, 저장 장치는 구체적으로 객체 저장 장치이고, 판독 요청은 구체적으로 객체 판독 요청이며, 객체 판독 요청에 의해 요청되어 객체 저장 장치에 저장되는 데이터는 객체이다.
본 발명의 실시예에서 제공되는 저장 시스템에서, 소프트웨어 정의 네트워크에 기초하는 제어기가, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드에 따라서, 판독 요청에 매칭되는 플로우 테이블 엔트리의 전달 규칙을 생성하여, 스위치가 제어기에 의해 생성되는 전달 규칙에 따라서 판독 요청을 처리하도록 함으로써, 저장 장치들의 로드 밸런싱을 구현할 수 있으며 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다. 본 발명의 실시예에 적용될 수 있는 저장 시스템은 파일 레벨 저장 시스템, 데이터 블록 레벨 저장 시스템, 또는 객체 저장 시스템일 수 있으며, 또는 파일 레벨 저장 시스템, 데이터 블록 레벨 저장 시스템, 및 객체 저장 시스템 중 적어도 두 개의 하이브리드 저장 시스템을 또한 포함할 수도 있다. 구체적으로, 객체 저장 시스템에의 적용에 대해, 객체 조작 시스템에서 객체 조작 요청을 처리하는 전술한 실시예가 참조될 수 있으며, 상세한 설명은 여기에서 중복되지 않는다.
본 발명의 전술한 실시예에 따라서, 소프트웨어 정의 네트워크가 저장 시스템에서 사용되며; 소프트웨어 정의 네트워크에서, 구체적인 제어기의 구현은, 데이터 전달 평면(data forwarding plane) 상의 스위치에 대한 제어를 구현하기 위해, 범용 서버 운영 제어기 소프트웨어(universal server running controller software)일 수 있다. 범용 서버의 구조는 중앙 처리 유닛, 메모리, 및 기타 등등을 포함하며; 중앙 처리 유닛과 메모리는 버스를 사용하여 연결되고; 제어기와 스위치는 전술한 실시예에서 설명된 통신을 구현한다. 데이터 전달 평면에 위치하는 스위치는 중앙 처리 유닛, 메모리, 및 기타 등등을 포함하는 범용 스위치 또는 오픈플로우 스위치일 수 있으며; 중앙 처리 유닛과 메모리는 버스를 사용하여 연결되고; 중앙 처리 유닛과 제어기는 전술한 실시예에서 설명된 통신을 구현하고, 동시에 객체 조작 요청의 전달을 구현한다. 본 발명의 실시예에서, 제어기와 스위치는 예시적으로 설명되었을 뿐이며, 소프트웨어 정의 네트워크를 구현할 수 있는 기타 스위치들과 제어기들은 또한 본 발명을 구현하는 데 사용될 수도 있다.
본 발명의 전술한 실시예의 설명에 따라서, 본 발명의 실시예는, 도 10에 도시된 바와 같이, 수신 유닛(1001), 쿼리 유닛(1002), 및 전달 유닛(1003)을 포함하는 스위치를 제공한다. 수신 유닛(1001)은 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자를 가지고 있는 조작 요청을 수신하도록 구성되고; 쿼리 유닛(1002)은, 요청 식별자에 따라서, 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해, 스위치의 플로우 테이블을 쿼리하도록 구성되며; 전달 유닛(1003)은 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 저장 장치들 중 목표 저장 장치에게 조작 요청을 전달하도록 구성된다.
도 10에 도시된 스위치에 따라서, 조작 요청이 판독 요청인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙은 요청된 데이터를 저장하는 저장 장치들의 플로우 로드에 따라서 제어기에 의해 생성되고, 조작 요청이 기록 요청인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙은 저장 장치들의 여유 저장 공간에 따라서 제어기에 의해 생성된다.
구체적으로, 객체 저장 시스템에서, 수신 유닛(1001)은 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자를 가지고 있는 객체 조작 요청을 수신하도록 구성되고; 쿼리 유닛(1002)은, 요청 식별자에 따라서, 객체 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해, 스위치의 플로우 테이블을 쿼리하도록 구성되며; 전달 유닛(1003)은 매칭되는 플로우 테이블 엔트리의 전달 규칙에 따라서 객체 저장 장치들 중 목표 객체 저장 장치에게 객체 조작 요청을 전달하도록 구성되고, 이 때, 객체 조작 요청이 객체 판독 요청인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙은 요청된 객체를 저장하는 객체 저장 장치들의 플로우 로드에 따라서 제어기에 의해 생성되고, 객체 조작 요청이 객체 기록 요청인 경우, 매칭되는 플로우 테이블 엔트리의 전달 규칙은 객체 저장 장치들의 여유 저장 공간에 따라서 제어기에 의해 생성된다.
본 발명의 실시예에서 제공되는 저장 시스템에서, 소프트웨어 정의 네트워크 내의 스위치를 사용하여 대응하는 저장 장치에게 요청 식별자를 가지고 있는 조작 요청을 전달하기 위한 처리 방법에 따라서, 제어기는 스위치의 플로우 테이블 엔트리 내에 전달 규칙을 생성하고, 스위치는 플로우 테이블 엔트리 내의 전달 규칙에 따라서 조작 요청을 전달함으로써, 저장 장치들의 로드 밸런싱을 구현할 수 있고, 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
본 발명의 전술한 방법 실시예의 설명에 따라서, 본 발명의 실시예는, 도 11에 도시된 바와 같이, 획득 유닛(1101) 및 생성 유닛(1102)을 포함하는 제어기를 제공하며, 여기서 획득 유닛(1101)은 스위치와 통신하는 저장 장치의 여유 저장 공간 정보를 획득하도록 구성되고; 생성 유닛(1102)은, 저장 장치의 여유 저장 공간 정보에 따라서, 기록 요청에 매칭되는 전달 규칙을 생성하도록 구성되며, 이 때 기록 요청은 스위치와 통신하는 저장 장치 내에 데이터를 기록하는 데 사용된다. 구현예에서, 획득 유닛(1101)은 구체적으로 저장 장치에 의해 보고되는 여유 저장 공간 정보를 수신하도록 구성된다. 구현예에서, 획득 유닛(1101)은 구체적으로 저장 장치에게 기록 요청을 전달하는 횟수와 기록된 데이터의 크기를 획득하고; 저장 장치의 저장 공간, 기록 요청의 횟수, 및 기록된 데이터의 크기에 따라서 저장 장치의 여유 저장 공간을 계산하도록 구성되며, 여기서 횟수와 크기는 스위치의 플로우 테이블 내의 플로우 테이블 엔트리에 기록된다.
구체적으로, 객체 저장 시스템에서, 획득 유닛(1101)은 스위치와 통신하는 객체 저장 장치의 여유 저장 공간 정보를 획득하도록 구성되고; 생성 유닛(1102)은, 객체 저장 장치의 여유 저장 공간 정보에 따라서, 객체 기록 요청에 매칭되는 전달 규칙을 생성하도록 구성되며, 이 때 객체 기록 요청은 스위치와 통신하는 객체 저장 장치 내에 객체를 기록하는 데 사용된다. 구현예에서, 획득 유닛(1101)은 구체적으로 객체 저장 장치에 의해 보고되는 여유 저장 공간 정보를 수신하도록 구성된다. 구현예에서, 획득 유닛(1101)은 구체적으로 객체 저장 장치에게 객체 기록 요청을 전달하는 횟수와 기록된 데이터의 크기를 획득하고; 객체 저장 장치의 저장 공간, 객체 기록 요청의 횟수, 및 기록된 객체의 크기에 따라서 객체 저장 장치의 여유 저장 공간을 계산하도록 구성되며, 여기서 횟수와 크기는 스위치의 플로우 테이블 내의 플로우 테이블 엔트리에 기록된다.
소프트웨어 정의 네트워크를 사용하여, 본 발명의 실시예에서 제공되는 제어기에 따라서, 제어기는, 저장 시스템 내의 각 저장 장치의 여유 저장 공간에 따라서, 기록 요청에 매칭되는 스위치의 플로우 테이블 엔트리와 전달 규칙을 생성함으로써, 각 저장 장치의 로드 밸런싱을 구현할 수 있으며 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
본 발명의 전술한 방법 실시예의 설명에 따라서, 본 발명의 실시예는 제어기를 제공한다. 도 11에 도시된 바와 같이, 제어기는 획득 유닛(1101)과 생성 유닛(1102)을 포함한다. 본 발명의 실시예에서, 획득 유닛(1101)은 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보를 획득하도록 구성되고; 생성 유닛(1102)은 요청된 데이터를 저장하는 저장 장치들의 플로우 로드 정보에 따라서, 판독 요청에 매칭되는 전달 규칙을 생성하도록 구성된다. 구현예에서, 획득 유닛(1101)은 구체적으로 요청된 데이터를 저장하는 저장 장치들에 의해서 보고되는 플로우 로드 정보를 수신하도록 구성된다. 구현예에서, 획득 유닛(1101)은 구체적으로 요청된 데이터를 저장하는 저장 장치들에게 조작 요청을 전달하는 횟수를 획득하도록 구성되며, 여기서 횟수는 스위치의 플로우 테이블 내의 플로우 테이블 엔트리에 기록되고, 조작 요청은 기록 요청 및 판독 요청을 포함한다.
구체적으로, 객체 저장 시스템에서, 획득 유닛(1101)은 요청된 객체를 저장하는 객체 저장 장치들의 플로우 로드 정보를 획득하도록 구성되고; 생성 유닛(1102)은 요청된 객체를 저장하는 객체 저장 장치들의 플로우 로드 정보에 따라서, 객체 판독 요청에 매칭되는 전달 규칙을 생성하도록 구성된다. 구현예에서, 획득 유닛(1101)은 구체적으로 요청된 객체를 저장하는 객체 저장 장치들에 의해서 보고되는 플로우 로드 정보를 수신하도록 구성된다. 구현예에서, 획득 유닛(1101)은 구체적으로 요청된 객체를 저장하는 객체 저장 장치들에게 객체 조작 요청을 전달하는 횟수를 획득하도록 구성되며, 여기서 횟수는 스위치의 플로우 테이블 내의 플로우 테이블 엔트리에 기록되고, 객체 조작 요청은 객체 기록 요청 및 객체 판독 요청을 포함한다.
소프트웨어 정의 네트워크를 사용하여, 본 발명의 실시예에서 제공되는 제어기에 따라서, 제어기는, 저장 시스템 내에 요청된 데이터를 저장하는 저장 장치들의 플로우 로드에 따라서, 판독 요청에 매칭되는 스위치의 플로우 테이블 엔트리와 전달 규칙을 생성함으로써, 각 저장 장치의 로드 밸런싱을 구현할 수 있으며 저장 장치들 사이의 정보 인터랙션을 감소시킬 수 있다.
본 발명의 전술한 장치 실시예에서 설명되는 스위치와 제어기의 구체적인 기능 설명에 대해, 방법 실시예가 추가로 참조될 수 있고, 또한, 적용 시나리오에 대해, 도 2에 도시된 개략적인 구성도와 해당 설명이 참조될 수 있으며, 상세한 설명은 여기에서 중복되지 않는다.
통상의 기술자라면, 본 명세서에서 개시된 실시예에 기술된 예시들을 조합에 있어서, 유닛과 알고리즘 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어, 또는 이들의 조합에 의해 구현될 수 있다는 것을 잘 알 것이다. 기능들이 하드웨어에 의해 수행되는지 소프트웨어에 의해 수행되는지는 기술적 해결수단의 구체적인 적용 및 설계 제약 조건에 따라 결정된다. 통상의 기술자라면, 상술한 기능을 각각의 구체적인 적용을 위해 상이한 방법을 사용하여 구현할 수 있지만, 그 또한 본 발명의 보호 범위를 벗어난 것으로 취급되지 않는다.
통상의 기술자라면, 간편하게 기술하기 위한 목적으로, 전술한 시스템, 장치 및 유닛의 구체적인 작동 프로세스에 대해, 전술한 방법 실시예에서의 대응하는 프로세스를 참조하고 상세한 반복 설명은 생략되었다는 것을 이해할 것이다.
본 출원에서 제공된 여러 실시예에서, 개시된 시스템, 장치 및 방법은 다른 방식으로 구현될 수 있다. 예컨대, 기술된 장치 실시예는 단지 예시적이다. 예컨대, 유닛 분할은 단지 논리적 기능 분할이며 실제 구현에서는 다르게 나누어질 수 있다. 예컨대, 복수의 유닛 또는 컴포넌트는 다른 하나의 시스템으로 결합되거나 통합될 수 있고, 또는 일부 특징은 무시되거나 또는 수행되지 않을 수도 있다. 또한, 표시되거나 설명된 상호 간의 연결 또는 직접 연결 또는 통신 연결은 임의의 인터페이스를 통해 구현될 수 있다. 장치 또는 유닛 간의 간접적인 연결 또는 통신 연결은 전자, 기계 또는 다른 형태로 구현될 수 있다.
별개의 부분으로 설명된 유닛은 물리적으로 독립된 것이거나, 물리적으로 독립되지 않은 것일 수 있고, 유닛으로 도시된 부분이 물리적 유닛일 수 있거나 물리적 유닛이 아닐 수 있거나, 또는 한 곳에 위치될 수 있거나, 복수의 네트워크 유닛 상에 분배되어 있을 수 있다. 일부 또는 모든 유닛은, 실시예의 해결수단의 목적을 달성하기 위해 실제 요건에 따라 선택될 수 있다.
또한, 본 발명의 실시예에서의 기능적 유닛은 하나의 처리 유닛으로 통합될 수도 있고, 또는 각 유닛이 물리적으로 독립하여 존재할 수도 있으며, 또는 둘 이상의 유닛이 하나의 유닛으로 통합될 수도 있다.
기능들이 소프트웨어 기능 유닛의 형태로 구현되고 독립된 제품으로 판매되거나 사용되는 경우, 그 통합된 유닛은 컴퓨터에 의해 판독 가능한 저장 매체에 저장될 수 있다. 그러한 사상에 기초하는 경우, 본 발명의 기술적 해결수단은 필수적으로, 또는 종래 기술에 기여하는 부분 또는 그 기술적 해결수단 모두 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되고, 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치)로 하여금 본 발명의 실시예에서 기술된 방법의 일부 또는 모든 단계를 수행하도록 하는 명령어를 포함한다. 전술한 비휘발성 저장 매체는, USB 플래시 드라이브, 탈착 가능한 하드 디스크, ROM(Read-Only Memory), 자기 디스크 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있으면 어떤 매체라도 좋다.
전술한 설명은 단지 본 발명의 구체적인 실시예일 뿐이며, 본 발명의 보호 범위를 제한하기 위한 것이 아니다. 통상의 기술자가 본 발명에서 개시된 기술적 범위 내에서 생각해 낼 수 있는 변형 또는 대체는 모두 본 발명의 보호 범위 내에 속한다. 따라서, 본 발명의 보호 범위는 청구범위의 보호 범위에 의해 결정되어야 한다.

Claims (27)

  1. 스위치와 통신하고 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하는 저장 시스템에서, 조작 요청(operation request)을 처리하기 위한 방법에 있어서,
    상기 스위치에 의해, 사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자(request identification)를 가지고 있는 조작 요청을 수신하는 단계;
    상기 요청 식별자에 따라서 상기 스위치에 의해, 상기 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해 상기 스위치의 플로우 테이블을 쿼리하는 단계; 및
    상기 스위치에 의해, 상기 매칭되는 플로우 테이블 엔트리의 전달 규칙(forwarding rule)에 따라서 상기 저장 장치들 중 목표 저장 장치에게 상기 조작 요청을 전달하는 단계
    를 포함하는 조작 요청을 처리하기 위한 방법.
  2. 제1항에 있어서,
    (1) 상기 요청 식별자가 상기 사용자 그룹 정보인 경우, 상기 조작 요청의 가상 로컬 영역 네트워크 식별 비트(virtual local area network identification bit)가 상기 사용자 그룹 정보를 가지고 있고, 또 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트가 상기 사용자 그룹 정보를 가지고 있거나; 또는
    (2) 상기 요청 식별자가 상기 저장 전략 정보인 경우, 상기 조작 요청의 인터넷 프로토콜 서비스 유형 비트(Internet Protocol Type of Service bit)가 상기 저장 전략 정보를 가지고 있고, 또 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트가 상기 저장 전략 정보를 가지고 있거나; 또는
    (3) 상기 요청 식별자가 상기 사용자 그룹 정보와 상기 저장 전략 정보인 경우, 상기 조작 요청의 가상 로컬 영역 네트워크 식별 비트가 상기 사용자 그룹 정보를 가지고 있고, 또 상기 조작 요청의 인터넷 프로토콜 서비스 유형 비트가 상기 저장 전략 정보를 가지고 있으며, 또 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 가상 로컬 영역 네트워크 식별 비트가 상기 사용자 그룹 정보를 가지고 있고, 또 상기 매칭되는 플로우 테이블 엔트리의 패킷 헤더 필드 내의 인터넷 프로토콜 서비스 유형 비트가 상기 저장 전략 정보를 가지고 있는,
    조작 요청을 처리하기 위한 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 조작 요청이 판독 요청(read request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 상기 전달 규칙이, 요청된 데이터를 저장하는 저장 장치들의 플로우 로드(flow load)에 따라서, 상기 제어기에 의해 생성되는,
    조작 요청을 처리하기 위한 방법.
  4. 제3항에 있어서,
    상기 스위치에 의해, 상기 판독 요청이 상기 목표 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며,
    상기 횟수가 상기 매칭되는 플로우 테이블 엔트리 내에 기록되는,
    조작 요청을 처리하기 위한 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 조작 요청이 기록 요청(write request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 전달 규칙이, 상기 저장 장치들의 여유 저장 공간에 따라서, 상기 제어기에 의해 생성되는,
    조작 요청을 처리하기 위한 방법.
  6. 제5항에 있어서,
    상기 스위치에 의해, 상기 기록 요청이 상기 목표 저장 장치에게 전달되는 횟수를 업데이트하는 단계를 더 포함하며,
    상기 횟수가 상기 매칭되는 플로우 테이블 엔트리 내에 기록되는,
    조작 요청을 처리하기 위한 방법.
  7. 저장 시스템에 적용되는 스위치에 있어서,
    상기 저장 시스템은, 상기 스위치와 통신하고, 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하고,
    상기 스위치는,
    사용자 그룹 정보와 저장 전략 정보 중 적어도 하나를 포함하는 요청 식별자(request identification)를 가지고 있는 조작 요청을 수신하도록 구성된 수신 유닛;
    상기 요청 식별자에 따라서, 상기 조작 요청에 매칭되는 플로우 테이블 엔트리를 획득하기 위해 상기 스위치의 플로우 테이블을 쿼리하도록 구성된 쿼리 유닛; 및
    상기 매칭되는 플로우 테이블 엔트리의 전달 규칙(forwarding rule)에 따라서 상기 저장 장치들 중 목표 저장 장치에게 상기 조작 요청을 전달하도록 구성된 전달 유닛
    을 포함하는 스위치.
  8. 제7항에 있어서,
    상기 조작 요청이 판독 요청(read request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 상기 전달 규칙이 요청된 데이터를 저장하는 저장 장치들의 플로우 로드(flow load)에 따라서 상기 제어기에 의해 생성되는,
    스위치.
  9. 제7항에 있어서,
    상기 조작 요청이 기록 요청(write request)인 경우, 상기 매칭되는 플로우 테이블 엔트리의 상기 전달 규칙이, 상기 저장 장치들의 여유 저장 공간에 따라서, 상기 제어기에 의해 생성되는,
    스위치.
  10. 저장 시스템에 적용되는 스위치에 있어서,
    상기 저장 시스템은, 상기 스위치와 통신하고 상기 스위치의 플로우 테이블(flow table)을 생성하여 전달하도록 구성된 제어기, 상기 스위치, 및 상기 스위치와 통신하는 저장 장치들을 포함하고,
    상기 스위치는 중앙 처리 유닛 및 메모리를 포함하며,
    상기 중앙 처리 유닛 및 상기 메모리는 버스를 사용하여 서로 연결되고, 상기 메모리는 컴퓨터 명령을 저장하도록 구성되며, 상기 중앙 처리 유닛은 상기 메모리 내에 저장된 상기 컴퓨터 명령을 실행하여, 제1항에 따른 상기 방법을 구현하는,
    스위치.
  11. 비휘발성 컴퓨터 판독가능 저장 매체에 있어서,
    컴퓨터 명령을 저장하고,
    컴퓨터가 상기 컴퓨터 명령을 실행하는 경우, 제1항에 따른 상기 방법을 구현하도록 구성된,
    비휘발성 컴퓨터 판독 가능 저장 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
KR1020167007130A 2013-08-31 2013-08-31 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치 KR101864813B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/082755 WO2015027506A1 (zh) 2013-08-31 2013-08-31 存储系统中操作请求处理方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031457A Division KR101816627B1 (ko) 2013-08-31 2013-08-31 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160044555A KR20160044555A (ko) 2016-04-25
KR101864813B1 true KR101864813B1 (ko) 2018-06-05

Family

ID=52585440

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167007130A KR101864813B1 (ko) 2013-08-31 2013-08-31 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치
KR1020177031457A KR101816627B1 (ko) 2013-08-31 2013-08-31 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177031457A KR101816627B1 (ko) 2013-08-31 2013-08-31 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치

Country Status (9)

Country Link
US (2) US10009269B2 (ko)
EP (1) EP2858329B1 (ko)
JP (1) JP6275850B2 (ko)
KR (2) KR101864813B1 (ko)
CN (1) CN104823428B (ko)
AU (1) AU2013398869B2 (ko)
CA (1) CA2922204C (ko)
RU (1) RU2630377C1 (ko)
WO (1) WO2015027506A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150363423A1 (en) * 2014-06-11 2015-12-17 Telefonaktiebolaget L M Ericsson (Publ) Method and system for parallel data replication in a distributed file system
US10554749B2 (en) 2014-12-12 2020-02-04 International Business Machines Corporation Clientless software defined grid
US10469580B2 (en) * 2014-12-12 2019-11-05 International Business Machines Corporation Clientless software defined grid
US20160216891A1 (en) * 2015-01-27 2016-07-28 Cisco Technology, Inc. Dynamic storage fabric
CN105024990A (zh) * 2015-03-30 2015-11-04 清华大学 网络安全攻防演练环境部署方法及装置
US10037171B2 (en) * 2015-04-30 2018-07-31 International Business Machines Corporation Accessing common data in a dispersed storage network
US10216594B2 (en) 2015-04-30 2019-02-26 International Business Machines Corporation Automated stalled process detection and recovery
US10168904B2 (en) 2015-04-30 2019-01-01 International Business Machines Corporation Quasi-error notifications in a dispersed storage network
US10254992B2 (en) 2015-04-30 2019-04-09 International Business Machines Corporation Rebalancing data storage in a dispersed storage network
CN104883321B (zh) * 2015-05-05 2017-11-17 浙江大学 一种基于交换机负载的域内负载均衡方法
CN106302184B (zh) 2015-06-12 2020-02-14 华为技术有限公司 一种流表项下发方法、流表项保存方法、相关装置和系统
CN106411820B (zh) * 2015-07-29 2019-05-21 中国科学院沈阳自动化研究所 一种基于sdn架构的工业通信流传输安全控制方法
CN106385365B (zh) * 2015-08-07 2019-09-06 新华三技术有限公司 基于开放流Openflow表实现云平台安全的方法和装置
US10171336B2 (en) * 2015-12-16 2019-01-01 Telefonaktiebolaget Lm Ericsson (Publ) Openflow configured horizontally split hybrid SDN nodes
CN107872343B (zh) * 2016-09-28 2022-05-06 中兴通讯股份有限公司 流量转发控制方法、装置及软件定义网络控制器
US10560527B2 (en) * 2017-03-02 2020-02-11 Dell Products, L.P. Network service chains using hardware logic devices in an information handling system
CN107317887B (zh) * 2017-08-23 2019-10-18 北京知道创宇信息技术股份有限公司 一种负载均衡方法、装置和系统
CN110445671B (zh) * 2019-06-27 2020-11-27 浪潮思科网络科技有限公司 一种基于sdn的网络流量监控方法
WO2022038935A1 (ja) 2020-08-21 2022-02-24 富士フイルム株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
CN113132240B (zh) * 2021-04-21 2023-02-10 北京字节跳动网络技术有限公司 数据包处理、转发方法、装置、集成芯片、交换机及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012073406A1 (en) * 2010-12-02 2012-06-07 Nec Corporation Communication system, control device, communication method and program

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09322202A (ja) * 1996-05-27 1997-12-12 Canon Inc 多重化伝送方法及びこれを用いたネットワークシステム
US7778981B2 (en) * 2000-12-01 2010-08-17 Netapp, Inc. Policy engine to control the servicing of requests received by a storage server
US8392586B2 (en) * 2001-05-15 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus to manage transactions at a network storage device
JP2006247954A (ja) 2005-03-09 2006-09-21 Fuji Photo Film Co Ltd 機能性フィルム、偏光板および液晶表示装置
JP2008071039A (ja) * 2006-09-13 2008-03-27 Toshiba Corp 画像管理装置及び画像管理システム
JP4326552B2 (ja) * 2006-10-12 2009-09-09 株式会社日立製作所 バックエンドで他のストレージシステムと通信するストレージシステム
JP4639223B2 (ja) * 2007-12-27 2011-02-23 株式会社日立製作所 ストレージサブシステム
JP2010146215A (ja) * 2008-12-17 2010-07-01 Hitachi Ltd クラスタストレージ装置、クラスタストレージシステム、及びその制御方法
JP5660049B2 (ja) 2009-12-17 2015-01-28 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
WO2011083682A1 (ja) * 2010-01-05 2011-07-14 日本電気株式会社 スイッチネットワークシステム、コントローラ、及び制御方法
CN102622185B (zh) * 2011-01-27 2015-09-23 北京东方广视科技股份有限公司 在多个存储单元中存储文件的方法以及存储分配方法
US9130886B2 (en) 2011-06-16 2015-09-08 Nec Corporation Communication system, controller, switch, storage managing apparatus and communication method
EP2759101B1 (en) * 2011-09-22 2019-11-27 NEC Corporation Communication terminal, communication method, and program
CN104137493A (zh) * 2012-02-20 2014-11-05 日本电气株式会社 网络系统和改善资源利用率的方法
CN102647362B (zh) * 2012-04-27 2016-12-21 浪潮电子信息产业股份有限公司 一种多控制器存储系统负载均衡的方法
US9390055B2 (en) * 2012-07-17 2016-07-12 Coho Data, Inc. Systems, methods and devices for integrating end-host and network resources in distributed memory
US8837476B2 (en) * 2012-09-07 2014-09-16 International Business Machines Corporation Overlay network capable of supporting storage area network (SAN) traffic
JPWO2014084198A1 (ja) * 2012-11-27 2017-01-05 日本電気株式会社 ストレージエリアネットワークシステム、制御装置、アクセス制御方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012073406A1 (en) * 2010-12-02 2012-06-07 Nec Corporation Communication system, control device, communication method and program
US20130242879A1 (en) 2010-12-02 2013-09-19 Dow Global Tecnologies LLC Communication system, control device, communication method and program

Also Published As

Publication number Publication date
EP2858329A1 (en) 2015-04-08
EP2858329B1 (en) 2017-05-24
RU2630377C1 (ru) 2017-09-07
KR101816627B1 (ko) 2018-01-09
KR20170124627A (ko) 2017-11-10
US20150110116A1 (en) 2015-04-23
CA2922204A1 (en) 2015-03-05
AU2013398869A1 (en) 2016-03-24
WO2015027506A1 (zh) 2015-03-05
CA2922204C (en) 2021-01-26
US10009269B2 (en) 2018-06-26
JP6275850B2 (ja) 2018-02-07
US10218618B2 (en) 2019-02-26
JP2016537735A (ja) 2016-12-01
CN104823428B (zh) 2019-05-10
AU2013398869B2 (en) 2017-10-12
KR20160044555A (ko) 2016-04-25
US20180139134A1 (en) 2018-05-17
EP2858329A4 (en) 2015-12-02
CN104823428A (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
KR101864813B1 (ko) 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치
EP3490203B1 (en) Method and system for implementing a vxlan control plane
KR101913490B1 (ko) 플로우 테이블 관리 방법, 및 관련 디바이스 및 시스템
CN106164898B (zh) 数据处理方法和装置
CN107465590A (zh) 网络基础设施系统、路由网络业务的方法及计算机可读介质
US10122654B2 (en) Divided hierarchical network system based on software-defined networks
US9634887B2 (en) System, method and computer-readable medium for using a plurality of virtual machines
WO2013136522A1 (ja) 計算機システム及び計算機間のデータ通信方法
US20200159775A1 (en) Network-wide, location-independent object identifiers for high-performance distributed graph databases
JP2015015671A5 (ko)
EP2833583A1 (en) Network appliance redundancy system, control device, network appliance redundancy method and program
CN105991438B (zh) 基于虚拟二层网络中数据包的处理方法和装置
US20160294679A1 (en) Network routing modifications for distribution of data
CN103503421A (zh) 负荷平衡系统中的sctp关联端点重定位
JP6545236B2 (ja) ストレージシステムにおいて操作要求を処理するための方法及び装置
WO2015039687A1 (en) Transmission and reception devices for reducing the delay in end-to-end delivery of network packets
CN105656814A (zh) 一种sdn网络转发系统与方法
EP3288224B1 (en) Data packet forwarding method and network device
JP5970954B2 (ja) 計算機、データ変換装置、通信方法及びプログラム
CN103795634A (zh) 一种转发表的生成方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant