View
8.038
Download
7
Category
Preview:
Citation preview
「前回の COMSTAR ネタに刺激されてし
まったので、オレも COMSTAR を使ってみた。」(仮 )
Kazuyuki Sato
Agenda
SCSI Initiator modeSCSI Target Mode Framework(STMF)
Logical-unit providerPort Providerlibstmf
TargetができるまでFibre Channel TargetCOMSTAR VTape driver参考情報
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 3
SCSI Initiator mode
Sun Common SCSI Architecture (SCSA)Solarisに実装されているSCSIを扱うための共通アーキテクチャ
従来から提供されている Initiator機能プロトコルは・・・
FibreChannel, iSCSI, Parallel SCSI, SAS, etc...
ディスクを扱うために普通に利用している機能sd/ssd driverが SCSIプロトコルを使ってデバイスとお話している
気にしなくてOK
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 4
前回の勉強会資料
前回の勉強会資料も併せて参照してくださいCOMSTARの紹介 (仮 ) - tokuyama-san
http://docs.google.com/present/view?id=dpdpddx_4dnvjv7c9
COMSTARの概要と iSCSI Targetの作成を紹介
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 5
SCSI Target Mode Framework
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 6
SCSI Target Mode Framework (STMF)
STMFが中核となり、下記のサービスを提供Logical-Unit Proveider(+ SCSI block device)Port Proveider (Target サービス ) libstmfによる管理インターフェース
これがCOMSTARの Coreとなる実装STMFだと通じない場合が多いのでCOMSTARと言っておくのが無難
STMFという言葉に反応する人が近くにいたら、気をつけて・・・
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 7
SCSI Target Mode Framework (Cont...)
ようは、OpenSolarisが動くマシンを SCSI Targetにしてしまおうというものどうみても PCだろ?というものがディスク装置になる
Initiatorから見れば単なるディスクSolaris Nevada b90で実装
これって、すごくね?
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 8
COMSTARを構成する要素
おさらいですCOMSTARを構成する要素
Logical-unit providerPort Providerlibstmf
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 9
COMSTARを構成する要素
こんな感じ
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)
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 10
Logical-unit Provider
SCSI Logical-unitを構成するためのものSCSI block deviceを作成し、 SCSI LUとして
STMF Frameworkに登録 (Regist)するSCSI block deviceは backing storeから作成STMF Frameworkに登録されると、GUIDと呼ばれるユニークな IDが割り当てられる
GUIDを使って Targetと紐付ける# sbdadm listlu
Found 2 LU(s)
GUID DATA SIZE SOURCE 600144f00003ba12ba194bd6ec950001 21474836480 /dev/zvol/rdsk/rpool2/fctvolume.01600144f00003ba12ba194bd7a0e10002 36417050624 /dev/rdsk/c0t1d0s0
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 11
Port Provider (SCSI Target Port)
なんらかの interfaceを利用して target機能を提供するEthernet (iSCSI)Fiber Channel (FC, FCoE)InifiniBand(iSER..)SAS(まだ、提供されてないような気がする )
STMF Frameworkを通して Logical-unit Providerと紐付く
SCSIコマンドを LUに運ぶ役割target毎に異なる管理コマンドで操作
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 12
libstmf
STMF Frameworkを操作するための API群Target作成コマンド (itadm とか )sbdadm/stmfadmコマンドとか
これを使って、私たちは STMFを操作しますInitiatorは使ってない
iscsiadmとかなので、 initiatorは STMFの影響を受けない既存のやり方がそのまま使える
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 13
sbdadmと stmfadm
sbdadmコマンドbacking storeから SCSI block deviceを作成し
Logical-unitとしてSTMF Frameworkに登録するためのコマンド
stmfadmコマンドSTMF Frameworkを操作するコマンドLogical-unitの操作や、 target/host groupの操作、 Port Providerとの紐付けなど
b115で sbdadmの機能も取り込んだstmfadm– SCSI target mode framework command line interfacehttp://docs.sun.com/app/docs/doc/819-2240/stmfadm-1m?l=ja&a=view&q=stmfadm
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 14
LUに割り当てる backing store
backing storeって言ってるけど、何それ?実データを格納する実際の入れ物backing storeとして利用可能なものスライスraw block device (zvol 含む )file
お好きなモノをどうぞ遊んでみた感じでは、スライス /block device > zvol > 越えられない壁 > file
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 15
もうちょっと Logical-unit
create-luされた backing storeはMeta-dataと呼ばれる情報を書き込むので注意
meta-dataは外出し可能meta-dataの中身は、だいたいこんな感じ
stringsコマンドで中身をのぞいてみただけkazus@b1000:/usr/tmp$ strings meta.c0t1d0SUNSBDLU/dev/rdsk/c0t1d0/usr/tmp/meta.c0t1d0
※ stmfadm create-lu -p meta=/usr/tmp/meta.c0t1d0で LUを作成。 backing store は /dev/rdsk/c0t1d0 (EFI label)
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 16
もうちょっと Logical-unitkazus@b1000:~# stmfadm createlustmfadm: createlu requires an operand
Usage: stmfadm createlu [OPTIONS] <lu file> OPTIONS: p, luprop <logicalunitproperty=value> s, size <size K/M/G/T/P>
Description: Create a logical unit. Valid properties for p, luprop 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 hostid host identifier to be used for GUID generation 8 ascii hex characters meta separate meta data file name mgmturl 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)
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 17
もうちょっと Logical-unit
おうちに Sun Storage 7410とかあるお!kazus@u20m2:~# format eSearching 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 <SUNCOMSTAR1.020.00GB> /pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0/disk@w210000e08b9d6edb,0 2. c3t210000E08B9D6EDBd1 <SUNSun Storage 74101.0136.73GB> /pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0/disk@w210000e08b9d6edb,1 3. c3t210000E08B9D6EDBd2 <SUNCOMSTAR1.010.00GB> /pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0/disk@w210000e08b9d6edb,2 4. c4t210100E08BBD6EDBd0 <SUNCOMSTAR1.020.00GB> /pci@0,0/pci10de,370@6/pci1077,100@8/fp@0,0/disk@w210100e08bbd6edb,0 5. c4t210100E08BBD6EDBd1 <SUNSun Storage 74101.0136.73GB> /pci@0,0/pci10de,370@6/pci1077,100@8/fp@0,0/disk@w210100e08bbd6edb,1 6. c4t210100E08BBD6EDBd2 <SUNCOMSTAR1.010.00GB> /pci@0,0/pci10de,370@6/pci1077,100@8/fp@0,0/disk@w210100e08bbd6edb,2
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 18
もうちょっと Logical-unit
target 側でも initiator 側でも zfs import 可能にする方法
target 側で適当なディスクを zpool create で pool にする 作った pool を zpool export する
stmfadm create-lu -p meta=hoge で zpoolの deviceを STMF 登録meta を忘れると、先頭 64KB に meta data が配置されるため zpool import に反応しなくなるので注意
できた GUID を元に stmfadm add-view するtarget経由でアクセス可能になる
initiator 側で、 disk を確認 zpool import してみる
これで、 target 側でも initiator 側でもimport 可能になる使い道は、まだない
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 19
Targetができるまで
-まとめ -
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 20
Targetができるまで
backing storeを用意backing store を SCSI block device化stmfadmで SCSI clock deviceを STMF
Frameworkに登録し、 Logical-unitに変身させるここまでが Logical-unit providerのお仕事
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 21
Targetができるまで
そして、 Targetの作成Logical-unitを紐づける Targetを選定
iSCSI, FC, Inifiniband....
Targetの作成iSCSIなら /usr/sbin/itadmFC targetなら driverを入れ替えなど
ここまでが Port Providerのお仕事
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 22
Targetができるまで
まとめると・・・作業的にはこんな感じLogical-unit として利用するための
backing storeを決定sbdadm コマンドで logical-unit を作成
作成した logical-unit を stmfadm コマン ドで STMF に登録
登録した logical-unit と target の紐付けInitiator との接続
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 23
Fibre ChannelTarget
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 24
Fibre Channel Target
FC HBAを搭載したマシンが FC Storageにメリットオレのマシンが FCストレージにカプセル化とか必要なく、直接 FCプロトコルでやりとり
デメリットTargetになれるHBAが必要iSCSIに比べ、 FC HBAを揃えたり FC switch欲しくなったりとコストがかかるおうちに FCとか、なにソレきもいとか言われる
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 25
Fibre Channel Target
FC Target構築に必要なものOpenSolaris 2009.06 以降より新しいものを使うのが吉 (dev build とか )
Target 機能をサポートする FC HBAQLogic
4Gbps以上必須。 1Gbps, 2GbpsのHBAは使えないEmulex
2Gbpsものでもサポートしているとあるが動かせていない
Multipath(パスの冗長化 )を行うなら複数詳細は、こちら
COMSTAR Frequently Asked Questions (FAQs)http://hub.opensolaris.org/bin/view/Project+comstar/FAQs
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 26
Fibre Channel Target
Initiatorに必要なものFC HBAなんでもいい。 1Gbpsからでも問題ないはず。Multipathにするなら複数
FCを扱えるOS好きなの使っていいですよ
あとは、 Targetと Initiatorを接続するためのケーブル当然、 FC Switchは必須ではなく、Point-toPointで接続できる
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 27
Fibre Channel Target
Target device driverQLogicなHBAは、 qlt driver
target専用 driver , initiatorは qlc driver/etc/driver_aliasesを書き換える必要あり
EmulexなHBAは、 emlxs driverdriver一つで target/initiator提供emlxs.confを修正する必要あり
とにかく、コレを見て!COMSTAR Administrationhttp://wikis.sun.com/display/OpenSolarisInfo/COMSTAR+Administration
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 28
Fibre Channel Target
練習用の構成FC Target: Sun Blade 1000
OpenSolaris dev b134 + ON nightly (b141)HBA: SG-XPCI2FC-QF4 (Qlogic QLA2422)
4Gbps Dual-ports
FC Initiator: Sun Ultra 20 M2OpenSolaris dev b134 + ON nightly (b141)HBA: QLogic QLA2340 (2Gbps)
Point-to-Pointでケーブル直結
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 29
Initiatorからどんな感じで見えるの ?
だから、 FC Storageと一緒だとあれほd(rykazus@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 Enc2t600144F00003BA12BA194BD6EC950001d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0Vendor: SUN Product: COMSTAR Revision: 1.0 Serial No:Size: 21.47GB <21474836480 bytes>Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0Illegal Request: 0 Predictive Failure Analysis: 0
kazus@u20m2:~# fcinfo lu vOS Device Name: /dev/rdsk/c2t600144F00003BA12BA194BD6EC950001d0s2 HBA Port WWN: 210000e08b1e6875 Remote Port WWN: 210000e08b9d6edb LUN: 0 Vendor: SUN Product: COMSTAR Device Type: Disk Device
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 30
Initiatorからどんな感じで見えるの ?
cfgadmで確認kazus@u20m2:~# cfgadm laAp_Id Type Receptacle Occupant Conditionc3 fcprivate connected configured unknownc3::210000e08b9d6edb disk connected configured unknown
kazus@u20m2:~# cfgadm lavAp_Id Receptacle Occupant Condition InformationWhen Type Busy Phys_Idc3 connected configured unknownunavailable fcprivate n /devices/pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0:fcc3::210000e08b9d6edb connected configured unknownunavailable disk n /devices/pci@0,0/pci10de,370@6/pci1077,100@7/fp@0,0:fc::
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 31
Initiatorからどんな感じで見えるの ?
ZFSで poolを作ってみたkazus@u20m2:~# zpool create testpool c2t600144F00003BA12BA194BD6EC950001d0kazus@u20m2:~# zpool status v pool: testpool state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 c2t600144F00003BA12BA194BD6EC950001d0 ONLINE 0 0 0
errors: No known data errors
こんな感じで、普通に使えますTarget Mode すげぇー!
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 32
触ってて気づいたこと
FC Target とか iSCSI Target とか複数のTarget を立てといて、 add-view すると lu が全部の Targetで参照可能になるhost/target groupを作成し、マスキングをすることで紐付ける Targetを選択することも可能
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 33
Multipath
OpenSolarisも標準でMultipathできますMPxIOと呼ばれますCOMSTAR Targetは、なにもしなくても
MPxIO組めます !コレ読んでください
Solaris Express SAN Configuration and Multipathing Guidehttp://docs.sun.com/app/docs/doc/820-3070
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 34
Fiber Channel Targetのまとめ
夢が広がりすぎて財布が追いつかないまじめに使ってみようとするとPCI-Expressな
FC HBAの確保必須4Gbpsたけーよ。うわーん。当然、Multipath
HDDをたくさん接続したいなんとなく最低 6本はいきたい
10GbEで iSCSIとかのほうが良いのかもしれないまぁ、 iSCSIも絡めてMulti Targetなマシンにすればいんじゃね?
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 35
COMSTAR VTape driver
zvolを Tape Driveにしてしまうものなかなか面白いので、Nexenta がんばれ超がんばれCOMSTAR VTape driver to virtualize SCSI tapes over for ZFS Zvols.
http://www.nexentastor.org/projects/vtape
iSCSI Target機能を使ってますiSCSI Initiatorにてアクセスすることで /dev/rmt/*として見える
「前回の COMSTAR ネタに刺激されてしまったので、 オレも COMSTAR を使ってみた。」 (仮 )
pg 36
参考COMSTAR Administration
http://wikis.sun.com/display/OpenSolarisInfo/COMSTAR+Administration
PSARC/2007/523 COMSTAR: Common Multiprotocol SCSI Targethttp://arc.opensolaris.org/caselog/PSARC/2007/523/
PSARC/2008/235 SCSI Block Disk Provider for COMSTARhttp://arc.opensolaris.org/caselog/PSARC/2008/235
PSARC/2008/587 iSCSI Port Provider for COMSTARhttp://arc.opensolaris.org/caselog/PSARC/2008/587
PSARC/2008/434 libstmf enhancement for provider datahttp://arc.opensolaris.org/caselog/PSARC/2008/434
PSARC/2007/153 iSCSI target providerUnpublished
Storage Discusshttp://www.opensolaris.org/jive/forum.jspa?forumID=94
自宅 SAN 友の会(仮)http://groups.google.co.jp/group/stomo
Recommended