問題タブ [scsi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# で vmware sdk を使用して仮想マシンの SCSI コントローラ タイプを設定/変更する方法
作成プロセス中に仮想マシンの SCSI コントローラ タイプを変更しようとしています。使うことができます
VirtualLsiLogicSASController.sharedBus = VirtualSCSISharing.noSharing;
共有オプションなしに設定します。ただし、コントローラーのタイプを変更することはできません。常に「LSI Logic SAS」です。「LSI Logic Parallel」に設定したい。を使用して、SCSI コントローラの説明属性を設定しようとしました
しかし、それは機能していません。どんな助けでも大歓迎です。ありがとう...
linux-kernel - LIO SCSI ターゲット コード ベースの se_*** プレフィックスの意味は何ですか
LIOコード ベースは、seを前に付けた多数の構造体 (se_cmd、se_session など) で散らばっています。
このseプレフィックスの意味は何ですか? (LIOカーネルコードベースでそれに関するコメントを見つけることができませんでした)
performance - 私の実験で virtio-scsi が virtio-blk よりもずっと遅いのはなぜですか (over and ceph rbd image)?
こんにちは、最近、qemu ターゲットを介して virtio-scsi over rbd の実験を行い (その DISCARD/TRIM サポートのために)、スループットと iops を、ゲストで fio を使用して、同じマシン上で rbd セットアップを介した virtio-blk のスループットと iops と比較しました。 . シーケンシャル読み取り/書き込みのスループットは 7 分の 1 (42.3MB/s 対 309MB/秒) であり、ランダム読み取り/書き込みの iops は 10 分の 1 (546 対 5705) です。
私が行ったことは、OpenStack Juno を使用して仮想マシンをセットアップすることでした。これにより、virtio-blk over rbd セットアップが可能になりました。次に、libvirt configure xml の関連部分を次のように変更しました。
これに:
ソフトウェアのバージョンは次のとおりです。
qemu 2.5.1
libvirt 1.2.2
kernel 3.18.0-031800-generic #201412071935 SMP Mon Dec 8 00:36:34 UTC 2014 x86_64 (Ubuntu 14.04 カーネル)
ハイパーバイザーは KVM です。
virtio-scsi と virtio-blk のパフォーマンスの違いはそれほど大きくないと思います。ですから、私が間違っていたことと、妥当なパフォーマンスを達成する方法を指摘してください。
制約は、OpenStack で機能するソリューション (Juno で機能するのが理想的) が必要であり、多くのパッチやコーディングを必要としないことです。たとえば、virtio-scsi + vhost-scsi + scsi-mq について聞いたことがありますが、現在 OpenStack では利用できないようです。
linux - Linux システムのテープ ステータスで、この行は何を意味しますか?
mt -f /dev/st0 ステータス
SCSI 2 テープ ドライブ:
ファイル番号=0、ブロック番号=0、パーティション=0。
テープ ブロック サイズ 512 バイト。密度コード 0x30 (AIT-1 または MLR3)。
最後の status=0 以降のソフト エラー数 <---------------------
一般ステータス ビット (41010000):
ボットオンライン IM_REP_EN
エラーを取得してメール サーバー経由で報告するスクリプトがありますが、返送される唯一のエラーはこの行なので、それが何であるかに興味があります。
linux - Linux での LUN の再スキャンはどのように機能しますか
Linux ホストでホスト バス スキャンを発行して、ホスト上の /dev/sd* デバイスを取得できます。
スキャンは次のコマンドを使用して発行されます:
echo "- - -" > /sys/class/scsi_host/host0/scan
/dev/sd の形成につながる Linux ユーザー空間/カーネル コードのイベントの流れを教えてください。 * デバイス ポスト scsi スキャン ?
これは、ストレージのコントローラーに送信された PCI バス スキャンまたは SCSI コマンドですか、それとも何か新しいものですか?
c - Linux で特定のコマンドを scsi デバイスに送信するにはどうすればよいですか?
私は実際に、USB に差し込む指紋リーダー (FP リーダー) に取り組んでいます。この FP リーダーも stm32f4 ボードに接続されています。私の理解が正しければ、FP リーダーには非常に小さなデータベース FP テンプレートが含まれています。これらのテンプレートを変更するには、FP リーダーを USB に接続し、Windows 上のプログラムを使用して変更します。私は Linux で作業しているので (そして好奇心のために)、Linux でテンプレートを変更できるようにするプログラムを作成しようとしています。
この FP リーダーは、CD-ROM リーダーと見なされます。sg パッケージの助けを借りて通信しようとしています (このドキュメントhttp://www.tldp.org/HOWTO/SCSI-Generic-HOWTO/に従っています)。FPリーダーのドキュメントによると(ここで見つけることができますhttp://www.adh-tech.com.tw/files/GT-511C3_datasheet_V1%201_20131127.pdf)そのようなバッファ(12バイトの)を送信する必要があります[55 aa 0001 00000000 0001 0101] 「開く」コマンドを作成します。
このコマンドを作成するためのコードを次に示します (読みやすい最小限の例を作成しようとしました)。
私が期待したのrcv
は、次の値を持つことでした[55 aa 00 01 00 00 00 00 00 30 01 30]
。
しかし、代わりに、何も (または理解できないもの) をsense_data
受け取り、次の値70 00 05 00 00 00 00 0A 00 00 00 00 20 00 00 00 00 00
を取得します: Illegal Request
( http://blog.disksurvey.org/knowledge-base/scsi-sense/ブログによると)。また、そのフォーラムhttp://www.linuxquestions.org/questions/programming-9/linux-scsi-passthrough-porting-windows-routine-4175528749/scsi_inquiry.c
で述べたのと同じスキームを使用しようとしましたが、同じ結果が得られました。sg ドライバーがどのように機能するのかよくわかっていないと思います。それは、またはデバイスを提供するドライバーですか?私もいくつか作成しようとしましたが、うまくいきませんでした(FPリーダーのメモリのフォーマットに関する情報しか読み取れないようです)sense_data
sense_data
read()
write()
/dev/sr1
端末の sg コマンドによって得られる追加情報:
さらに情報が必要な場合は、教えてください。その投稿に追加します。
質問の再開: Linux (sg) またはその他のプログラムで scsi ドライバーを使用して、特定のコマンド (バッファー) を指紋リーダーに送信するにはどうすればよいですか?
今後ともよろしくお願いいたします。
EDIT1:これは、デバイスに送信されたsndバッファの正確な値です(gdbによって与えられます)
python - BadUSB の SCSI コマンド
phisonのソースコード(badusb、pythonファイルについて)を読みました。しかし、プログラムが SCSI デバイスに送信するコマンドがわかりません。SCSI コマンドについて読んだ後でも、「06h」で始まるオペコードが見つかりません (デバイス ID を設定する同様のオペコードが存在します) https://www.seagate.com/staticfiles/support/disc/manuals/scsi/100293068a.pdf 上記は私が見つけた SCSI コマンドです。以下は、読み取りと書き込みのコマンドです。
c++ - ネットワーク経由で SCSI コマンドを渡す
ネットワーク経由で cdrom デバイスを共有したい。
クライアント側では、ルート列挙型デバイス (SCSI バス) を作成します。サーバー側 (cdrom デバイスが存在する場所) では、デバイス スタックの FDO を独自のものに置き換えます (つまり、cdrom.sys は別のドライバーに置き換えられます)。
要求は、Windows ソケットを使用してクライアントからサーバーにリダイレクトされます。
ネットワーク経由で転送されるデータの形式 (クライアントからサーバーへ):USER_HEADER, USER_SCSI_REQUEST_BLOCK, [data to be transferred to device]
ネットワーク経由で転送されるデータの形式 (サーバーからクライアントへ):
構造は次のように定義されます。
cdrom.sys から送信された要求をパックおよびアンパックするためのクライアント側コード:
リクエストと IO 完了ルーチンを割り当てるサーバー側コード:
すべて正常に動作します (要求はサーバーとクライアントの間で渡され、BSOD はありません)、クライアント側に cdrom デバイスが表示されません。srb データ バッファ アクセスに関するものではないかと思いました。それを理解するのを手伝ってもらえますか?ありがとうございました。
scsi - 物理ドライブでの SCSI Read(10) の最大転送サイズ
hereを参照してください。IOCTL_STORAGE_QUERY_PROPERTY と StorageAdapterProperty を使用して、SCSI Read(10) コマンドごとの最大転送サイズを取得できます。
このコードでは、lba の先頭から 16 セクターが読み取られます。数を変更しようとしましたが、私の Win7 環境では、最大数は SATA 経由で 256 セクター、SSD へのブリッジ (SATA-USB) 経由で 128 セクターであり、StorageAdapterProperty で IOCTL_STORAGE_QUERY_PROPERTY を使用した結果と一致します。
私の知る限り、OS (win7、win10、macOS) をインストールすると、デバイスは最大 2048 セクタまで SCSI Read(10) コマンドを受信できます。どのレイヤーが転送サイズを制限しているのか (オペレーティング システム/デバイス ドライバー...)、レイヤーをバイパスして一度に制限よりも長い SCSI Read(10) コマンドを送信する方法はありますか?
command - sg_write_same( sg3_utils ) および dd コマンド
sg_write_same コマンドで特定の lba にファイルを書き込んでいます。次に、dd コマンドで特定のブロックを読み込んでいます。ファイルを取得できません。これが私が従う一連のステップです。
しかし、of=file のファイル sg_modes.c を取得できません。#書き込みと読み取りを確認する方法を教えてください。