When using EMC VMAX as a backend storage for Netapp V-Series filers, zoning and storage allocation has to be done in a certain way. Else chances are the filers will panic. The most standard set up I’ve seen so far is using a two node Netapp cluster using backend storage. Zoning and allocation varies based on V-Series model. This acticle covers the allocation for V3240/V3070/V3140.
The FA ports reserved on the array are: 5g:0, 6g:0 (both in fabric A), 11g:0, 12g:0 (both in fabric B).
For filers using external quad port cards – V3240
The filers will have port 3a/3b/3c/3d and 4a/4b/4c/4d to the filer. Node 1 is netapp1 and node 2 is netapp2.
Zoning should be done as below:
Fabric A | Fabric B | |
---|---|---|
Disks to be owned by Node 1 | netapp1 – port 4a – 5g:0 | netapp1 – port 3a – 12g:0 |
netapp2 – port 3a – 5g:0 | netapp2 – port 4a – 12g:0 | |
Disks to be owned by Node 2 | netapp1 – port 3b – 6g:0 | netapp1 – port 4b – 11g:0 |
netapp2 – port 4b – 6g:0 | netapp2 – port 3b – 11g:0 |
VMAX – View and Groups
View | Initiator Group | Port Group | Storage Group |
---|---|---|---|
netapp1_4a_vwa | netapp1_4a_iga | vmax_5g0_pga | netapp1_sga |
netapp1_3a_vwb | netapp1_3a_igb | vmax_12g0_pgb | netapp1_sgb |
netapp2_3a_vwa | netapp2_3a_iga | vmax_5g0_pga | netapp1_sga |
netapp2_4a_vwb | netapp2_4a_igb | vmax_12g0_pgb | netapp1_sgb |
netapp2_4b_vwa | netapp2_4b_iga | vmax_6g0_pga | netapp2_sga |
netapp2_3b_vwb | netapp2_3b_igb | vmax_11g0_pgb | netapp2_sgb |
netapp1_3b_vwa | netapp1_3b_iga | vmax_6g0_pga | netapp2_sga |
netapp1_4b_vwb | netapp1_4b_igb | vmax_11g0_pgb | netapp2_sgb |
Disks to be owned by netapp1 should be added to storage groups netapp1_sga and netapp1_sgb.
Disks to be owned by netapp2 should be added to storage groups netapp2_sga and netapp2_sgb.
*vwa, *iga, *pga, *sga indicates fabric A.
*vwb, *igb, *pgb, *sgb indicates fabric B.
For filers using in build ports – V3070/V3140
The filers will have port 0a/0b/0c/0d to the filer. Node 1 is netapp1 and node 2 is netapp2.
Zoning should be done as below:
Fabric A | Fabric B | |
---|---|---|
Disks to be owned by Node 1 | netapp1 – port 0a – 5g:0 | netapp1 – port 0c – 12g:0 |
netapp2 – port 0a – 5g:0 | netapp2 – port 0c – 12g:0 | |
Disks to be owned by Node 2 | netapp1 – port 0b – 6g:0 | netapp1 – port 0d – 11g:0 |
netapp2 – port 0b – 6g:0 | netapp2 – port 0d – 11g:0 |
VMAX – View and Groups
View | Initiator Group | Port Group | Storage Group |
---|---|---|---|
netapp1_0a_vwa | netapp1_0a_iga | vmax_5g0_pga | netapp1_sga |
netapp1_0c_vwb | netapp1_0c_igb | vmax_12g0_pgb | netapp1_sgb |
netapp2_0a_vwa | netapp2_0a_iga | vmax_5g0_pga | netapp1_sga |
netapp2_0c_vwb | netapp2_0c_igb | vmax_12g0_pgb | netapp1_sgb |
netapp2_0b_vwa | netapp2_0b_iga | vmax_6g0_pga | netapp2_sga |
netapp2_0d_vwb | netapp2_0d_igb | vmax_11g0_pgb | netapp2_sgb |
netapp1_0b_vwa | netapp1_0b_iga | vmax_6g0_pga | netapp2_sga |
netapp1_0d_vwb | netapp1_0d_igb | vmax_11g0_pgb | netapp2_sgb |
Disks to be owned by netapp1 should be added to storage groups netapp1_sga and netapp1_sgb.
Disks to be owned by netapp2 should be added to storage groups netapp2_sga and netapp2_sgb.
*vwa, *iga, *pga, *sga indicates fabric A.
*vwb, *igb, *pgb, *sgb indicates fabric B.
Configurations on VMAX
1. FA ports must be exclusively reserved for filer ports. Must not be shared with any other servers.
2. Only the netapp devices should be mapped to FA ports. ACLX devs are generally mapped to all ports on VMAX. Unmap them if they are mapped to filer FA ports. Check what is mapped using symcfg -sid 1234 list -addr -available -FA 5g -p 0
3. All tdevs must be fully pre-allocated when binding to the pool.
4. All tdevs must have SCSI -3 Persistent Reserve enabled. It is set by default on VMAX, so just verify.
5. Following flags must be enabled on the FA ports reserved for filers. They are enabled by default on VMAX, so just verify.
server# symcfg -sid 1234 list -v -FA 5g -p 0 | egrep -i "common|scsi_3|spc2|PP|UWN"
Common_Serial_Number(C) : Enabled
SCSI_3(SC3) : Enabled
SPC2_Protocol_Version(SPC2) : Enabled
SCSI_Support1(OS2007) : Enabled
Init_Point_to_Point(PP) : Enabled
Unique_WWN(UWN) : Enabled
server#
6. Types of devices: a single root dev, a single dump dev, and multiple data devs per filer node to be shared between itself and its partner. Root dev to be assigned first, followed by dump dev, and then data devs.
Lun number to be used for masking root dev – 1
Lun number to be used for masking dump dev – 2
Lun number to be used for masking data devs – 5 onwards
Assign root dev on lun 1:
server# symaccess -sid 1234 create -name netapp1_sga -type storage -devs 1111
server# symaccess -sid 1234 create view -name netapp1_0a_vwa -ig netapp1_0a_iga -pg vmax_5g0_pga -sg netapp1_sga lun -1
Assign dump dev on lun 2:
server# symaccess -sid 1234 -name netapp1_sga -type storage add dev 1112 lun -2
Assign data devs from lun 5 onwards:
server# symaccess -sid 1234 -name netapp1_sga -type storage add dev 1113:1120 lun -5
Fatal error: Uncaught Error: Call to undefined function ereg_replace() in /home/customer/www/sanspire.com/public_html/wp-content/themes/swatch/includes/theme-comments.php:63 Stack trace: #0 /home/customer/www/sanspire.com/public_html/wp-content/themes/swatch/includes/theme-comments.php(19): the_commenter_link() #1 /home/customer/www/sanspire.com/public_html/wp-includes/class-walker-comment.php(183): custom_comment(Object(WP_Comment), Array, 1) #2 /home/customer/www/sanspire.com/public_html/wp-includes/class-wp-walker.php(147): Walker_Comment->start_el('', Object(WP_Comment), 1, Array) #3 /home/customer/www/sanspire.com/public_html/wp-includes/class-walker-comment.php(139): Walker->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #4 /home/customer/www/sanspire.com/public_html/wp-includes/class-wp-walker.php(390): Walker_Comment->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #5 /home/customer/www/sanspire.com/public_html/wp-includes/comment-template.php(2391): Walker->paged_walk(Array, '5', 0, 0 in /home/customer/www/sanspire.com/public_html/wp-content/themes/swatch/includes/theme-comments.php on line 63