KR20220147627A - 저장 영역 네트워크에서의 호스트 개시 링크 재설정 - Google Patents

저장 영역 네트워크에서의 호스트 개시 링크 재설정 Download PDF

Info

Publication number
KR20220147627A
KR20220147627A KR1020227033101A KR20227033101A KR20220147627A KR 20220147627 A KR20220147627 A KR 20220147627A KR 1020227033101 A KR1020227033101 A KR 1020227033101A KR 20227033101 A KR20227033101 A KR 20227033101A KR 20220147627 A KR20220147627 A KR 20220147627A
Authority
KR
South Korea
Prior art keywords
link
san
buffer credit
host
imbalance
Prior art date
Application number
KR1020227033101A
Other languages
English (en)
Inventor
스티븐 로버트 귄더트
파스콸레 에이. 카탈라노
마이클 제임스 베흐트
크리스토퍼 제이. 콜론나
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20220147627A publication Critical patent/KR20220147627A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
    • H04L41/0672
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Read Only Memory (AREA)

Abstract

본 실시예들은 저장 영역 네트워크(Storage Area Network : SAN)에서 호스트 개시 링크 재설정을 수행한다. 본 실시예들은 SAN과 통신하는 호스트에 의해 SAN의 각 링크를 식별하는 단계를 포함한다. 각 링크는 한 쌍의 포트들에 의해 정의된다. 또한, 실시예들은 호스트에 의해 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 얻고, 호스트에 의해 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하는 단계를 포함한다. 실시예들은 링크에 대한 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 링크의 재설정을 일으키는 단계를 더 포함한다.

Description

저장 영역 네트워크에서의 호스트 개시 링크 재설정
[0001] 본 발명은 일반적으로 SAN(Storage Area Network)에 관한 것으로, 보다 구체적으로는 SAN에서 호스트 개시 링크 재설정(host initiated link reset)에 관한 것이다.
[0002] SAN이 정상적으로 작동하는 동안, 승인(acknowledgments)을 포함한 파이버 채널 프레임(fibre channel frames)이 전송 중에 손상될(corrupted) 수 있다. 이러한 손상은 광학 장치 고장, 불량 케이블, 느슨한 연결, 허용 오차 범위를 벗어나는 광학 버짓(optical budgets), 간헐적인 하드웨어 오작동 등으로 인해 발생할 수도 있다.
[0003] 파이버 채널 연결의 수신 측이 수신 프레임의 헤더에서 프레임 시작(Start Of Frame : SOF)을 인식할 수 없는 경우에 수신기는 적절한 승인으로 응답하지 않는다. 일례로, 발신자는 프레임을 전송할 때 사용 가능한 버퍼 크레딧(buffer credit)을 1만큼 감소시키지만 해당 확인을 수신하지 않는다. 결과적으로, 버퍼 크레딧에 있어서 발신자와 수신자 간의 동기화가 왜곡된다. 이 상황이 발생하면 계속해서 사용 가능한 것으로 인식되는 버퍼 크레딧 수가 성능에 영향을 미치는 지점까지 점진적으로 감소하거나 심지어 링크 전송이 완전히 중지될 수도 있다.
[0004] 현재, 파이버 채널 표준(fibre channel standards)에서 제공하는 버퍼 크레딧 복구 메커니즘(buffer credit recovery mechanisms)은 발신자와 수신자 간의 버퍼 크레딧 동기화 오류가 발생하지 않도록 시도한다. 표준은 버퍼 크레딧 복구의 두 가지 모드, 1) 링크 재설정 및 2) 크레딧을 단순히 보충하는 계산을 지원한다.
그러나 두 가지 버퍼 크레딧 복구 모드는 스위치와 같은 네트워크 장치에 의해 독점적으로 수행되며, 또한 스위치 포트(switch ports)에 대해서만 수행된다.
[0005] 본 발명의 실시예는 저장 영역 네트워크(SAN)에서 호스트 개시 링크 재설정을 수행하기 위한 컴퓨터 구현 방법에 관한 것이다. 본 컴퓨터 구현 방법의 비제한적인 예는 SAN과 통신하는 호스트에 의해 SAN의 각 링크를 식별하는 단계를 포함하며, 여기서, 각 링크는 한 쌍의 포트들에 의해 정의된다. 이 방법은, 또한, 호스트에 의해 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 단계와, 호스트에 의해 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하는 단계를 포함한다. 이 방법은 링크에 대한 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 링크의 재설정을 일으키는 단계를 더 포함한다.
[0006] 본 발명의 실시예들은 SAN(Storage Area Network)에 관한 것이다. 본 SAN의 비제한적인 예는 하나 이상의 네트워크 장치들(network devices)과, 상기 하나 이상의 네트워크 장치들 중 적어도 하나에 각각 결합된(coupled) 복수의 종단 장치들(end devices)을 포함한다. 상기 복수의 종단 장치들 중 하나는 상기 SAN의 각 링크를 식별하도록 구성된(configured) 호스트 장치이고, 여기서 각 링크는 한 쌍의 포트들에 의해 정의된다. 상기 호스트 장치는, 상기 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 얻고, 상기 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하도록 구성된다. 상기 호스트 장치는, 링크에 대한 상기 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 상기 링크의 재설정을 일으키도록 더 구성된다.
[0007] 본 발명의 실시예는 저장 영역 네트워크(SAN)에서 호스트 개시 링크 재설정을 수행하기 위한 컴퓨터 프로그램 제품에 관한 것으로, 이 컴퓨터 프로그램 제품은 프로그램 명령들을 내포하는 컴퓨터 판독 가능 저장매체를 포함한다. 프로그램 명령들은 프로세서가 방법을 수행하도록 하기 위해 프로세서에 의해 실행 가능하다. 본 방법의 비제한적인 예는 상기 SAN과 통신하는 호스트에 의해 상기 SAN의 각 링크를 식별하는 단계를 포함하고, 여기서, 각 링크는 한 쌍의 포트들에 의해 정의된다. 이 방법은 또한 상기 호스트에 의해 상기 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 단계와, 상기 호스트에 의해 상기 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하는 단계를 포함한다. 이 방법은 링크에 대한 상기 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 상기 링크의 재설정을 일으키는 단계를 더 포함한다.
[0008] 추가적인 기술적 특징 및 이점은 본 발명의 기술을 통해 실현된다. 본 발명의 실시예 및 양태는 본 명세서에서 상세하게 설명되며 청구된 바의 일부로 간주된다. 더 나은 이해를 위해 상세한 설명과 도면을 참조한다.
[0005] 본 발명의 실시예는 저장 영역 네트워크(SAN)에서 호스트 개시 링크 재설정을 수행하기 위한 컴퓨터 구현 방법에 관한 것이다. 컴퓨터 구현 방법의 비제한적인 예는 SAN과 통신하는 호스트에 의해 SAN의 각 링크를 식별하는 단계를 포함하며, 여기서, 각 링크는 한 쌍의 포트들에 의해 정의된다. 이 방법은, 또한, 호스트에 의해 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 단계와, 호스트에 의해 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하는 단계를 포함한다. 이 방법은 링크에 대한 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 링크의 재설정을 일으키는 단계를 더 포함한다.
[0009] 여기에 설명된 배타적 권리의 세부 사항은 명세서의 결론에 있는 청구 범위에서 특히 지적되고 명확하게 주장된다. 본 발명의 실시예의 상기 및 기타 특징 및 이점은 첨부 도면과 관련하여 기재된 다음의 상세한 설명으로부터 명백하다.
[0010] 도 1은 본 발명의 실시예에 따른 컴퓨터 시스템의 개략도이다.
[0011] 도 2는 본 발명의 실시예에 따른 저장 영역 네트워크(storage area network)의 개략도이다.
[0012] 도 3은 본 발명의 실시예에 따른, 저장 영역 네트워크에서 호스트 개시 링크 재설정을 수행하기 위한 방법의 흐름도이다.
[0013] 도 4는 본 발명의 다른 실시예에 따른, 저장 영역 네트워크에서 호스트 개시 링크 재설정을 수행하기 위한 방법의 흐름도이다.
[0014] 본 명세서에 도시된 다이어그램은 예시적이다. 본 발명의 정신을 벗어나지 않고도 도면 또는 거기에 설명된 동작에 대한 많은 변형이 있을 수 있다. 예를 들어 작업을 다른 순서로 수행하거나 작업을 추가, 삭제 또는 수정할 수 있다. 또한, "결합된(coupled)"이라는 용어 및 그 변형은 2개의 요소들(elements) 사이에 통신 경로(communications path)를 갖는 것을 의미하며(describes), 요소 사이에 개재 요소나 연결(intervening elements/connections)이 없이 요소들 사이의 직접적인 연결을 의미하지는 않는다. 이러한 모든 변형은 사양의 일부로 간주된다.
[0015] 예시적인 실시예는 저장 영역 네트워크(storage area network) (SAN)에서 호스트 개시 링크 재설정을 수행하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 포함한다. 예시적인 실시예에서, SAN에 연결된 호스트 장치(host device)는 채널 포트들(channel ports)과 스위치 포트들(switch ports)을 포함하는, SAN의 모든 포트에서 사용 가능한 것으로 보고된 버퍼 크레딧들(buffer credits)을 감시하도록 구성된다. 링크(link)의 양쪽 끝에 있는 두 포트 사이의 버퍼 크레딧 임밸런스(buffer credit imbalance)이 임계값(threshold value)을 초과한다고 결정될(determined) 때에, 호스트 장치는 SAN에서 링크 재설정을 일으키도록 추가로 구성된다. 링크 재설정은 링크의 두 포트에 대한 버퍼 크레딧 카운터(buffer credit counters)를 전체 기본값(full default value)으로 돌아가도록 한다.
[0016] 이제 도 1을 참조하면, 컴퓨터 시스템(100)이 실시예에 따라 일반적으로 도시되어 있다. 컴퓨터 시스템(100)은, 본 명세서에 기술된 바와 같이 다양한 통신 기술들을 이용하는 컴퓨팅 장치들(computing devices) 및 네트워크들의 임의의 개수 및 조합을 포함하고/포함하거나 채용하는 전자적 컴퓨터 프레임워크(electronic, computer framework)일 수 있다. 컴퓨터 시스템(100)은 다른 서비스로 변경하거나 일부 기능을 다른 것들로부터 독립적으로 재구성할 수 있는 능력으로 쉽게 확장 가능하고(scalable), 연장 가능하고(extensible), 모듈화될(modular) 수 있다. 컴퓨터 시스템(100)은, 예를 들어, 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터 또는 스마트폰일 수도 있다. 일부 예에서, 컴퓨터 시스템(100)은 클라우드 컴퓨팅 노드(cloud computing node)일 수 있다. 컴퓨터 시스템(100)은 컴퓨터 시스템에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 시스템 실행 가능 명령들(computer system executable instructions)의 일반적인 맥락에서 설명될 수 있다. 일반적으로 프로그램 모듈(program modules은 특정 작업을 수행하거나 특정 추상 자료형들(abstract data types)을 구현하는 루틴들(routines), 프로그램들(programs), 개체(objects), 구성 요소들(components), 논리(logic), 자료 구조들(data structures) 등을 포함할 수 있다 컴퓨터 시스템(100)은 통신 네트워크를 통해 연결된 원격 처리 장치들(remote processing devices)에 의해 작업이 수행되는 분산 클라우드 컴퓨팅 환경들(distributed cloud computing environments)에서 실행될 수도 있다. 분산 클라우드 컴퓨팅 환경에서 프로그램 모듈들은 메모리 저장장치들을 포함하는 지역(local) 및 원격(remote) 컴퓨터 시스템 저장매체 모두에 위치할 수도 있다.
[0017] 도 1에 도시된 바와 같이, 컴퓨터 시스템(100)은 하나 이상의 중앙 처리 장치들(central processing units : CPU(s)) (101a, 101b, 101c) 등(집합적으로 또는 통칭하여 프로세서(101)를 갖는다. 프로세서(101)는 단일 코어 프로세서(single-core processor), 다중 코어 프로세서(multi-core processor), 컴퓨팅 클러스터(computing cluster), 또는 임의의 개수의 다른 구성들(configurations)일 수 있다. 처리 회로라(processing circuits)고도 하는 프로세서(101)는 시스템 버스(102)를 통해 시스템 메모리(103) 및 다양한 다른 구성요소(components)에 연결된다(coupled). 시스템 메모리(103)는 읽기 전용 메모리(read only memory : ROM)(104) 및 랜덤 액세스 메모리(random access memory : RAM)(105)를 포함할 수 있다. ROM(104)은 시스템 버스(102)에 연결되고(coupled) 컴퓨터 시스템(100)의 특정 기본 기능을 제어하는 BIOS(Basic Input/Output System)를 포함할 수도 있다. RAM은 프로세서(101)에 의한 사용을 위해 시스템 버스(102)에 연결된 읽기-쓰기 메모리(read-write memory)이다. 시스템 메모리(103)는 동작 동안 상기 명령의 동작을 위한 임시 메모리 공간을 제공한다. 시스템 메모리(103)는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리, 플래시 메모리, 또는 임의의 다른 적절한 메모리 시스템을 포함할 수 있다.
[0018] 컴퓨터 시스템(100)은 시스템 버스(102)에 연결된 입출력 어댑터(input/output (I/O) adapter)(106) 및 통신 어댑터(communications adapter)(107)를 포함한다. I/O 어댑터(106)는 하드 디스크(hard disk)(108) 및/또는 임의의 다른 유사한 구성요소와 통신하는 SCSI(Small Computer System Interface) 어댑터일 수도 있다. I/O 어댑터(106) 및 하드 디스크(108)는 여기에서 집합적으로 대용량 저장장치(110)로 지칭된다.
[0019] 컴퓨터 시스템(100)에서 실행하기 위한 소프트웨어(111)는 대용량 저장장치(110)에 저장될 수도 있다. 대용량 저장장치(110)는 프로세서(101)에 의해 판독 가능한 실재의 저장매체의 한 예인데, 여기서, 다양한 도면과 관련하여 이하에서 설명되는 바와 같이, 소프트웨어(111)는 프로세서(101)에 의한 실행을 위한 명령로서 저장된다. 컴퓨터 프로그램 제품의 예와 그러한 명령의 실행은 본 명세서에서 더 자세히 논의된다. 외부 네트워크(interconnects)일 수도 있는 네트워크(112)와 시스템 버스(102)를 통신 어댑터(107)는 상호 연결하여(interconnects) 컴퓨터 시스템(100)이 동종의 다른 시스템들(other such systems)과 통신할 수 있게 한다. 실시예에서, 시스템 메모리(103) 및 대용량 저장장치(110)의 일부는, IBM 회사(Corporation)의 z/OS 또는 AIX 운영 체제와 같은 임의의 적절한 운영 체제일 수도 있는 운영 체제를 집합적으로 저장하여, 도 1에 도시된 다양한 구성요소의 기능을 조정한다.
[0020] 추가 입출력 장치는 디스플레이 어댑터(115)와 인터페이스 어댑터(116)를 통해 시스템 버스(102)에 연결된 것으로 도시되어 있다. 실시예에서, 어댑터들(106, 107, 115, 116)은 중간 버스 브리지(도시되지 않음)를 통해 시스템 버스(102)에 연결된 하나 이상의 I/O 버스에 연결될 수도 있다. 디스플레이(119)(예를 들어, 스크린 또는 디스플레이 모니터)는 디스플레이 어댑터(115)에 의해 시스템 버스(102)에 연결되며, 이는 그래픽 집약적 애플리케이션들(graphics intensive applications)의 성능을 개선하기 위한 그래픽 컨트롤러 및 비디오 컨트롤러를 포함할 수도 있다. 키보드(121), 마우스(122), 스피커(123) 등은 인터페이스 어댑터(116)를 통해 시스템 버스(102)에 상호 연결될 수 있다. 이는, 예들 들어, 여러 장치 어댑터들을 단일 집적 회로에 통합하는 슈퍼 I/O 칩(Super I/O chip)을 포함할 수 있다. 하드 디스크 컨트롤러들, 네트워크 어댑터들 및 그래픽 어댑터들과 같은 주변 장치들을 연결하는 데에 적합한 I/O 버스들에는 일반적으로 PCI(Peripheral Component Interconnect)와 같은 공통 프로토콜들이 포함된다. 그러므로 도 1에 도시된 바와 같이, 컴퓨터 시스템(100)은 프로세서(101) 형태의 처리 용량, 시스템 메모리(103)와 대용량 저장장치(110)를 포함하는 저장 능력, 키보드(121)와 마우스(122)와 같은 입력 수단 및 스피커(123)와 디스플레이(119)를 포함하는 출력 능력을 가진다.
[0021] 일부 실시예에서, 통신 어댑터(107)는 무엇보다도 인터넷 소형 컴퓨터 시스템 인터페이스(internet small computer system interface)와 같은 임의의 적절한 인터페이스 또는 프로토콜을 사용하여 데이터를 전송할 수 있다. 네트워크(112)는 특히 셀룰러 네트워크(cellular network, 무선 네트워크(radio network), WAN(Wide Area Network), LAN(Local Area Network) 또는 인터넷일 수도 있다. 외부 컴퓨팅 장치는 네트워크(112)를 통해 컴퓨터 시스템(100)에 연결할 수도 있다. 일부 예에서, 외부 컴퓨팅 장치(external computing device)는 외부 웹서버(external web-server) 또는 클라우드 컴퓨팅 노드일 수도 있다.
[0022] 도 1의 블록 다이어그램(block diagram)은 컴퓨터 시스템(100)이 도 1에 도시된 모든 구성요소들을 포함해야 한다는 것을 나타내는 것이 아님을 이해해야 한다. 오히려, 컴퓨터 시스템(100)은 도 1에 도시되지 않은 임의의 적절한 더 적거나 추가적인 구성요소를 포함할 수 있다 (예를 들어, 추가 메모리 구성요소들(additional memory components), 임베디드 컨트롤러들(embedded controllers), 모듈들(modules), 추가 네트워크 인터페이스들(additional network interfaces) 등). 또한, 컴퓨터 시스템(100)과 관련하여 본 명세서에 설명된 실시예는 임의의 적절한 로직(logic)으로 구현될 수도 있으며, 여기서 본 명세서에 언급된 로직은 임의의 적절한 하드웨어(예를 들어, 무엇보다도 프로세서, 임베디드 컨트롤러, 또는 애플리케이션 특정 집적 회로(application specific integrated circuit)), 소프트웨어(예를 들어, 무엇보다도 애플리케이션), 펌웨어(firmware), 또는 다양한 실시예에서 하드웨어, 소프트웨어 및 펌웨어의 임의의 적절한 조합을 포함할 수 있다.
[0023] 도 2는 실시예에 따른 SAN(Storage Area Network)(200)의 도면이다. SAN(200)은, 스위치와 같은 하나 이상의 네트워크 장치들(230)에 각각 연결된 복수의 종단 장치들(end devices)(210, 220)을 포함한다. 네트워크 장치(230)는 메모리 회로 및 처리 회로(processing circuitry)(예를 들어, 감시 회로(monitoring circuitry) 및 제한 회로(limiting circuitry) 포함)를 포함한다. SAN(200)의 네트워크 토폴로지(network topology)는, 네트워크 장치(230)가 스위치인 스위치 패브릭(switched fabric)일 수 있다. 일부 실시예에서, 특정 스위치(230)는 스위치 모드 또는 N-포트 ID 가상화(N-port ID virtualization : NPIV) 모드로 설정될 수도 있다. 예시적인 실시예에서, SAN 장치(210)의 종단 장치들(210, 220) 중 적어도 하나는 호스트 장치(210)로서 구성된다. 일 실시예에서, 호스트 장치(210)는 도 1에 도시된 것과 같은 컴퓨터 시스템에 임베드된다.
[0024] 예시적인 실시예에서, 네트워크 장치들(230) 각각은 링크들(225)을 통해 다양한 종단 장치들(210, 220)에 네트워크 장치들(230)을 연결하는 복수의 포트들을 포함한다. 또한, 각각의 종단 장치(210, 220)는 하나 이상의 네트워크 장치들(230) 또는 다른 종단 장치들(220)에 종단 장치들을 연결하는 하나 이상의 포트들을 포함한다. 예시적인 실시예에서, 각각의 링크(225)는 링크(255)에 연결된 2개의 포트에 의해 정의된다. 종단 장치들(220, 210)의 포트들은 채널 포트들로 지칭되며, 네트워크 장치들(230)의 포트들은 스위치 포트들로 지칭된다.
[0025] 예시적인 실시예에서, 네트워크 장치(230)는 FC(Fibre Channel) 및/또는 FCoE(Fibre Channel over Ethernet) 프로토콜을 지원한다. 예를 들어, 특정 고정 포트 네트워크 장치(fixed port network device)는 FC 프로토콜 및/또는 FCoE 프로토콜을 지원할 수도 있다. 다른 예로서, 특정 네트워크 장치가 복수의 라인 카드들(line cards)을 포함하는 경우에는, 그 중 적어도 일부는 FC 프로토콜을 지원할 수 있고/있거나, 적어도 일부는 FCoE 프로토콜을 지원할 수 있다. 특정 네트워크 장치(230) 상의 특정 포트는 기본적으로(by default) 또는 구성된 대로(as configured)(예를 들어, 특정 포트가 범용 포트인 경우) FC 프로토콜 또는 FCoE 프로토콜을 지원할 수도 있음에 유의한다. 선택적으로, 네트워크 장치(230)는, 예를 들어, 관리 장치(management device)(210)의 출력용 정보를 수집하기 위한 SNMP(Simple Network Management Protocol)와 같은 하나 이상의 다른 프로토콜들을 지원한다.
[0026] 이제 도 3을 참조하면, 본 발명의 실시예에 따른, 저장 영역 네트워크에서 호스트 개시 링크 재설정을 수행하기 위한 방법(300)의 흐름도가 도시되어 있다. 블록(302)에 도시된 바와 같이, 방법(300)은 SAN과 통신하는(in communication with) 호스트에 의해 SAN의 각 링크를 식별하는 단계를 포함한다. 예시적인 실시예에서, SAN의 각 링크는 한 쌍의 포트들에 의해 정의되며, 이는 채널 포트와 스위치 포트 중 하나이거나, 스위치 간 링크(inter-switch links)의 경우, 두 개의 스위치 포트들일 수 있다. 방법(300)은 또한, 블록(304)에 도시된 바와 같이, 호스트에 의해 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 단계를 포함한다. 다음으로, 블록(306)에 도시된 바와 같이, 방법(300)은 호스트에 의해 SAN의 각 포트에 대한 버퍼 크레딧 임밸런스를 계산하는 단계를 포함한다. 실시예에서, 버퍼 크레딧 임밸런스는 링크의 두 포트의 버퍼 크레딧 밸런스 사이의 차이를 결정함으로써 계산된다. 다른 실시예에서는, 버퍼 크레딧 임밸런스는 링크의 두 포트의 버퍼 크레딧 밸런스 사이의 백분율 차이를 결정함으로써 계산된다.
[0027] 방법(300)은 또한, 결정 블록(decision block)(308)에 도시된 바와 같이, 링크에 대한 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 단계를 포함한다. 링크에 대한 버퍼 크레딧 임밸런스가 임계값을 초과하는 경우에 방법(300)은 블록(310)으로 진행하여 링크의 재설정을 일으킨다. 그렇지 않으면, 방법(300)은 블록(304)으로 돌아간다. 예시적인 실시예에서, 임계값은 호스트 장치의 사용자에 의해 설정된다. 예시적인 실시예에서, SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 것은 주기적으로 수행된다. 예를 들어, 실시예에서, 호스트 장치는 15분마다 또는 호스트 장치의 사용자에 의해 설정된 다른 소정의 간격으로 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 얻도록 구성된다.
[0028] 일 실시예에서, 링크에 대한 버퍼 크레딧 임밸런스가 임계값을 초과한다는 결정은 포트 쌍의 각 포트에 대한 버퍼 크레딧 밸런스 간의 차이가 소정의 수보다 크다는 결정을 포함한다. 일례에서, 제1 포트 및 제2 포트에 의해 정의되는 링크 및 제1 포트에 대한 버퍼 크레딧 밸런스는 8이고 제1 포트에 대한 버퍼 크레딧 밸런스는 5이다. 임계값이 2이면 링크가 재설정된다. 그러나 임계값이 3이면 이때는 링크는 재설정되지 않는다.
[0029] 다른 실시예에서, 임계값은 소정의 백분율이고 버퍼 크레딧 임밸런스는 링크의 포트 쌍의 더 큰 버퍼 크레딧 밸런스를 링크의 포트 쌍의 더 작은 버퍼 크레딧 밸런스로 나누고 1을 빼서 계산된다. 일례로, 링크는 첫 번째 포트와 두 번째 포트에 의해 정의되고 첫 번째 포트에 대한 버퍼 크레딧 밸런스는 8이고, 첫 번째 포트에 대한 버퍼 크레딧 밸런스는 5이며, 임계값은 50퍼센트 또는 0.5이다. 이 예에서 링크에 대한 버퍼 크레딧 임밸런스는 (8/5) - 1 = 0.6으로 계산되므로 링크가 재설정된다.
[0030] 예시적인 실시예에서, 일단 링크가 재설정될 필요가 있다고 결정되면, 링크를 재설정하기 위해 취해진 조치는 링크를 정의하는 포트들의 유형에 따라 다르다. 실시예에서, 링크에 대한 한 쌍의 포트들 중 적어도 하나가 채널 포트라는 결정에 기초하여, 호스트 장치는 링크를 재설정하라는 명령을 채널 포트에 발행함으로써 링크를 재설정되도록 한다. 다른 실시예에서, 포트 쌍 중 어느 것도 채널 포트가 아니라는 결정에 기초하여, 호스트 장치는 링크의 재설정을 수행하도록 링크와 연관된(associated) SAN의 네트워크 장치에 지시함으로써 링크가 재설정되게 한다. 일 실시예에서, 명령은 CUP(Control Unit Protocol)를 사용하여 네트워크 장치로 전송된다.
[0031] 예시적인 실시예에서, SAN은 노드들 사이의 통신을 위해 파이버 채널들(fibre channels)을 활용한다. 파이버 채널들은 프레임이라고 하는 데이터 패킷들을 보내도록 구성되며 여기에는 프레임 시작(SOF) 또는 프레임 끝(EOF)을 구분하는 프레임 구분 기호가 포함된다. 전송 포트에서의 원시 신호-표현 이벤트들(Primitive signals-represent events)은 승인 신호(acknowledgment signal)(R_RDY) 및 버퍼 간 상태 변경(buffer-to-buffer state change)(BB_SC) 신호를 포함한다. BB_RDY_N 변수는 수신된 R_RDY 프리미티브 수(count of R_RDY primitives)를 유지하는 데에 공통적으로 사용되며, BB_FRM_N은 수신된 프레임 수(count of frames)를 유지한다. BB_SC_N(Buffer to Buffer State Change Number)은 BB_SCs 프리미티브 신호 간의 프레임 수와 BB_SCr 프리미티브 신호 간의 R_RDY 수(number of R_RDYs)를 지정하는 값을 반영한다. 손실된 R_RDY가 있는지 연결된(attached) 포트에서 결정할 수 있도록 BB_SCr(Buffer to Buffer State Change-R_RDY) 신호가 주기적으로 전송된다. 손실된 프레임이 있는지 연결된 포트에서 결정할 수 있도록 BB_SC(Buffer to Buffer State Change-SOF) 신호가 전송된다.
[0032] 예시적인 실시예에서, BB_SC_N(Buffer to Buffer state change number)은 두 포트들 사이의 링크에 대한 합의된 버퍼 크레딧 최대값을 추적하는 데 사용된다. 예를 들어, 두 개의 포트들이 연결되어 있는 경우에는 로그인(FLOGI 또는 PLOGI) 동안, 포트들은 링크 매개변수들의 교환 (exchange link parameters : ELP)을 수행하고 해당 값을 전달하는 내부 링크 서비스(internal link services : ILS) 프레임을 서로 보낸다. 두 포트들 서로 다른 값을 가지면, 두 값 중 더 큰 값이 두 포트에서 모두 사용된다. 전형적으로, BB_SC_N은 1부터 15까지의 범위를 가진다. 예시적인 실시예에서, 변수 F는 BB_SC들 사이에서 전송될 프레임의 수와 BB_SCr 프리미티브 신호들 사이에서 전송되는 R_RDY의 수를 지정하는 데에 사용된다. 실시예에서, F는 2BB_SC_N으로 정의된다. 즉, 체크포인트들을 설정하기 위해, F개의 프레임마다 BB_SCs 신호가 전송되고 F개의 R_RDY마다 BB_SCr이 전송된다. 한 예에서 BB_SC_N = 3, => F = 8이다. 이 예에서 각 포트는 버퍼 대 버퍼 흐름 제어(buffer to buffer flow control)의 대상이 되는 매 8 프레임 후에 BB_SC를 보내고, 각 포트는 매 8 R_RDY 후에 BB_SCr을 보낸다.
[0033] 예시적인 실시예에서, 각 포트는 로그인 완료와 첫 번째 BB_SC들의 수신 사이에 수신되는 프레임 수, 예를 들어 BB_FRM_N의 카운트(count)를 유지한다. 또한, 각 포트는 BB_SC들의 연속적 발생 횟수(count between successive occurrences of BB_SCs)도 유지한다. 프레임 수의 카운트가 F에 도달하면 0으로 돌아가서(wraps back) 다시 시작한다. 그러나 BB_SC들이 도착할 때에 카운터가 0이 아닌 경우에는 하나 이상의 프레임이 손실되었음을 의미한다.
[0034] 예시적인 실시예에서, 각 포트는 로그인 완료와 첫 번째 BB_SCr의 수신 사이에 수신되는 R_RDY들의 수, 예를 들어, BB_RDY_N의 카운트를 유지한다. 또한, 각 포트는 BB_SCr의 연속적 발생 횟수(count between successive occurrences of BB_SCr)를 유지한다. R_RDY들의 수의 카운트가 계산 값(computed value) F에 도달하면, 0으로 돌아가서(wraps back) 다시 시작된다. 그러나 BB_SCr이 수신될 때에 수신된 R_RDY들의 개수가 0이 아닌 경우에는 하나 이상의 R_RDY들이 손실된 것이다.
[0035] 도 4는 본 발명의 다른 실시예에 따라 저장 영역 네트워크에서 호스트 개시 링크 재설정을 수행하기 위한 방법(400)의 흐름도를 도시한다. 블록(402)에 도시된 바와 같이, BB_SCr 또는 BB_SCs가 포트에 도착한다. 다음으로, 결정 블록(404)에 도시된 바와 같이, BB_RDY_N 또는 BB_FRM_N이 0과 동일한지 결정된다. BB_RDY_N과 BB_FRM_N이 모두 0과 같으면, 방법(400)은 블록(406)으로 진행하고 SAN의 정상 동작을 계속한다. 그러나 BB_RDY_N 및 BB_FRM_N 중 하나라도 0이 아닌 경우, 하나 이상의 프레임 또는 R_RDY가 손실된 것으로 결정되고 방법(400)은 결정 블록(408)으로 진행된다.
[0036] 당업자에 의해 이해되는 바와 같이, BB_RDY_N 및 BB_FRM_N은 파이버 채널 표준에서 허용되는 카운팅/추적 구현의 상이한 실시예이다. 예시적인 실시예에서, 이러한 카운터가 0 값을 갖고 조치가 필요하지 않은 것이 정상이다. 그러나 이러한 카운터의 값이 0이 아닌 경우에는 R_RDY 프리미티브가 손실/설명되지 않았음을 나타내며, 따라서 링크의 수신 절반에서 사용할 수 있는 버퍼 크레딧 수가 더 이상 전체/예상 구성된 값(full/expected configured value)이 아니다. 예시적인 실시예에서, 임계값은 버퍼 크레딧 복구를 실행할 때를 결정하기 위해 트리거하는(trigger) 데에 사용된다. 다른 실시예에서, 임계 트리거는 포트의 로그인 BB_Credit 값의 백분율, 남은 0 버퍼 크레딧, 지정된 값 미만(예를 들어, 5 미만)의 버퍼 크레딧, 또는 구성된 RMF(Resource Measurement Facility) 간격 동안 RMF 74-7(FICON Director Activity report)을 통해 보고되는 프레임 페이싱 지연(frame pacing delay)의 인스턴스들(instances)의 수를 기반으로 하는 사용자 구성 가능한 값(user-configurable value)일 수도 있다.
[0037] 계속해서 도 4를 참조하면, 결정 블록(408)에서, 버퍼 크레딧 손실에 대한 임계값이 트리거 되었는지가 결정된다. 만일 그렇다면, 방법(400)은 결정 블록(410)으로 진행한다. 만일 그렇지 않는다면, 방법(400)은 블록(406)으로 진행하고 SAN의 정상 동작을 계속한다. 결정 블록(410)에서, 링크의 포트 중 하나 이상이 채널 포트인지 또는 직접 부착된 CU 포트(directly attached CU port)인지가 결정된다. 링크의 포트 중 하나 이상이 채널 포트 또는 직접 부착된 CU 포트인 경우, 방법은 블록 412로 진행하고 호스트 장치는 링크 재설정(LR)을 수행하기 위해 채널 포트에 명령을 발행한다. 그렇지 않으면, 방법은 블록(414)으로 진행하고 호스트 장치는 LR을 수행하기 위해 (FICON CUP 또는 SMI-S를 통해) 명령을 발행한다. 링크에 대해 버퍼 크레딧이 복원될 때, 방법(400)은 블록(416)에서 종료된다. 예시적인 실시예에서, LR 동안, 프레임은 폐기되지 않고 버퍼에 유지되는데, 이는 LR이 종료되고 LR이 모든 관련(involved) 카운터들을 초기 값으로 재설정하여 사실상 "손실된" 버퍼 크레딧들을 "보충"할 때까지 유지되는 것이다.
[0038] 본 발명의 다양한 실시예는 관련 도면을 참조하여 본 명세서에서 설명된다. 본 발명의 범위를 벗어나지 않으면서 본 발명의 대안적인 실시예가 고안될 수 있다. 다양한 연결들(connections) 및 위치 관계들(positional relationships)(예를 들어, 위, 아래, 인접 등)은 다음 설명 및 도면에서 요소들 사이에 설명된다. 이러한 연결들 및/또는 위치 관계들은 달리 명시되지 않는 한 직접 또는 간접적일 수 있으며, 본 발명은 이러한 점에서 제한하려는 의도가 아니다. 따라서 엔티티들(entities)의 결합(coupling)은 직접적 또는 간접적인 결합을 의미할 수 있으며, 엔티티들 사이의 위치 관계는 직접적 또는 간접적인 위치 관계일 수 있다. 또한, 여기에 설명된 다양한 작업들과 프로세스 단계들은 여기에 자세히 설명되지 않은 추가 단계들 또는 기능을 갖는 보다 포괄적인 절차 또는 프로세스에 통합될 수 있다.
[0039] 청구범위 및 명세서의 해석을 위해 다음 정의 및 약어가 사용된다. 본 명세서에 사용된 바와 같이, "으로 구성된다(comprises)", "으로 구성되는(comprising)", "포함한다(includes)", "포함하는(including)", "갖는다(has)", "갖는(having)", "저장한다(contains)" 또는 "저장하는(containing)"와 같은 용어들, 또는 이들의 임의의 다른 변형들은 배타적이지 않은 포함을 의미한다(are intended to cover a non-exclusive inclusion). 예를 들어, 요소들의 목록을 포함하는 구성, 혼합물, 공정, 방법, 물품 또는 장치는 반드시 해당 구성 요소에만 제한되지 않으며, 명시적으로 나열되지 않거나 그러한 구성, 혼합물, 공정, 방법, 물품 또는 장치에 속하지(inherent) 않은 다른 요소들을 포함할 수 있다.
[0040] 또한, "예시적인"이라는 용어는 "예, 사례 또는 예시로서 제공되는(serving)"을 의미하기 위해 본 명세서에서 사용된다. 본 명세서에서 "예시적인" 것으로 설명된 임의의 실시예 또는 설계는 다른 실시예들 또는 설계들에 비해 반드시 바람직하거나 유리한 것으로 해석되어서는 안 된다. "적어도 하나" 및 "하나 이상"이라는 용어들은 1보다 크거나 같은 임의의 정수, 즉 1, 2, 3, 4 등을 포함하는 것으로 이해될 수도 있다. "복수"라는 용어는 2보다 크거나 같은 정수, 즉 2, 3, 4, 5 등을 포함하는 것으로 이해될 수도 있다 . "연결(connection)"이라는 용어는 간접적인 "연결"과 직접척인 "연결" 모두들 포함할 수도 있다
[0041] "약(about)", "실질적으로", "대략"과 같은 용어들 및 그 변형들은 출원 당시에 이용 가능한 장비에 기초한 특정 양(quantity)의 측정과 관련된 오류의 정도를 포함하도록 의도된다. 예를 들어, "약"은 주어진 값의 ± 8% 또는 5% 또는 2%의 범위를 포함할 수 있다
[0042] 간결성을 위해, 본 발명의 양태를 만들고 사용하는 것과 관련된 종래 기술은 본 명세서에서 상세하게 설명되거나 설명되지 않을 수도 있다. 특히, 본 명세서에 설명된 다양한 기술적 특징들을 구현하기 위한 컴퓨팅 시스템들 및 특정 컴퓨터 프로그램들의 다양한 양태들은 잘 알려져 있다. 따라서, 간결성을 위해, 많은 종래의 구현 세부사항은 본 명세서에서 간략하게만 언급되거나 잘 알려진 시스템 및/또는 프로세스 세부사항을 제공하지 않고 완전히 생략된다.
[0043] 본 발명은 통합의 가능한 기술 세부 수준에서 시스템, 방법 및/또는 컴퓨터 프로그램 제품일 수도 있다. 컴퓨터 프로그램 제품은 프로세서로 하여금 본 발명의 양태들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령들을 갖는 컴퓨터 판독가능 저장매체(computer readable storage medium)(또는 매체들(media))를 포함할 수도 있다.
[0044] 컴퓨터 판독 가능 저장매체는 명령 실행 장치(instruction execution device)에 의해 사용되기 위한 명령들을 보유하고 저장할 수 있는 유형의(tangible) 장치일 수 있다. 컴퓨터 판독 가능 저장매체는, 예를 들어, 전자 저장장치, 자기 저장장치, 광학 저장장치, 전자기 저장장치, 반도체 저장장치, 또는 이들의 임의의 적절한 조합일 수는 있지만, 이에 제한되지는 않는다. 컴퓨터 판독 가능 저장매체의 보다 구체적인 예들의 비배타적인(non-exhaustive) 목록은 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 지울 수 있는 프로그래머블 읽기 전용 메모리(erasable programmable read-only memory : EPROM) 또는 플래시 메모리, 정적 랜덤 액세스 메모리(static random access memory : SRAM), 휴대용 콤팩트 디스크 읽기 전용 메모리(portable compact disc read-only memory : CD-ROM), 디지털 다목적 디스크(digital versatile disk : DVD), 메모리 스틱(memory stick), 플로피 디스크(floppy disk), 명령들이 기록된 홈의 펀치 카드 또는 융기 구조와 같은 기계적으로 인코딩된 장치, 및 전술한 것의 임의의 적절한 조합을 포함한다. 본 명세서에 사용된 바와 같은 컴퓨터 판독 가능 저장매체는 라디오 전파 또는 기타 자유롭게 전파되는 전자기파, 도파관을 통해 전파되는 전자기파 또는 기타 전송 매체(예를 들어, 광파이버 케이블을 통해 전달되는 광 펄스들(light pulses)) 또는 전선을 통해 전송되는 전기 신호와 같은 일시적인 신호 그 자체로 해석되어서는 안 된다.
[0045] 본 명세서에 기술된 컴퓨터 판독 가능 프로그램 명령들은 컴퓨터 판독 가능 저장매체로부터 각각의 컴퓨팅/처리 장치들(respective computing/processing devices)로, 또는 네트워크, 예를 들어, 인터넷, 근거리 통신망(local area network), 광역 네트워크(wide area network) 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 저장장치로 다운 로드될 수 있다. 네트워크는 구리 전송 케이블들, 광전송 파이버들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 에지 서버들을 포함할 수도 있다. 각 컴퓨팅/처리 장치의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 각각의 컴퓨팅/처리 장치 내의 컴퓨터 판독 가능 저장매체에 저장하기 위해 컴퓨터 판독 가능 프로그램 명령들을 전달한다.
[0046] 본 발명의 동작을 수행하기 위한 컴퓨터 판독 가능한 프로그램 명령들은 어셈블러 명령(assembler instructions), 명령 세트 아키텍처(instruction-set-architecture : ISA) 명령, 기계 명령(machine instructions), 기계 종속 명령(machine dependent instructions), 마이크로코드(microcode), 펌웨어 명어(firmware instructions), 상태 설정 데이터(state-setting data), 집적 회로용 구성 데이터(configuration data for integrated circuitry), 또는 스몰토크(Smalltalk), C++ 등과 같은 객체 지향 프로그래밍 언어(object oriented programming language)와 "C" 프로그래밍 언어 또는 유사한 프로그래밍과 같은 절차적 프로그래밍 언어들(procedural programming languages)을 포함하는 하나 이상의 프로그래밍 언어들의 조합으로 작성된 소스 코드 또는 목적 코드일 수도 있다. 컴퓨터 판독 가능 프로그램 명령들은 사용자의 컴퓨터에서 완전히, 사용자의 컴퓨터에서 부분적으로, 독립 실행형 소프트웨어 패키지로서는, 사용자의 컴퓨터에서 부분적으로 그리고 원격 컴퓨터에서 부분적으로, 또는 전체적으로 원격 컴퓨터 또는 서버에서 실행될 수도 있다. 후자의 시나리오에서 원격 컴퓨터는 LAN(Local Area Network) 또는 WAN(Wide Area Network)을 포함한 모든 유형의 네트워크를 통해 사용자의 컴퓨터에 연결될 수도 있거나, (예를 들어, 인터넷 서비스 공급자(an Internet Service Provider)를 사용하여 인터넷을 통해) 외부 컴퓨터에 연결될 수도 있다. 본 발명의 양태들을 수행하기 위해, 일부 실시예에서는, 예를 들어, 프로그래머블 논리 회로(programmable logic circuitry), 필드 프로그머블 게이트 어레이들(field-programmable gate arrays : FPGA), 또는 프로그래머블 논리 어레이들(programmable logic arrays : PLA)를 포함하는 전자 회로는, 전자 회로를 개인화하기 위해 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 이용함으로써 컴퓨터 판독 가능 프로그램 명령들을 실행할 수도 있다.
[0047] 본 발명의 양태들은 본 발명의 실시예에 따른 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록 다이어그램들을 참조하여 본 명세서에서 설명된다. 흐름도들 및/또는 블록 다이어그램들의 각 블록, 및 흐름도들 및/또는 블록 다이어그램들의 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있음이 이해될 것이다.
[0048] 이러한 컴퓨터 판독 가능 프로그램 명령들 범용 컴퓨터, 특수 목적 컴퓨터 또는 기타 프로그래머블 데이터 처리 장치의 프로세서에 제공되어 기계를 생성할 수도 있으며, 이러한 명령들은 컴퓨터 또는 기타 프로그래머블 데이터 처리 장치의 프로세서를 통해 실행되고, 흐름도 및/또는 블록 다이어그램 또는 블록들에 지정된 기능들/행위들을 구현하기 위한 수단을 생성할 수도 있다. 이들 컴퓨터 판독가능 프로그램 명령들은, 또한 컴퓨터, 프로그래머블 데이터 처리 장치, 및/또는 다른 장치가 특정 방식으로 기능 하도록 지시할 수 있는 컴퓨터 판독가능 저장매체에 저장될 수도 있으며, 이로써 컴퓨터 판독가능 저장매체는 그 내부에 명령이 저장되는데, 이는 흐름도 및/또는 블록 다이어그램 또는 블록들에 지정된 기능/행위의 양태들을 구현하는 명령들을 포함하는 제조 물품을 포함한다.
[0049] 컴퓨터 판독 가능한 프로그램 명령들은, 또한, 컴퓨터, 다른 프로그래머블 데이터 처리 장치 또는 다른 장치에 로드되어, 일련의 작동 단계들이 컴퓨터, 다른 프로그래머블 장치 또는 다른 장치에서 수행되어, 컴퓨터, 다른 프로그래머블 장치 또는 다른 장치에서 수행되는 명령들과 같은 컴퓨터 구현 프로세스(computer implemented process)를 생성하여, 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에 지정된 기능들/동작들을 구현할 수도 있다.
[0050] 도면의 흐름도 및 블록 다이어그램은 본 발명의 다양한 실시예에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현의 아키텍처, 기능 및 동작을 도시한다. 이와 관련하여, 흐름도 또는 블록 다이어그램의 각 블록은 모듈(module), 세그먼트(segment), 또는 특정 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 명령들의 일부를 나타낼 수도 있다. 일부 대안적인 구현들에서, 블록들에 언급된 기능들은 도면에 언급된 순서와 다르게 발생할 수도 있다. 예를 들어, 연속적으로 도시된 2개의 블록은, 사실은, 실질적으로 동시에 실행될 수도 있거나, 관련된 기능에 따라 블록들이 때때로 역순으로 실행될 수도 있다. 블록 다이어그램들 및/또는 순서도의 각 블록과 블록 다이어그램 및/또는 순서도의 블록들의 조합은 지정된 기능들 또는 동작들을 수행하거나 특수 목적 하드웨어와 컴퓨터 명령들의 조합을 수행하는 특수 목적 하드웨어 기반 시스템들(special purpose hardware-based systems)에 의해 구현될 수 있다는 것이 또한 언급될 것이다.
[0051] 본 발명의 다양한 실시예에 대한 설명은 예시의 목적으로 제시되었지만, 개시된 실시예들을 완전하게 설명하거나 제한하려는 것은 아니다. 기술된 실시예의 범위 및 정신을 벗어나지 않으면서 행해지는 많은 수정들과 변형들은 당업자에게 명백할 것이다. 본 명세서에 사용된 용어는 실시예의 원리, 시장에서 발견되는 기술에 대한 실질적인 응용 또는 기술적 개선을 가장 잘 설명하거나, 또는 당업자가 본 명세서에 설명된 실시예를 이해할 수 있도록 하기 위해 선택되었다.

Claims (20)

  1. 저장 영역 네트워크(Storage Area Network : SAN)에서 호스트 개시 링크 재설정(host-initiated link reset)을 수행하기 위한 컴퓨터 구현 방법(computer-implemented method)에 있어서, 상기 방법은:
    상기 SAN과 통신하는 호스트에 의해, 상기 SAN의 각 링크를 식별하는 단계 - 각 링크는 한 쌍의 포트들(ports)에 의해 정의됨 - 와;
    상기 호스트에 의해, 상기 SAN의 각 포트에 대한 버퍼 크레딧 밸런스(buffer credit balance)를 획득하는 단계와;
    상기 호스트에 의해 상기 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스(buffer credit imbalance)을 계산하는 단계와;
    링크에 대한 상기 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 상기 링크의 재설정을 일으키는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 SAN의 각 포트에 대한 상기 버퍼 크레딧 밸런스를 획득하는 단계가 주기적 기반으로 수행되는
    컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 주기적 기반의 빈도는 상기 호스트의 사용자에 의해 구성 가능한(configurable)
    컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과한다고 결정하는 것은 상기 한 쌍의 포트들의 각 포트에 대한 상기 버퍼 크레딧 밸런스 사이의 차이가 소정의 수보다 크다고 결정하는 단계를 포함하는
    컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 임계값은 소정의 백분율이며,
    상기 버퍼 크레딧 임밸런스는, 상기 링크의 상기 한 쌍의 포트들 중 더 큰 버퍼 크레딧 밸런스를 상기 링크의 상기 한 쌍의 포트들 중 더 작은 버퍼 크레딧 밸런스으로 나눈 후 1을 뺌으로써 계산되는
    컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 임계값은 상기 호스트의 사용자에 의해 구성 가능한
    컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 방법은:
    상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과한다고 결정하는 것과 상기 링크에 대한 상기 한 쌍의 포트들 중 적어도 하나가 채널 포트라고 결정하는 것에 기초하여, 상기 링크를 재설정하기 위하여 상기 호스트에 의해 상기 채널 포트에 커맨드를 발행하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과하는지와 상기 한 쌍의 포트들 중 어느 것도 채널 포트가 아닌지의 결정에 기초하여, 상기 링크와 연관된(associated) 상기 SAN의 네트워크 장치에 상기 링크의 재설정을 수행하도록 지시하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  9. 저장 영역 네트워크(storage area network : SAN)에 있어서,
    하나 이상의 네트워크 장치들(network devices)과;
    상기 하나 이상의 네트워크 장치들 중 적어도 하나에 각각 결합된(coupled) 복수의 종단 장치들(end devices)을 포함하며,
    상기 복수의 종단 장치들 중 하나는,
    상기 SAN의 각 링크를 식별하고 - 여기서, 각 링크는 한 쌍의 포트들에 의해 정의됨 -,
    상기 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 얻으며,
    상기 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하고,
    링크에 대한 상기 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 상기 링크의 재설정을 일으키도록
    구성된(configured) 호스트 장치인
    저장 영역 네트워크.
  10. 제9항에 있어서,
    상기 SAN의 각 포트에 대한 상기 버퍼 크레딧 밸런스를 획득하는 단계가 주기적 기반으로 수행되는
    저장 영역 네트워크.
  11. 제10항에 있어서,
    상기 주기적 기반의 빈도는 상기 호스트의 사용자에 의해 구성 가능한(configurable)
    저장 영역 네트워크.
  12. 제9항에 있어서,
    상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과한다고 결정하는 것은 상기 한 쌍의 포트들의 각 포트에 대한 상기 버퍼 크레딧 밸런스 사이의 차이가 소정의 수보다 큰지를 결정하는 것을 포함하는
    저장 영역 네트워크.
  13. 제9항에 있어서,
    상기 임계값은 소정의 백분율이며,
    상기 버퍼 크레딧 임밸런스는, 상기 링크의 상기 한 쌍의 포트들 중 더 큰 버퍼 크레딧 밸런스를 상기 링크의 상기 한 쌍의 포트들 중 더 작은 버퍼 크레딧 밸런스으로 나눈 후 1을 뺌으로써 계산되는
    저장 영역 네트워크.
  14. 제9항에 있어서,
    상기 임계값은 상기 호스트의 사용자에 의해 구성 가능한
    저장 영역 네트워크.
  15. 제9항에 있어서,
    상기 호스트 장치는, 상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과하는지와 상기 링크에 대한 상기 한 쌍의 포트들 중 적어도 하나가 채널 포트라는 결정에 기초하여, 상기 링크를 재설정하기 위하여 상기 호스트에 의해 상기 채널 포트에 커맨드를 발행하도록 더 구성되는
    저장 영역 네트워크.
  16. 제9항에 있어서,
    상기 호스트 장치는, 상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과하는지와 상기 한 쌍의 포트들 중 어느 것도 채널 포트가 아니라는 결정에 기초하여, 상기 링크와 연관된(associated) 상기 SAN의 네트워크 장치에 상기 링크의 재설정의 수행을 지시하도록 더 구성되는
    저장 영역 네트워크.
  17. 저장 영역 네트워크(storage area network : SAN)에서 호스트 시작 링크 재설정을 수행하기 위한 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램 제품은 프로세서가 읽을 수 있는 프로그램 명령들을 저장하는 컴퓨터 판독 가능 저장매체를 포함하며,
    상기 프로그램 명령들은 상기 프로세서로 하여금,
    상기 SAN과 통신하는 호스트에 의해 상기 SAN의 각 링크를 식별하는 단계 - 여기서, 각 링크는 한 쌍의 포트들에 의해 정의됨 - 와;
    상기 호스트에 의해 상기 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 단계와;
    상기 호스트에 의해 상기 SAN의 각 링크에 대한 버퍼 크레딧 임밸런스를 계산하는 단계와;
    링크에 대한 상기 버퍼 크레딧 임밸런스가 임계값을 초과한다고 결정하는 것에 기초하여 상기 링크의 재설정을 일으키는 단계를 수행하도록 하는
    컴퓨터 프로그램 제품.
  18. 제17항에 있어서,
    상기 SAN의 각 포트에 대한 버퍼 크레딧 밸런스를 획득하는 단계는 주기적 기반으로 수행되는
    컴퓨터 프로그램 제품.
  19. 제18항에 있어서,
    상기 주기적 기반의 빈도는 상기 호스트의 사용자에 의해 구성 가능한(configurable)
    컴퓨터 프로그램 제품.
  20. 제17항에 있어서,
    상기 링크에 대한 상기 버퍼 크레딧 임밸런스가 상기 임계값을 초과한다고 결정하는 것은 상기 한 쌍의 포트들의 각 포트에 대한 상기 버퍼 크레딧 밸런스 사이의 차이가 소정의 수보다 크다고 결정하는 단계를 포함하는
    컴퓨터 프로그램 제품.
KR1020227033101A 2020-04-28 2021-03-19 저장 영역 네트워크에서의 호스트 개시 링크 재설정 KR20220147627A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/860,306 2020-04-28
US16/860,306 US11190588B2 (en) 2020-04-28 2020-04-28 Host initiated link reset in a storage area network
PCT/CN2021/081886 WO2021218484A1 (en) 2020-04-28 2021-03-19 Host initiated link reset in a storage area network

Publications (1)

Publication Number Publication Date
KR20220147627A true KR20220147627A (ko) 2022-11-03

Family

ID=78223045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227033101A KR20220147627A (ko) 2020-04-28 2021-03-19 저장 영역 네트워크에서의 호스트 개시 링크 재설정

Country Status (7)

Country Link
US (1) US11190588B2 (ko)
KR (1) KR20220147627A (ko)
CN (1) CN115462044B (ko)
AU (1) AU2021265486B2 (ko)
DE (1) DE112021002577B4 (ko)
GB (1) GB2609591A (ko)
WO (1) WO2021218484A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230078787A1 (en) * 2021-09-16 2023-03-16 International Business Machines Corporation Executing a host initiated link reset in a storage area network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085846B2 (en) 2001-12-31 2006-08-01 Maxxan Systems, Incorporated Buffer to buffer credit flow control for computer network
US7630384B2 (en) 2003-07-21 2009-12-08 Qlogic, Corporation Method and system for distributing credit in fibre channel systems
US20050076113A1 (en) * 2003-09-12 2005-04-07 Finisar Corporation Network analysis sample management process
US7352701B1 (en) 2003-09-19 2008-04-01 Qlogic, Corporation Buffer to buffer credit recovery for in-line fibre channel credit extension devices
US7568026B2 (en) 2004-02-13 2009-07-28 Cisco Technology, Inc. Method and system for efficient link recovery for fibre channel over SONET/SDH transport path
CN101175077B (zh) 2007-10-26 2010-06-30 华中科技大学 光纤通道知识产权核
CN103051482B (zh) 2012-12-28 2015-09-30 中国航空工业集团公司第六三一研究所 基于fc交换机的一种端口隔离及恢复的实现方法
US9036479B2 (en) 2013-03-08 2015-05-19 Brocade Communications Systems, Inc. Mechanism to enable buffer to buffer credit recovery using link reset protocol
JP6428048B2 (ja) * 2014-08-25 2018-11-28 富士通株式会社 通信システム,異常制御装置および異常制御方法
US9888064B2 (en) 2015-02-11 2018-02-06 International Business Machines Corporation Load-balancing input/output requests in clustered storage systems
US9385967B1 (en) * 2015-12-04 2016-07-05 International Business Machines Corporation Resource allocation for a storage area network
CN109725829B (zh) * 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端QoS解决方案的系统和方法
US10992580B2 (en) * 2018-05-07 2021-04-27 Cisco Technology, Inc. Ingress rate limiting in order to reduce or prevent egress congestion
US10986023B2 (en) * 2019-07-19 2021-04-20 Cisco Technology, Inc. Using machine learning to detect slow drain conditions in a storage area network

Also Published As

Publication number Publication date
GB202217555D0 (en) 2023-01-11
AU2021265486A1 (en) 2022-08-18
DE112021002577T5 (de) 2023-06-15
US11190588B2 (en) 2021-11-30
JP2023522842A (ja) 2023-06-01
AU2021265486B2 (en) 2024-01-18
GB2609591A (en) 2023-02-08
CN115462044B (zh) 2024-03-08
CN115462044A (zh) 2022-12-09
US20210337024A1 (en) 2021-10-28
WO2021218484A1 (en) 2021-11-04
DE112021002577B4 (de) 2024-07-25

Similar Documents

Publication Publication Date Title
US10579579B2 (en) Programming interface operations in a port in communication with a driver for reinitialization of storage controller elements
KR20100136527A (ko) 데이터 전송 레이트 모니터 및 최대 데이터 전송 레이트 제어 방법
US20120039331A1 (en) Storage area network path management
US10606780B2 (en) Programming interface operations in a driver in communication with a port for reinitialization of storage controller elements
US11379269B2 (en) Load balancing based on utilization percentage of CPU cores
US11122123B1 (en) Method for a network of storage devices
KR20220147627A (ko) 저장 영역 네트워크에서의 호스트 개시 링크 재설정
US11500678B2 (en) Virtual fibre channel port migration
US9143435B1 (en) Management of paths of switches of distributed computing systems
JP7572134B2 (ja) ストレージ・エリア・ネットワークにおけるホストによって始動されるリンク・リセット
US20230078787A1 (en) Executing a host initiated link reset in a storage area network
US11405333B2 (en) Switched fabric network routing mode support
CN114584515B (zh) 存储区域网络拥塞的端点通知
AU2021266891B2 (en) Fencing non-responding ports in a network fabric
US11206226B1 (en) Switched fabric network routing mode selection
US11296986B2 (en) Automatically enabling credit-loss protocols

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal