SCST

SCST
SCST
안정된 릴리스
3.6 / 2022년 1월 17일 (2022-01-17)
저장소github.com/SCST-project/scst
기입처C
운영 체제리눅스
유형블록 스토리지
면허증.GNU 일반 공중 라이선스
웹 사이트scst.sourceforge.그물

SCSTGPL 라이선스가 부여된 SCSI 타깃소프트웨어 스택입니다이 소프트웨어 스택의 설계 목표는 고성능, 높은 신뢰성, 기존 SCSI 표준에 대한 엄격한 준수, 확장 및 사용이 용이하다는 것입니다.SCST는 여러 SCSI 프로토콜(iSCSI, FC, SRP 등)을 지원할 뿐만 아니라 여러 로컬 스토리지 인터페이스(SCSI 패스스루, 블록 I/O 및 파일 I/O) 및 scst_user [1]드라이버를 통해 사용자 공간에 구현된 스토리지 드라이버도 지원합니다.

퍼포먼스를 최대화하기 위해 SCST는 커널 드라이버 세트로 구현되어 있습니다.대부분의 경우 SCST는 RAID, 데이터 중복 배제 및 고가용성 클러스터 소프트웨어와 조합되어 기능을 강화합니다.SCST 소프트웨어 스택은 많은 SAN [2]시스템의 기본 소프트웨어입니다.SCST를 [3][4][5][6]기반으로 SAN 시스템에서 여러 개의 세계 기록이 수립되었습니다.

SCST는 Linux [7]커널 내부에 범용 SCSI 타깃 모듈을 제공하는 것과 동일한 목적으로 LIO 타깃과 경쟁합니다.Linux iSCSI 타깃을 제공하기 위해 오래된 IET 및 STGT 모듈도 업계 지원을 받고 [8]있습니다.

SCST는 2013년[9][10][11] Fusion-io가 스타트업 ID7을 인수한 이후 SanDisk가 2014년 [12]Fusion-io를 인수이후 SanDisk 직원이 주로 유지 보수했습니다.

아키텍처

SCST 아키텍처

SCST는 다음 3개의 모듈 그룹으로 구성됩니다.

  • SCSI 명령어를 처리하기 위한 프로토콜에 의존하지 않는 엔진인 SCST 코어.
  • SCSI 이니시에이터에서 SCSI 명령을 수신한 대상 드라이버는 이러한 SCSI를 SCST 코어에 전달하고 이니시에이터에 응답을 반환합니다.
  • 스토리지 미디어와 상호 작용하는 스토리지 드라이버 장치 핸들러.지원되는 로컬 스토리지 인터페이스는 SCSI, 블록 디바이스, 파일 및 scst_user입니다.scst_user는 SCST 고유의 프로토콜로 사용자 공간에서 스토리지 드라이버를 효율적으로 구현할 수 있습니다.

이러한 모든 모듈의 설정은 sysfs 인터페이스를 통해 이루어집니다.sysfs 인터페이스를 통해 SCST를 직접 설정하는 것은 편리하지만 scstadmin이라는 툴을 사용하면 sysfs 인터페이스를 통해 SCST를 제어하고 SCST 설정을 저장 및 복원할 수 있습니다.

SCST가 이 프로젝트의 하이 퍼포먼스에 도달하는 데 도움이 되는 설계 측면은 다음과 같습니다.

  • SCSI 명령을 처리하는 스토리지 디바이스당 스레드 수는 구성할 수 있습니다.
  • 적어도 Linux 커널이 이를 허용하는 경우 SCST 코어에 의해 호출되는 모든 타깃 드라이버 및 스토리지 드라이버 함수는 비동기입니다.예를 들어 Linux [13]커널 내부에서는 아직 비동기 또는 직접 I/O를 수행할 수 없습니다.
  • 각 SCSI 명령에는 1개의 유한 상태 머신이 관련지어집니다.이를 통해 단일 명령 스레드가 여러 SCSI 명령을 동시에 처리할 수 있습니다.
  • 스토리지 디바이스당 여러 개의 스레드를 사용하는 경우에도 이러한 스레드는 모두 동일한 I/O 스케줄러 컨텍스트를 공유합니다. 공유는 CFQ I/O 스케줄러 등의 사용 시 성능을 크게 향상시킵니다.
  • 산란 수집 벡터 캐시.이 캐시는 각 SCSI 명령에 대해 커널을 통해 메모리를 할당할 필요가 없습니다.
  • SCSI 명령 처리에 필요한 특정 데이터 구조에 대한 잠금 없는 액세스.또한 잠금 없이 액세스하는 데이터 구조를 [14]수정하려면 I/O를 일시 중단해야 합니다.
  • SCSI 명령어는 타겟드라이버에 의해 softirq 컨텍스트에서 SCST 코어로 송신할 수 있습니다.따라서 스레드 [15]컨텍스트에서 SCSI 명령을 전송해야 하는 경우와 비교하여 컨텍스트스위치 수가 줄어듭니다.

역사

2000년에는 뉴햄프셔 대학 인터오퍼러빌리티 연구소(UNH-IOL)에 의해 SCSI 타깃 프레임워크가 개발되었습니다.UNH-IOL SCSI 타깃 구현은 iSCSI 프로토콜만 지원하지만 다른 스토리지 프로토콜을 쉽게 추가할 [16]수 있도록 설계되었습니다.

2004년에 파이버 채널 및 iSCSI 지원을 제공하는 SCST 프로젝트가 발표되었습니다.SCST의 초기 iSCSI 타깃은 UNH-IOL iSCSI 타깃 [17]실장에 기초하고 있었습니다.그 무렵 Ardis [18]Technologies에 의해 대체 iSCSI 타깃 소프트웨어 스택이 개발되었습니다.

2005년에 발표된 iSCSI Enterprise Target 소프트웨어는 Ardis [19][20]스택의 새로운 진화입니다.이후 2005년 Chelsio는 Chelsio T2 이더넷어댑터 [21]패밀리용 SCST iSCSI 타깃 드라이버를 발표했습니다.

2006년에 LSI/MPT 카드의 타겟 드라이버가 추가되었습니다.[22]올해 후반에 scstadmin 툴이 추가되었습니다.이 툴을 사용하면 [23]SCST Configuration을 파일 또는 파일에 저장 및 복원할 수 있습니다.

2007년에 SCST 프로젝트의 UNH-IOL iSCSI 타깃 패치는 [24]IET의 포크로 대체되었습니다.

2008년에 Mellanox가 [25]SRP 대상 드라이버를 기증했습니다.나중에 이 드라이버는 Bart Van Assche에 [26]의해 최적화되었습니다.

Marvell은 2009년에 SAS [27]카드용 타겟 드라이버를 기부했습니다.

또한 Emulex는 2009년에 Emulex [28][29][30]파이버 채널/FCoE 어댑터 카드의 타겟 드라이버를 발표했습니다.

같은 해에 이미 존재하는 procfs 인터페이스 옆에 sysfs 인터페이스가 SCST에 추가되었습니다.

2010년에 Cisco에서 FCoE 대상[31] 드라이버를 기증받았고 Bart Van Assche는 IBM System p SCSI 대상 드라이버[32]SCST로 이식했습니다.

2011년에 암묵적인 ALUA 지원이 SCST 코어 및 scstadmin 설정 [33]도구에 추가되었습니다.3개의 init 스크립트(scst, iscsi-scst 및 qla2x00t)가 단일 init 스크립트로 통합되어 SCST 설치 및 관리가 간소화되었습니다.

2013년에 QLogic InfiniBand HCA 지원이 [34]SRP 대상 드라이버에 추가되었습니다.

2014년 1월 Mellanox는 iSER 타깃 드라이버 구현을 SCST [35]프로젝트에 기부했습니다.

2014년 5월 QLogic은 16Gbit/s QLogic 타깃 드라이버를 제공하고 SCST QLogic 타깃 [36]드라이버의 유지보수 권한을 인수한다고 발표했습니다.

2016년에는 비동기식 버퍼링 및 직접 파일 I/O 지원 및 보다 강력한 지연 시간 측정 인프라가 추가되었습니다.

2019년에는 LUN 또는 스토리지 디바이스를 추가 또는 삭제해도 I/O가 최대 속도로 계속 실행되도록 SCST 코어가 변경되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Van Assche, Bart (19 August 2015). SCST, a SCSI Target Framework (PDF). LinuxCon North America 2015. Seattle.
  2. ^ Bolkhovitin, Vladislav (December 20, 2012). "SCST Users".
  3. ^ "New VMmark Cloud Computing World Record set with Cisco UCS, VMware, and Fusion-io". Fusion-io. May 10, 2013. Archived from the original on July 2, 2014. Retrieved August 12, 2018.
  4. ^ "HP Achieves Two New #1 VMmark Virtualization Benchmarks with ION Data Accelerator". Fusion-io. September 12, 2013. Archived from the original on June 16, 2014. Retrieved August 12, 2018.
  5. ^ "HP achieves world records for 2P blade and 2P rack-mount server virtualization performance on VMmark 2.5.1 benchmark" (PDF). HP. October 2013.
  6. ^ "The K2 Tops Two Million IOPS Using a Single All-Flash Storage System". Kaminario. October 4, 2012.
  7. ^ "A tale of two SCSI targets [LWN.net]".
  8. ^ 플로리안 하스, "모든 것을 복제하라!" DRBD와 페이스메이커를 갖춘 고가용성 iSCSI 스토리지", (Linux iSCSI: Tale of Four Targets 섹션), Linux 저널 제217호, 2012년 5월
  9. ^ Meyer, David (18 March 2013). "Fusion-io picks up software-defined storage firm ID7 for SCST chops". Gigaom. Retrieved 20 July 2014.
  10. ^ O'Brien, Kevin (18 March 2013). "Fusion-io Acquires ID7, Developers of SCST". Retrieved 20 July 2014.
  11. ^ "Fusion-io ID7 - Accelerating Shared Storage with Software Defined Solutions". Fusion-io. Archived from the original on August 4, 2014. Retrieved August 12, 2018.
  12. ^ Iyer, Jay (23 July 2014). "SanDisk Completes Acquisition of Fusion-io". SanDisk.
  13. ^ Edge, Jake (April 3, 2012). "2012 Linux Storage, Filesystem, and Memory Management Summit - Day 1".
  14. ^ Van Assche, Bart (December 25, 2012). "More fine-grained locking in SCST".
  15. ^ Bolkhovitin, Vladislav; Van Assche, Bart (September 26, 2012). "SCST README".
  16. ^ Palekar, Ashish; Ganapathy, Narendran; Chadda, Anshul; Russell, Robert D. (2001). "Design and implementation of a Linux SCSI target for storage area networks". Proceedings of the 5th Annual Linux Showcase & Conference. USENIX Association. 5: 11–18. CiteSeerX 10.1.1.61.2706.
  17. ^ Bolkhovitin, Vladislav. "ANNOUNCE Generic SCSI Target Middle Level for Linux (SCST) with target drivers".
  18. ^ Fujita, Tomonori; Masanori, Ogawara (2004). "Analysis of iSCSI target software". Proceedings of the International Workshop on Storage Network Architecture and Parallel I/Os. Snapi '04. ACM: 25–32. doi:10.1145/1162628.1162632. ISBN 9781450378222. S2CID 14730273.
  19. ^ Fujita, Tomonori (June 1, 2004). "iSCSI Enterprise Target".
  20. ^ Fujita, Tomonori (March 1, 2005). "ANNOUNCE iSCSI enterprise target software".
  21. ^ Smith, Randy (September 7, 2005). "Chelsio Delivers Next-Generation iSCSI Product Family Featuring Breakthroughs in Performance and Port Density". Chelsio.
  22. ^ Habbinga, Erik (December 13, 2006). "LSI/MPT target driver".
  23. ^ Buechler, Mark R. (November 14, 2006). "Initial scstadmin commit".
  24. ^ Bolkhovitin, Vladislav (August 15, 2007). "Initial iSCSI-SCST commit".
  25. ^ Pham, Vu (May 17, 2008). "Initial SRP target driver commit".
  26. ^ Van Assche, Bart (December 20, 2010). "PATCH 4/7 scst: Add SRP target driver".
  27. ^ Yan, Andi (April 14, 2009). "Target driver for Marvell 88SE64xx(3G) and 88SE94xx(6G) SAS cards".
  28. ^ Bolkhovitin, Vladislav (July 8, 2009). "ANNOUNCE SCST Target driver support for Emulex lpfc FC/FCoE adapters".
  29. ^ Lane, Katherine (September 15, 2009). "SDK Brings Enhanced Value and Expanded Market Opportunity to Data Center Storage Solution Developers". Emulex. Archived from the original on October 15, 2009. Retrieved August 10, 2018.
  30. ^ "TargetConnect Software Developer Kit: Accelerate, Simplify and Enhance Target Driver Development". Emulex. September 15, 2009. Archived from the original on October 14, 2009. Retrieved August 10, 2018.
  31. ^ Eykholt, Joe (February 20, 2010). "Initial FCoE target driver commit".
  32. ^ Van Assche, Bart (December 20, 2010). "PATCH 5/7 ibmvstgt: Port from tgt to SCST".
  33. ^ Van Assche, Bart (May 11, 2011). "PATCH scst: Add implicit ALUA support".
  34. ^ Van Assche, Bart (Mar 17, 2013). "PATCH ib_srpt: Add support for QLogic InfiniBand HCA's".
  35. ^ Burman, Yan (January 21, 2014). "PATCH 0/9 iSER support for SCST".
  36. ^ Grigsby, Duane (May 20, 2014). "QLogic's 16G FC/FCoE HBA support".

외부 링크