This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| LIOターゲット | |
|---|---|
LIO Linux SCSIターゲット | |
| 原著者 | Nicholas Bellinger Jerome Martin |
| 開発者 | Datera, Inc. |
| 初回リリース | 2011年1月14日 (2011-01-14) |
| リポジトリ | github.com/open-iscsi |
| 言語 | C、Python |
| オペレーティングシステム | Linux |
| タイプ | ブロックストレージ |
| ライセンス | GNU General Public License |
| ウェブサイト | Wayback Machineのlinux-iscsi.org (2022年10月6日アーカイブ) |
Linux -IO(LIO)は、Linuxカーネルに含まれるオープンソースのSCSI( Small Computer System Interface )ターゲット実装です。[1] [より適切な出典が必要]
セッションを開始するイニシエーターとは異なり、LIOはターゲットとして機能し、1つ以上の論理ユニット番号(LUN)をSCSIイニシエーターに提示し、SCSIコマンドを受信し、入出力データ転送を管理します。[要出典]
LIOは、Fibre Channel over Ethernet(FCoE)、ファイバーチャネル、IEEE 1394、iSCSIなど、幅広いストレージプロトコルとトランスポートファブリックをサポートしています。[要出典]
これはいくつかのLinuxディストリビューションで利用されており、 QEMU / KVM、libvirt、OpenStackなどのツールとの統合により、クラウド環境で人気のある選択肢となっています。[要出典]
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は、並列化された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経由のエクスポート用のバックストアとして使用できます。これには、 HDD、SSD、CD / DVD、RAMディスクなどの物理デバイスと、ソフトウェアまたはハードウェア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

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 Interface(iSCSI)ファブリックモジュールは、標準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日アーカイブ) |
参照
- SCST Linux SCSIターゲットソフトウェアスタック
- ファイバチャネル
- Fibre Channel over Ethernet (FCoE)
- IEEE 1394 / Firewire
- InfiniBand
- iSCSI
- RDMA用iSCSI拡張機能(iSER)
- SCSI RDMAプロトコル(SRP)
- USB
注記
- ^ LIOが最初に含まれたディストリビューションリリース。
- ^ RHEL 6にはLIOが含まれていましたが、FCoEターゲットのみのデフォルトであり、iSCSIにはSTGTが使用されていました。RHEL 7ベータ版では、LIOはFCoE、iSCSI、およびMellanox InfiniBand iSER/SRPのデフォルトです。[28]
参考文献
- ^ "LIO". Linux-IO、Linux SCSIターゲットwiki。2016年3月12日。2022年8月20日にオリジナルからアーカイブ。
- ^ Linus Torvalds (2011年1月14日). "Trivial merge". Kernel.org 。 2019年9月28日閲覧。
- ^ Thorsten Leemhuis (2011年3月2日). "Kernel Log: Coming in 2.6.38 (Part 4) - Storage". Heise Online
- ^ 「2つのSCSIターゲットの物語」Lwn.net。2014年2月2日にオリジナルからアーカイブ。2014年1月20日閲覧。
- ^ Haas, Florian (2012年5月). 「すべてを複製! DRBDとPacemakerによる高可用性iSCSIストレージ」Linux Journal。2014年1月20日にオリジナルからアーカイブ。2019年9月28日閲覧。
- ^ Bolkhovitin, Vladislav (2018年4月11日). 「SCST vs STGT」Linux向け汎用SCSIターゲットサブシステム。2019年4月1日閲覧。
- ^ Technical Committee T10. 「SCSIストレージインターフェース」t10.org 。2012年12月24日閲覧
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ SCSIコマンドリファレンスマニュアル(PDF)。100293068、Rev. C. Scotts Valley: Seagate Technology。2010年4月。オリジナル(PDF)から2012年7月31日にアーカイブ。2012年12月25日閲覧
- ^ Bellinger, Nicholas (2009). LinuxプラットフォームにおけるiSCSIの現状と将来(PDF) . Linux Plumbers Conference.
- ^ Ralph Weber (2011-01-17). 「SCSI Primary Commands - 4 (SPC-4)」. t10.org . 2011年3月7日閲覧.
- ^ 「vStorage APIs for Array Integration」. Linux-IO, the Linux SCSI Target wiki . 2015-08-07. オリジナルから2022年8月20日アーカイブ.
- ^ Jonathan Corbet (2005-08-24). 「Configfs - an introduction」. lwn.net . 2011年3月7日閲覧
- ^ 「ファイバーチャネル:バックボーン - 5 改訂2.00」(PDF)。米国情報技術規格(ANSI)国際情報技術標準委員会技術グループT11。2009年6月4日。 2011年5月5日閲覧。
- ^ Linus Torvalds (2011年4月18日). 「[SCSI] tcm_fc: FCoEターゲット(TCM - ターゲットコア)サポートのためのFC_FC4プロバイダ(tcm_fc)の追加」。Kernel.org 。2019年9月28日閲覧。
- ^ 「T11ホームページ」。t11.org 。2012年12月25日閲覧
- ^ Linus Torvalds (2012-05-15). 「[SCSI] tcm_qla2xxx: ターゲットコア用の24xxシリーズ以上のファブリックモジュールを追加」. Kernel.org . 2019-09-28閲覧.
- ^ Linus Torvalds (2012-05-15). 「[SCSI] qla2xxx: 24xxシリーズ以上のLLDターゲットモードインフラストラクチャを追加」. Kernel.org . 2019-09-28閲覧.
- ^ ab Thorsten Leemhuis (2012-07-03). 「カーネルログ:3.5で登場(パート2) - ファイルシステムとストレージ」. Heise Online . 2013-01-14閲覧
- ^ 「FireWireターゲットディスクモードの使い方とトラブルシューティング方法」apple.com . 2012年12月24日閲覧。
- ^ Linus Torvalds (2012年4月15日).「sbp-target: firewire/ieee-1394ターゲットモードサポートの初期マージ」Kernel.org . 2019年9月28日閲覧。
- ^ Linus Torvalds (2011年7月27日).「iSCSIマージ」Kernel.org . 2019年9月28日閲覧。
- ^ RFC 5041
- ^ Linus Torvalds (2013年4月30日).「マージブランチ 'for-next-merge'」Kernel.org . 2019年9月28日閲覧
- ^ Linus Torvalds (2012-01-18). 「InfiniBand/SRP のマージ」. Kernel.org . 2019年9月28日閲覧.
- ^ 「マージブランチ 'usb-target-merge'」. Kernel.org . 2019年9月28日閲覧
- ^ 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.
- ^ Jerome Martin (2011-08-03). "Package rtslib". daterainc.com. Retrieved 2012-12-25.
- ^ "Chapter 6. Storage". Access.redhat.com. Retrieved 2014-01-20.
External links
- Official website at the Wayback Machine (archived 2022-10-13)
- Datera website