LIO(SCSIターゲット)

Open-source version of SCSI target
LIOターゲット
原著者Nicholas Bellinger
Jerome Martin
開発者Datera, Inc.
初回リリース2011年1月14日 (2011-01-14)
リポジトリgithub.com/open-iscsi
言語CPython
オペレーティングシステムLinux
タイプブロックストレージ
ライセンスGNU General Public License
ウェブサイトWayback Machineのlinux-iscsi.org (2022年10月6日アーカイブ)

Linux -IOLIO)は、Linuxカーネルに含まれるオープンソースのSCSI( Small Computer System Interface )ターゲット実装です[1] [より適切な出典が必要]

セッションを開始するイニシエーターとは異なり、LIOはターゲットとして機能し、1つ以上の論理ユニット番号(LUN)をSCSIイニシエーターに提示し、SCSIコマンドを受信し、入出力データ転送を管理します。[要出典]

LIOは、Fibre Channel over Ethernet(FCoE)、ファイバーチャネルIEEE 1394iSCSIなど、幅広いストレージプロトコルとトランスポートファブリックをサポートしています[要出典]

これはいくつかのLinuxディストリビューションで利用されており、 QEMU / KVMlibvirtOpenStackなどのツールとの統合により、クラウド環境で人気のある選択肢となっています[要出典]

LIOプロジェクトは、シリコンバレーを拠点とするストレージソリューションプロバイダーであるDateraによってメンテナンスされています。 [疑わしい議論する] 2011年1月15日、LIOはバージョン2.6.38でLinuxカーネルメインラインに統合され、2011年3月14日に正式にリリースされました。[2] [3] Linuxカーネルのその後のバージョンでは、互換性を拡張するために追加のファブリックモジュールが導入されています。[要出典]

LIO competes with other SCSI target modules in the Linux ecosystem. The SCSI Target Framework (SCST) [4] is a prominent alternative for general SCSI target functionality, while for iSCSI-specific targets, the older iSCSI Enterprise Target (IET) and SCSI Target Framework (STGT) also have industry adoption. [5] [6]

背景

The SCSI standard provides an extensible semantic abstraction for computer data storage devices, and is used with data storage systems. The SCSI T10 standards [7] define the commands [8] and protocols of the SCSI command processor (sent in SCSI CDBs ), and the electrical and optical interfaces for various implementations.

SCSIイニシエーターは、 SCSIセッションを開始するエンドポイントです。SCSIターゲットは、イニシエーターコマンドを待機し、必要なI/Oデータ転送を実行するエンドポイントです。SCSIターゲットは通常、イニシエーターが操作するための 1つ以上のLUNをエクスポートします

LIO Linux SCSIターゲットは、一般的なストレージファブリックとプロトコルを介して、ほとんどの種類のデータストレージデバイスへのリモートアクセスを提供する汎用SCSIターゲットを実装しています。LIOはデータに直接アクセスすることも、アプリケーションと直接通信することもありません。

アーキテクチャ

LIOアーキテクチャ

LIOは、並列化されたSCSIコマンド処理エンジンを中心としたモジュール式で拡張可能なアーキテクチャを実装しています。[9]

LIO SCSIターゲットエンジンは、特定のファブリックモジュールやバックストアタイプに依存しません。したがって、LIOは任意の数のファブリックとバックストアを同時に混在させることができます。LIO SCSIターゲットエンジンは、SCSI-3/SCSI- 4 Persistent Reservations(PR)、SCSI-4 Asymmetric Logical Unit Assignment (ALUA)、VMware vSphere APIs for Array Integration(VAAI) [11 ] T10 DIFなど のハイエンド機能をサポートする包括的なSPC-3 /SPC-4 [10]機能セットを実装しています

LIOはconfigfsベース[12]のカーネルAPIを介して設定可能であり、コマンドラインインターフェースとAPI(targetcli)を介して管理できます。

SCSIターゲット

SCSIターゲットの概念は、SCSIバス上の物理デバイスに限定されず、論理SCSIファブリック上のすべてのレシーバーに汎用モデルを提供します。これには、物理​​SCSIバスを全く持たない相互接続を介したSCSIセッションが含まれます。概念的には、このシナリオでは SCSIターゲットは汎用ブロックストレージサービスまたはサーバーを提供します。

バックストア

バックストアは、対応するデバイスドライバーを介してデータストレージデバイスをインポートすることにより、SCSIターゲットに汎用アクセスを提供します。バックストアは物理SCSIデバイスである必要はありません。

最も重要なバックストアメディアの種類は次のとおりです。

  • ブロック:ブロックドライバーを使用すると、生のLinuxブロックデバイスをLIO経由のエクスポート用のバックストアとして使用できます。これには、 HDDSSDCD / DVDRAMディスクなどの物理デバイスと、ソフトウェアまたはハードウェアRAIDボリュームやLVMボリュームなどの論理デバイスが含まれます。
  • ファイル:ファイルドライバーを使用すると、任意のLinuxファイルシステムまたはクラスター化されたファイルシステムに存在するファイルを、LIO経由のエクスポート用のバックストアとして使用できます
  • Raw:Rawドライバは、LIO経由のエクスポート用のバックストアとして非構造化メモリの使用を可能にします。

その結果、LIOはブロックストレージをエクスポートするための汎用モデルを提供します。

ファブリックモジュール

ファブリックモジュールは、サポートされている様々な相互接続のプロパティをカプセル化および抽象化することにより、SCSIターゲットのフロントエンドを実装します。以下のファブリックモジュールが利用可能です。

FCoE

ストレージとローカルエリアネットワークの組み合わせ

FCoE( Fibre Channel over Ethernet)ファブリックモジュールは、ロスレスイーサネットネットワークを介してファイバチャネルプロトコル(FCP)トラフィックを転送することを可能にします。この仕様は、多数のネットワークおよびストレージベンダーによってサポートされており、技術委員会T11 FC-BB-5規格の一部です。[13]

LIOはすべての標準イーサネットNICをサポートします。

FCoEファブリックモジュールは、シスコインテルによって提供され、2011年7月21日にLinux 3.0とともにリリースされました。[14]

ファイバチャネル

ファイバチャネルは、主にストレージネットワークに使用される高速ネットワーク技術です。国際情報技術標準化委員会(INCITS)の 技術委員会T11 [15]で標準化されています。

QLogicファイバチャネルファブリック、以下のHBAで 4ギガビットおよび8ギガビットの速度をサポートします。

  • QLogic 2400シリーズ(QLx246x)、4GFC
  • QLogic 2500シリーズ (QLE256x)、8GFC (完全認定)

ファイバーチャネルファブリックモジュール[16]と低レベルドライバ[17](LLD)は、2012年7月21日にLinux 3.5とともにリリースされました。[18]

Linux 3.9では、以下のQLogic HBAとCNAもサポートされています。

  • QLogic 2600シリーズ (QLE266x)、16GFC、SR-IOV
  • QLogic 8300シリーズ (QLE834x)、16GFS/10GbE、PCIe Gen3 SR-IOV
  • QLogic 8100シリーズ (QLE81xx)、8GFC/10GbE、PCIe Gen2

これにより、LIOは16ギガビットファイバーチャネルをサポートする最初のオープンソースターゲットとなります。

IEEE 1394

Mac OS X用LIO FireWireターゲット

FireWire SBP-2ファブリックモジュールにより、LinuxはIEEE 1394経由でローカルストレージデバイスをエクスポートできるため、他のシステムで通常のIEEE 1394ストレージデバイスとしてマウントできます。

IEEE 1394は、高速通信とアイソクロナスリアルタイムデータ転送のためのシリアルバスインターフェース規格です。 1980年代後半から1990年代初頭にかけてApple社によって「FireWire」として開発され、 Macintoshコンピュータは1999年から「FireWireターゲットディスクモード」をサポートしています。[19]

FireWire SBP-2ファブリックモジュールは、2012年7月21日にLinux 3.5とともにリリースされました。[18] [20]

iSCSI

Internet Small Computer System InterfaceiSCSI)ファブリックモジュールは、標準IPネットワークを介してSCSIトラフィックを転送することを可能にします

iSCSIは、IPネットワークを介してSCSIセッションを伝送することで、イントラネット経由のデータ転送を容易にし、長距離のストレージを管理するために使用されます。iSCSIは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはインターネット経由でデータを転送するために使用でき、場所に依存しない、場所を透過的なデータの保存と取得を可能にします。

LIO iSCSIファブリックモジュールは、セッションあたりの複数接続(MC/S)やエラー回復レベル0~2(ERL=0、1、2)など、パフォーマンスと復元力を向上させる多くの高度なiSCSI機能も実装しています。

LIOはすべての標準イーサネットNICをサポートします。

iSCSIファブリックモジュールは、2011年10月24日にLinux 3.1とともにリリースされました。[21]

iSER

リモートダイレクトメモリアクセス(RDMA)をサポートするネットワークは、 iSCSI Extensions for RDMA(iSER)ファブリックモジュールを使用してiSCSIトラフィックを転送できます。iSERは、RDMAを使用することで、中間データコピー(直接データ配置またはDDP)なしで、リモートSCSIコンピュータのメモリバッファとの間でデータを直接転送することを可能にします。 [22] RDMAは、 InfiniBandネットワーク、RDMA over Converged Ethernet (RoCE)を介したデータセンターブリッジング(DCB)ネットワークを備えたイーサネット、およびiWARP拡張TCPオフロードエンジンコントローラを備えた標準イーサネットネットワークでサポートされています

iSERファブリックモジュールは、DateraとMellanox Technologiesによって共同で開発され、2013年6月30日にLinux 3.10で初めてリリースされました。[23]

SRP

SCSI RDMAプロトコル(SRP)ファブリックモジュールは、RDMA(上記参照)ネットワークを介してSCSIトラフィックを転送することを可能にします。2013年時点では、SRPはiSERよりも広く使用されていますが、SCSIはピアツーピアプロトコルであるのに対し、iSCSIは完全にルーティング可能であるため、より制限があります。SRPファブリックモジュールは、以下のMellanoxホストチャネルアダプター(HCA)をサポートしています。

  • Mellanox ConnectX-2 VPI PCIe Gen2 HCA(x8レーン)、シングル/デュアルポートQDR 40Gbit/s
  • Mellanox ConnectX-3 VPI PCIe Gen3 HCA(x8レーン)、シングル/デュアルポートFDR 56Gbit/s
  • Mellanox ConnectX-IB PCIe Gen3 HCA(x16レーン)、シングル/デュアルポートFDR 56Gbit/s

SRPファブリックモジュールは、2012年3月18日にLinux 3.3とともにリリースされました。[24]

2012年、c't誌は、 Fusion-IO ioDrive PCI Expressフラッシュメモリカード4枚を搭載したSandy Bridge PCI Express 3.0システムにおいて、56 Gbit/s FDRモードのMellanox ConnectX-3ポート1つを介してLIO SRPターゲットで約5000 MB/sのスループットを測定しました。

USB

USBガジェットファブリックモジュールは、Linuxがユニバーサルシリアルバス(USB)経由でローカルストレージデバイスをエクスポートできるようにし、他のシステムが通常のストレージデバイスとしてマウントできるようにします。

USBは1990年代半ばにコンピュータ周辺機器の接続を標準化するために設計され、データストレージデバイスでも一般的になっています。

USBガジェットファブリックモジュールは、2012年7月21日にLinux 3.5とともにリリースされました。 [25]

Targetcli

targetcliは、LIO用のユーザー空間シングルノード管理コマンドラインインターフェース(CLI)です。[26]すべてのファブリックモジュールをサポートし、モジュール式の拡張可能なアーキテクチャに基づいており、追加のファブリックモジュールまたは機能用のプラグインモジュールを備えています。

targetcliは、明確に定義されたAPIを介して、基盤となる汎用ターゲットライブラリを使用するCLIを提供します。したがって、CLIはGUIなどの他のメタファーを持つUIに簡単に置き換えたり、補完したりできます。

targetcliはPythonで実装されており、3つの主要モジュールで構成されています

  • 基盤となるrtslibとAPI。[27]
  • ファブリック固有の属性を対応する「spec」ファイルにカプセル化するconfigshell
  • targetcliシェル自体。

LIOターゲットの設定方法の詳細な手順は、LIO wikiで確認できます。[ 26]

Linuxディストリビューション

targetcliとLIOは、ほとんどのLinuxディストリビューションにデフォルトで含まれています。以下に、最も人気のあるディストリビューションの概要と、最初の組み込み日を示します。

ディストリビューション バージョン[a] リリース アーカイブ インストール ソースgit ドキュメント
Alpine Linux 2.5 2011-11-07 Alpine Linuxミラー(Wayback Machineに2012年12月12日にアーカイブ) apk add targetcli-fb targetcli-fb.git ハウツー
CentOS 6.2 2011-12-20 CentOSミラー su -c 'yum install fcoe-target-utils' targetcli-fb.git 技術ノート
Debian 7.0 ("wheezy") 2013-05-04 Debianプール su -c 'apt-get install targetcli' targetcli.git Debian - LIO Wiki ( Wayback Machineにアーカイブ)(2022年8月20日にアーカイブ)
Fedora 16 2011-11-08 Fedora Rawhide su -c 'yum install targetcli' targetcli-fb.git Target Wiki
openSUSE 12.1 2011-11-08 Datera targetcli.gitリポジトリからの手動インストールが必要です。
RHEL [b] 6.2 2011-11-16 Fedora Rawhide su -c 'yum install fcoe-target-utils' targetcli-fb.git 技術ノート
Scientific Linux 6.2 2012-02-16 SLミラー su -c 'yum install fcoe-target-utils' targetcli-fb.git 技術ノート
SLES 11 SP3 MR 2013-12 - su -c 'zypper in targetcli' targetcli.git SLES - LIO Wiki at the Wayback Machine (2022年8月2日アーカイブ)
Ubuntu 12.04 LTS (正確) 2012-04-26 Ubuntu universe sudo apt-get install targetcli targetcli.git Ubuntu - LIO Wiki at the Wayback Machine (2022年10月21日アーカイブ)

参照

注記

  1. ^ LIOが最初に含まれたディストリビューションリリース。
  2. ^ RHEL 6にはLIOが含まれていましたが、FCoEターゲットのみのデフォルトであり、iSCSIにはSTGTが使用されていました。RHEL 7ベータ版では、LIOはFCoE、iSCSI、およびMellanox InfiniBand iSER/SRPのデフォルトです。[28]

参考文献

  1. ^ "LIO". Linux-IO、Linux SCSIターゲットwiki。2016年3月12日。2022年8月20日にオリジナルからアーカイブ。
  2. ^ Linus Torvalds (2011年1月14日). "Trivial merge". Kernel.org 。 2019年9月28日閲覧
  3. ^ Thorsten Leemhuis (2011年3月2日). "Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online
  4. ^ 「2つのSCSIターゲットの物語」Lwn.net。2014年2月2日にオリジナルからアーカイブ2014年1月20日閲覧。
  5. ^ Haas, Florian (2012年5月). 「すべてを複製! DRBDとPacemakerによる高可用性iSCSIストレージ」Linux Journal。2014年1月20日にオリジナルからアーカイブ2019年9月28日閲覧。
  6. ^ Bolkhovitin, Vladislav (2018年4月11日). 「SCST vs STGT」Linux向け汎用SCSIターゲットサブシステム2019年4月1日閲覧。
  7. ^ Technical Committee T10. 「SCSIストレージインターフェース」t10.org 2012年12月24日閲覧{{cite web}}: CS1 maint: numeric names: authors list (link)
  8. ^ SCSIコマンドリファレンスマニュアル(PDF)。100293068、Rev. C. Scotts Valley: Seagate Technology。2010年4月。オリジナル(PDF)から2012年7月31日にアーカイブ2012年12月25日閲覧
  9. ^ Bellinger, Nicholas (2009). LinuxプラットフォームにおけるiSCSIの現状と将来(PDF) . Linux Plumbers Conference.
  10. ^ Ralph Weber (2011-01-17). 「SCSI Primary Commands - 4 (SPC-4)」. t10.org . 2011年3月7日閲覧.
  11. ^ 「vStorage APIs for Array Integration」. Linux-IO, the Linux SCSI Target wiki . 2015-08-07. オリジナルから2022年8月20日アーカイブ.
  12. ^ Jonathan Corbet (2005-08-24). 「Configfs - an introduction」. lwn.net . 2011年3月7日閲覧
  13. ^ 「ファイバーチャネル:バックボーン - 5 改訂2.00」(PDF)。米国情報技術規格(ANSI)国際情報技術標準委員会技術グループT11。2009年6月4日。 2011年5月5日閲覧
  14. ^ Linus Torvalds (2011年4月18日). 「[SCSI] tcm_fc: FCoEターゲット(TCM - ターゲットコア)サポートのためのFC_FC4プロバイダ(tcm_fc)の追加」。Kernel.org 2019年9月28日閲覧。
  15. ^ 「T11ホームページ」。t11.org 2012年12月25日閲覧
  16. ^ Linus Torvalds (2012-05-15). 「[SCSI] tcm_qla2xxx: ターゲットコア用の24xxシリーズ以上のファブリックモジュールを追加」. Kernel.org . 2019-09-28閲覧.
  17. ^ Linus Torvalds (2012-05-15). 「[SCSI] qla2xxx: 24xxシリーズ以上のLLDターゲットモードインフラストラクチャを追加」. Kernel.org . 2019-09-28閲覧.
  18. ^ ab Thorsten Leemhuis (2012-07-03). 「カーネルログ:3.5で登場(パート2) - ファイルシステムとストレージ」. Heise Online . 2013-01-14閲覧
  19. ^ 「FireWireターゲットディスクモードの使い方とトラブルシューティング方法」apple.com . 2012年12月24日閲覧
  20. ^ Linus Torvalds (2012年4月15日).「sbp-target: firewire/ieee-1394ターゲットモードサポートの初期マージ」Kernel.org . 2019年9月28日閲覧。
  21. ^ Linus Torvalds (2011年7月27日).「iSCSIマージ」Kernel.org . 2019年9月28日閲覧
  22. ^ RFC  5041
  23. ^ Linus Torvalds (2013年4月30日).「マージブランチ 'for-next-merge'」Kernel.org . 2019年9月28閲覧
  24. ^ Linus Torvalds (2012-01-18). 「InfiniBand/SRP のマージ」. Kernel.org . 2019年9月28日閲覧.
  25. ^ 「マージブランチ 'usb-target-merge'」. Kernel.org . 2019年9月28閲覧
  26. ^ a b "Targetcli". Linux-IO, the Linux SCSI Target wiki. 2012-12-09. Archived from the original on 2013-03-02. Retrieved 2012-12-25.
  27. ^ Jerome Martin (2011-08-03). "Package rtslib". daterainc.com. Retrieved 2012-12-25.
  28. ^ "Chapter 6. Storage". Access.redhat.com. Retrieved 2014-01-20.
  • Official website at the Wayback Machine (archived 2022-10-13)
  • Datera website
Retrieved from "https://en.wikipedia.org/w/index.php?title=LIO_(SCSI_target)&oldid=1305090825#Architecture"