Analysis to develop an ISCSI Layer inside Microsoft Windows NT/2K/XP



Similar documents
Windows Host Utilities 6.0 Installation and Setup Guide

Windows Host Utilities Installation and Setup Guide

IP SAN Best Practices

Compellent Storage Center

Before deploying SiteAudit it is recommended to review the information below. This will ensure efficient installation and operation of SiteAudit.

Table of Contents. Cisco Cisco VPN Client FAQ

PROMISE ARRAY MANAGEMENT (PAM) for

Setup for Microsoft Cluster Service ESX Server and VirtualCenter 2.0.1

SAN Conceptual and Design Basics

Windows8 Internals, Sixth Edition, Part 1

Package Contents. D-Link DSN-3200/3400 Installation Guide. DSN-3200/3400 xstack Storage Area Network (SAN) Array. CD-ROM with User Guide.

Data Migration: Moving from Dell PowerVault MD3000i/MD3000 to MD3200i/MD3220i and MD3600i/MD3620i Series Storage Arrays

IP SAN Fundamentals: An Introduction to IP SANs and iscsi

Dell PowerVault MD Series Storage Arrays: IP SAN Best Practices

Using EonStor FC-host Storage Systems in VMware Infrastructure 3 and vsphere 4

Note: This case study utilizes Packet Tracer. Please see the Chapter 5 Packet Tracer file located in Supplemental Materials.

UltraBac Documentation. UBDR Gold. Administrator Guide UBDR Gold v8.0

Package Contents. D-Link DSN-3200/3400 Installation Guide. DSN-3200/3400 xstack Storage Area Network (SAN) Array. CD-ROM with User Guide.

Tufts VPN Client User Guide for Windows

USER GUIDE WEB-BASED SYSTEM CONTROL APPLICATION. August 2014 Phone: Publication: , Rev. C

SCSI The Protocol for all Storage Architectures

3.5 EXTERNAL NETWORK HDD. User s Manual

Prestige 623R-T. Quick Start Guide. ADSL Dual-link Router. Version 3.40

Implementing, Managing, and Maintaining a Microsoft Windows Server 2003 Network Infrastructure

Remote Access Server - Dial-Out User s Guide

Introduction to MPIO, MCS, Trunking, and LACP

USER GUIDE. Ethernet Configuration Guide (Lantronix) P/N: Rev 6

Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper

Intelligent Power Protector User manual extension for Microsoft Virtual architectures: Hyper-V 6.0 Manager Hyper-V Server (R1&R2)

README.TXT

Implementing Storage Concentrator FailOver Clusters

Datasheet iscsi Protocol

GE Healthcare Life Sciences UNICORN Administration and Technical Manual

Dell UPS Local Node Manager USER'S GUIDE EXTENSION FOR MICROSOFT VIRTUAL ARCHITECTURES Dellups.com

Configuration Maximums

Network Attached Storage. Jinfeng Yang Oct/19/2015

Integrating VoltDB with Hadoop

Print Server. Quick Installation Guide

IP SAN BEST PRACTICES

EUCIP - IT Administrator. Module 3 LAN and Network Services. Version 2.0

Installation Guide July 2009

User Manual Network Interface

Direct Storage Access Using NetApp SnapDrive. Installation & Administration Guide

Danware introduces NetOp Remote Control in version 7.01 replacing version 7.0 as the shipping version.

Intel Advanced Network Services Software Increases Network Reliability, Resilience and Bandwidth

A Packet Forwarding Method for the ISCSI Virtualization Switch

Procedure: You can find the problem sheet on Drive D: of the lab PCs. Part 1: Router & Switch

Quick Start Guide. Cisco Small Business. 200E Series Advanced Smart Switches

Broadband Services from MTNL. User's Guide

Application Discovery Manager User s Guide vcenter Application Discovery Manager 6.2.1

Data ONTAP DSM 4.1 For Windows MPIO

Dell PowerVault MD32xx Deployment Guide for VMware ESX4.1 Server

Cisco Which VPN Solution is Right for You?

Lab 2 - Basic Router Configuration

Lab a Configure Remote Access Using Cisco Easy VPN

Product Description. Licenses Notice. Introduction TC-200

HOUR 3. Installing Windows Server 2003

Emulex OneConnect NIC Teaming and Multiple VLAN Driver and Application Release Notes

Interpretation of the QLA2xxx Windows Event Log Error Codes. (For driver versions prior to )

Cisco 831 Router and Cisco SOHO 91 Router Cabling and Setup Quick Start Guide

EXPRESSCLUSTER X for Windows Quick Start Guide for Microsoft SQL Server Version 1

Customer Education Services Course Overview

Configuring NXT Hardware with Mercury Inside into Doors.NET TM Application Note

Mobile Device Management Platform Operation Manual V1.4 RECODA

TVWall User s Manual (for WindowsXP/2003/Win7/Vista)

Ultra ATA 133 RAID PCI Pro

Aradial Installation Guide

SNMP Manager User s Manual

FastTrak TX4000, FastTrak S150 TX2plus, FastTrak S150 TX4 PROMISE ARRAY MANAGEMENT ( PAM) User Manual

Novell ZENworks Asset Management

SiS964 RAID. User s Manual. Edition. Trademarks V1.0 P/N: U49-M2-0E

Dell PowerVault MD3400 and MD3420 Series Storage Arrays Deployment Guide

Printing Options. Netgear FR114P Print Server Installation for Windows XP

Microsoft BackOffice Small Business Server 4.5 Installation Instructions for Compaq Prosignia and ProLiant Servers

SCSI device drivers are provided for the following operating systems: Microsoft Windows NT Server 4.0 Novell NetWare 5.1

WatchGuard Mobile User VPN Guide

capacity management for StorageWorks NAS servers

Quick Installation Guide of ASUSCOM ISDNLINK 128K PnP Adapters Including ISDN Internal Card, ISDN USB TA and ISDN TA with CAPI20 driver

StarWind iscsi SAN Software: Using StarWind with VMware ESX Server

IP Storage Protocols: iscsi. John L Hufferd, Consultant Hufferd Enterprises

Honeywell Internet Connection Module

USER MANUAL GUIMGR Graphical User Interface Manager for FRM301/FRM401 Media Racks

User s Manual. Version January EVS SNMP Monitoring

Building a Highly Available and Scalable Web Farm

Legal Notes. Regarding Trademarks KYOCERA Document Solutions Inc.

The Discovery Series

LotWan Appliance User Guide USER GUIDE

Use 802.1x EAP-TLS or PEAP-MS-CHAP v2 with Microsoft Windows Server 2003 to Make a Secure Network

iscsi: Accelerating the Transition to Network Storage

WEB CONFIGURATION. Configuring and monitoring your VIP-101T from web browser. PLANET VIP-101T Web Configuration Guide

MFC8890DW Vista Network Connection Repair Instructions

HP Server tc2120 Network Operating System Installation Guide

NNAS-D5 Quick Installation Guide

Using High Availability Technologies Lesson 12

Promise FastTrak 100-Lite RAID Controller

SANtricity Storage Manager 11.25

Step-by-Step Guide to Open-E DSS V7 Active-Active iscsi Failover

RN-XV-RD2 Evaluation Board

Transcription:

Analysis to develop an ISCSI Layer inside Microsoft Windows NT/2K/XP Ing. Franco Ometti While1 S.r.l.

Description The activity is related to develop a special device driver that implements a SCSI miniport paradigm. In this case the module doesn t interface one specific local hardware. In fact, it is necessary to contact a specific storage equipment that includes some physical devices connected to the network. The SCSI HBA driver must redirect any I/O operation to the network using a specific ISCSI protocol in order to reach the configurated remote disks. To realize these features, it is necessary that the HBA driver interfaces a network driver via TDI interface (Transport Driver Interface). In this document there are a couple of figures that describes the Windows NT Lan architecture. iscsi that we will be define in this proposal is related to the current IETF specifications provided into the official document (Draft 08). iscsi is SCSI over TCP/IP providing up to eight remote SCSI targets with each target capable of supporting eight separate LUNs. Remote SCSI targets may be on one or multiple Remote Disk Devices (i.e. Cisco SN5420), up to a maximum of eight devices. In order to reach this target under Win 2000 systems, it is necessary to develop a Miniport SCSI driver that contains the ISCSI protocol implementation. This component, from now named BIPIPE (Basic iscsi Pipeline), must contain two different levels respectively related to manage the SCSI Miniport interface and the TDI client semantics. In this special case this miniport cannot handle a physical interrupt. In order to solve the asynchronous end of the iscsi operation, it is necessary to combine the call-back effect provided by the TDI interface and one internal Timer armed during the init phase and responsible to manage any status change of the connection (Down, Up, Active, etc.). To handle any setting related to the behavior of the iscsi miniport, it is also necessary to provide a proprietary configuration utility. This program should be called during the installation phase and during run-rime as well. Related to the iscsi environment, it is necessary to identify any remote device that are requested. To do this, it must be possible to handle the IP address, the login parameters, etc. During installation of iscsi driver, the administrator will define the controlled target IP addresses. These will be saved and returned to Windows at the next boot. At that time, via Disk Administrator utility, the administrator will define partitions. Even these data are to be saved via iscsi administration utility in order to complete the scenario returned to Windows in next reboots. Windows 2000 has not networking up at boot time, so it is necessary to set configuration in order to answer correctly to SCSI Inquiry phase. This information will be stored in Registry. When Windows will start inquiry cycle, iscsi driver will answer getting information from stored data. In that way, Windows will keep track of the devices in its internal device database.

Moreover, iscsi subsystem has to know all the data about partitions since Win 2000 does not know them until it can access to the devices. To assure this information, iscsi will save the main configuration details. These will be returned during boot phase. This kind of data presentation will last until iscsi will be able to access all the device IP addresses. During that period, no direct access to network device will be allowed by iscsi driver. Main characteristics In order to define the layout of the iscsi miniport driver and the TDI connector, now we present the list of the main characteristics that we include in this level: SW architecture Ready for Windows Server.net, Windows XP, Windows 2000 Server Transport Level directly called by the miniport and not by the user process. Simultaneous operation of iscsi and NDIS miniport operations Multiprocessor/Multithread implementation Use of Tagging and Queuing for better throughput Data Zero Copy Win 2000 miniport major features Support normal SCSI Miniport functions to find and Initialize iscsi Software/Hardware HBAs Support Plug and Play Support WMI subset for SCSI Miniports Support SRB full decode and Tagged Queueing Support Windows SRB IOCTLs Support special IOCTLs ISCSI Initiator and Target Topologies Multiple SCSI Targets behind iscsi Target Multiple LUNs per Target Multiple hosts per Target Multiple Sessions per NIC Multiple Connection per Session Multiple NIC per host

Conformant with the IETF draft 0.8 or latest available Login Logout Async events Authentication SLP service location protocol NDT Iscsi Naming and Discovery Requirements Certification UNH plugfest Stress Performace Test (i.e. IoMeter, ZDBenckmarks) Interoperability Interoperates with storage systems that respects the iscsi protocols (i.e. SN5420 Storage Router) Interoperates with selected Hard Drive, CD-ROM and RAID target devices Interoperates with System Storage management SW Applications (like a normal HD). System Procedures To complete this project, it is necessary to provide the installation/removal procedures and one configuration utility. Installation Procedure We provide an installation directory that must include all the required files. This directory can be stored into a CDROM or a FloppyDisk It is necessary to activate the installation using the SCSI Adapter entry point from the Main Control Panel. During the installation it is necessary to activate directly the installation utility in order to set any data required to configure the iscsi (i.e. target IP addresses). This action is necessary to set into the registry any information that must be used at the next boot to activate all disks provided by the network servers. Restart Windows 2000.

When the system is restarted, it is possible to run "Disk Administrator" to manage any new iscsi devices. With this utility you can set partitions, to format file-systems, etc. Removal Procedure In order to remove the iscsi driver you have to activate the SCSI Adapter driver control panel and select the remove procedure. Reboot the system. Configuration Procedure The iscsi Configuration Utility that we can provide in this first version will be able to configure the following: Target Host Names / IP Addresses 1. Add 2. Remove 3. Status 4. ReLogin 5. ReScan DisplayVersions All commands provided for Host name and Ip Addresses management are: Add Used to define the IP addresses of iscsi target nodes. Remove Used to remove already defined target node IP addresses. Status Used to display iscsi connection status to the target nodes and the target names at those nodes. ReLogin Used to cause reconnections to all of the target nodes without requiring a system reboot. This helps when the target node did not respond properly during login and the target devices were not seen correctly.

ReScan Used to cause the discovery to all of the target nodes without requiring a system reboot. This helps when the target node did not respond properly during login and the target devices were not seen correctly. We can develop the software to prepare the environment already set to host next steps: like showing a System Device Tree similar to Win2K DeviceManager GUI display; showing NICs and iscsi Soft/SNICs configured in the system as well as remote iscsi Targets that are in Full/Partial iscsi Login mode. Now we try to describe the main algorithm. To reach this target we present some graphics schema that includes all major phases.

BIPIPE Macro layout DPIPE User controller SNMP Dpipe Agent User space Kernel space I/O subsystem modules IOCTL Interface PORT SCSI SUB-SYSTEM Port Interface Ioctl Interface SNMP manager EndJob manager INIT manager SRB command manager Connect manager Timer Handler CallBackmanager TDI Client connector

BIPIPE Port Interface Port level DriverEntry BpipeHwInitialize BpipeResetBus Interrupt and Status not handled Init Internal Res. (timers, services) Nothing to do BpipeFindAdapter Prepare ConfigInfo and in this case the controller is always found BpipeStartIo BpipeIoDone DriverEntry init interface SRB IOCTL BIpipeSrbHandle r BIpipeIoctlHandle r To BIpipeInitManager To BIpipeSrbManager To BIpipeIoctlManager From BIpipeEndJob

BIPIPE Init Manager Reset Tables RemoteAddressCache ConnectionsTable (SCSI id Connection ID) MultiServer, MultiTarget, MultiLun Allocate buffers pool for any connection entry Get info from conf DB Get/Put data from/to Registry Activate internal Timers Call BipipeIntTimer Activate internal Threads Call BipipeServiceThread Init TDI Connector Call TCInit Exit

BIPIPE Service Thread Check Discovery Mode (get from Registry) AUTO SLP service location protocol MANUAL NDT Naming/Discovery Requirements Loop for any connection (Scan connection table) Conn Run Conn go DOWN Conn go UP Set SYS Device Tab (HD, CD, Remov, etc.) Upgrade Conn Table (Set new Down state) Upgrade registry Db (HD, CD, Remov, etc.) Conn LOGOUT Retry Login (Set new Down state) Upgrade Conn Table (Up, iscsi-id, etc.) Upgrade Conn Table (Set new Down state) ReSet SYS DeviceTab (HD, CD, Remov, etc.) Assign drive letter (Preset INQ tab is used) Execute Logout (SendLogout -TCDisconnect) Set SYS Device Tab (HD, CD, Remov, etc.) ReSet SYS DeviceTab (HD, CD, Remov, etc.)

BIPIPE Srb Manager Check Connection State (Get fron ConnTab) Connection NOT available Connection available Check Cmd Queue Check INQUIRY Cmd YES NO Exit(KO) Upgrade INQUIRY Table No pending Some pending Exit(OK) Check Tag Cmd Mode No Tag Exit(KO) Update Cmd Queue Prepare iscsi PDU Check Direction DATA IN Call TCEnqueInCmd DATA OUT Call TCEnqueOutCmd Exit Exit

BIPIPE Call Back Data Check for Errors Return Code Sense Data SCSI Error (Check, Parity, Busy,etc.) Exit(KO) Sense Key Check Response Type OP_NOOP_IN Handle Noop In Resp OP_SCSI_RSP Handle OutCmd Resp Build Miniport Reply (Reply, Sense, etc.) OP_SCSI_TASK_MGT_RSP Handle Management Resp OP_LOGIN_RSP Handle Login Resp Handle negotiation Update Connect Table (a1) (*) Exit -> BipipeIoDone and IoRequestDpc are required

(a1) OP_RTT_RSP Handle RxRtt Resp OP_SCSI_DATA_RSP Handle Tx DATA Resp Build Miniport Reply ( Reply, Sense, etc.) Copy Data to Port buffer OP_PING_RSP Handle Ping Resp Update Connect Table OP_ASYNC_EVENT Handle Async Resp Update Connect Table OP_RTT_RSP Handle RTT Resp OP_TEXT_RSP Handle TEXT Resp Exit Invalid Respose (*)Exit -> BipipeIoDone and IoRequestDpc are required

BIPIPE TDI Connector TCInit Open TCP protocol Prepare all call-back Set connection Table Prepare Packet Pool TdiBuildInternalDeviceControlIrp Main Call Back DataInEvent Exec Receive (TdiBuildReceive) Call BpipeCallBackData TDI TCP Async TdiCall TCConnect Open single Channel Set connection Table Execute connect TdiBuildConnect Build Address TdiBuildAssociatedAddress IoCallDriver ConnectEvent Update connection table Async TdiCall

TCDisconnect Update connection Table Execute Disconnect TdiBuildDisconnect IoCallDriver Main call back DiscEvent Update connection table (Conn Down) TDI TCP Async TdiCall TCEnqueOutCmd Prepare IRP Prepare Buffer Exec TCP Send TdiBuildSend IoCallDriver DataOutEvent Release resources (Irp, Buffer, etc.) Check reply code Update con table Async TdiCall TCEnqueInCmd Prepare IRP Exec TCP Send TdiBuildSend IoCallDriver TdiCall