Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
「前回の   COMSTAR ネタに刺激されてしまったので、オレも  COMSTAR     を使ってみた。」 ( 仮 ) Kazuyuki Sato
Agenda <ul><li>SCSI Initiator mode
SCSI Target Mode Framework(STMF) </li><ul><li>Logical-unit provider
Port Provider
libstmf </li></ul><li>Targetができるまで
Fibre Channel Target
COMSTAR VTape driver
参考情報 </li></ul>
SCSI Initiator mode <ul><li>Sun Common SCSI Architecture (SCSA) </li><ul><li>Solaris に実装されている SCSI を扱うための共通アーキテクチャ </li></...
プロトコルは・・・ </li><ul><li>FibreChannel, iSCSI, Parallel SCSI, SAS, etc... </li></ul><li>ディスクを扱うために普通に利用している機能 </li><ul><li>sd...
前回の勉強会資料 <ul><li>前回の勉強会資料も併せて参照してください
COMSTARの紹介(仮) - tokuyama-san </li><ul><li>http://docs.google.com/present/view?id=dpdpddx_4dnvjv7c9
COMSTAR の概要と iSCSI Target の作成を紹介 </li></ul></ul>
SCSI Target Mode  Framework
SCSI Target Mode Framework (STMF) <ul><li>STMF が中核となり、下記のサービスを提供 </li><ul><li>Logical-Unit Proveider(+ SCSI block device)
Port Proveider (Target  サービス )
libstmf による管理インターフェース </li></ul><li>これが COMSTAR の Core となる実装 </li><ul><li>STMF だと通じない場合が多いので COMSTAR と言っておくのが無難
STMF という言葉に反応する人が近くにいたら、気をつけて・・・ </li></ul></ul>
SCSI Target Mode Framework (Cont...) <ul><li>ようは、 OpenSolaris が動くマシンを SCSI Target にしてしまおうというもの </li><ul><li>どうみても PC だろ? と...
Initiator から見れば単なるディスク </li></ul><li>Solaris Nevada b90 で実装
これって、すごくね? </li></ul>
COMSTAR を構成する要素 <ul><li>おさらいです
COMSTAR を構成する要素 </li><ul><li>Logical-unit provider
Port Provider
libstmf </li></ul></ul>
COMSTARを構成する要素 <ul><li>こんな感じ </li></ul>STMF Framework | +-------> LU_Provider    |  | |  +--> LU01 (/raw/disk01) |  +--> L...
Logical-unit Provider <ul><li>SCSI Logical-unitを構成するためのもの </li><ul><li>SCSI block deviceを作成し、SCSI LUとしてSTMF Frameworkに登録(R...
SCSI block deviceはbacking storeから作成
STMF Frameworkに登録されると、GUIDと呼ばれるユニークなIDが割り当てられる
GUIDを使ってTargetと紐付ける </li></ul></ul># sbdadm list-lu Found 2 LU(s) GUID   DATA SIZE  SOURCE -------------------------------...
Port Provider (SCSI Target Port) <ul><li>なんらかのinterfaceを利用してtarget機能を提供する </li><ul><li>Ethernet (iSCSI)
Fiber Channel (FC, FCoE)
InifiniBand(iSER..)
SAS(まだ、提供されてないような気がする) </li></ul><li>STMF Frameworkを通してLogical-unit Providerと紐付く
SCSIコマンドをLUに運ぶ役割
target毎に異なる管理コマンドで操作 </li></ul>
Upcoming SlideShare
Loading in …5
×

「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)

8,543 views

Published on

Published in: Career, Technology
  • Be the first to comment

「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)

  1. 1. 「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」 ( 仮 ) Kazuyuki Sato
  2. 2. Agenda <ul><li>SCSI Initiator mode
  3. 3. SCSI Target Mode Framework(STMF) </li><ul><li>Logical-unit provider
  4. 4. Port Provider
  5. 5. libstmf </li></ul><li>Targetができるまで
  6. 6. Fibre Channel Target
  7. 7. COMSTAR VTape driver
  8. 8. 参考情報 </li></ul>
  9. 9. SCSI Initiator mode <ul><li>Sun Common SCSI Architecture (SCSA) </li><ul><li>Solaris に実装されている SCSI を扱うための共通アーキテクチャ </li></ul><li>従来から提供されている Initiator 機能
  10. 10. プロトコルは・・・ </li><ul><li>FibreChannel, iSCSI, Parallel SCSI, SAS, etc... </li></ul><li>ディスクを扱うために普通に利用している機能 </li><ul><li>sd/ssd driver が SCSI プロトコルを使ってデバイスとお話している </li></ul><li>気にしなくて OK </li></ul>
  11. 11. 前回の勉強会資料 <ul><li>前回の勉強会資料も併せて参照してください
  12. 12. COMSTARの紹介(仮) - tokuyama-san </li><ul><li>http://docs.google.com/present/view?id=dpdpddx_4dnvjv7c9
  13. 13. COMSTAR の概要と iSCSI Target の作成を紹介 </li></ul></ul>
  14. 14. SCSI Target Mode Framework
  15. 15. SCSI Target Mode Framework (STMF) <ul><li>STMF が中核となり、下記のサービスを提供 </li><ul><li>Logical-Unit Proveider(+ SCSI block device)
  16. 16. Port Proveider (Target サービス )
  17. 17. libstmf による管理インターフェース </li></ul><li>これが COMSTAR の Core となる実装 </li><ul><li>STMF だと通じない場合が多いので COMSTAR と言っておくのが無難
  18. 18. STMF という言葉に反応する人が近くにいたら、気をつけて・・・ </li></ul></ul>
  19. 19. SCSI Target Mode Framework (Cont...) <ul><li>ようは、 OpenSolaris が動くマシンを SCSI Target にしてしまおうというもの </li><ul><li>どうみても PC だろ? というものがディスク装置になる
  20. 20. Initiator から見れば単なるディスク </li></ul><li>Solaris Nevada b90 で実装
  21. 21. これって、すごくね? </li></ul>
  22. 22. COMSTAR を構成する要素 <ul><li>おさらいです
  23. 23. COMSTAR を構成する要素 </li><ul><li>Logical-unit provider
  24. 24. Port Provider
  25. 25. libstmf </li></ul></ul>
  26. 26. COMSTARを構成する要素 <ul><li>こんな感じ </li></ul>STMF Framework | +-------> LU_Provider | | | +--> LU01 (/raw/disk01) | +--> LU02 (/zfs_mnt) | +-------> Port_Provider | +--> Port01 (qlogic HBA port0 wwn.xxxx) +--> Port02 (qlogic HBA port1 wwn.xxxx) ... +--> Port n (emulex HBA port1 wwn.xxxx)
  27. 27. Logical-unit Provider <ul><li>SCSI Logical-unitを構成するためのもの </li><ul><li>SCSI block deviceを作成し、SCSI LUとしてSTMF Frameworkに登録(Regist)する
  28. 28. SCSI block deviceはbacking storeから作成
  29. 29. STMF Frameworkに登録されると、GUIDと呼ばれるユニークなIDが割り当てられる
  30. 30. GUIDを使ってTargetと紐付ける </li></ul></ul># sbdadm list-lu Found 2 LU(s) GUID DATA SIZE SOURCE -------------------------------- ------------------- ---------------- 600144f00003ba12ba194bd6ec950001 21474836480 /dev/zvol/rdsk/rpool2/fct-volume.01 600144f00003ba12ba194bd7a0e10002 36417050624 /dev/rdsk/c0t1d0s0
  31. 31. Port Provider (SCSI Target Port) <ul><li>なんらかのinterfaceを利用してtarget機能を提供する </li><ul><li>Ethernet (iSCSI)
  32. 32. Fiber Channel (FC, FCoE)
  33. 33. InifiniBand(iSER..)
  34. 34. SAS(まだ、提供されてないような気がする) </li></ul><li>STMF Frameworkを通してLogical-unit Providerと紐付く
  35. 35. SCSIコマンドをLUに運ぶ役割
  36. 36. target毎に異なる管理コマンドで操作 </li></ul>
  37. 37. libstmf <ul><li>STMF Frameworkを操作するためのAPI群 </li><ul><li>Target作成コマンド(itadm とか)
  38. 38. sbdadm/stmfadmコマンドとか </li></ul><li>これを使って、私たちはSTMFを操作します
  39. 39. Initiatorは使ってない </li><ul><li>iscsiadmとか
  40. 40. なので、initiatorはSTMFの影響を受けない
  41. 41. 既存のやり方がそのまま使える </li></ul></ul>
  42. 42. sbdadmとstmfadm <ul><li>sbdadmコマンド </li><ul><li>backing storeからSCSI block deviceを作成しLogical-unitとしてSTMF Frameworkに登録するためのコマンド </li></ul><li>stmfadmコマンド </li><ul><li>STMF Frameworkを操作するコマンド
  43. 43. Logical-unitの操作や、target/host groupの操作、Port Providerとの紐付けなど
  44. 44. b115でsbdadmの機能も取り込んだ </li></ul></ul>stmfadm– SCSI target mode framework command line interface http://docs.sun.com/app/docs/doc/819-2240/stmfadm-1m?l=ja&a=view&q=stmfadm
  45. 45. LUに割り当てるbacking store <ul><li>backing storeって言ってるけど、何それ?
  46. 46. 実データを格納する実際の入れ物
  47. 47. backing storeとして利用可能なもの </li><ul><li>スライス
  48. 48. raw block device (zvol 含む)
  49. 49. file </li></ul><li>お好きなモノをどうぞ
  50. 50. 遊んでみた感じでは、 </li><ul><li>スライス /block device > zvol > 越えられない壁 > file </li></ul></ul>
  51. 51. もうちょっとLogical-unit <ul><li>create-luされたbacking storeはMeta-dataと呼ばれる情報を書き込むので注意
  52. 52. meta-dataは外出し可能
  53. 53. meta-dataの中身は、だいたいこんな感じ </li><ul><li>stringsコマンドで中身をのぞいてみただけ </li></ul></ul>kazus@b1000:/usr/tmp$ strings meta.c0t1d0 SUNSBDLU /dev/rdsk/c0t1d0 /usr/tmp/meta.c0t1d0 ※ stmfadm create-lu -p meta=/usr/tmp/meta.c0t1d0 で LU を作成。 backing store は /dev/rdsk/c0t1d0 (EFI label)
  54. 54. もうちょっとLogical-unit kazus@b1000:~# stmfadm create-lu stmfadm: create-lu requires an operand Usage: stmfadm create-lu [OPTIONS] <lu file> OPTIONS: -p, --lu-prop <logical-unit-property=value> -s, --size <size K/M/G/T/P> Description: Create a logical unit. Valid properties for -p, --lu-prop are: alias - alias for logical unit (up to 255 chars) blk - block size in bytes in 2^n guid - 32 ascii hex characters in NAA format host-id - host identifier to be used for GUID generation 8 ascii hex characters meta - separate meta data file name mgmt-url - Management URL address oui - organizational unique identifier 6 ascii hex characters of valid format pid - product identifier (up to 16 chars) serial - serial number (up to 252 chars) vid - vendor identifier (up to 8 chars) wcd - write cache disabled (true, false) wp - write protect (true, false)
  55. 55. もうちょっとLogical-unit <ul><li>おうちにSun Storage 7410とかあるお! </li></ul>kazus@u20m2:~# format -e Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c1t0d0 <DEFAULT cyl 30398 alt 2 hd 255 sec 63> /pci@0,0/pci108e,534d@5/disk@0,0 1. c3t210000E08B9D6EDBd0 < SUN-COMSTAR-1.0-20.00GB > /pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0/disk@w210000e08b9d6edb,0 2. c3t210000E08B9D6EDBd1 < SUN-Sun Storage 7410-1.0-136.73GB > /pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0/disk@w210000e08b9d6edb,1 3. c3t210000E08B9D6EDBd2 <SUN-COMSTAR-1.0-10.00GB> /pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0/disk@w210000e08b9d6edb,2 4. c4t210100E08BBD6EDBd0 <SUN-COMSTAR-1.0-20.00GB> /pci@0,0/pci10de,370@6/pci1077,100@8/fp@0,0/disk@w210100e08bbd6edb,0 5. c4t210100E08BBD6EDBd1 <SUN-Sun Storage 7410-1.0-136.73GB> /pci@0,0/pci10de,370@6/pci1077,100@8/fp@0,0/disk@w210100e08bbd6edb,1 6. c4t210100E08BBD6EDBd2 <SUN-COMSTAR-1.0-10.00GB> /pci@0,0/pci10de,370@6/pci1077,100@8/fp@0,0/disk@w210100e08bbd6edb,2
  56. 56. もうちょっとLogical-unit <ul><li>target 側でも initiator 側でも zfs import 可能にする方法 </li><ul><li>target 側で適当なディスクを zpool create で pool にする
  57. 57. 作った pool を zpool export する
  58. 58. stmfadm create-lu -p meta=hoge で zpool の device を STMF 登録 </li><ul><li>meta を忘れると、先頭 64KB に meta data が配置されるため zpool import に反応しなくなるので注意 </li></ul><li>できた GUID を元に stmfadm add-view する </li><ul><li>target 経由でアクセス可能になる </li></ul><li>initiator 側で、 disk を確認
  59. 59. zpool import してみる </li></ul><li>これで、target 側でも initiator 側でも import 可能になる
  60. 60. 使い道は、まだない </li></ul>
  61. 61. Target ができるまで - まとめ -
  62. 62. Targetができるまで <ul><li>backing storeを用意
  63. 63. backing store を SCSI block device化
  64. 64. stmfadmでSCSI clock deviceをSTMF Frameworkに登録し、Logical-unitに変身させる
  65. 65. ここまでがLogical-unit providerのお仕事 </li></ul>
  66. 66. Targetができるまで <ul><li>そして、Targetの作成
  67. 67. Logical-unitを紐づけるTargetを選定 </li><ul><li>iSCSI, FC, Inifiniband.... </li></ul><li>Targetの作成 </li><ul><li>iSCSIなら/usr/sbin/itadm
  68. 68. FC targetならdriverを入れ替え
  69. 69. など </li></ul><li>ここまでがPort Providerのお仕事 </li></ul>
  70. 70. Targetができるまで <ul><li>まとめると・・・作業的にはこんな感じ </li><ul><li>Logical-unit として利用するための backing store を決定
  71. 71. sbdadm コマンドで logical-unit を作成
  72. 72. 作成した logical-unit を stmfadm コマンドで STMF に登録
  73. 73. 登録した logical-unit と target の紐付け
  74. 74. Initiator との接続 </li></ul></ul>
  75. 75. Fibre Channel Target
  76. 76. Fibre Channel Target <ul><li>FC HBAを搭載したマシンがFC Storageに
  77. 77. メリット </li><ul><li>オレのマシンがFCストレージに
  78. 78. カプセル化とか必要なく、直接FCプロトコルでやりとり </li></ul><li>デメリット </li><ul><li>TargetになれるHBAが必要
  79. 79. iSCSIに比べ、FC HBAを揃えたりFC switch欲しくなったりとコストがかかる
  80. 80. おうちにFCとか、なにソレきもいとか言われる </li></ul></ul>
  81. 81. Fibre Channel Target <ul><li>FC Target構築に必要なもの </li><ul><li>OpenSolaris 2009.06 以降 </li><ul><li>より新しいものを使うのが吉(dev build とか) </li></ul><li>Target 機能をサポートするFC HBA </li><ul><li>QLogic </li><ul><li>4Gbps以上必須。1Gbps, 2GbpsのHBAは使えない </li></ul><li>Emulex </li><ul><li>2Gbpsものでもサポートしているとあるが動かせていない </li></ul><li>Multipath(パスの冗長化)を行うなら複数 </li></ul><li>詳細は、こちら COMSTAR Frequently Asked Questions (FAQs)
  82. 82. http://hub.opensolaris.org/bin/view/Project+comstar/FAQs </li></ul></ul>
  83. 83. Fibre Channel Target <ul><li>Initiatorに必要なもの </li><ul><li>FC HBA </li><ul><li>なんでもいい。1Gbpsからでも問題ないはず。
  84. 84. Multipathにするなら複数 </li></ul><li>FCを扱えるOS </li><ul><li>好きなの使っていいですよ </li></ul></ul><li>あとは、TargetとInitiatorを接続するためのケーブル </li><ul><li>当然、FC Switchは必須ではなく、Point-toPointで接続できる </li></ul></ul>
  85. 85. Fibre Channel Target <ul><li>Target device driver </li><ul><li>QLogicなHBAは、qlt driver </li><ul><li>target専用driver , initiatorはqlc driver
  86. 86. /etc/driver_aliasesを書き換える必要あり </li></ul><li>EmulexなHBAは、emlxs driver </li><ul><li>driver一つでtarget/initiator提供
  87. 87. emlxs.confを修正する必要あり </li></ul></ul><li>とにかく、コレを見て! COMSTAR Administration http://wikis.sun.com/display/OpenSolarisInfo/COMSTAR+Administration </li></ul>
  88. 88. Fibre Channel Target <ul><li>練習用の構成
  89. 89. FC Target: Sun Blade 1000 </li><ul><li>OpenSolaris dev b134 + ON nightly (b141)
  90. 90. HBA: SG-XPCI2FC-QF4 (Qlogic QLA2422) 4Gbps Dual-ports </li></ul><li>FC Initiator: Sun Ultra 20 M2 </li><ul><li>OpenSolaris dev b134 + ON nightly (b141)
  91. 91. HBA: QLogic QLA2340 (2Gbps) </li></ul><li>Point-to-Pointでケーブル直結 </li></ul>
  92. 92. Initiatorからどんな感じで見えるの? <ul><li>だから、FC Storageと一緒だとあれほd(ry </li></ul>kazus@u20m2:# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c1t0d0 <DEFAULT cyl 30398 alt 2 hd 255 sec 63> /pci@0,0/pci108e,534d@5/disk@0,0 1. c2t600144F00003BA12BA194BD6EC950001d0 <DEFAULT cyl 2608 alt 2 hd 255 sec 63> /scsi_vhci/disk@g600144f00003ba12ba194bd6ec950001 kazus@u20m2:# iostat -En c2t600144F00003BA12BA194BD6EC950001d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 Vendor: SUN Product: COMSTAR Revision: 1.0 Serial No: Size: 21.47GB <21474836480 bytes> Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 Illegal Request: 0 Predictive Failure Analysis: 0 kazus@u20m2:~# fcinfo lu -v OS Device Name: /dev/rdsk/c2t600144F00003BA12BA194BD6EC950001d0s2 HBA Port WWN: 210000e08b1e6875 Remote Port WWN: 210000e08b9d6edb LUN: 0 Vendor: SUN Product: COMSTAR Device Type: Disk Device
  93. 93. Initiatorからどんな感じで見えるの? <ul><li>cfgadmで確認 </li></ul>kazus@u20m2:~# cfgadm -la Ap_Id Type Receptacle Occupant Condition c3 fc-private connected configured unknown c3::210000e08b9d6edb disk connected configured unknown kazus@u20m2:~# cfgadm -lav Ap_Id Receptacle Occupant Condition Information When Type Busy Phys_Id c3 connected configured unknown unavailable fc-private n /devices/pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0:fc c3::210000e08b9d6edb connected configured unknown unavailable disk n /devices/pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0:fc::
  94. 94. Initiatorからどんな感じで見えるの? <ul><li>ZFSでpoolを作ってみた </li></ul>kazus@u20m2:~# zpool create testpool c2t600144F00003BA12BA194BD6EC950001d0 kazus@u20m2:~# zpool status -v pool: testpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 c2t600144F00003BA12BA194BD6EC950001d0 ONLINE 0 0 0 errors: No known data errors <ul><li>こんな感じで、普通に使えます
  95. 95. Target Mode すげぇー! </li></ul>
  96. 96. 触ってて気づいたこと <ul><li>FC Target とか iSCSI Targetとか複数の Target を立てといて、add-view すると lu が全部のTargetで参照可能になる </li><ul><li>host/target groupを作成し、マスキングをすることで紐付けるTargetを選択することも可能 </li></ul></ul>
  97. 97. Multipath <ul><li>OpenSolarisも標準でMultipathできます
  98. 98. MPxIOと呼ばれます
  99. 99. COMSTAR Targetは、なにもしなくてもMPxIO組めます!
  100. 100. コレ読んでください </li><ul><li>Solaris Express SAN Configuration and Multipathing Guide http://docs.sun.com/app/docs/doc/820-3070 </li></ul></ul>
  101. 101. Fiber Channel Targetのまとめ <ul><li>夢が広がりすぎて財布が追いつかない </li><ul><li>まじめに使ってみようとするとPCI-ExpressなFC HBAの確保必須 </li><ul><li>4Gbpsたけーよ。うわーん。
  102. 102. 当然、Multipath </li></ul><li>HDDをたくさん接続したい </li><ul><li>なんとなく最低6本はいきたい </li></ul></ul><li>10GbEでiSCSIとかのほうが良いのかもしれない
  103. 103. まぁ、iSCSIも絡めてMulti Targetなマシンにすればいんじゃね? </li></ul>
  104. 104. COMSTAR VTape driver <ul><li>zvol を Tape Drive にしてしまうもの </li><ul><li>なかなか面白いので、 Nexenta がんばれ超がんばれ
  105. 105. COMSTAR VTape driver to virtualize SCSI tapes over for ZFS Zvols. http://www.nexentastor.org/projects/vtape </li></ul><li>iSCSI Target 機能を使ってます
  106. 106. iSCSI Initiator にてアクセスすることで /dev/rmt/* として見える </li></ul>
  107. 107. 参考 <ul><li>COMSTAR Administration http://wikis.sun.com/display/OpenSolarisInfo/COMSTAR+Administration
  108. 108. PSARC/2007/523 COMSTAR: Common Multiprotocol SCSI Target http://arc.opensolaris.org/caselog/PSARC/2007/523/
  109. 109. PSARC/2008/235 SCSI Block Disk Provider for COMSTAR http://arc.opensolaris.org/caselog/PSARC/2008/235
  110. 110. PSARC/2008/587 iSCSI Port Provider for COMSTAR http://arc.opensolaris.org/caselog/PSARC/2008/587
  111. 111. PSARC/2008/434 libstmf enhancement for provider data http://arc.opensolaris.org/caselog/PSARC/2008/434
  112. 112. PSARC/2007/153 iSCSI target provider Unpublished
  113. 113. Storage Discuss http://www.opensolaris.org/jive/forum.jspa?forumID=94
  114. 114. 自宅 SAN 友の会(仮) http://groups.google.co.jp/group/stomo </li></ul>

×