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 ..');
}