KR101169068B1 - 저장소를 재구성하는 컴퓨터 시스템, 분산 컴퓨팅 시스템, 컴퓨터 판독 가능 기록 매체, 저장소 재구성 방법, 재구성된 저장소 액세스 방법, 및 재구성된 저장소용의 컴퓨터 시스템 - Google Patents

저장소를 재구성하는 컴퓨터 시스템, 분산 컴퓨팅 시스템, 컴퓨터 판독 가능 기록 매체, 저장소 재구성 방법, 재구성된 저장소 액세스 방법, 및 재구성된 저장소용의 컴퓨터 시스템 Download PDF

Info

Publication number
KR101169068B1
KR101169068B1 KR1020040035968A KR20040035968A KR101169068B1 KR 101169068 B1 KR101169068 B1 KR 101169068B1 KR 1020040035968 A KR1020040035968 A KR 1020040035968A KR 20040035968 A KR20040035968 A KR 20040035968A KR 101169068 B1 KR101169068 B1 KR 101169068B1
Authority
KR
South Korea
Prior art keywords
legacy
server
share
path
name
Prior art date
Application number
KR1020040035968A
Other languages
English (en)
Other versions
KR20040101022A (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 KR20040101022A publication Critical patent/KR20040101022A/ko
Application granted granted Critical
Publication of KR101169068B1 publication Critical patent/KR101169068B1/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

투명한 저장소 재구성을 위한 향상된 시스템 및 방법이 제공된다. 재구성 서버는 다수의 서버로부터 소수의 서버로 저장소를 통합하거나 소수의 서버로부터 다수의 서버들로 저장소를 분산시키는 데에 사용될 수 있다. 이를 위해, 레가시 서버 이름이 재구성 서버의 네트워크 주소로 에일리어싱될 수 있다. 그 다음, 각 레가시 셰어의 내용 및 권한은 다른 서버의 고유한 셰어 이름에 복사될 수 있다. 그 다음, 루트가 레가시 서버 이름을 이용하여 재구성 서버에 생성되고, 다른 서버에 복사되는 레가시 셰어를 가리키는 링크가 그 루트에 생성될 수 있다. 그 다음, 임의의 클라이언트가 레가시 셰어 이름을 사용하여 재배치된 레가시 셰어로의 액세스를 요청할 수 있다.
레가시 서버, 셰어, 재구성 서버, 저장소 재구성, 에일리어싱, 분산 파일 시스템

Description

저장소를 재구성하는 컴퓨터 시스템, 분산 컴퓨팅 시스템, 컴퓨터 판독 가능 기록 매체, 저장소 재구성 방법, 재구성된 저장소 액세스 방법, 및 재구성된 저장소용의 컴퓨터 시스템{SYSTEM AND METHOD FOR TRANSPARENT STORAGE REORGANIZATION}
도 1은 본 발명이 결합될 수 있는 컴퓨터 시스템을 일반적으로 도시하는 블럭도.
도 2는 본 발명의 일면에 따른, 저장소를 재구성하는 데 있어서의 시스템 컴포넌트의 예시적인 아키텍처를 일반적으로 도시하는 블럭도.
도 3은 본 발명의 일면에 따른, 레가시 서버로부터 다른 서버로 셰어를 재구성하기 위해 취해야 할 단계를 일반적으로 도시하는 흐름도.
도 4는 본 발명의 일면에 따른, 레가시 서버로부터 새로운 서버로 셰어를 통합하는 통합 서버를 일반적으로 도시하는 예시적인 도면.
도 5는 본 발명의 일면에 따른, 레가시 서버로부터 다른 서버로 이동된 재구성된 셰어를 액세스하기 위해 취해야 할 단계를 일반적으로 도시하는 흐름도.
도 6은 본 발명의 일면에 따른, 다른 서버에서 통합된 레가시 셰어를 액세스 하는 클라이언트를 일반적으로 도시하는 도면.
도 7은 본 발명의 일면에 따른, 몇몇의 다른 서버 상에 위치된 통합된 레가시 셰어들의 이름 리디렉션을 수행하는 통합 서버를 일반적으로 도시하는 예시적인 도면.
도 8은 본 발명의 일변에 따른, 통합된 레가시 셰어의 서브셋을 호스팅하는 통합 서버를 일반적으로 나타내는 예시적인 도면.
<도면의 주요 부분에 대한 부호의 설명>
134: 오퍼레이팅 시스템
135: 애플리케이션 프로그램
202: 서버
204: 분산 파일 시스템
210: 데이터 베이스
406: 통합 서버 CS
408: 파일 시스템
602: 클라이언트
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 보다 상세히는 투명한 저장소 재구성(transparent storage reorganization)을 위한 향상된 시스템 및 방법에 관한 것이다.
저장소 재구성은 몇몇의 이유에 의해 동기 부여가 될 수 있다. 예를 들면, 저장소 이동 및 통합은 기업 내의 저장소 서버의 소유 총비용을 줄이는 것을 돕는 중요한 작업이다. 소유 총비용을 줄이는 데 있어서 중요한 일 요소는 저장소 서버 관리에 요구되는 시간 및 비용을 줄이는 것이고, 그러므로 서버의 개수를 줄이는 것이다. 저장소 통합이 종종 Microsoft
Figure 112004021321816-pat00001
윈도우즈 NT 서버 버전 4.0으로부터 Microsoft
Figure 112004021321816-pat00002
윈도우즈 서버 2003으로 바꾸는 것과 같은 더 신종의, 더 고성능의 서버 버전으로의 업그레이드와 함께 일어나는 것은 놀라운 일이 아니다. 저장소 관리자는 복수의 레가시 서버로부터 레가시 서버들의 모든 내용을 서비스할 수 있는 하나 혹은 소수의 새로운 기기로 저장소를 통합함으로써 관리 오버헤드를 줄이는 데에 이러한 업그레이드를 이용할 수 있다.
예를 들면 두 서버로부터, "foo"와 "bar"라는, 파일 셰어를 재배치하는 데 있어서, 하나의 일반적인 공지된 방법은 서버 이름 "foo" 및 서버 이름 "bar" 둘다 동일한 저장소 서버에 매핑시키는 것이다. 이러한 저장소 재구성에 있어서 발생할 수 있는 한 문제점은 \\foo\public과 \\bar\public과같이, 동일한 이름을 갖는 두개의 파일 셰어를 동일한 저장소 서버에 재배치하고자 함으로 인해서 이름 충돌을 일으킬 수 있다는 것이다. 정상적으로 두 셰어는 모두 \\server\public이라는 경로 이름을 갖도록 생성되어야 할 것이다. 이러한 이름 충돌은 버전닝(versioning) 등의 하나 이상의 잘 알려진 기법을 사용하여, 재배치되는 셰어 중 하나 혹은 둘 다를 재명명함으로써 피할 수 있을 것이다. 그러나, 시스템 관리자는 자신이 이러한 이름 충돌을 피하기 위해 파일 셰어 이름을 수정해야 한다면 레가시 셰어들을 통합하는 것을 내키지 않아 할 수 있다.
이름 충돌을 피하기 위해 사용자에게 보여지는 파일 셰어 이름을 수정하는 것은 몇몇의 문제들을 일으킨다. 무엇보다도, 저장소를 재구성하는 중에 사용자에 게 보여지는 파일 셰어 이름을 수정하는 것은 새로운 이름을 사용하도록 사용자를 트레이닝하는 것을 요구한다. 게다가, 문서, 웹 페이지, 및 애플리케이션에 삽입된 파일 셰어 경로 이름들의 위치를 알아야 하고, 기존 이름은 새로운 이름으로 변경되어야 한다. 이들 번거로운 작업은 저장소 관리자가 저장소 재구성을 관리하기 위한 추가적인 시간 및 비용을 요구할 것이다.
저장소 관리자가 레가시 셰어 이름을 사용하여 저장소를 재구성하여 사용자나 클라이언트가 레가시 셰어 이름을 사용하여 재배치된 레가시 셰어를 액세스할 수 있도록 하는 방법이 필요하다. 이러한 시스템 및 방법이라면, 시스템 관리자가 재배치된 레가시 셰어로의 클라이언트의 액세스를 쉽고 효과적으로 모니터링할 수 있어, 저장소 관리자는 드물게 사용되는 재배치된 레가시 셰어를 제거할 수 있다.
간단히 말하면, 본 발명은 저장소를 투명하게 재구성하기 위한 향상된 시스템 및 방법을 제공한다. 이러한 목적을 위해, 하나 이상의 레가시 서버로부터 하나 이상의 다른 서버로 레가시 셰어를 재배치할 수 있는 재구성 서버가 제공된다. 재구성 서버는 수신된 레가시 경로 앞에 다른 서버 이름을 투명하게 첨부하기 위한 경로 리라이터(path rewriter)를 갖추고, 리라이팅된 레가시 셰어 경로를 트래버싱(traverseing)하여 찾을 수 있는 새로운 저장소 위치로 임의의 링크를 리졸빙(resolving)하는 경로 리디렉터(path redirector)를 갖춘 분산 파일 시스템을 포함할 수 있다. 재구성 서버는 또한 재배치된 레가시 셰어의 액세스 및 사용 정보를 기록하는 데이터베이스 또는 로그 파일을 포함할 수 있다.
본 발명은 먼저 레가시 서버의 이름을 재구성 서버의 네트워크 주소로 에일리어싱함으로써 저장소를 투명하게 재구성할 수 있다. 그 다음 각 레거시 셰어의 내용 및 권한은 다른 서버의 고유한 셰어 이름에 복사될 수 있다. 다음에 루트는 레가시 서버 이름을 이용하여 재구성 서버에 생성될 수 있고, 다른 서버에 복사된 레거시 셰어를 가리키는 링크가 그 루트에 생성될 수 있다. 그러면 임의의 클라이언트는 레가시 셰어 이름을 사용하여 재배치된 레가시 셰어의 액세스를 요청할 수 있다. 재구성 서버는 수신된 레가시 경로 앞에 재구성 서버 이름을 첨부함으로써 수신된 레가시 경로를 리라이팅하고, 리라이팅된 레가시 셰어 경로 이름의 임의의 링크를 리졸빙하고, 재배치된 레가시 셰어의 저장소 위치의 셰어 경로 이름으로 응답할 수 있다.
유리하게도, 본 시스템 및 방법은 기존의 전혀 다른 파일 셰어들을 단일의 네임스페이스로 재설계 및 통합하는 데에 사용될 수 있다. 게다가, 본 발명은 다수의 서버에서 소수의 서버로 저장소를 통합시키는 것 이외에도 소수의 서버에서 다수의 서버로 저장소를 확장시키는 데에 사용될 수 있다. 단일한 재구성 서버에 레거시 셰어로의 액세스 및 레거시 셰어의 사용에 관한 정보를 기록함으로써, 저장소 관리자는 관리 및 보관을 목적으로 레가시 셰어의 액세스 및 사용을 쉽게 모니터링할 수 있다. 또한, 제공되는 시스템 및 방법은 융통성 있고 확장 가능하여 경로 리라이팅 및 경로 리디렉션 기능을 구비한 임의의 파일 시스템 또는 이름 결정 프로토콜(name resolution protocol)이 사용될 수 있다. 그러므로, 본 발명에 의해 제공되는 리디렉션은 셰어 경로 이름들, 서버 이름들, 파일 시스템 프로토콜들, 및 기타 데이터 액세스 프로토콜들을 통해 널리 지원될 수 있다.
다른 이점들은 도면과 함께 개시된 이하의 상세한 설명에 의하여 명백해질 것이다.
예시적인 동작 환경
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 도시한다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 동작 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
본 발명은 많은 다른 범용 또는 특수목적 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 태블릿 장치, 헤드리스 서버(headless server), 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋 탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령어(instruction)와 일반적으로 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 태스크를 수행하는 분산형 컴퓨팅 환경에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 국부 및/또는 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 메자닌(Mezzanine) 버스로도 알려진 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non- removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 또한 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출 력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD, 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨 터(110)를 위한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 태블릿 또는 전자 디지타이저(164), 마이크로폰(163), 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. 도 1에 도시되지 않은 기타 입력 장치는 조이스틱, 게임 패드, 위성 안테나, 스캐너 또는 생물 측정 센서(biometric sensor), 환경 센서(environmental sensor), 위치 센서(position sensor), 또는 다른 유형의 센서를 포함하는 장치를 포함하는 다른 장치들을 포함할 수 있다. 이들 입력 장치 및 그 외의 입력 장치는 종종 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 또한, 모니터(191)는 터치 스크린 패널 등과 결합될 수도 있다. 모니터 및/또는 터치 스크린 패널은 태블릿 타입의 퍼스널 컴퓨터와 같이 컴퓨팅 디바이스(110)가 집적된 하우징에 물리적으로 연결될 수 있음을 유의한다. 그외에도, 컴퓨팅 장치(110)와 같은 컴퓨터는 또한 출력 주변 인터페이스(194) 등을 통해 접속될 수 있는 스피커(195) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 일반 네트워크 노드일 수 있으며, 비록 도 1에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다. LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있음을 알 수 있다.
투명한 저장소 재구성
본 발명은 일반적으로 투명한 저장소 재구성을 제공하는 방법 및 시스템에 관한 것이다. 본 명세서에서 사용된 바와 같이, 저장소 재구성은 한 컴퓨터에서 다른 컴퓨터로의 파일 셰어의 임의의 재배치를 뜻한다. 본 명세서에서 정의된 바와 같이, 셰어는 원격 파일 시스템 혹은 데이터 액세스 프로토콜을 통하여 노출된 파일 및 디렉토리의 집합을 뜻한다. 레가시 셰어는 다양한 비지니스, 정부, 및 다른 조직들의 서버에서 사용되는 셰어들같은, 기존의 셰어를 뜻한다.
저장소 재구성의 한 형태는 저장소 통합이다. 저장소 통합은 본 명세서에서는 저장소 서버들을 포함하는, 하나 이상의 다른 저장소 시스템으로의 파일 셰어의 임의의 재배치를 뜻하며, 이는 저장소 시스템 집합의 감소를 초래할 수 있다. 본 명세서에서 기술된 다양한 블럭도, 흐름도 및 시나리오는 단지 예로서, 본 발명이 적용될 수 있는 많은 다른 시나리오가 존재한다고 이해되어야 할 것이다.
저장소는 다른 시스템 구성을 이용하는 여러 방법으로 재구성될 수 있다. 일례로서, 도 2의 시스템은 저장소를 재구성하기 위한 시스템 즉, 통합 서버의 일 실시예를 이용하여 기술될 것이다. 통합 서버는 하나 이상의 레가시 서버들로부터 저장소를 통합함으로써 저장소를 재구성할 수 있다. 하나 이상의 레가시 서버로부 터 저장소를 통합하는 시스템은 저장소 재구성을 위해 설명되는 시스템 컴포넌트를 사용할 수 있는 복수의 시스템 구성의 일례로서 이해되어야 할 것이다.
도 2에는, 저장소 재구성을 위한 시스템 컴포넌트의 예시적인 아키텍처를 일반적으로 나타내는 블럭도를 도시한다. 본 기술 분야에서 숙련된 기술을 가진 자라면, 이 도면에 도시된 블럭들에 구현된 기능이 분리된 컴포넌트로 구현될 수 있거나, 몇몇의 또는 모든 블럭의 기능이 단일 컴포넌트에서 구현될 수 있음을 알 수 있다. 예를 들면, 데이터베이스(210)의 기능은 분산 파일 시스템(204)안에 포함될 수 있다. 또는, 경로 리라이터(206)의 기능이 분리된 컴포넌트로 구현될 수 있다.
서버(202)는 분산 파일 시스템(204) 및 데이터베이스(210)를 포함할 수 있다. 일반적으로, 분산 파일 시스템(204) 및 데이터베이스(210)는 커널 컴포넌트, 애플리케이션 프로그램, 링크된 라이브러리, 오브젝트 등과 같은 임의의 유형의 실행 가능한 소프트웨어 코드일 수 있다. 분산 파일 시스템(204)은 동작 가능하게 연결된 경로 리라이터(206) 및 동작 가능하게 연결된 경로 리디렉터(208)를 포함할 수 있다. 또한, 이들 컴포넌트 각각도 커널 컴포넌트, 애플리케이션 프로그램, 링크된 라이브러리, 오브젝트, 또는 다른 유형의 실행 가능한 소프트웨어 코드와 같은 임의의 유형의 실행 가능한 소프트웨어 코드일 수 있다.
구체적으로, 분산 파일 시스템(204)은 도 2에 도시된 바와 같이, 경로 리라이터(206) 및 경로 리디렉터(208)로 각각 구현된 경로 리라이팅 및 경로 리디렉션을 구비한 임의의 파일 시스템일 수 있다. 이러한 파일 시스템은 파일 셰어를 액세스하기 위한 서버 메세지 블럭(Server Message Block: SMB) 프로토콜을 사용하거 나 넷바이오스(NetBIOS) 프로토콜, 네트워크 파일 시스템 프로토콜(Network File System protocol: NFS), 넷웨어 파일 셰어 프로토콜(Netware File Sharing protocol: NFSP), 또는 다른 프로토콜과 같은 유사한 특징들을 제공하는 다른 유형의 파일 시스템 프로토콜을 사용하는 Microsoft
Figure 112004021321816-pat00003
분산 파일 시스템(Distributed File System: Dfs)을 포함하는 임의의 유형의 파일 시스템 프로토콜을 사용하여 파일 셰어를 액세스하기 위한 요청을 수신할 수 있다. 일 실시예에서, 경로 리라이팅 및 경로 리디렉션이 부가된 Dfs 서비스는 서버(202)에서 실행할 수 있다. 이러한 Dfs 서비스는, 예를 들면, 서버(202)의 오퍼레이팅 시스템의 레지스트리의 레지스트리 키와 같은 오퍼레이팅 시스템 구성 설정을 통하여 이용 가능할 수 있다.
분산 파일 시스템(204)은 파일 액세스 요청을 수신할 수 있다. 경로 리라이터(206)는 레가시 서버 이름 앞에 다른 서버 이름을 첨부함으로써 레가시 셰어를 위한 임의의 경로를 자동적으로 리라이팅할 수 있다. 예를 들면, 통합 서버와 같은 실시예에서, 경로 리라이터(206)는 레가시 셰어 경로 앞에 통합 서버 이름을 첨부함으로써 레가시 셰어 경로를 리라이팅할 수 있다. 경로 이름을 리라이팅한 후, 통합 서버의 분산 파일 시스템(204)은 리라이팅된 경로 이름으로 정규 프로세싱을 계속할 수 있다. 이 정규 프로세싱의 일부로, 분산 파일 시스템(204)은 레가시 서버 이름에 대응하는 Dfs 루트를 액세스하고, 레가시 셰어 경로 이름을 트래버싱하고, 재배치된 레가시 셰어의 저장소 위치를 가리키는 링크를 찾아낼 수 있다. 이런 경우, 분산 파일 시스템(204)은 경로 리디렉터(208)를 호출할 수 있다.
경로 리디렉터(208)는 리라이팅된 레가시 셰어 경로를 포함하여, 레가시 셰 어 경로를 트래버싱하여 찾은 임의의 링크를 리졸빙할 수 있다. 이러한 링크는 Dfs, SMB, NetBIOS, NFS, NFSP 또는 다른 유형의 프로토콜과 같은 파일 시스템 프로토콜에 의해 지원될 수 있는 임의의 종류의 경로를 가리킬 수 있다. 링크를 리졸빙하면, 분산 파일 시스템은 재배치된 레가시 셰어의 저장소 위치의 셰어 경로에 응답할 수 있다.
통합 서버의 일 실시예에서, 통합된 저장소는 분리된 Dfs 네임스페이스로 구성될 수 있다. 이 경우, 링크는 통합된 레가시 셰어에 대응하는 네임스페이스의 경로를 포함할 수 있다. 유리하게도, 통합된 서버의 경로 리디렉터(208)는 역으로 그 경로를 새로운 네임스페이스로 리디렉팅할 수 있고, 후에 저장소는 새로운 Dfs 네임스페이스로 리디렉션한 것에 대한 영향없이 새로운 Dfs 네임스페이스 안에서 이동되거나 재구성될 수 있다.
데이터베이스(210)는 분산 파일 시스템(204)으로 동작 가능하게 연결되어 레가시 셰어들의 액세스 활동 및 이용이 기록되고 모니터링될 수 있다. 데이터베이스는 임의의 유형의 데이터베이스일 수 있거나 로그 파일일 수 있다. 서버가 레가시 셰어 요청을 감지하면, 분산 파일 시스템(204)은 그 요청에 관한 정보를 데이터베이스나 로그 파일에 기록할 수 있다. 액세스된 레가시 셰어의 이름, 어느 클라이언트가 셰어로의 액세스를 요청했는지 등과 같은, 레가시 셰어로의 액세스에 관한 임의의 정보가 데이터베이스에 기록될 수 있다. 이러한 정보는 저장소 관리자에 의해 여러 가지 방법으로 사용될 수 있다. 예를 들면, 저장소 관리자는 레가시 셰어의 활성화된 이용을 추적할 수 있다. 저장소 관리자가 드물게 사용되는 셰어 들을 결정하면, 관리자는 그 셰어들을 제거할 수 있다. 다른 예로서, 저장소 관리자는 어느 사용자 혹은 애플리케이션이 그 레가시 경로들을 액세스하는지를 매핑시키는 정보를 사용하여 저장소 관리자가 어떤 애플리케이션이 새로운 경로 이름과 함께 갱신되야 하는지를 결정하거나, 다른 대안에서는, 어떤 사용자가 자신의 링크를 새로운 경로 이름에 갱신하는 것을 통지하는 것인지를 결정할 수 있다.
하나 이상의 레가시 서버로부터 저장소를 통합하는 것에 대해 설명한 시스템은 저장소를 재구성하기 위해 대해 도 2에 도시된 시스템 컴포넌트들을 사용할 수 있는 복수의 시스템 구성 중 일례이다. 저장소를 재구성하기 위한 다른 시스템 구성으로는, 레가시 파일 셰어를 모놀리식 서버(monolithic server)로부터 하나 이상의 보다 소규모의 서버들에 걸쳐 분배함으로써 모놀리식 서버를 교체하는 것에 대해 설명한 시스템 컴포넌트들을 사용할 수 있는 분산 서버를 포함할 수 있다. 또한 다른 시스템 구성으로는, 레가시 서버의 레가시 파일 셰어를 교체 서버로 전송함으로써 레가시 서버를 교체 서버로 교체하는 것에 대해 설명한 시스템 컴포넌트를 사용할 수 있는 전송 서버를 포함할 수 있다.
도 3은 레가시 서버로부터 다른 서버로 셰어를 재구성하기 위해 취해야 할 단계를 일반적으로 나타내는 흐름도를 도시한다. 단계 302에서는, 임의의 레가시 서버 이름이 재구성 서버의 네트워크 주소로 에일리어싱될 수 있다. 레가시 셰어는 재구성 서버 또는 다른 데스티네이션(destination) 서버에 저장될 수 있다. 레가시 서버 이름의 에일리어싱은 재구성 서버로 리졸빙될 레가시 서버 이름의 이름 색인(look up)을 산출할 수 있어, 레가시 서버의 임의의 요청이 그 요청을 다루는 재구성 서버로 대신 이루어질 수 있다. 이러한 에일리어싱은 도메인 이름 시스템(Domain Name System: DNS) 및 넷바이오스 이름과 같은, 레가시 서버에서 사용되는 모든 명명 방식에 수행될 수 있어서 임의의 프로토콜을 통한 레가시 서버 이름의 임의의 색인은 실제로 그 요청이 다루어지는 재구성 서버의 주소를 산출하는 것을 보장한다.
레가시 서버 이름을 재구성 서버 이름으로 에일리어싱한 후에, 단계 304에서는 각 레가시 셰어의 내용 및 권한이 데스티네이션 서버로 복사될 수 있다. 일 실시예에서는, 재구성 서버가 하나 이상의 레가시 셰어에 대해 데스티네이션 서버의 역할도 할 수 있다. 단계 306에서는, 각각의 레가시 셰어에 새로운 고유 셰어 이름이 할당된다. 일 실시예에서, 이러한 고유한 셰어 이름은 사용자나 클라이언트 기기에는 보이지 않을 수 있다. 레가시 서버 이름을 이용하여, 단계 308에서 레가시 서버 Dfs 루트가 재구성 기기에서 생성될 수 있다. 일 실시예에서, 레가시 서버 Dfs 루트는 레가시 서버와 동일한 이름을 갖지 않을 수 있다; 대신에, 레가시 서버 Dfs 루트 이름은 식별자 스트링을 레가시 서버 이름 앞에 첨부시키는 등의 레가시 서버 이름의 변형된 형태일 수 있다. 단계 310에서, 레가시 셰어가 복사된 데스티네이션 서버의 셰어 이름으로의 Dfs 링크가 레가시 서버 루트에 생성될 수 있다. 레가시 서버 루트에 링크가 생성된 후에, 복사된 레가시 셰어는 데스티네이션 서버로부터 액세스될 수 있다. 본 기술 분야에서 숙련된 기술을 가진 자라면 도 3에 기술된 단계들이 레가시 서버에서 다른 서버로 셰어를 재구성하는 데 있어서 다른 순서로 수행될 수 있음을 알 수 있다. 예를 들면, 레가시 서버 루트 및 그 레가시 서버 루트의 링크는 레가시 파일들의 내용 및 권한이 데스티네이션 서버에 복사되기 전에 재구성 기기에 생성될 수 있다.
본 발명의 일 실시예에서, 서버(202)는 레가시 서버들로부터 더 적은 규모의 집합의 데스티네이션 서버들로 레가시 셰어들을 통합할 수 있는 통합 서버일 수 있다. 도 4는 레가시 서버로부터 새로운 서버로 셰어를 통합하는 통합 서버를 일반적으로 도시하는 예시적인 도면이다. 이 실시예에서는, 레가시 서버 Mi(402)와 같은, 복수의 레가시 서버 M1 내지 Mi가 있을 수 있다. 이들 서버 각각은 \\Mi \Sj와 같은 경로 이름을 사용하여 액세스되는 하나 이상의 셰어 S1 내지 Sj를 가지는 파일 시스템(404)을 가질 수 있다. 저장소 관리자는 클라이언트 기기가 동일한 경로 이름을 사용하여 임의의 셰어를 액세스하는 것을 계속할 수 있도록 이들 셰어를 새로운 서버 NS와 같은 더 적은 규모의 집합의 새로운 저장소 서버에 통합하고자 할 수 있다.
그러나, 몇몇의 셰어 이름의 인기도 때문에, 하나의 기기에 위치한 셰어는 다른 기기에 위치한 셰어와 동일한 이름을 가질 수 있다. 예를 들면, "public"이라는 이름은 일반적인 셰어 이름이다. 기기 Mi 및 Mk에서 각각 \\Mi\public 과 \\Mk\public이라는 경로 이름을 사용하여 액세스될 수 있는 "public"이라는 셰어 이름이 있을 수 있다. 동일한 이름을 갖는 두 셰어가 동일한 서버로 통합될 때, 액세스를 위한 고유한 경로 이름이 하나 혹은 두 셰어에 할당되지 않는 한, 이름 충돌이 일어날 수 있다. 통상적으로, 하나 혹은 두 셰어를 액세스하는 경로 이름은 이름 충돌을 피하기 위해 변경된다. 그러나, 본 발명에 의하면 저장소 관리자는 더 적은 규모의 집합의 저장소 장치에서 이들 셰어를 통합함으로써 클라이언트 기기가 이름 충돌이 발생하는 경우에도 동일한 경로 이름을 이용하여 임의의 셰어를 액세스하는 것을 계속할 수 있다. 이를 위해, 통합 서버 CS(406)는 도 2에 도시된 바와 같은 경로 리라이터(206)로 구현된 경로 리라이팅 및 경로 리디렉터(208)로 구현된 경로 리디렉션을 구비한 분산 파일 시스템(204)을 포함할 수 있다.
도 4의 제1 단계는 레가시 서버 이름 Mi를 통합 서버 CS(406)의 네트워크 주소로 에일리어싱하여 레가시 서버의 이름(이 경우는 Mi)이 통합 서버 CS의 네트워크 주소로 리졸빙하게 함으로써, 레가시 서버 Mi의 임의의 요청이 통합 서버 CS로 대신 향하게 한다. 이러한 에일리어싱은 DNS, NetBIOS 이름과 같이 레가시 서버에서 사용되는 모든 명명 방식에서 수행될 수 있어서 임의의 프로토콜을 통한 레가시 서버 이름의 임의의 색인이 실제로는 레가시 서버 Mi의 주소가 아닌 통합 서버 CS의 주소를 산출하는 것을 보장한다.
제2 단계는 통합된 레가시 셰어마다 수행될 수 있다. 통합될 레가시 셰어 Sj 각각은 레가시 서버 Mi(402)로부터 새로운 서버 NS(410)로 복사될 수 있다. 셰어 Sj의 내용 및 권한은 새로운 서버 NS(410)로 복사될 수 있고, 사용자 또는 클라 이언트 기기에는 보이지 않을 수 있는 새로운 고유 셰어 이름이 셰어 Sj에 주어진다. 새로운 셰어가 이름 충돌을 일으키지 않게 하기 위해 임의의 이름이 사용될 수 있다. 일 실시예에서는, 명명 방식 "\\NS\Mi-Sj"는 이러한 충돌이 일어나지 않는다는 것을 보장할 수 있다.
제3 단계는 통합된 레가시 서버 Mi마다 한번 수행될 수 있다. 레가시 서버 이름을 사용하여, 이름 Mi를 갖는 새로운 DFS 루트 같은 레가시 서버 루트가 통합 서버 CS(406)에 생성될 수 있다. 결과적으로, 통합 서버 CS는 \\CS\Mi 형태의 경로로 응답하거나, 지역적으로 다루거나, 액세스할 수 있다. 경로 리라이터(206)가 사용 가능하면, 통합된 서버 CS(406)의 분산 파일 시스템(204)이 \\Mi와 같이 서버 이름 Mi로 시작되는 경로 이름을 수신할 때마다, 경로 리라이터는 그 경로를 \\CS\Mi 다음의 나머지 경로로서 리라이팅할 수 있다. 그러므로, 분산 파일 시스템(204)은 리라이팅된 경로가 국부 Dfs 루트에 대응한다는 것을 알게 되고, 그 다음 Dfs 프로토콜에 따라 상기 국부 루트를 액세스할 수 있다.
일 실시예에서, 통합 서버에 레가시 서버 루트를 생성하는 데에 레가시 서버 이름을 사용하기 이전에 해쉬 마크와 같이, 루트 또는 셰어 이름의 첫 문자에 부적절한(illegal) 문자가 레가시 서버 이름 앞에 첨부됨을 유의한다. 레가시 서버 루트를 생성하기 위해 레가시 서버 이름을 이렇게 수정함으로써, 통합 서버 CS의 국부 셰어 이름과 레가시 서버의 루트 이름 간의 충돌이 일어나지 않는 것이 보장될 수 있다. 국부 루트 또는 셰어 이름이 이러한 문자로 시작하지 않는다고 가정하면, 통합 서버 CS의 국부 셰어의 이름과 레가시 서버로부터의 통합된 셰어의 이름은 신속하게 식별된다. 이는 유리하게도 저장소 관리자가 통합 서버 CS의 어떤 루트가 국부 루트인지 그리고 어떤 루트가 통합된 셰어로부터 온 것인지를 신속하게 식별하도록 할 수 있다.
제4 단계는 새로운 서버에 통합된 레가시 셰어 Sj마다 한번 수행될 수 있다. 통합 서버 CS의 레가시 서버 루트 \\CS\Mi에 레가시 셰어가 복사된 새로운 서버 NS(410)의 셰어 이름 \\NS\Mi-Sj로의 링크가 생성될 수 있다. 이러한 링크는 Dfs, SMB, NetBIOS, NFS, NFSP 또는 다른 유형의 프로토콜을 포함하는 분산 파일 시스템 프로토콜에 의해 지원될 수 있는 임의의 유형의 경로를 가리킬 수 있다. 일 실시예에서는, 이 링크는 새로운 서버 NS(410)의 통합된 레가시 셰어의 위치를 직접적으로 가리키는 Dfs 링크일 수 있다. 이런 경우, \\CS\Mi\Sj로 시작하는 경로는 루트 \\CS\Mi로부터 링크 Sj를 찾아낼 때까지 트래버싱될 수 있고, 요청을 새로운 서버 NS(410)의 파일 시스템(412)의 통합된 레가시 셰어 \\NS\Mi-Sj의 새로운 위치로 리디렉션한다. 통합 서버의 다른 실시예에서는, 통합된 저장소가 개별 Dfs 네임스페이스에 구성된다. 이런 경우, 링크는 통합된 레가시 셰어에 대응하는 네임스페이스 안의 경로를 포함할 수 있다. 유리하게도, 통합된 서버의 경로 리디렉터(208)는 반대로 새로운 네임스페이스로 경로를 리디렉션할 수 있고, 그 후 저장소는 새로운 Dfs 네임스페이스로의 리디렉션의 영향이 없고 통합 서버 CS에서 어떤 구성도 변경할 필요 없이 새로운 Dfs 네임스페이스 안에서 이동 또는 재구성될 수 있다.
레가시 서버 루트에 링크가 생성된 후에, 통합된 레가시 셰어는 이제 새로운 서버 NS(410)에서 액세스될 수 있다. 본 기술 분야에서 숙련된 기술을 가진 자라면 도 4에 도시된 단계들은 레가시 서버로부터 새로운 서버로 셰어를 통합하는 데 있어서 다른 순서로 수행될 수 있음을 알 수 있다. 예를 들면, 레가시 서버 루트 및 레가시 서버 루트의 링크는 레가시 파일들의 내용 및 권한이 새로운 서버 NS(410)로 복사되기 이전에 통합 서버 CS(406)에서 생성될 수 있다. 레가시 셰어가 새로운 서버로 통합된 후에, 레가시 서버는 제거되거나 재명명되어 다른 목적으로 사용될 수 있다.
도 5는 레가시 서버로부터 다른 서버로 이동된 재구성된 셰어를 액세스하기 위해 취해야 할 단계를 일반적으로 도시하는 흐름도를 도시한다. 클라이언트는 레가시 셰어를 사용하여 재구성된 레가시 셰어 이름을 액세스하고자 할 수 있다. 단계 502에서는, 클라이언트가 에일리어싱된 레가시 서버 이름을 리졸빙하고 재구성 서버 CS의 네트워크 주소로의 접속을 구축할 수 있다. 그 다음 단계 504에서 클라이언트는 레가시 셰어를 액세스하기 위해 재구성 서버로 요청을 보낸다. 일 실시예에서, 상기 요청은 레가시 셰어로의 액세스를 구축하기 위한 Dfs 요청일 수 있다.
단계 506에서는, 재구성 서버가 그 재구성 서버 이름을 레가시 셰어 경로 앞 에 첨부함으로써 레가시 셰어 경로를 리라이팅할 수 있어 분산 파일 시스템은 리라이팅된 패스가 레가시 서버 이름을 갖는 국부 루트에 대응하는 것을 알 수 있고, 그래서 그 국부 루트를 액세스할 수 있다. 레가시 셰어 경로를 리라이팅한 후, 재구성 서버의 분산 파일 시스템은 리라이팅된 경로에서 정규 프로세싱을 계속한다. 그 정규 프로세싱의 일부로서, 분산 파일 시스템(204)은 리라이팅된 레가시 셰어 경로를 트래버싱 하여, 재배치된 레가시 셰어의 저장소 위치를 가리키는 링크를 찾을 수 있다. 이런 경우, 분산 파일 시스템(204)은 단계 508에서 경로 리디렉터(208)를 호출함으로써 리라이팅된 레가시 셰어 경로를 트래버싱하여 찾은 임의의 링크를 리졸빙할 수도 있다. 이러한 링크는 Dfs, SMB, NetBIOS, NFS, NFSP 또는 다른 유형의 프로토콜을 포함하는 분산 파일 시스템 프로토콜에 의해 지원될 수 있는 임의의 종류의 경로를 가리킬 수 있다.
링크를 리졸빙함에 있어서, 단계 510에서 분산 파일 시스템은 재배치된 레가시 셰어의 저장소 위치의 셰어 경로를 가지고 응답할 수 있다. 그러면, 단계 512에서 클라이언트는 레가시 셰어를 액세스할 수 있다. 레가시 셰어로의 리디렉션에 관한 정보는 또한 데이터베이스에 기록될 수 있다. 재구성 서버의 일 실시예에서, 재배치된 저장소는 분리된 Dfs 네임스페이스에 구성될 수 있다. 이런 경우, 링크는 재구성된 레가시 셰어에 대응하는 네임스페이스의 경로를 포함할 수 있다. 유리하게도, 재구성 서버의 경로 리디렉터(208)는 반대로 새로운 네임스페이스로 그 경로를 리디렉션하고, 후에 그 저장소는 그 리디렉션이 새로운 Dfs 네임스페이스에 영향 없이 새로운 Dfs 네임스페이스 안에서 이동 혹은 재구성될 수 있다.
재구성 서버가 통합 서버일 수 있는 본 발명의 실시예로 돌아가면, 도 6은 도 4에 도시되고 앞서 설명된 바와 같이 다른 서버에서 통합된 레가시 셰어를 액세스하는 클라이언트를 일반적으로 나타내는 도면을 도시한다. 이 실시예에서, 클라이언트(602)는 통합 서버 CS(406)로 레가시 셰어 \\Mi\Sj에 대한 액세스 요청을 보낼 수 있다. 도 6의 제1 단계에서, 레가시 경로 \\Mi\Sj로 액세스하고자 하는 클라이언트는 DNS, NetBIOS, 또는 임의의 다른 이름 결정 프로토콜 중 하나를 통하여 통합 서버 CS(406)에 에일리어싱된 서버 이름 Mi를 리졸빙할 수 있다. 그 다음, 클라이언트는 SMB 프로토콜을 통해 통합 서버 CS(406)의 네트워크 주소로 접속할 수 있다. 클라이어트 및 서버는 레가시 셰어가 Dfs 셰어가 되는 것으로 협상할 수 있고, 그러면 클라이언트는 통합 서버 CS(406)에게 레가시 경로 \\Mi\Sj에 대한 생성 요청을 보낼 수 있다.
제2 단계에서, 경로 리라이터(206)가 사용 가능한 분산 파일 시스템(204)이 실행되는 통합 서버는 레가시 경로 \\Mi\Sj에 대한 생성 요청을 수신할 수 있다. 경로 리라이터가 사용 가능할 때 셰어에 대한 임의의 유형의 요청이 수신되면, 통합 서버 상의 분산 파일 시스템은 자동적으로 통합 서버 이름을 레가시 셰어의 임의의 경로의 앞에 첨부함으로써 그 경로를 리라이팅할 수 있다. 예를 들면, \\Mi\Sj의 경로 이름을 가지고 셰어의 요청을 수신할 때, 통합 서버의 분산 파일 시스템은 그 경로 이름으로 임의의 프로세싱을 수행하기 이전에 자동적으로 이 경로를 \\CS\\Mi\Sj로 리라이팅한다. 결과적으로, 통합 서버 CS는 \\CS\Mi 형태의 경로로 응답하거나, 또는 지역적으로 다루거나, 액세스할 수 있다. 경로 이름을 리라이팅한 후에, 통합 서버의 분산 파일 시스템은 그 리라이팅된 경로 이름으로 정규 프로세싱을 계속할 수 있다. 분산 파일 시스템(204)은 이러한 경로가 국부 루트에 대응하는 것을 알 수 있고, 그래서 국부 루트 Mi에 액세스할 수 있다. 일 실시예에서, 통합 서버가 리라이팅된 경로 \\CS\\Mi\Sj를 사용하는 임의의 루트를 발견할 수 없다면, 통합 서버는 클라이언트가 송신한 원래의 경로 \\Mi\Sj로 자동적으로 복귀시킬 수 있고, 이는 통합되지 않았던 국부 루트라고 가정할 수 있다.
제3 단계에서, 분산 파일 시스템은 레가시 셰어 경로 이름을 트래버싱하여, 파일 시스템(408)의 레가시 경로 \\Mi\Sj 내의 링크 Sj와 같은, 재배치된 레가시 셰어의 저장소 위치를 가리키는 링크를 찾아낼 수 있다. 일 실시예에서, 통합 서버 상의 SMB 서버는 레가시 셰어 경로를 트래버싱하여, Sj를 가리키는 리파스 포인트(reparse point)가 링크인 것을 발견하고, STATUS_PATH_NOT_COVERED와 같이, 클라이언트(602)에게 Sj가 링크라는 것을 알리는 메세지를 리턴할 수 있다. 제4 단계에서, 클라이언트(602)는 \\Mi\Sj의 위탁 메세지(referral message)를 통합 서버에게 보낼 수 있다. 메세지를 받으면, 그 다음 제5 단계에서 통합 서버 CS는 위탁 요청 경로 \\Mi\Sj를 \\CS\Mi\Sj로 리라이팅하고, 경로 리디렉터(208)를 사용하여 리라이팅된 경로 \\CS\Mi\Sj를 \\NS\Mi-Sj로의 링크에 매핑시키는 것을 결정할 수 있다. 하나의 경로 내에는 복수의 링크가 있을 수 있고 이러한 프로세스는 동일한 서버나 다른 서버에서, 경로 내에서 발견되는 각 링크에 대해서 반복될 수 있음을 유의한다. 일 실시예에서, 통합 서버가 리라이팅된 경로 \\CS\Mi\Sj를 사용하는 임의의 루트를 발견할 수 없다면, 통합 서버는 클라이언트가 송신한 원래 경로 \\Mi\Sj로 자동적으로 복귀시킬 수 있고, 이는 통합되지 않았던 국부 루트라고 가정할 수 있다.
제6 단계에서, 통합 서버는 통합된 레가시 셰어의 새로운 위치인 셰어 경로 \\NS\Mi-Sj로의 위탁으로 클라이언트에게 응답한다. 그러면, 클라이언트는 제7 단계에서 경로 \\NS\Mi-Sj를 액세스할 수 있다. 일 실시예에서, 클라이언트 기기는 통합된 레가시 셰어의 위치로의 위탁을 자동적으로 캐쉬할 수 있어, 클라이언트는, 임의의 추가적인 액세스를 위하여, 혹은 특정된 시간 동안을 위하여, 통합된 레가시 셰어의 위치를, 통합 서버를 통하거나 리디렉션을 요구할 필요없이, 직접적으로 액세스할 수 있다.
도 4 및 도 6이 하나의 통합 서버를 도시하고 있지만, 통합된 레가시 셰어의 이름 리디렉션를 수행할 수 있는 하나 이상의 통합 서버가 존재할 수 있다. 게다가, 일 실시예에서는, 도 7에서 도시하듯이 레가시 셰어들은 하나 이상의 다른 서 버에 위치할 수 있다. 도 7의 통합 서버(406)의 파일 시스템(408)은 레가시 셰어 이름 M1 내지 Mn의 국부 루트를 포함할 수 있는데, 그 각각의 루트는 해당 레가시 서버의 레가시 셰어가 복사되는 새로운 서버의 셰어 이름으로의 링크 Sj를 갖는다. 예를 들면, 통합 서버(406)의 파일 시스템(408)은 새로운 서버 1(702)의 파일 시스템(704)의 통합된 레가시 셰어 \\NS1\M1-Sj를 가리키는 링크 Sj 를 갖는 레가시 서버 이름 M1의 국부 루트를 포함한다. 마찬가지로, 통합 서버(406)의 파일 시스템(408)은 새로운 서버 N(710)의 파일 시스템(712)의 통합된 레가시 셰어 \\NSN\MN-Sj를 가리키는 링크 Sj를 갖는 레가시 서버 이름 MN의 국부 루트를 포함한다.
통합된 레가시 셰어로의 이름 리디렉션을 수행하는 것 외에도, 도 8에 도시된 다른 실시예에서 통합 서버는 서버 자신이 통합된 레가시 셰어의 서브셋을 직접 호스팅할 수 있다. 도 8의 통합 서버(406)의 파일 시스템(408)은 레가시 서버 이름 M1 내지 MN의 국부 루트를 포함할 수 있다. 레가시 서버 이름 M2 및 M3의 국부 루트를 제외하고, 국부 루트들 각각은 해당 레가시 서버의 레가시 셰어가 복사되는 새로운 서버의 셰어 이름으로의 링크 Sj를 갖는다. 이들 통합된 레가시 셰어에 대해, 통합 서버(406)은 이름 리디렉션을 수행할 수 있다. 예를 들면, 통합 서버(406)의 파일 시스템(408)은 새로운 서버 2(706)의 파일 시스템(708)의 통합된 레가시 셰어 \\NS2\M4-Sj를 가리키는 링크 Sj를 갖는 레가시 서버 이름 M4의 국부 루트를 포함한다. 그러나, 통합 서버(406)의 파일 시스템(408)은, 각각 셰어 이름 \\CS\M2-Sj 및 \\CS\M3-Sj 하에서, 통합된 레가시 셰어 \\M2\Sj 및 \\M3\Sj를 직접 호스팅할 수 있다. 통합 서버(406)는 이들 통합된 레가시 셰어의 이름 리디렉션도 수행할 수 있다. 본 기술 분야에서 숙련된 기술을 가진 자라면, 다른 실시예에서, 통합 서버가 독립적으로 통합된 셰어 전부를 호스팅할 수 있음을 알 수 있다.
상기 시스템 및 방법이 투명하게 저장소를 재구성할 뿐 아니라, 유리하게도 본 발명은 분산 파일 시스템에서 복수의 위치가 아닌 단일 위치에서 재구성된 레가시 셰어의 액세스 및 이용을 모니터링 할 수 있게 한다. 통합 서버가 레가시 셰어에 대한 요청을 감지하면, 분산 파일 시스템(204)은 데이터베이스 또는 로그 파일로 요청에 관한 정보를 기록할 수 있다. 액세스된 레가시 셰어 이름, 어느 클라이언트가 셰어로의 액세스를 요청했는지와 같은, 레가시 셰어로의 액세스에 관한 임의의 정보가 데이터베이스에 기록될 수 있다. 이러한 정보는 저장소 관리자가 레가시 셰어들의 활성화된 이용을 추적하여, 드물게 사용되는 임의의 셰어를 제거할 수 있도록 사용될 수 있다. 게다가, 저장소 관리자는 어느 사용자나 애플리케이션이 레가시 경로들을 액세스하는지를 매핑시키는 정보를 사용하여 저장소 관리자가 어느 애플리케이션이 새로운 경로 이름과 함께 갱신되야 하는지를 결정하거나, 다른 대안에서는, 어느 사용자가 새로운 경로 이름에 자신의 링크를 갱신하는 것을 통지할지를 결정할 수 있다.
이상의 자세한 설명으로부터 알 수 있는 바와 같이, 본 발명은 투명하게 저장소를 재구성하는 것에 대한 향상된 시스템 및 방법을 제공하여 클라이언트 또는 사용자가 레가시 셰어 이름을 사용하여 재구성된 저장소를 액세스할 수 있게 한다. 유리하게도, 문서, 웹 페이지, 및 애플리케이션들에 삽입된 레가시 이름들은 재배치된 레가시 셰어의 새로운 저장소 위치의 경로 이름으로 변경할 필요가 없고, 사용자는 재배치된 레가시 경로 이름을 사용하기 위해 트레이닝할 필요도 없다. 하나 이상의 레가시 서버로부터 저장소를 통합하는 것에 대해 설명한 상기 시스템 및 방법은 저장소를 재구성하는 것에 대한 본 발명을 사용할 수 있는 복수의 시스템 구성 중 일례로서 이해되어야 한다. 저장소를 재구성하는 것에 대한 다른 시스템 구성으로는 레가시 파일 셰어를 모놀리식 서버로부터 하나 이상의 더 소규모의 서버에 걸쳐 분산시킴으로써 모놀리식 서버를 교체하는 데 본 발명을 사용할 수 있는 분산 서버를 포함할 수 있다. 그러므로, 본 발명은 저장소를 다수의 서버로부터 소수의 서버로 통합시킬 뿐만 아니라 소수의 서버로부터 다수의 서버로 확장시키는 데에 사용될 수 있다. 또 다른 시스템 구성으로는, 레가시 서버의 레가시 파일 셰어를 교체 서버로 전송함으로써 레가시 서버를 교체 서버로 교체하는 시스템 및 방법을 사용할 수 있는 전송 서버를 포함할 수 있다. 게다가, 제공되는 시스템 및 방법은 융통성있고 확장 가능하여 경로 리라이팅 및 경로 리디렉션이 구현된 이름 결정 프로토콜 또는 파일 시스템을 사용하는 임의의 파일 시스템 또는 데이터 액세스 시스템이 사용될 수 있다. 더욱이, 본 발명에 의해 제공되는 리다이렉션은 셰 어 경로 이름, 서버 이름 및 파일 시스템 또는 데이터 액세스 프로토콜을 통해 일어난다. 그러므로, 이러한 접근 방법은, 예를 들면, 마이크로소프트 윈도우즈TM 셰어포인트 서버에서 저장소를 통합하는 데에 사용될 수 있다. 결과적으로, 본 시스템 및 방법은 동시대의 컴퓨팅에 필요한 상당한 이점 및 이익들을 제공한다.
본 발명은 다양한 수정 및 대안적인 구성을 수용하지만, 본 발명에 대한 특정하게 도시된 실시예가 도면에 도시되고 자세하게 상술되었다. 그러나, 본 발명은 개시된 특정 형태로 제한되도록 의도된 것이 아니라, 오히려, 본 발명의 사상 및 범주 내에 있는 모든 수정, 대안적인 구성 및 동등물을 포함하도록 의도된 것이라 이해되어야 한다.

Claims (40)

  1. 네트워크 내의 클라이언트들이 저장된 데이터를 상기 데이터의 원래 위치(original location)의 원래 경로 이름(original path name)을 사용하여 상기 데이터가 새로운 위치(new location)로 이동된 이후에 액세스할 수 있도록 저장소를 재구성(reorganizing)하고 상기 재구성된 저장소를 액세스하는 클라이언트-서버 컴퓨터 네트워크 내의 방법으로서, 상기 방법은,
    새로운 서버로 레가시 서버(legacy server)로부터의 레가시 셰어(legacy share)를 재배치(relocate)하는 단계;
    상기 새로운 서버로 상기 레가시 셰어의 내용(contents)을 복사하는 단계 - 상기 내용은 상기 레가시 서버상에 저장된 상기 레가시 셰어의 모든 데이터를 포함함 - ;
    상기 새로운 서버로 상기 레가시 셰어의 권한(permissions)을 복사하는 단계;
    상기 레가시 서버의 레가시 서버 이름을 위한 에일리어스(alias)를 생성하여, 수정되지 않은 레가시 서버 이름이 통합 서버(consolidation server)의 네트워크 주소로 리졸빙(resolving)되도록 하는 단계;
    상기 통합 서버상에 상기 레가시 서버 이름과 연관된 레가시 서버 루트(legacy server root)를 생성하는 단계;
    상기 새로운 서버상의 상기 레가시 셰어에 대응하는 상기 레가시 서버 루트상의 링크를 생성하는 단계;
    상기 통합 서버로 에일리어싱(aliasing)된 상기 레가시 서버의 이름을 리졸빙하는 단계;
    상기 레가시 셰어에 대한 클라이언트로부터의 요청을 상기 통합 서버에서 수신하는 단계 - 상기 요청은 원래의 수정되지 않은 레가시 셰어 경로를 특정함 - ;
    상기 요청에 관하여 정보를 로깅(logging)하는 단계 - 상기 정보는 상기 레가시 셰어의 이름과 상기 요청을 행한 클라이언트의 이름을 포함함 - ;
    상기 로깅된 정보를 통하여 상기 레가시 셰어의 활성화된 이용(active usage)을 추적하는 단계;
    상기 로깅된 정보와 상기 추적된 활성화된 이용에 기초하여, 상기 레가시 셰어를 사용 빈도에 기초하여 언제 제거(retire)시킬지를 결정하는 단계;
    상기 통합 서버가 상기 레가시 셰어 경로를 리라이팅(rewriting)하는 단계 - 상기 레가시 셰어 경로를 리라이팅하는 단계는 상기 통합 서버의 이름을 상기 레가시 셰어 경로의 앞에 첨부하여 경로 리라이터(path rewriter)가 상기 레가시 셰어 경로를 리라이팅하도록 호출(invoke)하는 단계를 포함함 -;
    상기 통합 서버가 상기 리라이팅된 레가시 셰어 경로를 트래버싱(traversing)하고 상기 리라이팅된 레가시 셰어 경로내의 링크들을 리졸빙하는 단계 - 상기 리라이팅된 레가시 셰어 경로내의 임의의 링크들을 리졸빙하는 단계는 상기 리라이팅된 레가시 셰어 경로내의 임의의 링크들을 리졸빙하도록 경로 리디렉터(path redirector)를 호출하는 단계를 포함함 - ; 및
    상기 통합 서버가 상기 경로 리디렉터에 의해 리졸빙된 상기 리라이팅된 레가시 셰어 경로내의 상기 임의의 링크들에 의해 지시되는 재배치된 레가시 셰어의 저장소 위치의 셰어 경로로 상기 클라이언트 요청에 대하여 응답하는 단계
    를 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  2. 제1항에 있어서,
    서버의 네트워크 주소로의 접속을 구축하기 위해, 상기 에일리어싱된 레가시 서버 이름을 리졸빙하는 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  3. 제1항에 있어서,
    상기 레가시 셰어 경로에 대한 액세스 요청을 상기 새로운 서버로 송신하는 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  4. 제1항에 있어서,
    상기 통합 서버와 상기 새로운 서버는 동일한 서버인, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  5. 제1항에 있어서,
    상기 리라이팅된 레가시 셰어 경로를 트래버싱(traversing)하면서 링크를 찾아내는(encountering) 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  6. 제1항에 있어서,
    상기 재배치된 레가시 셰어의 상기 저장소 위치의 상기 셰어 경로를 액세스하는 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  7. 제6항에 있어서,
    상기 재배치된 레가시 셰어의 상기 저장소 위치의 상기 셰어 경로를 액세스하는 단계는,
    상기 재배치된 레가시 셰어의 상기 저장소 위치의 네트워크 주소로 Dfs 생성 요청을 송신하는 단계
    를 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  8. 제6항에 있어서,
    상기 재배치된 레가시 셰어의 상기 저장소 위치의 상기 셰어 경로를 액세스하는 단계는
    분리된 Dfs 네임스페이스의 경로를 액세스하는 단계
    를 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  9. 제1항에 있어서,
    상기 리라이팅된 레가시 셰어 경로를 트래버싱하면서 Dfs 리파스 포인트(Dfs reparse point)를 찾아내는(encounter) 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  10. 제9항에 있어서,
    상기 레가시 셰어 경로가 링크를 포함한다는 것을 나타내는 메세지를 상기 클라이언트에게 리턴하는 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  11. 제10항에 있어서,
    상기 클라이언트로부터 위탁 경로(referral path)에 대한 위탁 요청 메세지를 수신하는 단계
    를 더 포함하는, 클라이언트-서버 컴퓨터 네트워크 내의 방법.
  12. 네트워크 내의 클라이언트들이 저장된 데이터를 상기 데이터의 원래 위치(original location)의 원래 경로 이름(original path name)을 사용하여 상기 데이터가 새로운 위치(new location)로 이동된 이후에 액세스할 수 있도록 저장소를 재구성(reorganizing)하고 상기 재구성된 저장소를 액세스하는 방법을 실행하는 컴퓨터 실행가능 명령어를 구비하는 컴퓨터 판독 가능 기록 매체로서, 상기 방법은,
    새로운 서버로 레가시 서버(legacy server)로부터의 레가시 셰어(legacy share)를 재배치(relocate)하는 단계;
    상기 새로운 서버로 상기 레가시 셰어의 내용(contents)을 복사하는 단계 - 상기 내용은 상기 레가시 서버상에 저장된 상기 레가시 셰어의 모든 데이터를 포함함 - ;
    상기 새로운 서버로 상기 레가시 셰어의 권한(permissions)을 복사하는 단계;
    상기 레가시 서버의 레가시 서버 이름을 위한 에일리어스(alias)를 생성하여, 수정되지 않은 레가시 서버 이름이 통합 서버(consolidation server)의 네트워크 주소로 리졸빙(resolving)되도록 하는 단계;
    상기 통합 서버상에 상기 레가시 서버 이름과 연관된 레가시 서버 루트(legacy server root)를 생성하는 단계;
    상기 새로운 서버상의 상기 레가시 셰어에 대응하는 상기 레가시 서버 루트상의 링크를 생성하는 단계;
    상기 통합 서버로 에일리어싱(aliasing)된 상기 레가시 서버의 이름을 리졸빙하는 단계;
    상기 레가시 셰어에 대한 클라이언트로부터의 요청을 상기 통합 서버에서 수신하는 단계 - 상기 요청은 원래의 수정되지 않은 레가시 셰어 경로를 특정함 - ;
    상기 요청에 관하여 정보를 로깅(logging)하는 단계 - 상기 정보는 상기 레가시 셰어의 이름과 상기 요청을 행한 클라이언트의 이름을 포함함 - ;
    상기 로깅된 정보를 통하여 상기 레가시 셰어의 활성화된 이용(active usage)을 추적하는 단계;
    상기 로깅된 정보와 상기 추적된 활성화된 이용에 기초하여, 상기 레가시 셰어를 사용 빈도에 기초하여 언제 제거(retire)시킬지를 결정하는 단계;
    상기 통합 서버가 상기 레가시 셰어 경로를 리라이팅(rewriting)하는 단계 - 상기 레가시 셰어 경로를 리라이팅하는 단계는 상기 통합 서버의 이름을 상기 레가시 셰어 경로의 앞에 첨부하여 경로 리라이터(path rewriter)가 상기 레가시 셰어 경로를 리라이팅하도록 호출(invoke)하는 단계를 포함함 -;
    상기 통합 서버가 상기 리라이팅된 레가시 셰어 경로를 트래버싱(traversing)하고 상기 리라이팅된 레가시 셰어 경로내의 링크들을 리졸빙하는 단계 - 상기 리라이팅된 레가시 셰어 경로내의 임의의 링크들을 리졸빙하는 단계는 상기 리라이팅된 레가시 셰어 경로내의 임의의 링크들을 리졸빙하도록 경로 리디렉터(path redirector)를 호출하는 단계를 포함함 - ; 및
    상기 통합 서버가 상기 경로 리디렉터에 의해 리졸빙된 상기 리라이팅된 레가시 셰어 경로내의 상기 임의의 링크들에 의해 지시되는 재배치된 레가시 셰어의 저장소 위치의 셰어 경로로 상기 클라이언트 요청에 대하여 응답하는 단계
    를 포함하는, 컴퓨터 판독 가능 기록 매체.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020040035968A 2003-05-21 2004-05-20 저장소를 재구성하는 컴퓨터 시스템, 분산 컴퓨팅 시스템, 컴퓨터 판독 가능 기록 매체, 저장소 재구성 방법, 재구성된 저장소 액세스 방법, 및 재구성된 저장소용의 컴퓨터 시스템 KR101169068B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US47250003P 2003-05-21 2003-05-21
US60/472,500 2003-05-21
US10/772,533 US7716187B2 (en) 2003-05-21 2004-02-05 System and method for transparent storage reorganization
US10/772,533 2004-02-05

Publications (2)

Publication Number Publication Date
KR20040101022A KR20040101022A (ko) 2004-12-02
KR101169068B1 true KR101169068B1 (ko) 2012-07-26

Family

ID=33101526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040035968A KR101169068B1 (ko) 2003-05-21 2004-05-20 저장소를 재구성하는 컴퓨터 시스템, 분산 컴퓨팅 시스템, 컴퓨터 판독 가능 기록 매체, 저장소 재구성 방법, 재구성된 저장소 액세스 방법, 및 재구성된 저장소용의 컴퓨터 시스템

Country Status (5)

Country Link
US (1) US7716187B2 (ko)
EP (1) EP1480117A3 (ko)
JP (1) JP5173110B2 (ko)
KR (1) KR101169068B1 (ko)
CN (1) CN100401286C (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973654B1 (en) 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7418507B2 (en) * 2003-12-18 2008-08-26 Microsoft Corporation Virtual resource serving of consolidated server shares
US7577640B1 (en) * 2004-03-31 2009-08-18 Avaya Inc. Highly available, highly scalable multi-source logical database with low latency
US7558859B2 (en) * 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
JP4795787B2 (ja) 2005-12-09 2011-10-19 株式会社日立製作所 ストレージシステム、nasサーバ、及びスナップショット方法
JP4908849B2 (ja) * 2006-01-11 2012-04-04 富士通セミコンダクター株式会社 ファイル削除方法、ファイル・オープン方法、ファイル削除プログラム、および、ファイル・オープン・プログラム
US7640247B2 (en) * 2006-02-06 2009-12-29 Microsoft Corporation Distributed namespace aggregation
US20080028319A1 (en) * 2006-07-27 2008-01-31 Aaron Roger Cox Console-Integrated Updatable Terms
CA2683402C (en) * 2007-04-10 2013-09-24 Apertio Limited Alias hiding in network data repositories
CN103200282B (zh) * 2007-04-10 2016-02-10 阿珀蒂奥有限公司 代表请求实体访问数据的系统
CN101587480B (zh) * 2008-05-21 2013-08-28 鸿富锦精密工业(深圳)有限公司 Notes文件分布式存储系统及方法
US20090313259A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Container handlers for sharing and unsharing
US10649961B2 (en) 2012-12-31 2020-05-12 Sandisk Technologies Llc System and method for selectively routing cached objects
US9235587B2 (en) * 2012-12-31 2016-01-12 Sandisk Technologies Inc. System and method for selectively routing cached objects
US10666513B2 (en) * 2017-05-03 2020-05-26 International Business Machines Corporation Filesystem share auto-detect
GB2575099B (en) * 2018-06-29 2022-10-05 Bae Systems Plc Load Controller
CN112274913B (zh) * 2020-10-27 2024-04-19 完美世界(重庆)互动科技有限公司 游戏服务器的合并方法及装置、存储介质、电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566328A (en) * 1995-01-23 1996-10-15 Tandem Computers Incorporated Reconstructing directory pathnames from file handles in a computer system
US6108649A (en) * 1998-03-03 2000-08-22 Novell, Inc. Method and system for supplanting a first name base with a second name base
US6385701B1 (en) * 1999-11-19 2002-05-07 International Business Machines Corporation Method, system and program products for sharing data between varied clients using token management
US6654830B1 (en) * 1999-03-25 2003-11-25 Dell Products L.P. Method and system for managing data migration for a storage system

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
US5237682A (en) * 1987-10-19 1993-08-17 International Business Machines Corporation File management system for a computer
US4888681A (en) * 1987-10-19 1989-12-19 International Business Machines Corporation Space management system for data files having shared access
US5701462A (en) * 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US5724512A (en) * 1995-04-17 1998-03-03 Lucent Technologies Inc. Methods and apparatus for storage and retrieval of name space information in a distributed computing system
US6189000B1 (en) * 1997-06-30 2001-02-13 Microsoft Corporation System and method for accessing user properties from multiple storage mechanisms
US6598038B1 (en) * 1999-09-17 2003-07-22 Oracle International Corporation Workload reduction mechanism for index tuning
EP1238335A1 (en) * 1999-12-07 2002-09-11 Data Foundation, Inc. Scalable storage architecture
US6460055B1 (en) * 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US6985901B1 (en) * 1999-12-23 2006-01-10 Accenture Llp Controlling data collection, manipulation and storage on a network with service assurance capabilities
US6195650B1 (en) * 2000-02-02 2001-02-27 Hewlett-Packard Company Method and apparatus for virtualizing file access operations and other I/O operations
US6850959B1 (en) * 2000-10-26 2005-02-01 Microsoft Corporation Method and system for transparently extending non-volatile storage
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US20020147929A1 (en) * 2001-04-10 2002-10-10 Rose Mark E. Access control for distributed content servers
US7752130B2 (en) * 2001-05-31 2010-07-06 Oracle America, Inc. Methods and systems for delivery of information upon enrollment in an internet bill presentment and payment environment
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
JP3776769B2 (ja) * 2001-08-08 2006-05-17 株式会社東芝 ファイルサーバシステムおよびその制御方法
US7065541B2 (en) * 2001-10-10 2006-06-20 International Business Machines Corporation Database migration
CN100383774C (zh) * 2001-10-30 2008-04-23 国际商业机器公司 网络上的多个计算机之间进行合作的方法、系统
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
US7065618B1 (en) * 2003-02-14 2006-06-20 Google Inc. Leasing scheme for data-modifying operations
US7346664B2 (en) * 2003-04-24 2008-03-18 Neopath Networks, Inc. Transparent file migration using namespace replication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566328A (en) * 1995-01-23 1996-10-15 Tandem Computers Incorporated Reconstructing directory pathnames from file handles in a computer system
US6108649A (en) * 1998-03-03 2000-08-22 Novell, Inc. Method and system for supplanting a first name base with a second name base
US6654830B1 (en) * 1999-03-25 2003-11-25 Dell Products L.P. Method and system for managing data migration for a storage system
US6385701B1 (en) * 1999-11-19 2002-05-07 International Business Machines Corporation Method, system and program products for sharing data between varied clients using token management

Also Published As

Publication number Publication date
EP1480117A3 (en) 2007-09-26
KR20040101022A (ko) 2004-12-02
CN1652102A (zh) 2005-08-10
JP2004348742A (ja) 2004-12-09
US20040243646A1 (en) 2004-12-02
US7716187B2 (en) 2010-05-11
CN100401286C (zh) 2008-07-09
EP1480117A2 (en) 2004-11-24
JP5173110B2 (ja) 2013-03-27

Similar Documents

Publication Publication Date Title
KR101169068B1 (ko) 저장소를 재구성하는 컴퓨터 시스템, 분산 컴퓨팅 시스템, 컴퓨터 판독 가능 기록 매체, 저장소 재구성 방법, 재구성된 저장소 액세스 방법, 및 재구성된 저장소용의 컴퓨터 시스템
US10587692B2 (en) Service and APIs for remote volume-based block storage
US6795835B2 (en) Migration of computer personalization information
US7730033B2 (en) Mechanism for exposing shadow copies in a networked environment
US9135257B2 (en) Technique for implementing seamless shortcuts in sharepoint
KR101075388B1 (ko) 복수의 네트워크 주변장치 드라이버들의 컴포넌트들을 유지보수하기 위한 방법, 시스템, 및 컴퓨터 판독가능 기록 매체
US7243089B2 (en) System, method, and service for federating and optionally migrating a local file system into a distributed file system while preserving local access to existing data
US6988101B2 (en) Method, system, and computer program product for providing an extensible file system for accessing a foreign file system from a local data processing system
CN1773509B (zh) 计算机文件系统
JP4613023B2 (ja) プロトコル独立型クライアント側キャッシュ(protocol−independentclient−sidecaching)システムおよび方法
US20150039658A1 (en) Encapsulated file management systems
JP2008033912A (ja) Nas向けのcdpの方法および装置
JP2007503658A (ja) 共有読み出し専用ファイルシステムにおけるウイルス検出及び警報
US20090063562A1 (en) Importing and Reconciling Resources From Disjoint Name Spaces to a Common Namespace
US20090198704A1 (en) Method for automated network file and directory virtualization
US6125373A (en) Identifying a driver that is an owner of an active mount point
US8332844B1 (en) Root image caching and indexing for block-level distributed application management
US7107272B1 (en) Independent distributed metadata system and method
CN113811867B (zh) 用于文件系统中的文件的硬链接操作
US7167867B1 (en) Self-describing file system
US20080163264A1 (en) Directory Service that Provides Information from a Plurality of Disparate Data Sources
WO2004097591A2 (en) Personal computing environment system using mozilla
CN1813253A (zh) 对共享的只读文件系统中的病毒的检测和报警
Gupta Mastering Oracle GoldenGate
Hancock Tru64 Unix file system administration handbook

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee