User Guide
- 1. System Requirement
- 2. Installation
- 3. Launch SimSANs Agent and Console
- 4. Launch SimSANs Engine
- 5. Control and Monitor SimSANs Engine Run
- 5.1 VSAN Configurations
- 5.2 Zone Configurations
- 5.3 Name Servers Query
- 5.4 SAN Switch Configurations
- 5.5 SAN Node Configurations
- 5.6 Analyzer and Traces
- 6. Online Engine Configurations
- 6.1 Storage Device - Add New Logical Unit
- 6.2 Storage Device - Change Logical Unit Capacity
- 6.3 Storage Device - Add New Client Host
- 6.4 Storage Device - Assign Initiators, Targets, and LUNs to Client
- 6.5 Client Host - Scan SCSI Devices
- 6.6 Client Host - Add New IO Generator
- 6.7 Client Host - Enable/Disable IO Generator (Start/Stop IO)
- 6.8 Client Host - Change IO Generator Attributes
- 6.9 Client Host - Change SCSI Device Queue Depth
- 6.10 Client Host - Monitor SCSI IO Performance
- 7. Offline Engine Configurations
- Microsoft Windows 7, Windows 2003/R2, Windows 2008/R2, both 32-bit and 64-bit
- Microsoft .NET Framework 3.5 SP1: dotnetfx35setup.exe
- Microsoft Chart Controls for .NET 3.5 SP1: MSChart.exe
- For Windows 2008: .NET 3.5 SP1 (aka .NET 3.5.1) is a feature, which can be added from "Server Manager".
- For Windows 2008: Windows firewall may need to add a rule to allow host listening on TCP port 10028.
- For Windows 7: Windows firewall may pop up a warning window when SimSANs Agent is launched. Please click "Allow Access" button to get it pass. See this picture.
Note: MS Chart Controls must be installed, or an error will pop up:
Simply copy SimSANs_v4_[build].zip to drive C (or any other drive or directory) and unzip it, then directory "C:\SimSANs_v4" will be created. "C:\SimSANs_v4" directory (let's call it SimSANs root directory), has two sub-directories:
- Console: holding frontend console utility SimSANs_v4_Console.exe
- MgmtAgent: holding agent utility SimSANs_v4_MgmtAgent.exe and its associated backend simulation engines
Installation is done here if you just want to launch Console and Agent/Engines from the same host. If you want to launch Console and Agent/Engines from separate hosts, you must do the same installation for each host - the one to run Console is called Frontend Console Host, and the one to run Agent/Engines is called Backend Engine Host.
3. Launch SimSANs Agent and Console
Note: All the (ROOT) mentioned in this user guide refers to SimSANs root directory, for example, directory "C:\SimSANs_v4".
SimSANs simulation engine is always launched and controlled from frontend Console GUI, through communications between Console and backend Agent. User should not manually launch Engine. Simply follow the steps below to launch and manage SimSANs engines:
- Step 1 - Launch Agent: Run Agent utility SimSANs_v4_MgmtAgent.exe from (ROOT)\MgmtAgent directory to pop up Agent window. All Engines associated with this Agent will get listed under "Engines" category (Picture).
- Step 2 - Get Agent Ready: The Agent window shows the host IP as well as the default listening TCP port, 10028, for accepting incoming requests form Console. It is not recommended to change the default TCP port unless there's port confliction. Simply click "Start Listening" button to get Agent ready to accept management commands.
- Step 3 - Launch Console: Run Console utility SimSANs_v4_Console.exe from (ROOT)\Console directory to pop up Console window (Picture).
- Step 4 - Connect Agent: By default, local host (127.0.0.1) is already listed. To add a new Agent host, type in its IP as well as TCP port (default 10028), then click "Add New Agent Socket" button to get it listed (Picture). To connect an Agent host in the list, right-click that Agent and select "Connect Agent Server" (Picture). Once connection is created successfully, connection status should show "Connected", otherwise error status shows up (Picture). A success connection will get all the associated Engines listed under this Agent host (Picture). User can then select Engines from the list to launch or control the simulations. On Agent host side, connected Console shows up under "Consoles" category (Picture).
A list of associated Engines should show up under each connected Agent host. Select the Engine you want to manage, then right-click to choose "Load Engine Control Panel" from the menu (Picture). This will pop up the control panel titled "Engine: [Agent IP][Engine ID]", indicating which Engine from which Agent host. For example, "Engine: 127.0.0.1/E000" means this is the control panel for Engine E000 from Agent host 127.0.0.1 (Picture). You certainly can bring up other Engine's control panels from the same Console GUI (Picture).
Each Engine must be managed from its own control panel. To launch an Engine simulation run, go to that Engine's control panel, then follow the steps below:
- Step 1 - Lock Engine: Click "Lock Engine" button to attempt to become the owner of the Engine. Engine cannot be controlled or operated until it is locked by current Console socket, which becoms the Engine owner (Picture).
- Step 2 - Run Engine: "Run Engine" button should show up once the Engine is locked by current Console socket. Simply click this button to launch the Engine simulation run. A successfully launched Engine will show up "Online" Engine state (Picture). Also, on Agent host side, the online Engine should show up its own socket as well as which Console socket is the owner (Picture).
5. Control and Monitor SimSANs Engine Run
This part is the essence of SimSANs - capable of simulating daily SAN administration tasks. But before you go on manage SimSANs online Engines, please ensure the following operations have been completed:
- Engine is brought online (Check "Run Engine" in Section 4)
- Engine is locked by current Console socket (Check "Lock Engine" in Section 4)
- Engine configurations are loaded - click "Load Engine Configurations" button on the Engine control panel and wait for the operation is done. Successful load operation will get a list of VSANs (in VSAN tab), a list of SAN Switches (in SAN Switches tab), and a list of Client Hosts and Storage Devices (in SAN Nodes tab).
Now you can go to following sub-sections for the details of each SAN related configuration available in SimSANs:
Please select "VSAN" tab from Engine control panel. Each VSAN should have a list of member switches. Simply select the switch to get the port distribution. See this picture.
Please select "Zoning" tab from Engine control panel. Default zone is used which put all available node ports into the same big zone, even though they may belong to different VSANs. Note: IVR (Inter-VSAN Routing) is not implemented in SimSANs so the ports are unable to talk each other if they are not in the same VSAN. See this picture.
Please select "Name Servers" tab from Engine control panel, then click "Refresh All VSAN Name Servers" button. Name server table is collected, one for each VSAN. Simply select a VSAN from VSAN list, then its associated name server table will show up. See this picture.
Please select "SAN Switches" tab from Engine control panel. Select a switch from the switch list will show up switch information as well as linecard port layout (Picture). Click on a port from the linecard port layout graph will show up the detailed port information on "Port Settings" panel (Picture).
The FC or FCoE port functioning as SCSI initiator or SCSI target is a node port (N_Port). The entity holding node port is a node entity, which usually is client host (initiator) or storage device (target) in a normal SAN environment.
Please select "SAN Nodes" tab from Engine control panel then you should be able to get a client host list and a storage device list. Select a host will show up host information including host HBA list, SCSI device list, and IO generator list. Select a device will show up device information including FEIB (FrontEnd Interface Blade) list, logical unit list, client list, and backend storage setup. See this picture.
- (Host) Adapter List: Select an HBA from the adapter list will show up the FCoE CNA support as well as the port list. Select a port from port list shows the detailed port configurations in "Settings and Attributes" panel. Particularly, the LUNs discovered from remote target controllers for each NPIV port also show up there. See this picture.
- (Host) SCSI Device List: All SCSI devices discovered in this host show up here, each of which get a SCSI ID assigned, starting from zero. Select any SCSI device will show detailed device information in "Settings and Attributes" panel, including multi-path information. See this picture.
- (Host) IO Generator List: All IO generators configured for this host show up here. Select any IO generator will show detailed configuration information in "Settings and Attributes" panel. See this picture.
- (Device) FEIB List: Similar to Host HBA List except that in the port configuration, each NPIV port (the target port) shows up an initiator login table telling which initiators are currently logged in. See this picture.
- (Device) Logical Unit List: All logical units configured in this device show up here, each of which get a Device ID assigned, starting from 1000. Select any LU will show detailed device information in "Settings and Attributes" panel, including LUN connections from client host. See this picture.
- (Device) Client Host List: This is the place where client LUN assignment get setup. Each client get a unique Host ID assigned, starting from 2000. Simply select a client will show detailed assignment information in "Settings and Attributes" panel, which including the assignment of client initiators, storage targets, and LUNs. See this picture.
- (Device) Backend Storage: This is the list of backend storage available to select. The one marked "Active" is what currently being used. Select any of it shows its associated IO response time cost in "Settings and Attributes" panel. See this picture.
The real-world FC/FCoE protocol analyzer, such like Finisar (now JDSU) Xgig or Wireshark, is simulated here to tracing protocol level FC, FCoE, and FIP frames, though the actual trace control capability is much more simplified than the real-world ones, for example, only one port can be traced at one time.
Simply go to "Analyzer and Traces" tab from Engine control panel, select the port you want to trace, then click "Start" button to begin tracing. Please see here and here for the two pictures of sample trace information, one for FC, and the other for FCoE/FIP.
6. Online Engine Configurations
This is the fun part. In SimSANs v4, we're able to run some dynamic configurations while Engine is running. Previously in v3, Engine configurations must be done when Engine is offline.
Note: In current SimSANs v4 build, all available online configurations are related to SAN Node, meaning they are for Client Host or Storage Device.
The following sub-sections show what can be configured online. Before running those configurations, please ensure Engine is locked by current Console socket, and "Config Node Option ON" is turned on in "SAN Nodes" tab.
6.1 (Storage Device) Add New Logical Unit
Select a device, right-click "Logical Unit List", then you're able to add a new logical unit. The new LUN will show up in the list. See this picture.
6.2 (Storage Device) Change Logical Unit Capacity
Select a LUN from "Logical Unit List", right-click it, then you're able to set the LUN capacity in the unit of GB. See this picture.
Note: You cannot set capacity if the LUN is already assigned to a client host.
6.3 (Storage Device) Add New Client Host
Select a device, right-click "Client Host List", then you're able to add a new client. The new client will show up in the list. See this picture. Please noted that the newly created client does not have any initiator, target, or LUN assigned. Refer to section 6.4 for how to assign initiator/target/LUN to client.
6.4 (Storage Device) Assign Initiators, Targets, and LUNs to Client Host
Select a client from "Client Host List", right-click it, then you're able to assign initiator ports, target ports, or LUNs to the client. See these three pictures here, here, and here.
6.5 (Client Host) Scan SCSI Devices
Select a host, right-click "SCSI Device List", then you're able to scan out SCSI devices. If a new LUN is assigned from storage device, then the new SCSI device should show up after scanning. See this picture.
6.6 (Client Host) Add New IO Generator
Select a host, right-click "IO Generator List", then you're able to add a new IO generator. See this picture. The newly added IO generator, by default, is disabled. Refer to section 6.7 for how to enable it.
6.7 (Client Host) Enable or Disable IO Generator
Select a iogen from "IO Generator List", right-click it, then you're able to enable or disable it on the fly. See the pictures here and here.
Note: If the IO generator is running IO, disable it will stop the IO. If IO Generator is disabled, re-enable it will start the IO.
6.8 (Client Host) Change IO Generator Attributes
Select a iogen from "IO Generator List", right-click it, then you're able to change its attributes including target LUN, outstanding IO count, IO request size, READ IO ratio, and sequential IO ratio. See this picture.
Note: "Commit Attribute Changes" has to be selected from the right-click menu to get changes take effect.
6.9 (Client Host) Change SCSI Device Queue Depth
Select a host, right-click "SCSI Device Queue Depth", then you're able to change the queue depth for all SCSI devices discovered by this host. See this picture. Note: change queue depth may affect IO performance.
6.10 (Client Host) Monitor SCSI IO Performance
There's a "SCSI Device IO Performance" panel in "SAN Nodes" tab. It is used to monitoring IO performance data for SCSI devices from host side. The IO performance data includes IOPS, Throughput, and IO Response Time.
Click "Refresh" button to get all active SCSI devices that currently having IO activities. Click "Auto Refresh" check-box will collect performance data periodically. Click "Open XYPlot" will pop up XY Plot Graph. You can combine "Auto Refresh" with "XYPlot" to have a clear picture of real-time IO activities. See this picture.
7. Offline Engine Configurations
All other configurations not mentioned in section 6 have to be done when engine is offline. They are available for "VSAN", "SAN Switches", "SAN Nodes". In each of them, there's a "Commit" and "Cancel" buttons, which is used to save the changes to configuration files or cancel the changes. If "Force Saving Changes" is checked, click "Commit" button will save configuration files anyway even if there's no change ever made at all.