In this post we have:
- Windows Server 2016 box with one LAN NIC, and two iSCSI
NICs
- 3 x ONTAP 9.2 vSIM cluster and each node with 2 NICs
for iSCSI
The following Walkthrough uses PowerShell and
ClusterShell CLI to do everything required to get 2 iSCSI LUNs mounted into 2
folders as NTFS drives in Server 2016.
Image: The end
results - example with one mapped drive showing
Part 1) Windows
Server 2016 Basic Configuration
Rename-Computer
-ComputerName localhost -NewName SERVER01
Get-WindowsFeature
-Name 'Multipath-IO'
Add-WindowsFeature
-Name 'Multipath-IO'
Restart-Computer
-ComputerName localhost
Get-NetIPAddress
| Where-Object {$_.AddressFamily -eq "IPv4"}
rename-netadapter
-Name "Ethernet0" -NEwName "LAN"
rename-netadapter
-Name "Ethernet1" -NEwName "iSCSIA"
rename-netadapter
-Name "Ethernet2" -NEwName "iSCSIB"
New-NetIPAddress
-InterfaceAlias "LAN" -IPAddress "10.0.1.51" -PrefixLength
8 -DefaultGateway 10.0.0.2
New-NetIPAddress
-InterfaceAlias "iSCSIA" -IPAddress "1.0.0.51"
-PrefixLength 24
New-NetIPAddress
-InterfaceAlias "iSCSIB" -IPAddress "2.0.0.51"
-PrefixLength 24
Set-Service
-Name MSiSCSI -StartupType Automatic
Start-Service
-Name MSiSCSI
Note: The iSCSI
initiator name should be "iqn.1991-05.com.microsoft:server01"
Part 2) ONTAP
Basic Configuration
We have just created a 3 node cluster with 3 x node
management IPs and a cluster IP.
Each node has 6 ports: 2 for cluster, 2 for non-SAN, 2
for SAN
license
add {{NODE 1 iSCSI LICENSE}}
license
add {{NODE 2 iSCSI LICENSE}}
license
add {{NODE 3 iSCSI LICENSE}}
disk
assign -node CLU01-01 -all true
disk
assign -node CLU01-02 -all true
disk
assign -node CLU01-03 -all true
aggr
show
aggr
rename aggr0 -newname CLU01_01_root
aggr
rename aggr0_CLU01_02_0 -newname CLU01_02_root
aggr
rename aggr0_CLU01_03_0 -newname CLU01_03_root
set
-c off
aggr
add-disks -aggr CLU01_01_root -diskcount 2
aggr
add-disks -aggr CLU01_02_root -diskcount 2
aggr
add-disks -aggr CLU01_03_root -diskcount 2
aggr
show
vol
size vol0 -vserver CLU01-01 -new-size 2G
vol
size vol0 -vserver CLU01-02 -new-size 2G
vol
size vol0 -vserver CLU01-03 -new-size 2G
aggr
show
disk
show -container-type spare -owner *1
aggr
create -aggr CLU01_01_data -diskcount 23 -maxraidsize 23 -node CLU01-01
aggr
create -aggr CLU01_02_data -diskcount 23 -maxraidsize 23 -node CLU01-02
aggr
create -aggr CLU01_03_data -diskcount 23 -maxraidsize 23 -node CLU01-03
Part 3) ONTAP
iSCSI Configuration
net
port show
broadcast-domain
show
broadcast-domain
remove-ports -broadcast-domain Default -ports CLU01-01:e0e
broadcast-domain
remove-ports -broadcast-domain Default -ports CLU01-01:e0f
broadcast-domain
remove-ports -broadcast-domain Default -ports CLU01-02:e0e
broadcast-domain
remove-ports -broadcast-domain Default -ports CLU01-02:e0f
broadcast-domain
remove-ports -broadcast-domain Default -ports CLU01-03:e0e
broadcast-domain
remove-ports -broadcast-domain Default -ports CLU01-03:e0f
broadcast-domain
create -broadcast-domain iSCSI_A -mtu 1500
broadcast-domain
create -broadcast-domain iSCSI_B -mtu 1500
broadcast-domain
add-ports -broadcast-domain iSCSI_A -ports CLU01-01:e0e
broadcast-domain
add-ports -broadcast-domain iSCSI_A -ports CLU01-02:e0e
broadcast-domain
add-ports -broadcast-domain iSCSI_A -ports CLU01-03:e0e
broadcast-domain
add-ports -broadcast-domain iSCSI_B -ports CLU01-01:e0f
broadcast-domain
add-ports -broadcast-domain iSCSI_B -ports CLU01-02:e0f
broadcast-domain
add-ports -broadcast-domain iSCSI_B -ports CLU01-03:e0f
vserver
create -vserver iSCSI_SVM -rootvolume rootvol -aggregate CLU01_01_data
-rootvolume-security-style unix
vserver
remove-protocols -vserver iSCSI_SVM -protocols fcp,cifs,nfs,ndmp
iscsi
create -vserver iSCSI_SVM
iscsi
show
net
int create -vserver iSCSI_SVM -lif iSCSI_SVM_mgmt -role data -data-protocol
none -home-node CLU01-01 -home-port e0c -address 10.0.1.113 -netmask 255.0.0.0
-status-admin up -firewall-policy mgmt
net
int create -vserver iSCSI_SVM -lif N1_iSCSI_E -role data -data-protocol iscsi
-home-node CLU01-01 -home-port e0e -address 1.0.0.101 -netmask 255.255.255.0
-status-admin up -firewall-policy data
net
int create -vserver iSCSI_SVM -lif N1_iSCSI_F -role data -data-protocol iscsi
-home-node CLU01-01 -home-port e0f -address 2.0.0.101 -netmask 255.255.255.0
-status-admin up -firewall-policy data
net
int create -vserver iSCSI_SVM -lif N2_iSCSI_E -role data -data-protocol iscsi
-home-node CLU01-02 -home-port e0e -address 1.0.0.102 -netmask 255.255.255.0
-status-admin up -firewall-policy data
net
int create -vserver iSCSI_SVM -lif N2_iSCSI_F -role data -data-protocol iscsi
-home-node CLU01-02 -home-port e0f -address 2.0.0.102 -netmask 255.255.255.0
-status-admin up -firewall-policy data
net
int create -vserver iSCSI_SVM -lif N3_iSCSI_E -role data -data-protocol iscsi
-home-node CLU01-03 -home-port e0e -address 1.0.0.103 -netmask 255.255.255.0
-status-admin up -firewall-policy data
net
int create -vserver iSCSI_SVM -lif N3_iSCSI_F -role data -data-protocol iscsi
-home-node CLU01-03 -home-port e0f -address 2.0.0.103 -netmask 255.255.255.0
-status-admin up -firewall-policy data
net
int show -vserver iSCSI_SVM
network
route create -vserver iSCSI_SVM -destination 0.0.0.0/0 -gateway 10.0.0.2
security
login password -vserver iSCSI_SVM -username vsadmin
security
login unlock -vserver iSCSI_SVM -username vsadmin
##
NOW THE LUNS X 2 (One server so we used just one node and one aggregates) ##
volume
create -vserver iSCSI_SVM -volume VOL_N1_01 -aggregate CLU01_01_data -size 18G
-policy default -space-guarantee none -snapshot-policy none -percent-snapshot-space
0 -autosize false
volume
create -vserver iSCSI_SVM -volume VOL_N1_02 -aggregate CLU01_01_data -size 10G
-policy default -space-guarantee none -snapshot-policy none
-percent-snapshot-space 0 -autosize false
volume
efficiency on -vserver iSCSI_SVM -volume VOL_N1_01
volume
efficiency on -vserver iSCSI_SVM -volume VOL_N1_02
volume
efficiency modify -vserver iSCSI_SVM -volume VOL_N1_01 -policy default
volume
efficiency modify -vserver iSCSI_SVM -volume VOL_N1_02 -policy default
lun
create -vserver iSCSI_SVM -volume VOL_N1_01 -lun LUN_N1_01 -size 1.8G -ostype
windows_2008 -space-reserve disabled -space-allocation enabled
lun
create -vserver iSCSI_SVM -volume VOL_N1_02 -lun LUN_N1_02 -size 1G -ostype
windows_2008 -space-reserve disabled -space-allocation enabled
igroup
create -vserver iSCSI_SVM -igroup server01 -protocol iSCSI -ostype windows
-initiator iqn.1991-05.com.microsoft:server01
lun
map -vserver iSCSI_SVM -volume VOL_N1_01 -lun LUN_N1_01 -igroup server01 -lun-id
1
lun
map -vserver iSCSI_SVM -volume VOL_N1_02 -lun LUN_N1_02 -igroup server01
-lun-id 2
Part 4) Windows
Server 2016 iSCSI LUN connection
New-IscsiTargetPortal
-InitiatorPortalAddress 1.0.0.51 -TargetPortalAddress 1.0.0.101
New-IscsiTargetPortal
-InitiatorPortalAddress 1.0.0.51 -TargetPortalAddress 1.0.0.102
New-IscsiTargetPortal
-InitiatorPortalAddress 1.0.0.51 -TargetPortalAddress 1.0.0.103
New-IscsiTargetPortal
-InitiatorPortalAddress 2.0.0.51 -TargetPortalAddress 2.0.0.101
New-IscsiTargetPortal
-InitiatorPortalAddress 2.0.0.51 -TargetPortalAddress 2.0.0.102
New-IscsiTargetPortal
-InitiatorPortalAddress 2.0.0.51 -TargetPortalAddress 2.0.0.103
Get-IscsiTarget
| Connect-IscsiTarget -IsPersistent $True -IsMultipathEnabled $True
-InitiatorPortalAddress 1.0.0.51 -TargetPortalAddress 1.0.0.101
Get-IscsiTarget
| Connect-IscsiTarget -IsPersistent $True -IsMultipathEnabled $True
-InitiatorPortalAddress 1.0.0.51 -TargetPortalAddress 1.0.0.102
Get-IscsiTarget
| Connect-IscsiTarget -IsPersistent $True -IsMultipathEnabled $True -InitiatorPortalAddress
1.0.0.51 -TargetPortalAddress 1.0.0.103
Get-IscsiTarget
| Connect-IscsiTarget -IsPersistent $True -IsMultipathEnabled $True
-InitiatorPortalAddress 2.0.0.51 -TargetPortalAddress 2.0.0.101
Get-IscsiTarget
| Connect-IscsiTarget -IsPersistent $True -IsMultipathEnabled $True
-InitiatorPortalAddress 2.0.0.51 -TargetPortalAddress 2.0.0.102
Get-IscsiTarget
| Connect-IscsiTarget -IsPersistent $True -IsMultipathEnabled $True
-InitiatorPortalAddress 2.0.0.51 -TargetPortalAddress 2.0.0.103
Get-IscsiConnection
New-MSDSMSupportedHW
-VendorID NETAPP -ProductId "LUN C-Mode"
Update-MPIOClaimedHW
-Confirm:$false
Restart-Computer
##
SORTING DISKS ##
get-disk
| Where{$_.OperationalStatus -eq "Offline"} | Set-Disk -IsOffline
$false
get-disk
| Where{$_.FriendlyName -eq "NETAPP LUN C-Mode"} | Initialize-Disk
-PartitionStyle GPT
get-disk
| Where{$_.FriendlyName -eq "NETAPP LUN C-Mode"} | Foreach{$_ |
New-Partition -UseMaximumSize | Format-Volume -FileSystem NTFS
-NewFileSystemLabel ($_.SerialNumber)}
New-Item
-Path C:\LUN001 -ItemType Directory
New-Item
-Path C:\LUN002 -ItemType Directory
Get-Volume
| Where{$_.FileSystemLabel -eq "wpEzy]N7gGHQ"} | Get-Partition |
Where{$_.Type -eq "Basic"} | Add-PartitionAccessPath -AccessPath
"C:\LUN001"
Get-Volume
| Where{$_.FileSystemLabel -eq "wpEzy]N7gGHR"} | Get-Partition |
Where{$_.Type -eq "Basic"} | Add-PartitionAccessPath -AccessPath
"C:\LUN002"
THE END
Comments
Post a Comment