요약

  • RFC 3721은 iSCSI 타깃이 내구성 있는 프로토콜 이름, 변경 가능한 네트워크 주소, 고유하지 않은 사람용 별칭을 가질 수 있게 했습니다 — 서로 다른 질문에 답하는 세 가지 값입니다.
  • 디스커버리는 타깃 이름과 경로를 찾을 수 있었지만, SCSI 논리 유닛을 발견하거나 로그인, 인가 또는 성공적인 I/O를 증명하지는 못했습니다.

스토리지 콘솔에서 "Local Disk"라는 표시는 안심이 되는 것입니다. 그러나 프로토콜 신원으로서는 부적절합니다. 그 라벨은 사람이 행(row)을 고르는 데 도움이 될 수 있지만, 원격 시스템에 어느 타깃에 접속할지 알려주거나, 누가 연결하는지 확립하거나, 그 연결이 무엇을 사용할 수 있는지 결정하지 못합니다. 2004년 4월, RFC 3721은 인터넷 스몰 컴퓨터 시스템 인터페이스(iSCSI)의 명명과 디스커버리를 위해 이러한 구분을 명시했습니다.

이 문서의 중심 설계 결정은 노드의이름(Name)을주소(Address)와 분리하는 것이었습니다. 논리 iSCSI 노드는 그 수명 동안 하나의 영구적이고 위치 독립적인 이름을 부여받습니다. 주소는 그 이름을 호스트와 포트 같은 TCP 위치와 결합합니다. 노드는 여러 주소를 가질 수 있고, 그 네트워크 좌표는 바뀔 수 있습니다. 어댑터를 기기 간에 옮기는 것이 어댑터 자체를 신원으로 만들지 않아야 하는 한 가지 이유였습니다: 논리 스토리지 노드는 경로가 바뀌는 동안 SCSI 상태와 인가 구성을 유지할 수 있습니다.

한정된 이름 형식인iqn.은 명명 권한을 식별하기 위해 날짜와 역순 도메인 이름을 사용하고, 그 뒤에 선택적 로컬 접미사가 옵니다. 이 구문은 이름에 구조화된 네임스페이스를 제공합니다. 그러나 도메인 문자열을 현재 소유권의 증거로 만들지 않으며, 타깃이 현재 어디에서 도달 가능한지도 인코딩하지 않습니다. RFC 3721은 IEEE EUI-64 식별자에 기반한eui.형식도 기술했습니다. 두 경우 모두 프로토콜 이름은 노드를 식별하도록 설계된 것이며, 네트워크 경로로 쓰이도록 설계된 것이 아닙니다.

별칭(Alias)은 또 다른 계층에 놓여 있습니다. 별칭은 선택적 UTF-8 표시 문자열이며 고유할 필요가 없습니다. RFC 3721의 예제는 "Local Disk" 라벨을 실제 타깃 이름과 짝지어 보여줍니다. 별칭은 사람의 인식을 위한 것이며, 프로토콜은 이니시에이터나 타깃을 식별, 주소 지정 또는 인증하는 데 별칭을 사용해서는 안 됩니다. 두 시스템이 같은 친근한 문구를 표시하더라도 같은 타깃이 아닐 수 있습니다. 이름은 주소가 바뀌는 동안 안정적으로 남을 수 있습니다. 경로는 특정 사용자의 접근 허용 여부를 답하지 않은 채 타깃을 가리킬 수 있습니다.

이 분리는 스토리지가 이동할 때 가장 중요합니다. 노드 이름이 특정 인터페이스나 주소에 묶여 있다면, 네트워크 재구성이 새로운 스토리지 신원처럼 보일 수 있습니다. 이름을 안정적으로 유지하면 구성이 논리 노드를 참조할 수 있고, 주소는 세션을 시도할 수 있는 위치를 기술합니다. 이것은 연속성 메커니즘이지 자동 마이그레이션 보장이 아닙니다. RFC는 이름과 디스커버리 동작을 정의할 뿐, 모든 구현이 이동 중에 상태를 올바르게 보존한다는 증거를 정의하지 않습니다.

디스커버리도 마찬가지로 경계가 있었습니다. 그 목표는 이니시에이터가 접근 권한이 있는 타깃을 찾고 하나 이상의 주소를 얻게 하는 것이었습니다. 정적 구성은 정보를 미리 제공할 수 있었습니다. SendTargets는 이니시에이터가 알려진 네트워크 주체에 접속해 타깃 정보를 요청하게 했습니다. SLP와 iSNS를 포함한 제로 구성 프레임워크는 자원을 찾는 더 넓은 방법을 제공했습니다. 이것들은 명세에 있는 메커니즘이며, 배포된 스토리지 네트워크의 전수 조사가 아닙니다.

가장 중요한 점은, 타깃을 찾는 것이 그 타깃의 디스크를 찾는 것이 아니라는 것입니다. RFC 3721은 SCSI 논리 유닛(LUN)의 디스커버리를 iSCSI 타깃의 디스커버리와 구별되는 SCSI 계층 작업으로 다룹니다. 반환된 이름과 주소는 완료된 로그인, 인증 결과, 인가 부여, 보이는 LUN, 또는 애플리케이션 데이터가 이동했다는 증거가 아닙니다. 각 단계는 자신만의 결정과 증거를 가집니다.

보안 절은 이 구분을 강화합니다. 신뢰할 수 없는 환경에서 주장된 이니시에이터 노드 이름만으로는 신뢰할 수 없습니다. 타깃은 보안 식별자를 인증합니다 — 문서의 예제에서는 CHAP, SRP 또는 Kerberos 같은 메커니즘을 사용합니다 — 그리고 나서 일반적으로 접근 제어 목록을 통해 접근을 인가합니다. 인증된 식별자는 주장된 iSCSI 이름과 다를 수 있습니다. 정책은 하나를 다른 것에 명시적으로 매핑해야 합니다. 인증은 누가 자격 증명을 증명했는지에 답합니다. 인가는 그 신원이 무엇을 할 수 있는지에 답합니다. 어느 질문도 친근한 별칭이나 디스커버리 응답으로는 답해지지 않습니다.

이후 표준 기록은 유용하고 한정된 후기를 덧붙입니다. RFC 4171은 iSNS를 iSCSI에는 선택적으로, iFCP에는 필수로 만들었습니다. 2014년 iSCSI 프로토콜을 통합한 RFC 7143은 SendTargets 이상의 디스커버리가 필요한 장비는 확장된 디스커버리 관리와 상호 운용성을 위해 iSNS를 구현해야 한다고 명시했습니다. 또한 SLP는 iSCSI에서 널리 구현되거나 배포되지 않았으며, 구현은 SLP 기반 디스커버리 상호 운용성에 의존해서는 안 된다고 언급했습니다. 이는 이후 RFC에서 iSCSI 실무에 관한 한정된 서술이지, 모든 스토리지 제품이나 모든 서비스 디스커버리 기술에 대한 주장이 아닙니다.

RFC 3721은 Informational 문서이며, RFC 3720의 프로토콜 명세를 대체하지 않고 보완합니다. 그 역사적 기여는 서로 교환 불가능한 기록의 어휘입니다: 안정적인 노드 이름, 현재 주소, 선택적 표시 별칭, 인증된 보안 신원, 인가 규칙, 발견된 타깃. 유용한 콘솔은 이 모두를 한 화면에 놓을 수 있습니다. 신뢰할 수 있는 운영은 이들을 같은 것으로 취급하지 않기를 거부하는 데서 시작됩니다.

출처