IBM DS3512 configuration notes

The IBM DS3512 is the iSCSI device model that is part of the ExoGENI rack design This page describes the configuration of the ORCA aggregate handler for the DS3512.

Architecture

NEuca Storage jpg

The figure above represents the standard ExoGENI iSCSI architecture using a shared vlan for access to iSCSI targets.

The IBM DS3512 has 4 network ports. In our configuration, two of the ports are connected to traditional VLAN ports of the data plan switch which is in hybrid mode. These ports are on vlan 1009.

Virtual machines access iSCSI targets through an extra virtual NIC. The extra NIC is connected to the OpenStack? worker's 'storage' interface using existing Quantum NEuca mechanism for plumbing virtual networks. The only difference is that the vlan is statically configured with tag 1009 using the storage interface.

The ORCA controller is responsible for requesting the additional network interface and for assigning an IP within the correct subnet but not conflicting with any existing IP on that network (other VMs or the iSCSI device itself). In addition, the ORCA controller must include information related to the iSCSI target so that it can be delivered to the NEuca tools withing the VMs (i.e. through the userdata mechanism).

IBM DS Handler

The IBM DS handler is responsible for creating and deleting storage targets (luns) on the iSCSI device. It uses the regular join/leave mechanism as many other handlers.

In order to create a target the controller must include the following properties:

Unit Properties:

unit.target.segment_size=128  
unit.target.lun='0' 
unit.target.capacity='100 MB' 
unit.target.chap_user='user1' 
unit.target.chap_password='0123' 

unit.initiator.iqn_prefix='iqn.2012-02.net.exogeni:'

//These should be the actual property names.  I can change my part to match what you name them
unit.vm.guid=<vm1_guid>[,<vm2_quid>]*

unit.lun.guid=... 
unit.slice.guid=...

Site Properties:

ibm_ds.log.dir=/var/log/someplace
ibm_ds.log.file=ibm_ds.log
ibm_ds.log.level=debug 


ibm_ds.ip=<IP>
ibm_ds.password=<password>
ibm_ds.pool=<pool>
ibm_ds.raid_level=<raid level>
ibm_ds.owner=<A or B>

ibm_ds.connection.timeout=60 
ibm_ds.request.timeout=60 

In order to delete a target the controller must include the following properties:

Unit Properties

unit.lun.guid=... 

Site Properties:

ibm_ds.log.dir=/var/log/someplace
ibm_ds.log.file=ibm_ds.log
ibm_ds.log.level=debug 


ibm_ds.ip=<IP>
ibm_ds.password=<password>
ibm_ds.pool=<pool>
ibm_ds.raid_level=<raid level>
ibm_ds.owner=<A or B>

ibm_ds.connection.timeout=60 
ibm_ds.request.timeout=60 

EC2 Handler

unit.iscsi.initiator.iqn='iqn.2012-02.net.exogeni:<vm-guid>' \


//These should be the actual property names.  I can change my part to match what you name them
unit.vm.guid=... 
unit.slice.guid=...


unit.eth1.vlan.tag='1009' 
unit.eth1.ip='172.16.101.100/24'  
unit.eth1.state='up' 
unit.eth1.hosteth='storage' 
unit.eth1.mac='fe:80:00:00:00:00' 
unit.eth1.ipversion='ipv4' 

unit.storage1.type='iscsi' 
unit.storage1.target.ip='172.16.101.43' 
unit.storage1.target.port='3260' 
unit.storage1.target.lun.guid=<lun guid> 
unit.storage1.target.lun.num='0' 
unit.storage1.target.should_attach='yes' 
unit.storage1.target.chap_user='user1' 
unit.storage1.target.chap_password='0123' 
unit.storage1.fs.type='ext3' 
unit.storage1.fs.options='-F -b 1024' 
unit.storage1.fs.should_format='yes' 
unit.storage1.fs.mount_point='/mnt/target0'

Useful SMcli commands

/opt/IBM_DS/client/SMcli <ip of ds3512> -p 'password' -c "create logicalDrive array[pool0] raidLevel=5 userLabel=\"test-lun0\" owner=A segmentSize=128 capacity=100 MB;"

/opt/IBM_DS/client/SMcli <ip of ds3512> -c "show AllLogicalDrives;"

/opt/IBM_DS/client/SMcli <ip of ds3512> -p  'password' -c "set logicalDrive[\"test-lun0\"] logicalUnitNumber=0 host=\"host-name\";"

/opt/IBM_DS/client/SMcli <ip of ds3512> -p 'password' -c "delete logicalDrive [\"test-lun0\"];"

Attachments