Chapter 1 Oracle ZFS Storage Appliance Overview
Chapter 3 Initial Configuration
Chapter 4 Network Configuration
Chapter 5 Storage Configuration
Chapter 6 Storage Area Network Configuration
SAN Target and Initiator Groups
Associating a LUN with an FC Initiator Group
Configuring iSCSI Using the BUI
Creating an Analytics Worksheet
Configuring iSCSI Using the CLI
Adding an iSCSI Target with an Auto-generated IQN
Adding an iSCSI Target with a Specific IQN and RADIUS Authentication
Adding an iSCSI Initiator which uses CHAP Authentication
Adding an iSCSI Initiator Group
Configuring SRP Targets Using the BUI
Configuring SRP Targets Using the CLI
Chapter 8 Setting ZFSSA Preferences
Chapter 10 Cluster Configuration
Chapter 12 Shares, Projects, and Schema
dory:configuration san fc targets> set targets="wwn.2101001B32A11639" targets = wwn.2101001B32A11639 (uncommitted) dory:configuration san fc targets> commit
dory:configuration san fc targets> show Properties: targets = wwn.2100001B32811639,wwn.2101001B32A12239 Targets: NAME MODE WWN PORT SPEED target-000 target wwn.2100001B32811639 PCIe 5: Port 1 4 Gbit/s target-001 initiator wwn.2101001B32A11639 PCIe 5: Port 2 0 Gbit/s target-002 initiator wwn.2100001B32812239 PCIe 2: Port 1 0 Gbit/s target-003 target wwn.2101001B32A12239 PCIe 2: Port 2 0 Gbit/s dory:configuration san fc targets> select target-000 dory:configuration san fc targets target-000> show Properties: wwn = wwn.2100001B32811639 port = PCIe 5: Port 1 mode = target speed = 4 Gbit/s discovered_ports = 6 link_failure_count = 0 loss_of_sync_count = 0 loss_of_signal_count = 0 protocol_error_count = 0 invalid_tx_word_count = 0 invalid_crc_count = 0 Ports: PORT WWN ALIAS MANUFACTURER port-000 wwn.2100001B3281A339 longjaw-1 QLogic Corporation port-001 wwn.2101001B32A1A339 longjaw-2 QLogic Corporation port-002 wwn.2100001B3281AC39 thicktail-1 QLogic Corporation port-003 wwn.2101001B32A1AC39 thicktail-2 QLogic Corporation port-004 wwn.2100001B3281E339 <none> QLogic Corporation port-005 wwn.2101001B32A1E339 <none> QLogic Corporation
dory:configuration san fc initiators> create dory:configuration san fc initiators (uncommitted)> set name=lefteye dory:configuration san fc initiators (uncommitted)> set initiators=wwn.2101001B32A1AC39,wwn.2100001B3281AC39 dory:configuration san fc initiators (uncommitted)> commit dory:configuration san fc initiators> list GROUP NAME group-001 lefteye | +-> INITIATORS wwn.2101001B32A1AC39 wwn.2100001B3281AC39
The following example demonstrates creating a LUN called lefty and associating it with the fera initiator group.
dory:shares default> lun lefty dory:shares default/lefty (uncommitted)> set volsize=10 volsize = 10 (uncommitted) dory:shares default/lefty (uncommitted)> set initiatorgroup=fera initiatorgroup = default (uncommitted) dory:shares default/lefty (uncommitted)> commit
Refer to the CLI Usage and Simple CLI Scripting and Batching Commands sections for information about how to modify and use the following example script.
script /* * This script creates both aliases for initiators and initiator * groups, as specified by the below data structure. In this * particular example, there are five initiator groups, each of * which is associated with a single host (thicktail, longjaw, etc.), * and each initiator group consists of two initiators, each of which * is associated with one of the two ports on the FC HBA. (Note that * there is nothing in the code that uses this data structure that * assumes the number of initiators per group.) */ groups = { thicktail: { 'thicktail-1': 'wwn.2100001b3281ac39', 'thicktail-2': 'wwn.2101001b32a1ac39' }, longjaw: { 'longjaw-1': 'wwn.2100001b3281a339', 'longjaw-2': 'wwn.2101001b32a1a339' }, tecopa: { 'tecopa-1': 'wwn.2100001b3281e339', 'tecopa-2': 'wwn.2101001b32a1e339' }, spinedace: { 'spinedace-1': 'wwn.2100001b3281df39', 'spinedace-2': 'wwn.2101001b32a1df39' }, fera: { 'fera-1': 'wwn.2100001b32817939', 'fera-2': 'wwn.2101001b32a17939' } }; for (group in groups) { initiators = []; for (initiator in groups[group]) { printf('Adding %s for %s ... ', groups[group][initiator], initiator); try { run('select alias=' + initiator); printf('(already exists)\n'); run('cd ..'); } catch (err) { if (err.code != EAKSH_ENTITY_BADSELECT) throw err; run('create'); set('alias', initiator); set('initiator', groups[group][initiator]); run('commit'); printf('done\n'); } run('select alias=' + initiator); initiators.push(get('initiator')); run('cd ..'); } printf('Creating group for %s ... ', group); run('groups'); try { run('select name=' + group); printf('(already exists)\n'); run('cd ..'); } catch (err) { if (err.code != EAKSH_ENTITY_BADSELECT) throw err; run('create'); set('name', group); run('set initiators=' + initiators); run('commit'); printf('done\n'); } run('cd ..'); }