KR101801432B1 - 파일 시스템 내에 투명 페일오버의 제공 - Google Patents

파일 시스템 내에 투명 페일오버의 제공 Download PDF

Info

Publication number
KR101801432B1
KR101801432B1 KR1020137014719A KR20137014719A KR101801432B1 KR 101801432 B1 KR101801432 B1 KR 101801432B1 KR 1020137014719 A KR1020137014719 A KR 1020137014719A KR 20137014719 A KR20137014719 A KR 20137014719A KR 101801432 B1 KR101801432 B1 KR 101801432B1
Authority
KR
South Korea
Prior art keywords
server
client
resume
file
state
Prior art date
Application number
KR1020137014719A
Other languages
English (en)
Other versions
KR20130131362A (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 KR20130131362A publication Critical patent/KR20130131362A/ko
Application granted granted Critical
Publication of KR101801432B1 publication Critical patent/KR101801432B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Retry When Errors Occur (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

클라이언트가 재개 키에 연관하여 클라이언트 상태 정보를 원격 저장함으로써 서버 또는 상이한 대체 서버를 이용하여 접속을 재개하게 하는 접속 상태 시스템이 본 명세서에서 설명된다. 시스템은 휘발성 서버 상태 정보의 저장을 용이하게 하는 서버에서 동작하는 재개 키 필터를 제공한다. 상태 정보는 편의적 잠금, 클라이언트에게 허여된 대여, 및 파일 핸들 상의 인 플라이트 동작과 같은 정보를 포함할 수 있다. 재개 키 필터 드라이버는 파일 시스템 상에 위치하며, 이는 복수의 파일 접근 프로토콜이 필터를 사용하게 해준다. 서버가 작동 중단되거나 클라이언트로의 접속을 상실하는 것과 같은 페일오버인 경우에, 시스템은 또 다른 서버 또는 동일한 서버를 드러낼 수 있으며, 재개 키 필터를 사용하여 다양한 클라이언트에 의해 유지된 파일 핸들을 위한 상태를 재설정할 수 있다.

Description

파일 시스템 내에 투명 페일오버의 제공{PROVIDING TRANSPARENT FAILOVER IN A FILE SYSTEM}
네트워크 상의 두 개의 컴퓨터 사이에서 파일, 프린터, 및 다른 자원을 공유하기 위한 다양한 기법이 존재한다. 예를 들어, 자원을 공유하기 위한 두 개의 애플리케이션 계층 네트워크 프로토콜(application-layer network protocol)은 서버 메시지 블록(Server Message Block(SMB)) 및 네트워크 파일 시스템(Network File System(NFS))이다. SMB는, 두 개의 컴퓨터 또는 다른 자원이 통신하고, 자원으로의 접근을 요구하고, 자원의 의도된 접근(예를 들어, 읽기, 쓰기 등)을 명시하며, 자원을 잠그는 것 등을 할 수 있도록 하기 위해 마이크로소프트(MICROSOFT)™ 윈도우즈(WINDOWS)™ 및 다른 운영 체제에 의해 사용된다. 마이크로소프트™ 윈도우즈™ 비스타(Vista)는 SMB 2.0을 도입했으며, 이는 SMB 1.0의 명령 세트를 단순화했고 많은 다른 개선 사항을 추가했다. 마이크로소프트™ 윈도우즈™ 7 및 서버 2008 R2는 SMB 2.1을 도입했으며, 이는 편의적 잠금(opportunistic locking(oplocks)) 및 다른 개선 사항을 추가했다.
자원의 원격 공유를 위한 대부분의 프로토콜은 접속과 세션 사이에 일 대 일 관계를 가정한다. 세션은 접속이 종료될 때까지 자원에 접근하려는 임의의 단일 요구의 존속 기간 및 그러한 자원의 후속 접근을 표시한다. 세션은 또한 세션 중에 인가되는 동작을 판단하는 특정 보안 원리 및 유효한 보안 크리덴셜과 연관될 수 있다. 접속은 전송 제어 프로토콜(Transmission Control Protocol(TCP)), 사용자 데이터그램 프로토콜(User Datagram Protocol(UDP)), 또는 명령을 수행하기 위해 SMB 및 NFS와 같은 더 높은 레벨의 프로토콜이 통신할 수 있는 다른 유형의 접속을 포함할 수 있다. SMB 또는 NFS 세션은 대개 요구의 소스(source)와 요구의 타깃(target) 사이에서 TCP 또는 UDP 접속을 여는 것, 타깃 자원에 접속하도록 하나 이상의 SMB 또는 NFS 명령을 송신하는 것, 및 그런 다음 세션을 닫는 것을 수반할 수 있다. 때때로, 접속은 (예를 들어, 네트워크 장애로 인해) 세션 중에 상실되어, 접속 중에 설정된 임의의 클라이언트 및 서버 상태를 붕괴시킨다. 접속을 재설정하기 위해, 클라이언트 및 서버는 대개 초기에 접속을 설정하기 위해 사용된 모든 단계들을 처음부터 다시 반복해야 한다.
SMB2 프로토콜은 클라이언트가 서버로부터 접속 해제되는 경우 클라이언트가 서버로 파일 핸들(file handle)을 신속하게 재설정하게 해주는 재개 키(resume key)를 제공하여, 클라이언트가 서버로의 네트워크 왕복(network round trip)을 줄이게 해주며 클라이언트가 재접속할 때 서버 상의 부하를 줄이게 해준다. 그러나, 현재 재개 키는 SMB2 서버가 클러스터(cluster)의 서버 리부팅(server rebooting)이나 페일오버(failover) 중에 휘발성 상태(volatile state)를 상실하는 서버 페일오버(server failover)의 경우 상태의 복원을 제공하지 않는다. 기존의 열기(open)에 연관된 상태 정보는 상실되며 재설정되어야 한다. 아울러, 재개 키는 애플리케이션의 경계 내에서만 오직 생성되고 사용될 수 있지만 공유되지는 않는 애플리케이션 레벨의 개념(application-level concept)이다.
클라이언트가 재개 키에 연관하여 클라이언트 상태 정보를 원격 저장함으로써 서버 또는 상이한 대체 서버를 이용하여 접속을 재개하게 해주는 접속 상태 시스템이 본 명세서에서 설명된다. 시스템은 휘발성 서버 상태 정보의 저장을 용이하게 하는 서버에서 동작하는 재개 키 필터를 제공한다. 상태 정보는 편의적 잠금, 클라이언트에게 허여된 대여, 및 파일 핸들 상의 인 플라이트(in-flight) 동작과 같은 정보를 포함할 수 있다. 재개 키 필터 드라이버는 파일 시스템 상부에 위치하며, 이는 복수의 파일 접근 프로토콜이 필터를 사용하게 해주는 것은 물론 필터가 복수의 파일 시스템을 가로질러 이러한 기능을 제공하게 해준다. 시스템은 실제 프로토콜과 독립적으로 상태 정보를 프로토콜로 제공한다. 서버가 작동 중단되거나 클라이언트로의 접속을 상실하는 것과 같은 페일오버 이벤트의 경우에, 시스템은 또 다른 서버 또는 동일한 서버를 호출할 수 있으며, 재개 키 필터를 사용하여 다양한 클라이언트에 의해 유지되는 파일 핸들을 위한 상태를 재설정할 수 있다. 필터는 페일오버 후에 활성 파일에 대해 활성 파일 상태가 일관되게 복원될 수 있고 다른 클라이언트가 중간에 이 파일에 접근하지 않도록 보장하는 블랙아웃 윈도우(blackout window)를 시행한다. 재개 단계에서, 기존의 페일오버 전의 파일 핸들(pre-failover file handle)을 재개 키 필터에 의해 저장된 페일오버 후 보존된 파일 상태(post-failover preserved file state)로 매핑하기 위해 재개 키가 사용된다. 따라서, 접속 상태 시스템은 동일한 서버 또는 또 다른 서버가 클라이언트들을 가능한 적게 방해하면서 페일오버 이벤트 후에 하나의 클라이언트를 이용하여 이전 세션의 상태를 재개하게 한다.
이러한 발명의 요약은 발명의 상세한 설명에서 추가로 후술되는 개념의 선택을 단순화된 형태로 소개하기 위해 제공된다. 이러한 발명의 요약은 청구된 주제의 주요 특징 또는 필수 특징을 식별하도록 의도되지 않으며, 청구된 발명 대상의 범위를 결정하는 데에 보조로서 사용되도록 의도되지도 않는다.
도 1은 하나의 실시예에서 접속 상태 시스템의 컴포넌트를 예시하는 블록 다이어그램이다.
도 2는 하나의 실시예에서 파일 시스템 상태 정보를 캡처하는 접속 상태 시스템의 프로세싱을 예시하는 흐름도이다.
도 3은 하나의 실시예에서 페일오버 후에 접속을 재개하는 접속 상태 시스템의 프로세싱을 예시하는 흐름도이다.
도 4는 하나의 실시예에서 접속 상태 시스템의 동작 환경을 예시하는 블록 다이어그램이다.
클라이언트가 재개 키에 연관하여 클라이언트 상태 정보를 원격 저장함으로써 서버 또는 상이한 대체 서버를 이용하여 접속을 재개하게 하는 접속 상태 시스템이 본 명세서에서 설명된다. 시스템은 휘발성 서버 상태 정보의 저장을 용이하게 하는 서버에서 동작하는 재개 키 필터를 제공한다. 상태 정보는 편의적 잠금, 클라이언트에게 허여된 대여, 및 파일 핸들 상의 인 플라이트 동작과 같은 정보를 포함할 수 있다. 재개 키 필터 드라이버는 파일 시스템 상부에 위치하며, 이는 복수의 파일 접근 프로토콜이 필터를 사용하게 하는 것은 물론 필터가 복수의 파일 시스템을 가로질러 이러한 기능을 제공하게 해준다. 시스템은 실제 프로토콜과 독립적으로 상태 정보를 프로토콜로 제공한다. 서버가 작동 중단되거나 클라이언트로의 접속을 상실하는 것과 같은 페일오버 이벤트인 경우에, 시스템은 또 다른 서버 또는 (예를 들어, 잉여 이더넷 접속(redundant Ethernet connection)과 같은 상이한 접속을 통해) 동일한 서버를 호출할 수 있으며, 재개 키 필터를 사용하여 다양한 클라이언트에 의해 유지된 파일 핸들을 위한 상태를 재설정할 수 있다.
시스템은 서버가 서버의 클라이언트로의 접속을 상실한 후에 투명 페일오버를 위해 사용될 수 있는 재개 키 필터를 제공한다. 재개 키 필터는 파일 시스템 맨 위에 위치하며, 따라서 파일 시스템에 접근하기 위해 사용된 프로토콜과 독립적이다. 재개 키 필터는 활성 파일 상태를 기록하며 그 후 페일오버 후에 활성 파일 상태를 복원한다. 재개 키 필터는 다양한 상태 정보를 캡처할 수 있다. 예를 들어, 필터는 (재개 키에 의해 정적으로 참조된) 열린 핸들, (닫기 시 삭제(delete on close), 현안 삭제(delete pending), 및 잠금 상태와 같은) 약속되지 않은 파일 상태, 및 소정의 인 플라이트/차단된 파일 동작을 포함하는 활성 필터 시스템 상태를 기록한다. 필터는 열린 핸들이 페일오버 이전의 열려있는 핸들에 정합하도록 재개되며 인 플라이트 동작이 일관되게 재생될 수 있도록 페일오버 후에 활성 파일 시스템 상태를 복원한다. 필터는 재개 키를 통해 참조된 열린 파일 핸들에 연관된 사적인 불투명 데이터(private opaque data)를 저장하여 검색하는 복수의 원격 파일 시스템(Remote File System(RFS))을 위한 수단을 제공한다. 필터는 페일오버 후에 활성 파일에 대해 활성 파일 상태가 일관되게 복원될 수 있고 다른 클라이언트가 중간에 이 파일에 접근하지 않는 것을 보장하는 블랙아웃 윈도우를 시행한다. 필터는 또한 노드가 페일오버하는 클러스터 시나리오에서 SMB를 지원하기 위해 현재 활성 파일이 "유예(suspended)"되고 그 후 페일오버 없이 재개되게 해준다.
원격 파일 시스템(remote file system(RFS))은 재개 키에게 모든 파일 생성 동작을 생성 중인 여분의 매개변수로서 제공한다. 키는 RFS에 고유하다. 재개 키 필터는 파일 핸들을 위한 전역적으로 유일한 식별자(globally unique identifier(GUID))로서 재개 키 및 RFS 식별 키를 함께 사용한다. 재개 단계에서, 기존의 페일오버 전의 파일 핸들을 재개 키 필터에 의해 저장된 페일오버 후의 보존된 파일 상태로 매핑하기 위해 재개 키가 사용된다. 따라서, 접속 상태 시스템은 동일한 서버 또는 또 다른 서버가 클라이언트들을 가능한 적게 방해하면서 페일오버 이벤트 후에 하나의 클라이언트를 이용하여 이전 세션의 상태를 재개하게 한다.
도 1은 하나의 실시예에서 접속 상태 시스템의 컴포넌트를 예시하는 블록 다이어그램이다. 접속 상태 시스템(100)은 상태 수집 컴포넌트(110), 상태 저장 컴포넌트(120), 상태 데이터 저장소(130), 재개 검출 컴포넌트(140), 상태 검색 컴포넌트(150), 상태 복원 컴포넌트(160), 블랙아웃 시행 컴포넌트(170), 및 자원 유예 컴포넌트(180)를 포함한다. 이들 컴포넌트는 각각 본 명세서에서 추가로 상술된다.
상태 수집 컴포넌트(110)는 각각의 파일 핸들에 대한 상태 기록을 생성하며 상기 파일 핸들을 사용하여 동작하는 클라이언트 요구로서 상태 정보를 수집한다. 상태 수집 컴포넌트(110)는 서버가 이용 불가능한 경우에 상태 정보가 접근될 수 있도록 서버에서 동작할 수 있으며 서버로부터 외부에 상태 정보를 저장할 수 있다. 예를 들어, 상태 수집 컴포넌트(110)는 본 명세서에서 추가 설명된 상태 데이터 저장소(130)에 상태 정보를 저장할 수 있다. 상태 수집 컴포넌트(110)는 클라이언트가 서버에 접속할 때 클라이언트로부터 재개 키를 수신할 수 있으며, 상태 수집 컴포넌트(110)는 수집된 상태 정보를 상태 데이터 저장소(130) 내의 재개 키에 연관시킨다. 페일오버 후에 클라이언트가 재접속하는 경우에, 클라이언트는 초기 접속을 열기 위해 사용된 동일한 재개 키를 제공할 것이며, 현재 서버는 이전 서버에 의해 저장된 상태 정보를 발견할 수 있고 상태 정보로부터 서버 상태를 재생성할 수 있다.
상태 저장 컴포넌트(120)는 클라이언트에 의해 제공된 재개 키에 연관하여 수집된 상태 정보를 저장한다. 상태 저장 컴포넌트(120)는 상태 데이터 저장소(130) 내에 상태 정보를 저장하며, 페일오버가 발생하는 경우에 복원될 재개 키에 관련된 동작의 기록을 유지한다. 상태 정보는 열린 파일 핸들(open file handles), 허여된 편의적 잠금, 대여 및 대여 정보, 진행 중인(in-progress) 파일 동작, 바이트 범위 잠금(byte range lock), 및 클라이언트가 모든 이전 상태를 재설정하지 않으면서 클라이언트의 요구를 수행하기 위해 또 다른 서버가 사용할 임의의 다른 정보를 포함할 수 있다.
상태 데이터 저장소(130)는 장애 서버에 의해 저장된 상태 정보를 재생성하기 위해 재개 서버가 사용한 파일 시스템 상태 정보를 지속적으로 저장한다. 일부 경우에, 재개 서버 및 장애 서버는 클라이언트로의 상이한 접속을 사용하거나 짧은 정전 후에 복귀하면서 동일한 서버일 수 있다. 다른 경우에, 재개 서버 및 장애 서버는 상이한 서버이며, 상태 데이터 저장소(130)는 상태 정보를 공유하기 위해 재개 서버 및 장애 서버 모두에 접근 가능한 위치에 제공된다. 상태 데이터 저장소(130)는 하나 이상의 파일, 파일 시스템, 하드 드라이브, 데이터베이스, 저장 영역 네트워크(storage area network(SAN)), 클라우드 기반 저장 서비스, 또는 정보를 교환하기 위해 장애 서버 및 재개 서버 모두에 접근 가능하며 데이터를 지속적으로 저장하는 다른 저장 시설을 포함할 수 있다. 장애 서버가 동작을 수행하고 있을 때, 장애 서버는 동작의 진행에 대한 상태 정보를 상태 데이터 저장소(130) 내에 저장하고 있다. 장애(failure)인 경우에, 장애 서버는 차단될 것이며, 재개 서버는 상태를 재개하고 완료되지 않았던 임의의 동작을 계속하여 수행하기 위해 상태 정보에 접근한다.
재개 검출 컴포넌트(140)는 장애 서버를 이용 불가능하게 하면서 재개 서버에게 장애 서버의 위치에서 작용하도록 통지하는 조건을 검출한다. 검출은 클라이언트 구동형일 수 있어서, 시스템은 클라이언트가 시스템에 재접속하여 이전에 사용된 재개 키를 제공할 때까지 임의의 재개 단계를 수행하지 않는다. 시스템은 키 및 키에 연관하여 저장된 임의의 상태 정보를 식별하며, 접속을 설정하는 것의 일부로서 그러한 상태 정보를 복원한다. 재개 서버는 장애 서버와 동일한 서버일 수 있거나 상이한 서버일 수 있으며, 재개 검출 컴포넌트(140)는 재개 서버가 클라이언트의 요구를 취급하도록 활성화되는 것을 보장한다. 다른 실시예에서, 검출은 서버 구동형일 수 있으며, 시스템은 장애 서버가 작동 중단되었다는 것을 검출하는 경우 재개 서버를 주도적으로 호출할 수 있다. 시스템은 심지어 클라이언트가 서버로의 접속을 요구하기 전이라도 저장된 상태 정보를 이용하여 재개 서버를 또한 선점할 수 있다.
상태 검색 컴포넌트(150)는 재개 서버로 접근 가능한 위치로부터 저장된 상태 정보를 검색하는데, 상태 정보는 재개 서버가 검출된 장애 조건에 의해 차단되었던 이전에 요구된 임의의 파일 시스템 동작을 재개하게 한다. 상태 검색 컴포넌트(150)는 상태 데이터 저장소(130)로부터 상태 정보를 검색하며 상태 복원 컴포넌트(160)를 작동시켜, 재개 서버가 클라이언트에 의해 요구된 동작을 계속할 수 있도록 재개 서버 내로 정보를 로딩한다.
상태 복원 컴포넌트(160)는 재개 서버가 클라이언트에 의해 이전에 요구된 동작을 계속할 수 있도록 검색된 상태 정보를 재개 서버 내로 로딩한다. 복원은 다른 클라이언트가 이전에 요구된 접근 레벨 및/또는 클라이언트에게로 배타적으로 허여된 접근 레벨을 따르는 것을 보장하도록 클라이언트에 의해 보유된 임의의 편의적 잠금 및/또는 대여를 되살리는 것을 또한 포함할 수 있다. 상태 복원 컴포넌트(160)는 지나간 동작을 반복함으로써 상태 정보를 복원하기 위해 클라이언트 상에 과중한 부하를 주지 않으면서 신규 서버 또는 노드가 장애 서버 또는 노드를 대신하게 한다. SMB 2.0과 같은 프로토콜을 사용하는 클라이언트는 동일한 서버로의 접속을 복원하기 위해 재개 키를 사용하는 방법을 이미 알고 있으며, 접속 상태 시스템은 교체 서버가 장애 서버를 클라이언트로 투명하게 대신하게 한다. NFS와 함께 재개 키가 또한 사용될 수 있다. NFS인 경우에, 재개 키의 개념은 클라이언트에게 완전히 불투명하다. 클라이언트는 재개 키 생성, 관리, 및 연관에 명시적으로 참조하거나 참가하지 않는다. 대신에, 재개 키는 서버 측 개념이다.
블랙아웃 시행 컴포넌트(170)는 재개 서버로의 접속을 재개하는 제 1 클라이언트와 상충하는 방식으로 제 2 클라이언트가 자원을 간섭하는 것을 방지하는 하나 이상의 파일 또는 다른 자원으로의 접근에 대한 블랙아웃 기간을 시행한다. 블랙아웃 시행 컴포넌트(170)는 대부분의 상충하는 동작을 방지하기에는 충분히 길지만 제 1 클라이언트가 접속을 재개하지 않는 경우에 다른 클라이언트가 자원에 접속하는 것을 방지할 만큼 길지는 않다고 간주되는 기간(예를 들어, 15초 또는 30초)을 자동으로 설정할 수 있다. 기간은 제 1 클라이언트가 선택하는 경우 제 1 클라이언트에게 접속을 재개하기 위한 시간을 허용한다. 일부 실시예에서, 시스템은 관리자 또는 다른 사용자가 애플리케이션 특유의 목적을 위해 시스템을 조율하도록 블랙아웃 기간의 지속시간을 구성하게 한다. 시스템은 개별 클라이언트가 생성/열기 요구 또는 다른 애플리케이션 프로그래밍 인터페이스(application programming interface(API))에 대한 매개변수로서 블랙아웃 기간을 또한 요구하게 할 수 있다. 블랙아웃된 자원에 접근하려는 시도에 응답하여, 블랙아웃 시행 컴포넌트(170)는 특정 기간 후에 요구를 다시 시도하거나 그냥 요구를 따르지 않는다는 표시를 제공할 수 있다. 블랙아웃 기간 후에 어떤 클라이언트도 접속을 재개하지 않으면, 블랙아웃이 종료되며 자원에 접근하려는 요구가 평상시처럼 성공할 것이다.
자원 유예 컴포넌트(180)는 클러스터(cluster)가 계획된 방식으로 또 다른 노드로 페일오버하게 하도록 현재 실행 중인 자원이 페일오버 없이 유예되고 재개되게 한다. 하나의 예는 부하 밸런싱(load balancing)이다. 유예는 상태의 부분집합이 신규 노드로 이행되고 있는 시나리오를 허용한다. 예를 들어, 클러스터 내의 하나의 노드가 과부하이면, 관리자는 노드의 클라이언트 중 절반을 신규 노드로 이동하기를 원할 수 있다. 유예는 이동되고 있는 열기(open)의 상태를 캡처하는 것을 허용하며 클라이언트가 (예를 들어, 서버 상태를 재설정하지 않으면서) 동일한 열기(open)의 연속으로서 신규 노드로 접속하게 한다. 또 다른 예로서, SMB는 일반 노드(generic node)가 클러스터 내로 이동되어 클라이언트 요구를 서비스하기 위해 교환 가능하게 사용될 수 있는 클러스터링 시나리오(clustering scenario)를 지원한다. 예를 들어, 유지 보수를 위해 특정 노드를 종종 작동 중단할 이유가 있으며, 현재 노드를 정확히 유예시키고, 신규 노드를 작동시키고, 오래된 노드를 작동 해제시키며, 그런 다음 작동 해제된 노드 상에서 임의의 유지 보수 동작을 수행하는 것이 바람직하다. 이것은 클라이언트에게 바람직하지 않은 영향을 미칠 수 있지만, 본 명세서에 설명된 기법을 이용하여 접속 상태 시스템(100)은 체계화된 방식으로 노드를 유예시킬 수 있으며 클라이언트가 신규 노드를 효율적으로 이용하여 동작을 재개하게 할 수 있다.
접속 상태 시스템이 구현되는 컴퓨팅 디바이스는 중앙 처리 장치, 메모리, 입력 디바이스(예를 들어, 키보드 및 포인팅 디바이스), 출력 디바이스(예를 들어, 디스플레이 디바이스), 및 저장 디바이스(예를 들어, 디스크 드라이브 또는 다른 비휘발성 저장 매체)를 포함할 수 있다. 메모리 및 저장 디바이스는 시스템을 구현하거나 작동 가능하게 하는 컴퓨터 실행 가능한 명령어(예를 들어, 소프트웨어)를 이용하여 부호화될 수 있는 컴퓨터 판독 가능한 저장 매체이다. 또한, 데이터 구조 및 메시지 구조는 통신 링크 상의 신호와 같은 데이터 전송 매체를 통해 저장되거나 전송될 수 있다. 인터넷, 근거리 통신망(local area network(LAN)), 광역 통신망(wide area network(WAN)), 점 대 점 다이얼-업 접속(point-to-point dial-up connection), 무선 전화 네트워크 등과 같은 다양한 통신 링크가 사용될 수 있다.
퍼스널 컴퓨터, 서버 컴퓨터, 휴대용 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그래밍 가능한 가전 제품, 디지털 카메라, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전술된 시스템 또는 디바이스 중 임의의 시스템 또는 디바이스를 포함하는 분산형 컴퓨팅 환경, 셋탑 박스, 시스템 온 칩(systems on a chip(SOC)) 등을 포함하는 다양한 동작 환경에서 시스템의 실시예가 구현될 수 있다. 컴퓨터 시스템은 무선 전화, 퍼스널 디지털 어시스턴트(personal digital assistant(PDA)), 스마트 폰, 퍼스널 컴퓨터, 프로그래밍 가능한 가전 제품, 디지털 카메라 등일 수 있다.
시스템은 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행된 프로그램 모듈과 같은 컴퓨터 실행 가능한 명령어의 일반적인 맥락으로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 임무를 수행하거나 특정 추상 자료 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 대개, 프로그램 모듈의 기능은 다양한 실시예에서 요구된 바와 같이 조합되거나 분산될 수 있다.
도 2는 하나의 실시예에서 파일 시스템 상태 정보를 캡처하는 접속 상태 시스템의 프로세싱을 예시하는 흐름도이다. 블록 210에서 시작하면서, 시스템은 서버 상에 저장된 원격 자원에 접근하려는 요구를 클라이언트로부터 수신한다. 접근 요구는 접속이 장애인 경우에 복수의 가능한 접속을 가로질러 세션을 식별하기 위해 사용된 재개 키를 포함하는 하나 이상의 매개변수를 포함할 수 있다. 자원 접근 요구는 클라이언트로부터 송신된 일련의 접근 요구에서 첫 번째 접근 요구일 수 있으며, 클라이언트가 서버로부터 접속 해제된 경우에는 언제든지, 클라이언트는 접속을 재개하기 위해 후속 열기 요구 내의 동일한 재개 키를 동일한 서버 또는 신규 서버로 제공할 수 있다. 재개 키는 서버에 의해 (또는 서버들에 걸쳐) 유지된 상태 정보를 상관시킴으로써 서버가 클라이언트에게 보다 신속하게 응답하게 하는데, 그렇지 않다면 이들 간에는 개별적인 클라이언트 접속으로 나타날 것이다.
블록 220으로 계속되어, 시스템은 요구에 관련된 클라이언트 세션을 식별하는 식별자를 결정한다. 일부 경우에, 식별자는 다양한 이유로 접속 해제된 세션을 재개할 수 있도록 허용하는 지속적인 핸들을 위해 클라이언트가 제공하는 재개 키이다. 접근 요구는 시스템이 요구 내에서 적절한 위치를 읽음으로써 키를 추출할 수 있도록 프로토콜 내의 잘 정의된 위치에 하나 이상의 매개변수를 포함할 수 있다. 대안적으로 또는 추가적으로, 서버는 클라이언트에 의해 명시적으로 제공된 정보를 포함하지 않는 식별자를 결정하기 위한 자동화된 프로세스를 포함할 수 있다. 예를 들어, 서버는 인터넷 프로토콜(Internet Protocol(IP)) 어드레스에 의해 또는 클라이언트 접속이 이전 세션에 상관된다는 것을 서버에게 표시하는 다른 추론된 데이터에 의해 클라이언트를 식별할 수 있다.
블록 230으로 계속되어, 시스템은 클라이언트에 의해 요구된 동작에 의해 생성된 상태 정보를 추출된 식별자에 연관시키는 추출된 식별자에 의해 탐색 가능한 재개 기록을 생성한다. 재개 기록은 서버가 장애인 경우에 또 다른 서버가 동작을 재개하고 본래의 서버의 위치에서 작용하기 위해 기록을 판독할 수 있도록 현재의 접근 요구를 취급하는 서버의 외부 위치에 저장될 수 있다. 재개 기록은 파일, 데이터베이스 기록, 또는 다른 형태의 저장을 포함할 수 있다. 기록은 열린 파일 핸들, 클라이언트에 의해 획득된 편의적 잠금, 대여, 또는 다른 파일 시스템 상태 정보의 리스트를 포함할 수 있다.
블록 240으로 계속되어, 시스템은 서버를 통해 접근 가능한 파일로의 접근을 요구하는 클라이언트로부터의 파일 동작을 수신한다. 파일 동작은 파일을 열려는 요구, 파일을 닫으려는 요구, 파일을 읽으려는 요구, 파일을 쓰려는 요구, 공유된 프린터로 프린트하려는 요구, 또는 다른 파일 시스템 동작일 수 있다. 수신된 동작은 서버 상에 생성되고 있는 소정 양의 상태 정보를 포함한다. 예를 들어, 클라이언트가 파일로 핸들을 열면, 서버는 파일에 관련된 다른 클라이언트 요구를 관리하도록 그리고 핸들에 대한 수명 및/또는 소거(cleanup) 프로세싱을 관리하도록 그러한 핸들을 추적한다.
블록 250으로 계속되어, 시스템은 클라이언트가 클라이언트의 서버와의 접속을 상실하는 경우에 수신된 파일 동작을 재개하도록 정보를 제공하는 재개 상태 정보를 생성된 재개 기록 내에 저장한다. 클라이언트 접속이 장애인 경우에, 클라이언트는 원격 자원을 다시 열고 동일한 재개 키 또는 다른 세션 식별자를 명시함으로써 접속을 재개하려고 시도할 것이다. 이는 서버 또는 또 다른 서버가 저장된 재개 기록에 접근하고 이전의 상태 정보를 재설정하게 할 것이다.
블록 260으로 계속되어, 시스템은 요구된 파일 동작을 수행한다. 동작은 파일을 여는 것, 파일의 콘텐츠를 읽는 것, 데이터를 파일에 쓰는 것, 접근 권한을 파일로 변경하는 것, 또는 임의의 다른 파일 시스템 동작일 수 있다. 동작의 결과는 서버에 의해 저장된 상태를 변경시킬 수 있다. 예를 들어, 클라이언트가 핸들을 닫으려고 시도하고 서버가 그 핸들을 성공적으로 닫으면, 서버에 의해 추적된 핸들의 리스트로부터 그 핸들을 제거하도록 서버 상태가 갱신될 것이다.
블록 270으로 계속되어, 시스템은 수행된 파일 동작의 결과에 기반하여 생성된 재개 기록 내의 저장된 재개 상태 정보를 갱신한다. 시스템은 페일오버를 야기하는 장애가 발생할 때를 미리 알 수 없으며, 따라서 시스템은 서버가 이전의 서버의 상태에 가능한 가까운 상태를 재설정하게 하는 서버 상태의 최신 뷰(up to date view)를 재개 기록 내에 유지한다. 완료되었던 동작이 반복될 필요가 없는(그렇지만, 서버는 결과를 클라이언트에게 재송신할 수 있는) 동안에, 완료되지 않았던 동작을 완료하도록 그 동작이 재생될 수 있다. 따라서, 시스템은 서버 상태 정보를 변경하는 다양한 파일 시스템 동작 중에 그리고 그러한 다양한 파일 시스템 동작 후에 필요에 따라 상태를 갱신한다.
블록 280으로 계속되어, 시스템은 요구된 파일 동작의 결과를 표시하는 응답을 클라이언트에게 송신한다. 클라이언트 및 서버가 여전히 접속되어 있으면, 클라이언트에 의해 동작이 요구되며 갱신된 상태 정보를 서버가 계속하여 추적할 때 동작이 계속된다. 접속이 상실되는 경우에는 언제든지, 또 다른 서버가 드러날 수 있거나 기존의 서버가 수리될 수 있으며, 이전 서버 상태를 재설정하기 위해 상태 저장소로부터 상태 정보가 로딩될 수 있다. 세션을 재개하려는 클라이언트로부터의 신규 요구를 수신하는 경우에, 클라이언트는 페일오버가 발생했다는 것과 클라이언트가 본래의 서버와 상이한 서버와 상호 작용할 가능성이 있다는 것을 인지할 필요가 없다. 블록 280 다음에, 이들 단계가 종결한다.
도 3은 하나의 실시예에서 페일오버 후에 접속을 재개하는 접속 상태 시스템의 프로세싱을 예시하는 흐름도이다. 블록 310에서 시작하면서, 시스템은 서버 상에 저장된 원격 자원을 열려는 요구를 클라이언트로부터 수신한다. 시스템 요구는 접속이 장애인 경우에 복수의 가능한 접속을 가로질러 세션을 식별하기 위해 사용된 재개 키를 포함한 하나 이상의 매개변수를 포함할 수 있다. 도 2를 참조하여 논의된 자원 접근 요구와 달리, 이러한 요구는 이전에 접속된 세션으로 재접속하려는 요구이다. 클라이언트가 본래 제공된 재개 키와 동일한 재개 키를 제공하며, 따라서 서버는 현재의 세션 요구를 이전 세션에 상관시킬 수 있다.
블록 320으로 계속되어, 시스템은 요구에 관련된 클라이언트 세션을 식별하는 세션 식별자를 결정한다. 일부 경우에, 식별자는 다양한 이유로 접속 해제된 재개 세션을 허용하는 내구성 핸들을 위해 클라이언트가 제공하는 SMB2 재개 키이다. 접근 요구는 시스템이 요구 내에서 적절한 위치를 읽음으로써 키를 추출할 수 있도록 프로토콜 내의 잘 정의된 위치에 하나 이상의 매개변수를 포함할 수 있다. 다시 말해서, 서버는 클라이언트에 대한 정보에 기반하여 자동적으로 식별자를 결정할 수 있다.
블록 330으로 계속되어, 시스템은 세션 식별자에 연관된 재개 기록을 식별하도록 상태 저장소 내의 수신된 세션 식별자를 순람한다. 재개 가능한 세션을 사용하여 클라이언트와 상호 작용하는 임의의 이전 서버는 클라이언트와의 상호 작용을 통해 진행 중 기반으로(on an ongoing basis) 상태 정보를 저장한다. 클라이언트가 접속을 재설정하려고 시도할 때, 상태 정보는 본래의 서버를 대신하는 페일오버 서버에 이용 가능하다. 상태 정보는 본래의 서버의 장애 후에 그 정보가 접근 가능하도록 본래의 서버 외부에 저장될 수 있다.
블록 340으로 계속되어, 시스템은 재개 기록에 연관된 이전 상태 정보를 상태 저장소로부터 수신한다. 상태 정보는 열린 파일 핸들, 획득된 대여, 획득된 편의적 잠금 등과 같은 정적 상태는 물론 완료되지 않을 수 있는 인 플라이트 동작과 같은 동적 상태를 식별한다. 저장된 상태 정보는 클라이언트에 의한 구체적인 프로세싱 없이 페일오버 서버가 본래의 서버를 대신하게 한다. 클라이언트는 재개 가능한 핸들을 이해하며, 접속을 재개 가능하게 하는 단계를 수행하지만, 임의의 특정 시간에 어떤 서버가 접속을 취급하는 것을 종료할지를 깨닫지 못할 수 있다. 클라이언트는 페일오버 서버를 포함하는 몇 개의 서버 중 임의의 하나의 서버의 어드레스로 해결할 수 있는 도메인 명칭 또는 네트워크 파일 공유를 통해 서버에 접근할 수 있다.
블록 350으로 계속되어, 시스템은 파일 시스템 상태를 추적하는 파일 시스템 컴포넌트 내로 정보를 로딩함으로써 수신된 이전 상태 정보를 복원한다. 상태를 로딩한 후에, 페일오버 서버의 국부 상태는 이전 동작 모두가 페일오버 서버 상에 발생했었다면 보였을 상태와 유사하다. 따라서, 페일오버 서버는 접속이 장애가 아니었다면 일련의 동작을 계속하기 위해 본래의 서버에게 유용했을 만큼 클라이언트에게 유용하다.
블록 360으로 계속되어, 시스템은 서버가 재개 기록을 발견했다는 것을 나타내는 클라이언트 접근 요구에 응답하며, 이전 세션에 관련된 클라이언트 동작을 수신할 준비를 하고 있다. 서버의 응답에 기반하여, 클라이언트는 세션이 재개되는지 여부 또는 클라이언트가 이전 동작을 반복하도록 조치를 취할 필요가 있는지 여부를 판단할 수 있다. 세션이 성공적으로 재개되었다면, 클라이언트는 완료되었거나 또는 서버가 재개된 후에 완료하도록 재생되었던 이전 동작을 계속하여 알 수 있다. 일부 경우에, 시스템은 페일오버 전의 파일 핸들과 동일한 상태를 갖는 신규 파일 핸들을 클라이언트에게 전달할 수 있다. 블록 360 후에, 이들 단계가 종결한다.
도 4는 하나의 실시예에서 접속 상태 시스템의 동작 환경을 예시하는 블록 다이어그램이다. 환경은 파일 시스템과 상호 작용하는 하나 이상의 운영 체제 서비스 또는 애플리케이션을 포함한다. 예를 들어, 마이크로소프트™ 윈도우즈™는 SRV로 공지된 서버 서비스(420), 및 NFS로 공지된 네트워크 파일 시스템 서비스(410)를 포함한다. 네트워크 파일 시스템 서비스(410) 및 서버 서비스(420)는 컴퓨터 시스템들 사이에서 파일 및 프린터와 같은 공유된 자원으로의 접근을 제공한다. 서버 서비스(420)는 윈도우즈™ 네트워크에 공통인 SMB 프로토콜을 사용하는 반면, 네트워크 파일 시스템 서비스(410)는 보다 공통적으로 NFS를 사용하는 유닉스(Unix) 기반 시스템으로의 접근을 제공한다. 프로토콜에 독립적으로, 재개 키 필터(430)는 파일 동작을 캡처하며 동작을 재개하기 위한 상태 정보를 원격 데이터 저장소 내에 저장한다. 동작은 파일 시스템 레벨(440)(예를 들어, NTFS 또는 다른 파일 시스템)을 통과하며, 하나 이상의 사용자 데이터 파일(450)에 영향을 미친다. 한편, 재개 키 필터(430)는 또 다른 서버가 상태 정보를 검색하며 클라이언트로의 접속을 재개하기 위해 접근할 수 있는 로그 파일(460) 또는 다른 데이터 저장소에 상태 정보를 쓴다. 시스템은 관련된 특정 프로토콜 또는 파일 시스템에 독립적으로 동작할 수 있으며, 그들 자신의 특정 상태 정보를 상태 데이터 저장소 내에 저장하기 위해 다양한 컴포넌트가 갱신될 수 있다.
일부 실시예에서, 접속 상태 시스템은 컴포넌트 특유의 지식 없이 시스템이 접속을 재개하게 하도록 파일 시스템 컴포넌트 대신에 데이터의 불투명 블로브(opaque blob)를 저장한다. 예를 들어, 본 명세서에서 설명된 재개 키 필터는 서버 서비스의 현재 상태를 재생성하기 위해 서버 서비스가 필요로 했던 임의의 데이터에 대해 서버 서비스를 요청할 수 있다. 그런 다음, 필터는 임의의 수신된 데이터를 불투명 블로브(즉, 필터가 불투명 블로브 내에 존재하는 것 또는 불투명 블로브 내에 존재하는 것의 의미론적 의미를 알 필요가 없음)로서 상태 저장소 내에 저장할 수 있다. 페일오버 조건인 경우에, 서버 서비스가 서버 서비스 자신의 상태를 복원할 수 있도록, 신규 서버 상에서 동작하는 재개 키 필터는 저장된 상태 정보에 접근할 수 있으며, 저장된 블로브를 검색할 수 있고, 서버 서비스에 블로브를 제공할 수 있다. 이런 방식으로, 시스템은 서버를 위해 각각의 프로토콜을 구현하는 컴포넌트의 내부 동작을 구체적으로 알지 않더라도 많은 유형의 프로토콜과 함께 작업하도록 제작될 수 있다.
일부 실시예에서, 접속 상태 시스템은 다른 클라이언트가 약간의 시간(즉, 블랙아웃 기간) 동안 재개 가능한 핸들에 관련된 파일 또는 다른 자원에 접근하는 것을 방지한다. 블랙아웃 기간 중에 본래의 클라이언트가 재접속하면, 본래의 클라이언트는 모든 이전 상태와 다시 접속하며, 동작을 재개할 수 있다. 또 다른 클라이언트가 접속하려고 시도하는 경우에, 서버는 일정한 양의 시간 또는 재시도를 기다리는 것을 나타내는 메시지를 제공할 수 있다. 재개 인식 클라이언트(resume aware client)는 블랙아웃 기간 후까지 재시도를 지연시키기 위해 이러한 정보를 사용할 수 있는 반면, 더 오래된 클라이언트는 접속에 단순히 장애가 있을 수 있으며 사용자의 요구에 따라 수동으로 재시도할 수 있다. 본래의 클라이언트가 블랙아웃 기간 내에 복귀하지 않는 경우에, 서버는 재개 상태 정보를 소거하고 평소와 같이 신규 클라이언트가 자원에 접근하게 한다.
일부 실시예에서, 접속 상태 시스템은 재개를 촉진하기 위한 다양한 저장 디바이스 또는 전략을 사용할 수 있다. 예를 들어, 시스템을 장애에 의해 이미 차단된 동작을 더 이상 지연시키는 것을 방지하기 위해 재개가 데이터로 보다 신속하게 접근하도록 재개 상태 정보를 저장하기 위한 신속한 비휘발성 저장 디바이스(예를 들어, 고체 상태 디스크(solid state disk(SSD))를 사용할 수 있다. 또 다른 예로서, 시스템은 각각의 서버에 의해 만들어진 모든 변경을 한 그룹의 서버로 방송할 수 있으며, 따라서 각각의 서버는 상태 정보에 대한 각각의 서버 자신의 사본을 유지할 수 있으며, 본래의 서버가 장애인 경우에 각각의 서버는 선택된 페일오버 서버일 수 있다.
앞의 설명으로부터, 접속 상태 시스템의 특정 실시예가 본 명세서에서 예시를 위해 설명되었지만 다양한 변형이 본 발명의 사상 및 범위를 벗어나지 않으면서 이루어질 수 있다는 것이 이해될 것이다. 따라서, 본 발명은 첨부된 특허청구범위에 의한 것과 같은 경우를 제외하고 제한되지 않는다.

Claims (20)

  1. 접속 재개(resuming connections)를 용이하게 하도록 파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법으로서,
    서버에 저장된 원격 자원에 접근하려는 요청을 제1 클라이언트로부터 수신하는 단계,
    상기 요청에 관련된 클라이언트 세션을 식별하는 식별자를 결정하는 단계,
    재개 기록(resume record)을 생성하는 단계- 상기 재개 기록은 상기 식별자에 의해 탐색가능하고, 상기 재개 기록은 상기 제1 클라이언트에 의해 요청된 동작에 의해 생성된 상태 정보를 상기 식별자에 연관시킴 -,
    상기 서버를 통해 접근 가능한 파일로의 접근을 요청하는 파일 동작을 상기 제1 클라이언트로부터 수신하는 단계,
    재개 상태 정보를 상기 재개 기록 내에 저장하는 단계- 상기 재개 상태 정보는 상기 제1 클라이언트가 상기 서버와의 접속을 상실하는 경우에 상기 수신된 파일 동작을 재개하기 위한 정보를 제공함 -,
    상기 제1 클라이언트가 상기 서버와의 접속을 상실하는 경우, 페일오버 서버에서, 상기 제1 클라이언트가 상기 페일오버 서버에 접속하여 상기 파일 동작을 계속할 수 있도록 상기 재개 기록을 로딩하는 단계- 상기 원격 자원에 대한 접근은 상기 페일오버 서버와의 접속을 수립하는 상기 제1 클라이언트와 충돌하는 방식으로 제2 클라이언트가 상기 원격 자원과 상호작용하는 것을 방지하기 위한 기간 동안 제한됨 -,
    상기 요청된 파일 동작을 수행하는 단계,
    상기 파일 동작의 결과에 기초하여 상기 재개 기록 내의 상기 재개 상태 정보를 갱신하는 단계, 및
    상기 요청된 파일 동작의 상기 결과를 나타내는 응답을 상기 제1 클라이언트에게 송신하는 단계를 포함하는,
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 접근 요청은 접속 장애시 다수의 잠재적 접속에 걸쳐 상기 클라이언트 세션을 식별하는 재개 키를 포함하는 하나 이상의 매개변수를 포함하며, 상기 재개 키는 상기 결정된 식별자의 적어도 일부인
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 제1 클라이언트가 상기 서버로부터 접속 해제되는 경우, 다수의 클라이언트 접속 사이에서 상기 서버에 의해 유지되는 상태 정보를 상관시킴으로써 상기 페일오버 서버가 접속 장애 후 상기 제1 클라이언트에 응답할 수 있도록 상기 페일오버 서버가 본래의 접근 요구와 상관시킬 수 있는 신규 접근 요구를 상기 페일오버 서버에서 수신하는 단계를 더 포함하는
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    네트워크 파일 시스템(Network File System(NFS)) 서버가 상기 제1 클라이언트로부터 재개 키를 수신하지 않고 상기 식별자를 자동으로 결정하는
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 식별자는 접속 해제된 세션이 재개될 수 있게 하는 지속적인 핸들(durable handle)을 위해 상기 제1 클라이언트가 제공하는 서버 메시지 블록(Server Message Block(SMB)) 재개 키인
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 재개 기록을 생성하는 단계는 상기 서버에 저장된 상기 원격 자원에 접근하려는 요청을 핸들링하는 상기 서버의 외부 위치에 상기 재개 기록을 저장하는 단계를 포함하는
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 파일 동작을 수신하는 단계는 파일을 여는 것, 파일을 닫는 것, 파일을 읽는 것, 파일을 쓰는 것, 파일에 대한 대여를 획득하는 것, 및 파일에 대한 잠금을 획득하는 것으로 구성된 그룹으로부터 선택된 하나의 동작을 수행하기 위한 요청을 포함하는
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    상기 요청된 파일 동작을 수행하는 단계는 상기 서버에 의해 저장된 상태를 수정하며, 상기 재개 상태 정보를 갱신하는 단계는 상기 수정된 상태를 캡처하는
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    상기 재개 상태 정보를 갱신하는 단계는 상기 제1 클라이언트에게 상기 상태 정보의 적어도 일부를 재설정할 것을 요구하지 않으면서 또 다른 서버가 본래의 서버 대신에 상기 상태 정보를 재설정하고 클라이언트 요청을 핸들링할 수 있게 하는 서버 상태의 최신 뷰를 상기 재개 기록 내에 유지하는 단계를 포함하는
    파일 시스템 상태 정보를 캡처하기 위한 컴퓨터 구현 방법.
  10. 파일 시스템에서 클라이언트에 투명한 페일오버를 제공하기 위한 컴퓨터 시스템으로서,
    컴포넌트들 내에 구현된 소프트웨어 명령어를 실행하도록 구성된 프로세서 및 메모리를 포함하되, 상기 컴포넌트들은,
    각각의 파일 핸들에 대한 상태 기록을 생성하며, 제1 클라이언트가 상기 파일 핸들을 사용하여 동작을 요청함에 따라 상태 정보를 수집하는 상태 수집 컴포넌트,
    상기 제1 클라이언트에 의해 제공된 세션 식별자에 연관하여 수집된 상태 정보를 저장하는 상태 저장 컴포넌트,
    장애 서버에 의해 저장된 상태 정보를 재생성하기 위해 재개 서버가 사용한 파일 시스템 상태 정보를 지속적으로 저장하는 상태 데이터 저장소,
    장애 서버를 이용 불가능하게 하는 조건을 검출하고 재개 서버에게 상기 장애 서버의 위치에서 작동하도록 통지하는 재개 검출 컴포넌트,
    저장된 상태 정보를 상기 재개 서버가 접근 가능한 위치로부터 검색하는 상태 검색 컴포넌트- 상기 상태 정보는 상기 재개 서버가 상기 검출된 장애 조건에 의해 차단되었던 이전에 요청된 임의의 파일 시스템 동작을 재개하도록 해줌 -,
    상기 재개 서버와의 접속을 수립하는 상기 제1 클라이언트와 충돌하는 방식으로 제2 클라이언트가 하나 이상의 파일 또는 다른 자원에 간섭하는 것을 방지하기 위해 상기 하나 이상의 파일 또는 다른 자원에 대한 액세스에 대해 블랙아웃 기간을 시행하는 블랙아웃 시행 컴포넌트, 및
    상기 재개 서버가 상기 제1 클라이언트에 의해 이전에 요청된 동작을 계속할 수 있도록 상기 재개 서버 내로 상기 검색된 상태 정보를 로딩하는 상태 복원 컴포넌트를 포함하는
    컴퓨터 시스템.
  11. 제 10 항에 있어서,
    상기 상태 수집 컴포넌트는, 서버에서 동작하고 상기 서버가 이용 불가능한 경우에 상기 상태 정보가 접근될 수 있도록 상기 서버의 외부에 상태 정보를 저장하도록 더 구성된
    컴퓨터 시스템.
  12. 제 10 항에 있어서,
    상기 상태 수집 컴포넌트는, 상기 제1 클라이언트가 상기 서버에 접속할 때 상기 제1 클라이언트로부터 재개 키를 수신하고 수집된 상태 정보를 상기 상태 데이터 저장소 내의 상기 재개 키에 연관시키도록 더 구성된
    컴퓨터 시스템.
  13. 제 10 항에 있어서,
    상기 상태 데이터 저장소는 상기 재개 서버를 위해 정보를 저장하고 제공하며, 상기 재개 서버는 상기 제1 클라이언트에 대해 상이한 접속을 사용하는 상기 장애 서버와 동일한 서버인
    컴퓨터 시스템.
  14. 제 10 항에 있어서,
    상기 상태 데이터 저장소는, 상기 장애 서버가 동작을 수행함에 따라 상태 정보를 수신하며, 장애 시 상태를 재개하고 완료되지 않았던 임의의 동작을 계속하여 수행하도록 상기 재개 서버로 상기 이전에 수신된 상태 정보로의 접근을 제공하는
    컴퓨터 시스템.
  15. 제 10 항에 있어서,
    상기 재개 검출 컴포넌트에 의해 검출된 상기 조건은 상기 제1 클라이언트가 상기 상태 데이터 저장소에 이전에 저장된 세션 식별자를 통해 접속하는 경우인
    컴퓨터 시스템.
  16. 제 10 항에 있어서,
    상기 상태 복원 컴포넌트는 파일 시스템 또는 프로토콜을 관리하는 외부 컴포넌트로 적어도 하나의 데이터 블로브(blob)를 제공하고, 상기 데이터 블로브는 재개 동작 동안 사용하기 위해 상기 외부 컴포넌트 대신에 상기 상태 데이터 저장소에 저장되는
    컴퓨터 시스템.
  17. 제 10 항에 있어서,
    클러스터(cluster)가 계획된 방식으로 또 다른 노드로 페일오버하게 하도록 하기 위해 현재 동작중인 자원이 유예되고(suspended) 페일오버 이벤트없이 재개되게 하는 자원 유예 컴포넌트를 더 포함하는
    컴퓨터 시스템.
  18. 프로세서에 의해 실행되는 경우 방법을 수행하는 컴퓨터 실행가능 명령어를 인코딩한 컴퓨터 판독가능 저장 매체로서,
    상기 방법은
    서버에 저장된 원격 자원에 접근하려는 요청을 제1 클라이언트로부터 수신하는 단계,
    상기 요청에 관련된 클라이언트 세션을 식별하는 식별자를 결정하는 단계,
    재개 기록을 생성하는 단계- 상기 재개 기록은 상기 식별자에 의해 탐색가능하고, 상기 재개 기록은 상기 제1 클라이언트에 의해 요청된 동작에 의해 생성된 상태 정보를 상기 식별자에 연관시킴 -,
    상기 서버를 통해 접근 가능한 파일로의 접근을 요청하는 파일 동작을 상기 제1 클라이언트로부터 수신하는 단계,
    재개 상태 정보를 상기 재개 기록 내에 저장하는 단계- 상기 재개 상태 정보는 상기 제1 클라이언트가 상기 서버와의 접속을 상실하는 경우에 상기 수신된 파일 동작을 재개하기 위한 정보를 제공함 -,
    상기 제1 클라이언트가 상기 서버와의 접속을 상실하는 경우, 페일오버 서버에서, 상기 제1 클라이언트가 상기 페일오버 서버에 접속하여 상기 파일 동작을 계속할 수 있도록 상기 재개 기록을 로딩하는 단계- 상기 원격 자원에 대한 접근은 상기 페일오버 서버와의 접속을 수립하는 상기 제1 클라이언트와 충돌하는 방식으로 제2 클라이언트가 상기 원격 자원과 상호작용하는 것을 방지하기 위한 기간 동안 제한됨 -를 포함하는,
    컴퓨터 판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 방법은 상기 페일오버 서버와의 접속을 수립하는 경우,
    상기 요청된 파일 동작을 수행하는 단계,
    상기 파일 동작의 결과에 기초하여 상기 재개 기록 내의 상기 재개 상태 정보를 갱신하는 단계, 및
    상기 요청된 파일 동작의 상기 결과를 나타내는 응답을 상기 제1 클라이언트에게 송신하는 단계를 더 포함하는,
    컴퓨터 판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 식별자는 서버 메시지 블록(Server Message Block(SMB)) 재개 키인
    컴퓨터 판독가능 저장 매체.
KR1020137014719A 2010-12-10 2011-12-06 파일 시스템 내에 투명 페일오버의 제공 KR101801432B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/964,749 2010-12-10
US12/964,749 US8631277B2 (en) 2010-12-10 2010-12-10 Providing transparent failover in a file system
PCT/US2011/063618 WO2012078693A2 (en) 2010-12-10 2011-12-06 Providing transparent failover in a file system

Publications (2)

Publication Number Publication Date
KR20130131362A KR20130131362A (ko) 2013-12-03
KR101801432B1 true KR101801432B1 (ko) 2017-11-24

Family

ID=46200659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137014719A KR101801432B1 (ko) 2010-12-10 2011-12-06 파일 시스템 내에 투명 페일오버의 제공

Country Status (13)

Country Link
US (1) US8631277B2 (ko)
EP (1) EP2649750B1 (ko)
JP (1) JP6141189B2 (ko)
KR (1) KR101801432B1 (ko)
CN (1) CN102624542B (ko)
AU (1) AU2011338485B2 (ko)
BR (1) BR112013014070A2 (ko)
CA (1) CA2817620A1 (ko)
ES (1) ES2566933T3 (ko)
HK (1) HK1174451A1 (ko)
MX (1) MX2013006427A (ko)
RU (1) RU2595482C2 (ko)
WO (1) WO2012078693A2 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US10049022B2 (en) * 2013-06-24 2018-08-14 Oracle International Corporation Systems and methods to retain and reclaim resource locks and client states after server failures
US9665432B2 (en) * 2014-08-07 2017-05-30 Microsoft Technology Licensing, Llc Safe data access following storage failure
US9847918B2 (en) 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
KR101627256B1 (ko) * 2015-01-08 2016-06-03 (주)넷텐션 다수 분산서버를 구비한 네트워크 통신의 세션 이양 방법
US10084845B2 (en) * 2015-09-14 2018-09-25 Uber Technologies, Inc. Data restoration for datacenter failover
WO2017058519A1 (en) * 2015-09-28 2017-04-06 Arris Enterprises Llc Domain name system response spoofing at customer premise equipment device
US10303660B2 (en) 2015-11-12 2019-05-28 Microsoft Technology Licensing, Llc File system with distributed entity state
US10038752B2 (en) * 2015-12-07 2018-07-31 Dell Products L.P. Method and system for execution of client-initiated operations on file handles in a distributed server system
US10009428B2 (en) * 2015-12-07 2018-06-26 Dell Products L.P. Method and system for reconnecting server message block (SMB) clients to persistent file handles
US9946726B2 (en) * 2015-12-07 2018-04-17 Dell Products L.P. Method and system for execution of disconnection from and reconnection to persistent handles
US10951652B1 (en) * 2016-01-21 2021-03-16 Amazon Technologies, Inc. Communication session resumption
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
CN106254490A (zh) * 2016-08-16 2016-12-21 浪潮(北京)电子信息产业有限公司 一种分布式存储故障转移方法以及分布式存储系统
US10560553B2 (en) 2016-09-14 2020-02-11 International Business Machines Corporation Assigning IP pools to file access protocols for NAS failover
CN106571968B (zh) * 2016-11-10 2020-02-21 华为技术有限公司 一种业务切换方法和系统
CN106557390A (zh) * 2016-11-15 2017-04-05 郑州云海信息技术有限公司 一种分布式存储文件连续访问方法及系统
WO2018094686A1 (zh) * 2016-11-25 2018-05-31 华为技术有限公司 一种smb业务故障处理方法和存储设备
US10452482B2 (en) * 2016-12-14 2019-10-22 Oracle International Corporation Systems and methods for continuously available network file system (NFS) state data
CN107395416A (zh) * 2017-07-20 2017-11-24 郑州云海信息技术有限公司 一种数据发送方法及服务器集群
US12021922B2 (en) * 2018-11-19 2024-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods of operating service control nodes
WO2020104447A1 (en) * 2018-11-19 2020-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods of operating service instance sets and/or set restoration storage resources and related network nodes
US10866870B2 (en) 2019-01-31 2020-12-15 Hewlett Packard Enterprise Development Lp Data store and state information handover
CN110109620B (zh) * 2019-04-25 2023-08-04 上海淇毓信息科技有限公司 混合存储方法、装置和电子设备
CN111274205B (zh) * 2020-01-07 2024-03-26 北京小米松果电子有限公司 数据块访问方法及装置、存储介质
CN111756578B (zh) * 2020-06-24 2022-05-13 苏州浪潮智能科技有限公司 一种用户态网络文件系统的故障恢复方法和装置
US11507512B2 (en) * 2020-12-08 2022-11-22 EMC IP Holding Company LLC Fault tolerant cluster data handling
CN112631837B (zh) * 2020-12-30 2024-04-12 凌云光技术股份有限公司 一种工程数据的保存方法及系统
US11360867B1 (en) 2021-03-31 2022-06-14 Netapp, Inc. Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event
US11481139B1 (en) 2021-03-31 2022-10-25 Netapp, Inc. Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US11934670B2 (en) 2021-03-31 2024-03-19 Netapp, Inc. Performing various operations at the granularity of a consistency group within a cross-site storage solution
US11740811B2 (en) 2021-03-31 2023-08-29 Netapp, Inc. Reseeding a mediator of a cross-site storage solution
US11550679B2 (en) * 2021-03-31 2023-01-10 Netapp, Inc. Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11709743B2 (en) 2021-03-31 2023-07-25 Netapp, Inc. Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11409622B1 (en) 2021-04-23 2022-08-09 Netapp, Inc. Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator
US11893261B2 (en) 2021-05-05 2024-02-06 Netapp, Inc. Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging
CN113205406A (zh) * 2021-05-27 2021-08-03 中国工商银行股份有限公司 异常地区数据服务隔离方法、装置、电子设备及介质
US11537314B1 (en) 2021-10-07 2022-12-27 Netapp, Inc. Resynchronization of individual volumes of a consistency group (CG) within a cross-site storage solution while maintaining synchronization of other volumes of the CG
US11892982B2 (en) 2021-10-20 2024-02-06 Netapp, Inc. Facilitating immediate performance of volume resynchronization with the use of passive cache entries
US11907562B2 (en) 2022-07-11 2024-02-20 Netapp, Inc. Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations

Family Cites Families (189)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399504A (en) 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4825354A (en) 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4780821A (en) 1986-07-29 1988-10-25 International Business Machines Corp. Method for multiple programs management within a network having a server computer and a plurality of remote computers
US4914570A (en) 1986-09-15 1990-04-03 Counterpoint Computers, Inc. Process distribution and sharing system for multiple processor computer system
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US4791566A (en) 1987-03-27 1988-12-13 Digital Equipment Corporation Terminal device session management protocol
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US4891785A (en) 1988-07-08 1990-01-02 Donohoo Theodore J Method for transferring data files between computers in a network response to generalized application program instructions
US5124909A (en) 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
CA1323448C (en) 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
US5109519A (en) 1989-03-28 1992-04-28 Wang Laboratories, Inc. Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer
US5560008A (en) 1989-05-15 1996-09-24 International Business Machines Corporation Remote authentication and authorization in a distributed data processing system
US5113519A (en) 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
US5218696A (en) 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5265261A (en) 1989-08-14 1993-11-23 Microsoft Corporation Method and system for network communications using raw mode protocols
US5261051A (en) 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
JP2575543B2 (ja) 1990-04-04 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時アクセス管理方法
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US5349642A (en) 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5493728A (en) 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5491752A (en) 1993-03-18 1996-02-13 Digital Equipment Corporation, Patent Law Group System for increasing the difficulty of password guessing attacks in a distributed authentication scheme employing authentication tokens
JP2513127B2 (ja) * 1993-05-31 1996-07-03 日本電気株式会社 ホットスタンバイ高速切替えシステム
JPH0736760A (ja) * 1993-07-20 1995-02-07 Nippon Telegr & Teleph Corp <Ntt> 装置多重化機能とモジュール間共用機能を併用した外部記憶装置の高信頼化方法
US5522042A (en) 1994-01-28 1996-05-28 Cabletron Systems, Inc. Distributed chassis agent for distributed network management
US5588117A (en) 1994-05-23 1996-12-24 Hewlett-Packard Company Sender-selective send/receive order processing on a per message basis
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5628005A (en) 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5764887A (en) 1995-12-11 1998-06-09 International Business Machines Corporation System and method for supporting distributed computing mechanisms in a local area network server environment
US6343313B1 (en) 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
EP0891663A1 (en) 1996-04-01 1999-01-20 Hewlett-Packard Company Transmitting messages over a network
US6434120B1 (en) 1998-08-25 2002-08-13 Cisco Technology, Inc. Autosensing LMI protocols in frame relay networks
US5933602A (en) 1996-07-31 1999-08-03 Novell, Inc. System for selecting command packet and corresponding response packet from communication stream of packets by monitoring packets sent between nodes on network
US6208952B1 (en) 1996-10-24 2001-03-27 Microsoft Corporation Method and system for delayed registration of protocols
JPH10133971A (ja) * 1996-10-25 1998-05-22 Nec Corp ファイル転送処理方式
US6125122A (en) 1997-01-21 2000-09-26 At&T Wireless Svcs. Inc. Dynamic protocol negotiation system
US5931913A (en) 1997-05-07 1999-08-03 International Business Machines Corporation Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol
US6219799B1 (en) 1997-07-01 2001-04-17 Unisys Corporation Technique to support pseudo-names
US6092199A (en) 1997-07-07 2000-07-18 International Business Machines Corporation Dynamic creation of a user account in a client following authentication from a non-native server domain
US6275953B1 (en) * 1997-09-26 2001-08-14 Emc Corporation Recovery from failure of a data processor in a network server
US6247139B1 (en) 1997-11-11 2001-06-12 Compaq Computer Corp. Filesystem failover in a single system image environment
US6131125A (en) 1997-11-14 2000-10-10 Kawasaki Lsi U.S.A., Inc. Plug-and-play data cable with protocol translation
US6085247A (en) 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6516351B2 (en) 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US7010532B1 (en) 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6243862B1 (en) 1998-01-23 2001-06-05 Unisys Corporation Methods and apparatus for testing components of a distributed transaction processing system
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
JPH11265361A (ja) * 1998-03-17 1999-09-28 Nec Corp 多重計算機システム、通信処理装置、トランザクション処理システム、トランザクション処理システム運転引き継ぎ方法、トランザクション処理システム運転引き継ぎプログラムを記録した記録媒体
JP3506920B2 (ja) * 1998-08-25 2004-03-15 日本電信電話株式会社 全命令トレースデータの2次記憶装置への格納競合防止方法
US6401123B1 (en) 1998-11-24 2002-06-04 International Busines Machines Corporation Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol
US6883000B1 (en) 1999-02-12 2005-04-19 Robert L. Gropper Business card and contact management system
US6324581B1 (en) 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US6453354B1 (en) 1999-03-03 2002-09-17 Emc Corporation File server system using connection-oriented protocol and sharing data sets among data movers
US20040139004A1 (en) 1999-04-08 2004-07-15 Aceinc Pty Ltd. Secure online commerce transactions
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
US7562129B1 (en) 1999-04-15 2009-07-14 Alcatel-Lucent Canada Inc. Subscription management system for data communication network
US6349350B1 (en) 1999-05-04 2002-02-19 International Business Machines Corporation System, method, and program for handling failed connections in an input/output (I/O) system
AU4839300A (en) 1999-05-11 2000-11-21 Webvan Group, Inc. Electronic commerce enabled delivery system and method
US7318102B1 (en) 1999-05-24 2008-01-08 Hewlett-Packard Development Company, L.P. Reliable datagram
US6430691B1 (en) 1999-06-21 2002-08-06 Copytele, Inc. Stand-alone telecommunications security device
US6490666B1 (en) 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
JP2001094613A (ja) 1999-09-21 2001-04-06 Canon Inc 通信制御装置、方法および記録媒体
US6775707B1 (en) 1999-10-15 2004-08-10 Fisher-Rosemount Systems, Inc. Deferred acknowledgment communications and alarm management
US6910082B1 (en) 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US6658476B1 (en) 1999-11-29 2003-12-02 Microsoft Corporation Client-server protocol support list for standard request-response protocols
US7111060B2 (en) 2000-03-14 2006-09-19 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, a secure, cost-effective, web-enabled, integrated virtual office environment remotely accessible through a network-connected web browser
US6883015B1 (en) * 2000-03-30 2005-04-19 Cisco Technology, Inc. Apparatus and method for providing server state and attribute management for multiple-threaded voice enabled web applications
US6993587B1 (en) 2000-04-07 2006-01-31 Network Appliance Inc. Method and apparatus for election of group leaders in a distributed network
US7225244B2 (en) 2000-05-20 2007-05-29 Ciena Corporation Common command interface
US6452903B1 (en) 2000-05-31 2002-09-17 Fujitsu Network Communications, Inc. Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis
US6961858B2 (en) 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
US7693976B2 (en) 2000-07-11 2010-04-06 Ciena Corporation Granular management of network resources
US6349250B1 (en) 2000-10-26 2002-02-19 Detroit Diesel Corporation Clear historic data from a vehicle data recorder
JP2002183000A (ja) 2000-12-11 2002-06-28 Hitachi Ltd ネットワークを介するデータ参照方法及びそのシステム
US20020073211A1 (en) 2000-12-12 2002-06-13 Raymond Lin System and method for securely communicating between application servers and webservers
KR100750735B1 (ko) 2001-02-03 2007-08-22 삼성전자주식회사 홈네트워크내의 기기 제어장치 및 방법 및 이를 적용한홈네트워크 시스템
US7055036B2 (en) 2001-04-06 2006-05-30 Mcafee, Inc. System and method to verify trusted status of peer in a peer-to-peer network environment
US8051212B2 (en) 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US20030093678A1 (en) 2001-04-23 2003-05-15 Bowe John J. Server-side digital signature system
JP2002328828A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd ストレージサービス方法、ストレージサービスユーザ及びストレージサービスプロバイダ
JP3797236B2 (ja) 2001-04-27 2006-07-12 日本ビクター株式会社 記録再生装置および記録再生方法
US6640226B1 (en) 2001-06-19 2003-10-28 Informatica Corporation Ranking query optimization in analytic applications
US7409420B2 (en) 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
JP2003069610A (ja) 2001-08-22 2003-03-07 Canon Inc 通信装置、その制御方法、通信システム、及び制御プログラム
JP3663627B2 (ja) 2001-10-18 2005-06-22 ソニー株式会社 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US7136982B2 (en) 2001-11-09 2006-11-14 Danger, Inc. Apparatus and method for allocating memory blocks
US7394764B2 (en) 2001-12-14 2008-07-01 Sasken Communication Technologies Limited Technique for improving transmission control protocol performance in lossy networks
US7313816B2 (en) 2001-12-17 2007-12-25 One Touch Systems, Inc. Method and system for authenticating a user in a web-based environment
JP3969089B2 (ja) * 2001-12-25 2007-08-29 株式会社日立製作所 階層構成サーバシステム
US7111035B2 (en) 2001-12-26 2006-09-19 Hewlett-Packard Development Company, L.P. Fault tolerance associations for IP transport protocols
US20030140129A1 (en) 2002-01-24 2003-07-24 Noam Livnat Installing communication protocol in a handheld device
US6829606B2 (en) 2002-02-14 2004-12-07 Infoglide Software Corporation Similarity search engine for use with relational databases
US7178050B2 (en) 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7388866B2 (en) 2002-03-07 2008-06-17 Broadcom Corporation System and method for expediting upper layer protocol (ULP) connection negotiations
US7668306B2 (en) 2002-03-08 2010-02-23 Intel Corporation Method and apparatus for connecting packet telephony calls between secure and non-secure networks
JP2003281091A (ja) 2002-03-25 2003-10-03 Fujitsu Ltd 同時受付制御システム
JP4315696B2 (ja) 2002-03-29 2009-08-19 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
JP4000905B2 (ja) 2002-05-22 2007-10-31 ソニー株式会社 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
AU2002314310A1 (en) 2002-06-10 2003-12-22 Caplin Systems Limited Resource management
US20040003210A1 (en) 2002-06-27 2004-01-01 International Business Machines Corporation Method, system, and computer program product to generate test instruction streams while guaranteeing loop termination
US7290141B2 (en) 2002-06-27 2007-10-30 Nokia, Inc. Authentication of remotely originating network messages
CA2393502A1 (en) 2002-07-15 2004-01-15 Mark J. Frazer System and method for reliable transport in a computer network
US20040019660A1 (en) 2002-07-24 2004-01-29 Sandhya E. Lock holding multi-threaded processes for distibuted data systems
US6829473B2 (en) 2002-07-25 2004-12-07 Utstarcom, Inc. Roaming and hand-off support for prepaid billing for wireless data networks
US6928577B2 (en) 2002-07-29 2005-08-09 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
US20040032876A1 (en) 2002-08-19 2004-02-19 Ajay Garg Selection of transmission channels
JP3846384B2 (ja) 2002-08-28 2006-11-15 ブラザー工業株式会社 端末装置、接続制御方法、接続制御用プログラム及び記録媒体
US6957367B2 (en) 2002-08-30 2005-10-18 Hewlett-Packard Development Company L.P. System and method for controlling activity of temporary files in a computer system
US7109430B2 (en) 2002-11-05 2006-09-19 Emrise Corporation Low profile rotary switch with detent in the bushing
US7386889B2 (en) 2002-11-18 2008-06-10 Trusted Network Technologies, Inc. System and method for intrusion prevention in a communications network
US7475142B2 (en) 2002-12-06 2009-01-06 Cisco Technology, Inc. CIFS for scalable NAS architecture
US7421502B2 (en) 2002-12-06 2008-09-02 International Business Machines Corporation Method and system for storage-aware flow resource management
US7664991B1 (en) 2002-12-17 2010-02-16 Symantec Operating Corporation System and method for distributed file system I/O recovery
US7290051B2 (en) 2003-01-09 2007-10-30 Sun Microsystems, Inc. Method and apparatus for hardware implementation independent verification of network layers
US7571463B1 (en) 2003-01-24 2009-08-04 Nortel Networks Limited Method an apparatus for providing a scalable and secure network without point to point associations
JP3999135B2 (ja) 2003-01-24 2007-10-31 株式会社エヌ・ティ・ティ・ドコモ 通信システム、データ送信方法、通信装置、プログラムおよび記録媒体
US7151939B2 (en) 2003-02-18 2006-12-19 Qualcomm Incorporated Method, apparatus, and machine-readable medium for providing indication of location service availability and the quality of available location services
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7490152B2 (en) 2003-04-11 2009-02-10 Alcatel-Lucent Usa Inc. Version caching mechanism
US7339885B2 (en) 2003-06-05 2008-03-04 International Business Machines Corporation Method and apparatus for customizable surveillance of network interfaces
US7363629B2 (en) 2003-06-19 2008-04-22 International Business Machines Corporation Method, system, and program for remote resource management
US7698115B2 (en) 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
US7526640B2 (en) 2003-06-30 2009-04-28 Microsoft Corporation System and method for automatic negotiation of a security protocol
US20050015511A1 (en) 2003-07-02 2005-01-20 Nec Laboratories America, Inc. Accelerated large data distribution in overlay networks
US7296264B2 (en) 2003-07-18 2007-11-13 Bea Systems, Inc. System and method for performing code completion in an integrated development environment
KR100984497B1 (ko) 2003-07-24 2010-10-01 파나소닉 주식회사 파일 관리 방법 및 정보 처리 장치
US8028078B2 (en) 2003-08-07 2011-09-27 Teamon Systems, Inc. Communications system including protocol interface device providing enhanced operating protocol selection features and related methods
CN100547583C (zh) 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US7870268B2 (en) 2003-09-15 2011-01-11 Intel Corporation Method, system, and program for managing data transmission through a network
US20050091226A1 (en) 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7539722B2 (en) 2003-10-24 2009-05-26 Microsoft Corporation Method and system for accessing a file
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
JP4836432B2 (ja) 2003-11-17 2011-12-14 株式会社リコー 文書管理システム、文書管理装置、文書管理方法、文書管理プログラム及び記録媒体
US7188273B2 (en) 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US20050111030A1 (en) 2003-11-25 2005-05-26 Berkema Alan C. Hard copy imaging systems, print server systems, and print server connectivity methods
FI20031779A0 (fi) 2003-12-05 2003-12-05 Nokia Corp Menetelmä, järjestelmä ja lähetettävän puolen yhteyskäytäntöyksikkö datapakettien lähettämiseksi kuittaamattoman toimintamuodon palveluissa
US7383483B2 (en) 2003-12-11 2008-06-03 International Business Machines Corporation Data transfer error checking
US7177941B2 (en) 2003-12-11 2007-02-13 International Business Machines Corporation Increasing TCP re-transmission process speed
US7243284B2 (en) 2003-12-11 2007-07-10 International Business Machines Corporation Limiting number of retransmission attempts for data transfer via network interface controller
US20050177635A1 (en) 2003-12-18 2005-08-11 Roland Schmidt System and method for allocating server resources
US7698361B2 (en) 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US7383463B2 (en) * 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
EP1728249B1 (en) 2004-03-17 2008-08-27 Koninklijke Philips Electronics N.V. Method and device for scanning a disc-shaped information storage medium
US7444536B1 (en) 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
US7627627B2 (en) 2004-04-30 2009-12-01 Hewlett-Packard Development Company, L.P. Controlling command message flow in a network
US20050246803A1 (en) 2004-04-30 2005-11-03 Spencer Andrew M Peripheral device for processing data from a computing device
JP2005321953A (ja) 2004-05-07 2005-11-17 Hitachi Ltd ストレージ制御装置、その動作プログラム、及びアクセス制御方法
JP2005322016A (ja) 2004-05-10 2005-11-17 Yokogawa Electric Corp サーバ装置および情報配信方法
US7380080B2 (en) 2004-05-17 2008-05-27 Hewlett-Packard Development Company, L.P. Calculating unneeded data storage credits for a data transmission to a pair of storage devices
US7330910B2 (en) 2004-05-20 2008-02-12 International Business Machines Corporation Fencing of resources allocated to non-cooperative client computers
US7434087B1 (en) 2004-05-21 2008-10-07 Sun Microsystems, Inc. Graceful failover using augmented stubs
US7080173B2 (en) 2004-05-27 2006-07-18 Microsoft Corporation Reducing information reception delays
US20060059118A1 (en) 2004-08-10 2006-03-16 Byrd Stephen A Apparatus, system, and method for associating resources using a behavior based algorithm
US8023417B2 (en) 2004-08-30 2011-09-20 International Business Machines Corporation Failover mechanisms in RDMA operations
US7418712B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation Method and system to support multiple-protocol processing within worker processes
US7418709B2 (en) 2004-08-31 2008-08-26 Microsoft Corporation URL namespace to support multiple-protocol processing within worker processes
US7451347B2 (en) 2004-10-08 2008-11-11 Microsoft Corporation Failover scopes for nodes of a computer cluster
US8156049B2 (en) 2004-11-04 2012-04-10 International Business Machines Corporation Universal DRM support for devices
US7457722B1 (en) 2004-11-17 2008-11-25 Symantec Operating Corporation Correlation of application instance life cycle events in performance monitoring
US8522293B2 (en) 2004-12-15 2013-08-27 Time Warner Cable Enterprises Llc Method and apparatus for high bandwidth data transmission in content-based networks
JP2008530835A (ja) 2005-02-08 2008-08-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) パケット交換ネットワーク上のオンデマンドマルチチャネルストリーミングセッション
US7743245B2 (en) 2005-03-10 2010-06-22 Intel Corporation Security protocols on incompatible transports
US7453879B1 (en) 2005-04-04 2008-11-18 Sun Microsystems, Inc. Method and apparatus for determining the landing zone of a TCP packet
US20060281525A1 (en) 2005-05-17 2006-12-14 Milo Borissov Slot type game with player input opportunity
US8332526B2 (en) 2005-05-25 2012-12-11 Microsoft Corporation Data communication protocol including negotiation and command compounding
EP1727055B1 (en) 2005-05-25 2016-09-07 Microsoft Technology Licensing, LLC Data communication coordination with sequence numbers
EP1727056B1 (en) 2005-05-25 2008-11-05 Microsoft Corporation Data communication protocol
US8108548B2 (en) 2005-12-22 2012-01-31 Microsoft Corporation Methodology and system for file replication based on a peergroup
US8051179B2 (en) 2006-02-01 2011-11-01 Oracle America, Inc. Distributed session failover
US8024439B2 (en) 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US7526668B2 (en) 2006-06-08 2009-04-28 Hitachi, Ltd. Failover method of remotely-mirrored clustered file servers
US20090077097A1 (en) 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
US9621649B2 (en) 2007-09-28 2017-04-11 Xcerion Aktiebolag Network operating system
EP2066101B1 (en) 2007-11-28 2012-10-17 Alcatel Lucent System and method for an improved high availability component implementation
JP4549408B2 (ja) 2008-06-24 2010-09-22 富士通株式会社 ファイルサーバのクラスタノード制御プログラム,クラスタノード制御方法及びクラスタノード制御装置
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8700760B2 (en) 2008-08-18 2014-04-15 Ge Fanuc Intelligent Platforms, Inc. Method and systems for redundant server automatic failover
US8275815B2 (en) 2008-08-25 2012-09-25 International Business Machines Corporation Transactional processing for clustered file systems
US8185566B2 (en) 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US9749387B2 (en) * 2009-08-13 2017-08-29 Sap Se Transparently stateful execution of stateless applications
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover

Also Published As

Publication number Publication date
EP2649750B1 (en) 2016-03-02
US20120151249A1 (en) 2012-06-14
CN102624542B (zh) 2015-06-17
EP2649750A2 (en) 2013-10-16
WO2012078693A2 (en) 2012-06-14
RU2013126471A (ru) 2014-12-20
AU2011338485B2 (en) 2016-07-21
AU2011338485A1 (en) 2013-05-30
HK1174451A1 (en) 2013-06-07
WO2012078693A3 (en) 2012-08-16
BR112013014070A2 (pt) 2016-09-13
EP2649750A4 (en) 2015-01-14
ES2566933T3 (es) 2016-04-18
CA2817620A1 (en) 2012-06-14
MX2013006427A (es) 2013-12-16
RU2595482C2 (ru) 2016-08-27
JP6141189B2 (ja) 2017-06-07
US8631277B2 (en) 2014-01-14
JP2014500559A (ja) 2014-01-09
CN102624542A (zh) 2012-08-01
KR20130131362A (ko) 2013-12-03

Similar Documents

Publication Publication Date Title
KR101801432B1 (ko) 파일 시스템 내에 투명 페일오버의 제공
US10795905B2 (en) Data stream ingestion and persistence techniques
US12038878B2 (en) Methods and apparatus for controlling snapshot exports
US10691716B2 (en) Dynamic partitioning techniques for data streams
EP1171817B1 (en) Data distribution in a server cluster
CA2929776C (en) Client-configurable security options for data streams
CA2930026C (en) Data stream ingestion and persistence techniques
CA2929777C (en) Managed service for acquisition, storage and consumption of large-scale data streams
US10346248B2 (en) Failure resistant volume creation in a shared storage environment
US10353790B1 (en) Disaster recovery rehearsals
US20080281959A1 (en) Managing addition and removal of nodes in a network
JP2014500559A5 (ko)
US20110093699A1 (en) Communication between key manager and storage subsystem kernel via management console
US11397752B1 (en) In-memory ingestion for highly available distributed time-series databases
US20210103598A1 (en) Managing persistent handle information for a file
US9477425B1 (en) Managing object deletion
EP3629180B1 (en) Method and system for reliably restoring virtual machines
US7543017B1 (en) Cluster file system node failure file recovery by reconstructing file state

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
GRNT Written decision to grant